{
  "properties": {
    "apiVersion": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "event": {
          "properties": {
            "selector": {
              "type": "string"
            }
          },
          "required": [
            "selector"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "submit": {
          "properties": {
            "arguments": {
              "properties": {
                "artifacts": {
                  "items": {
                    "properties": {
                      "archive": {
                        "properties": {
                          "none": {
                            "type": "object"
                          },
                          "tar": {
                            "properties": {
                              "compressionLevel": {
                                "format": "int32",
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "zip": {
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "archiveLogs": {
                        "type": "boolean"
                      },
                      "artifactGC": {
                        "properties": {
                          "podMetadata": {
                            "properties": {
                              "annotations": {
                                "additionalProperties": {
                                  "type": "string"
                                },
                                "type": "object"
                              },
                              "labels": {
                                "additionalProperties": {
                                  "type": "string"
                                },
                                "type": "object"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "serviceAccountName": {
                            "type": "string"
                          },
                          "strategy": {
                            "enum": [
                              "",
                              "OnWorkflowCompletion",
                              "OnWorkflowDeletion",
                              "Never"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "artifactory": {
                        "properties": {
                          "passwordSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "url": {
                            "type": "string"
                          },
                          "usernameSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "azure": {
                        "properties": {
                          "accountKeySecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "blob": {
                            "type": "string"
                          },
                          "container": {
                            "type": "string"
                          },
                          "endpoint": {
                            "type": "string"
                          },
                          "useSDKCreds": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "blob",
                          "container",
                          "endpoint"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "deleted": {
                        "type": "boolean"
                      },
                      "from": {
                        "type": "string"
                      },
                      "fromExpression": {
                        "type": "string"
                      },
                      "gcs": {
                        "properties": {
                          "bucket": {
                            "type": "string"
                          },
                          "key": {
                            "type": "string"
                          },
                          "serviceAccountKeySecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "git": {
                        "properties": {
                          "branch": {
                            "type": "string"
                          },
                          "depth": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "disableSubmodules": {
                            "type": "boolean"
                          },
                          "fetch": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "insecureIgnoreHostKey": {
                            "type": "boolean"
                          },
                          "insecureSkipTLS": {
                            "type": "boolean"
                          },
                          "passwordSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "repo": {
                            "type": "string"
                          },
                          "revision": {
                            "type": "string"
                          },
                          "singleBranch": {
                            "type": "boolean"
                          },
                          "sshPrivateKeySecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "usernameSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "repo"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "globalName": {
                        "type": "string"
                      },
                      "hdfs": {
                        "properties": {
                          "addresses": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "dataTransferProtection": {
                            "type": "string"
                          },
                          "force": {
                            "type": "boolean"
                          },
                          "hdfsUser": {
                            "type": "string"
                          },
                          "krbCCacheSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "krbConfigConfigMap": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "krbKeytabSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "krbRealm": {
                            "type": "string"
                          },
                          "krbServicePrincipalName": {
                            "type": "string"
                          },
                          "krbUsername": {
                            "type": "string"
                          },
                          "path": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "path"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "http": {
                        "properties": {
                          "auth": {
                            "properties": {
                              "basicAuth": {
                                "properties": {
                                  "passwordSecret": {
                                    "properties": {
                                      "key": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "default": "",
                                        "type": "string"
                                      },
                                      "optional": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "key"
                                    ],
                                    "type": "object",
                                    "x-kubernetes-map-type": "atomic",
                                    "additionalProperties": false
                                  },
                                  "usernameSecret": {
                                    "properties": {
                                      "key": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "default": "",
                                        "type": "string"
                                      },
                                      "optional": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "key"
                                    ],
                                    "type": "object",
                                    "x-kubernetes-map-type": "atomic",
                                    "additionalProperties": false
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "clientCert": {
                                "properties": {
                                  "clientCertSecret": {
                                    "properties": {
                                      "key": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "default": "",
                                        "type": "string"
                                      },
                                      "optional": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "key"
                                    ],
                                    "type": "object",
                                    "x-kubernetes-map-type": "atomic",
                                    "additionalProperties": false
                                  },
                                  "clientKeySecret": {
                                    "properties": {
                                      "key": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "default": "",
                                        "type": "string"
                                      },
                                      "optional": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "key"
                                    ],
                                    "type": "object",
                                    "x-kubernetes-map-type": "atomic",
                                    "additionalProperties": false
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "oauth2": {
                                "properties": {
                                  "clientIDSecret": {
                                    "properties": {
                                      "key": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "default": "",
                                        "type": "string"
                                      },
                                      "optional": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "key"
                                    ],
                                    "type": "object",
                                    "x-kubernetes-map-type": "atomic",
                                    "additionalProperties": false
                                  },
                                  "clientSecretSecret": {
                                    "properties": {
                                      "key": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "default": "",
                                        "type": "string"
                                      },
                                      "optional": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "key"
                                    ],
                                    "type": "object",
                                    "x-kubernetes-map-type": "atomic",
                                    "additionalProperties": false
                                  },
                                  "endpointParams": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "value": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "key"
                                      ],
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "scopes": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "tokenURLSecret": {
                                    "properties": {
                                      "key": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "default": "",
                                        "type": "string"
                                      },
                                      "optional": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "key"
                                    ],
                                    "type": "object",
                                    "x-kubernetes-map-type": "atomic",
                                    "additionalProperties": false
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "headers": {
                            "items": {
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name",
                                "value"
                              ],
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "mode": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "name": {
                        "type": "string"
                      },
                      "optional": {
                        "type": "boolean"
                      },
                      "oss": {
                        "properties": {
                          "accessKeySecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "bucket": {
                            "type": "string"
                          },
                          "createBucketIfNotPresent": {
                            "type": "boolean"
                          },
                          "endpoint": {
                            "type": "string"
                          },
                          "key": {
                            "type": "string"
                          },
                          "lifecycleRule": {
                            "properties": {
                              "markDeletionAfterDays": {
                                "format": "int32",
                                "type": "integer"
                              },
                              "markInfrequentAccessAfterDays": {
                                "format": "int32",
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "secretKeySecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "securityToken": {
                            "type": "string"
                          },
                          "useSDKCreds": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "path": {
                        "type": "string"
                      },
                      "raw": {
                        "properties": {
                          "data": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "data"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "recurseMode": {
                        "type": "boolean"
                      },
                      "s3": {
                        "properties": {
                          "accessKeySecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "bucket": {
                            "type": "string"
                          },
                          "caSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "createBucketIfNotPresent": {
                            "properties": {
                              "objectLocking": {
                                "type": "boolean"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "encryptionOptions": {
                            "properties": {
                              "enableEncryption": {
                                "type": "boolean"
                              },
                              "kmsEncryptionContext": {
                                "type": "string"
                              },
                              "kmsKeyId": {
                                "type": "string"
                              },
                              "serverSideCustomerKeySecret": {
                                "properties": {
                                  "key": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "default": "",
                                    "type": "string"
                                  },
                                  "optional": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "key"
                                ],
                                "type": "object",
                                "x-kubernetes-map-type": "atomic",
                                "additionalProperties": false
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "endpoint": {
                            "type": "string"
                          },
                          "insecure": {
                            "type": "boolean"
                          },
                          "key": {
                            "type": "string"
                          },
                          "region": {
                            "type": "string"
                          },
                          "roleARN": {
                            "type": "string"
                          },
                          "secretKeySecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "sessionTokenSecret": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "useSDKCreds": {
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "subPath": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "parameters": {
                  "items": {
                    "properties": {
                      "default": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "enum": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "globalName": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      },
                      "valueFrom": {
                        "properties": {
                          "configMapKeyRef": {
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "default": {
                            "type": "string"
                          },
                          "event": {
                            "type": "string"
                          },
                          "expression": {
                            "type": "string"
                          },
                          "jqFilter": {
                            "type": "string"
                          },
                          "jsonPath": {
                            "type": "string"
                          },
                          "parameter": {
                            "type": "string"
                          },
                          "path": {
                            "type": "string"
                          },
                          "supplied": {
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "metadata": {
              "type": "object"
            },
            "workflowTemplateRef": {
              "properties": {
                "clusterScope": {
                  "type": "boolean"
                },
                "name": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "workflowTemplateRef"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "event"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "metadata",
    "spec"
  ],
  "type": "object"
}
