{
  "avro-deserialize-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "avro-deserialize-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Avro Deserialize Action",
        "description" : "Deserialize payload to Avro",
        "type" : "object",
        "properties" : {
          "schema" : {
            "title" : "Schema",
            "description" : "The Avro schema to use during serialization (as single-line, using JSON format)",
            "type" : "string",
            "example" : "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
          },
          "validate" : {
            "title" : "Validate",
            "description" : "Indicates if the content must be validated against the schema",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:core", "camel:jackson-avro" ],
      "template" : {
        "beans" : [ {
          "name" : "schemaResolver",
          "type" : "#class:org.apache.camel.component.jackson.avro.transform.AvroSchemaResolver",
          "property" : [ {
            "key" : "validate",
            "value" : "{{validate}}"
          }, {
            "key" : "schema",
            "value" : "{{schema:}}"
          } ]
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "avro" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode",
                "schemaResolver" : "#bean:{{schemaResolver}}"
              }
            }
          }, {
            "removeHeader" : {
              "name" : "Content-Type"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Avro Deserialize Action",
      "description" : "Deserialize payload to Avro",
      "properties" : {
        "schema" : {
          "type" : "string",
          "title" : "Schema",
          "description" : "The Avro schema to use during serialization (as single-line, using JSON format)"
        },
        "validate" : {
          "type" : "boolean",
          "title" : "Validate",
          "description" : "Indicates if the content must be validated against the schema",
          "default" : true
        }
      }
    }
  },
  "avro-serialize-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "avro-serialize-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Avro Serialize Action",
        "description" : "Serialize payload to Avro",
        "type" : "object",
        "properties" : {
          "schema" : {
            "title" : "Schema",
            "description" : "The Avro schema to use during serialization (as single-line, using JSON format)",
            "type" : "string",
            "example" : "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
          },
          "validate" : {
            "title" : "Validate",
            "description" : "Indicates if the content must be validated against the schema",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:core", "camel:jackson-avro" ],
      "template" : {
        "beans" : [ {
          "name" : "schemaResolver",
          "type" : "#class:org.apache.camel.component.jackson.avro.transform.AvroSchemaResolver",
          "property" : [ {
            "key" : "validate",
            "value" : "{{validate}}"
          }, {
            "key" : "schema",
            "value" : "{{schema:}}"
          } ]
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "marshal" : {
              "avro" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode",
                "schemaResolver" : "#bean:{{schemaResolver}}"
              }
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "application/avro"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Avro Serialize Action",
      "description" : "Serialize payload to Avro",
      "properties" : {
        "schema" : {
          "type" : "string",
          "title" : "Schema",
          "description" : "The Avro schema to use during serialization (as single-line, using JSON format)"
        },
        "validate" : {
          "type" : "boolean",
          "title" : "Validate",
          "description" : "Indicates if the content must be validated against the schema",
          "default" : true
        }
      }
    }
  },
  "aws-cloudtrail-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-cloudtrail-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzQuMzc1IDg1IiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48dXNlIHhsaW5rOmhyZWY9IiNBIiB4PSIyLjE4OCIgeT0iMi41Ii8+PHN5bWJvbCBpZD0iQSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZT0ibm9uZSI+PHBhdGggZD0iTTkuOTY2IDM1LjQ5M2wtMi4yODguMTc2TDAgMzUuMzc2bDIuMTIzLTEwLjAzOSA3Ljg0MyAxMC4xNTZ6IiBmaWxsPSIjM2M0OTI5Ii8+PHBhdGggZD0iTTkuOTY2IDQ0LjgzbC0yLjI4OC0uMTc2TDAgNDQuOTQ3bDIuMTIzIDEwLjAzOUw5Ljk2NiA0NC44M3oiIGZpbGw9IiNiN2NhOWQiLz48cGF0aCBkPSJNMi4xMjMgNDUuMTQxTDAgNDQuOTQ2djkuNDM0bDIuMTIzLjYwNXYtOS44NDR6IiBmaWxsPSIjNGI2MTJjIi8+PHBhdGggZD0iTTkuOTY2IDU0LjAxOWwtNy44NDMuOTY2di05LjgzNGw3Ljg0My0uMzIydjkuMTl6IiBmaWxsPSIjNzU5YzNlIi8+PHBhdGggZD0iTTI0LjM0MyA0NS42MDFsLTYuMzA3LS40NTktMTEuMDI4LjUyNyA1LjkwNSAxNy45NjEgMTEuNDMtMTguMDI5eiIgZmlsbD0iI2I3Y2E5ZCIvPjxwYXRoIGQ9Ik0yLjEyMyAzNS4xNzFMMCAzNS4zNzZ2LTkuNDM0bDIuMTIzLS42MDV2OS44MzR6IiBmaWxsPSIjNGI2MTJjIi8+PHBhdGggZD0iTTkuOTY2IDI2LjMwM2wtNy44NDMtLjk2NnY5LjgyNGw3Ljg0My4zMzJ2LTkuMTl6IiBmaWxsPSIjNzU5YzNlIi8+PHBhdGggZD0iTTI0LjM0MyAzNC43MjJsLTYuMzA3LjQ0OS0xMS4wMjgtLjUxNyA1LjkwNS0xNy45MzIgMTEuNDMgMTh6IiBmaWxsPSIjM2M0OTI5Ii8+PHBhdGggZD0iTTcuMDA4IDE4LjYyNGw1LjkwNS0xLjkwMnYxNy4zNjZsLTUuOTA1LjU2NlYxOC42MjR6IiBmaWxsPSIjNGI2MTJjIi8+PHBhdGggZD0iTTI0LjM0NCAxOS4wNzNsLTExLjQzLTIuMzUxdjE3LjM2NmwxMS40My42MzRWMTkuMDczeiIgZmlsbD0iIzc1OWMzZSIvPjxwYXRoIGQ9Ik03LjAwOCA2MS41NjFsNS45MDUgMi4wNjhWNDYuMjM0bC01LjkwNS0uNTY2djE1Ljg5M3oiIGZpbGw9IiM0YjYxMmMiLz48cGF0aCBkPSJNMjQuMzQ0IDYxLjM5NWwtMTEuNDMgMi4yMzRWNDYuMjM0bDExLjQzLS42MzR2MTUuNzk1eiIgZmlsbD0iIzc1OWMzZSIvPjxwYXRoIGQ9Ik0yMC4yIDcyLjk5NUwzNC45ODkgODBsMzQuNjYtNDAtMzQuNjYtNDBMMjAuMiA3LjAwNXY2NS45OXoiIGZpbGw9IiM0YjYxMmMiLz48cGF0aCBkPSJNNzAgNjMuNDM0TDM0Ljk5IDgwVjBMNzAgMTYuNTY2djQ2Ljg2OHoiIGZpbGw9IiM3NTljM2UiLz48L2c+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Cloudtrail",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Cloudtrail Source",
        "description" : "Receive data from an AWS Cloudtrail.\n\nThe basic authentication method for the Cloudtrail service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.",
        "required" : [ "region" ],
        "type" : "object",
        "properties" : {
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the Cloudtrail client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "maxResults" : {
            "title" : "Max Results",
            "description" : "Maximum number of records that will be fetched in each poll.",
            "type" : "integer",
            "default" : 1
          },
          "eventSource" : {
            "title" : "Event Source",
            "description" : "Specify an event source to select events.",
            "type" : "string",
            "example" : "secretsmanager.amazonaws.com"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws-cloudtrail", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "aws-cloudtrail:cloudtrail",
          "parameters" : {
            "secretKey" : "{{?secretKey}}",
            "accessKey" : "{{?accessKey}}",
            "region" : "{{region}}",
            "eventSource" : "{{?eventSource}}",
            "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
            "uriEndpointOverride" : "{{?uriEndpointOverride}}",
            "overrideEndpoint" : "{{overrideEndpoint}}",
            "maxResults" : "{{maxResults}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Cloudtrail Source",
      "description" : "Receive data from an AWS Cloudtrail.\n\nThe basic authentication method for the Cloudtrail service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.",
      "required" : [ "region" ],
      "properties" : {
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the Cloudtrail client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "maxResults" : {
          "type" : "integer",
          "title" : "Max Results",
          "description" : "Maximum number of records that will be fetched in each poll.",
          "default" : 1
        },
        "eventSource" : {
          "type" : "string",
          "title" : "Event Source",
          "description" : "Specify an event source to select events."
        }
      }
    }
  },
  "aws-cloudwatch-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-cloudwatch-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIwNyIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDI5MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTI1NiAxOTkuMzA1bC0xMjcuOTU3LTE4Ljc5N0wwIDE5OS4zMjlsMTI4LjAxIDQ3LjQzOUwyNTYgMTk5LjMwNSIgZmlsbD0iI0I3Q0E5RCIvPjxwYXRoIGQ9Ik0yNS42MjEgMTk3LjExM2wyMS42MyA2Ljc2MSAxLjk3MS0yLjIzOFY1MC4yODRsLTEuOTcxLTIuNTg1LTIxLjYzIDguMjc0djE0MS4xNCIgZmlsbD0iIzRCNjEyQyIvPjxwYXRoIGQ9Ik0xMjMuODMyIDE5MC40MjNsLTc2LjU4MSAxMy40NTFWNDcuNzAzbDc2LjU4MSAxNy4yMjJ2MTI1LjQ5OCIgZmlsbD0iIzc1OUMzRSIvPjxwYXRoIGQ9Ik04OS42ODYgMjE2Ljg4OWwtMjkuODQ4LTkuMjAxVjE0LjkyOEw4OS42ODYuMDA0bDIuNjEyIDIuODQ1djIxMC44NThsLTIuNjEyIDMuMTgyIiBmaWxsPSIjNEI2MTJDIi8+PHBhdGggZD0iTTE5MS45NjcgMTkyLjg5NEw4OS42ODYgMjE2Ljg4OVYwbDEwMi4yODEgMzkuODY2djE1My4wMjgiIGZpbGw9IiM3NTlDM0UiLz48cGF0aCBkPSJNMTI3Ljk2NSAyNDQuNzE0TDAgMTk5LjMyOXYyNi4zMjRsMTI3Ljk2NSA2My45ODN2LTQ0LjkyMiIgZmlsbD0iIzRCNjEyQyIvPjxwYXRoIGQ9Ik0yNTYgMjI1LjYyMmwtMTI4LjAzNSA2NC4wMTR2LTQ0LjkyMkwyNTYgMTk5LjMwNXYyNi4zMTciIGZpbGw9IiM3NTlDM0UiLz48cGF0aCBkPSJNMjIwLjAzOSAxNTUuNjkyaC0zMS4wMjZsLTg4LjQ0NSA2LjAyNkwxMjggMTY2Ljc3NWw5Mi4wMzktMTEuMDgzIiBmaWxsPSIjQjdDQTlEIi8+PHBhdGggZD0iTTEwMC41NjggMjE5LjkwNmwyNy40MiA4LjIyNi43ODktLjg0OS0uMDIzLTYxLjg0OS0uNzg5LS43NTgtMjcuMzk3LTIuOTU4djU4LjE4OCIgZmlsbD0iIzRCNjEyQyIvPjxwYXRoIGQ9Ik0yMjAuMDM5IDE1NS42OTJsLTkyLjA3NCA4Ljk4LjAyMyA2My40NiA5Mi4wNTEtMjcuNzExdi00NC43MjkiIGZpbGw9IiM3NTlDM0UiLz48L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Cloudwatch",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS CloudWatch Metrics Sink",
        "description" : "Send data to Amazon CloudWatch metrics.\n\nThe basic authentication method for the AWS CloudWatch metrics service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the CloudWatch client loads the credentials through this provider and doesn't use the basic authentication method.\n\nYou can set the following properties in the header:\n\n`metric-name` / `ce-metricname` for the metric name.\n`metric-value` / `ce-metricvalue` for the metric value.\n`metric-unit` / `ce-metricunit` for the metric unit.\n`metric-timestamp` / `ce-metrictimestamp` for the metric timestamp.\n`metric-dimension-name` / `ce-metricdimensionname` for the dimension name.\n`metric-dimension-value` / `ce-metricdimensionvalue` for the dimension value.",
        "required" : [ "cwNamespace", "region" ],
        "type" : "object",
        "properties" : {
          "cwNamespace" : {
            "title" : "Cloud Watch Namespace",
            "description" : "The CloudWatch metric namespace.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the CloudWatch client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-cw", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[metric-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricName",
                    "simple" : "${header[metric-name]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-metricname]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricName",
                    "simple" : "${header[ce-metricname]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[metric-value]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricValue",
                    "simple" : "${header[metric-value]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-metricvalue]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricValue",
                    "simple" : "${header[ce-metricvalue]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[metric-unit]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricUnit",
                    "simple" : "${header[metric-unit]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-metricunit]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricUnit",
                    "simple" : "${header[ce-metricunit]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[metric-timestamp]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricTimestamp",
                    "simple" : "${header[metric-timestamp]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-metrictimestamp]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricTimestamp",
                    "simple" : "${header[ce-metrictimestamp]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[metric-dimension-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricDimensionName",
                    "simple" : "${header[metric-dimension-name]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-metricdimensionname]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricDimensionName",
                    "simple" : "${header[ce-metricdimensionname]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[metric-dimension-value]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricDimensionValue",
                    "simple" : "${header[metric-dimension-value]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-metricdimensionvalue]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsCwMetricDimensionValue",
                    "simple" : "${header[ce-metricdimensionvalue]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-cw:{{cwNamespace}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS CloudWatch Metrics Sink",
      "description" : "Send data to Amazon CloudWatch metrics.\n\nThe basic authentication method for the AWS CloudWatch metrics service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the CloudWatch client loads the credentials through this provider and doesn't use the basic authentication method.\n\nYou can set the following properties in the header:\n\n`metric-name` / `ce-metricname` for the metric name.\n`metric-value` / `ce-metricvalue` for the metric value.\n`metric-unit` / `ce-metricunit` for the metric unit.\n`metric-timestamp` / `ce-metrictimestamp` for the metric timestamp.\n`metric-dimension-name` / `ce-metricdimensionname` for the dimension name.\n`metric-dimension-value` / `ce-metricdimensionvalue` for the dimension value.",
      "required" : [ "cwNamespace", "region" ],
      "properties" : {
        "cwNamespace" : {
          "type" : "string",
          "title" : "Cloud Watch Namespace",
          "description" : "The CloudWatch metric namespace."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the CloudWatch client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-ddb-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-ddb-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNNzQuMTc0IDMxLjgwN2w3LjQzNyA1LjM2N3YtNy42MDJsLTcuNDgtOC43NjV2MTAuOTU3bC4wNDMuMDE1eiIvPjxwYXRoIGZpbGw9IiM1Mjk0Q0YiIGQ9Ik01OS44MzggODUuNjY2bDE0LjI5My03LjE0NlYyMC43OTFsLTE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMjA1Qjk4IiBkPSJNMzkuNDk2IDg1LjY2NkwyNS4yMDMgNzguNTJWMjAuNzkxbDE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNMzkuNTA2IDEzLjY2N2gyMC4zMjF2NzEuOTk5SDM5LjUwNnpNNzQuMTMxIDY3LjU2NFY3OC41Mmw3LjQ4LTguNzY0di03LjYwMmwtNy40MzcgNS4zOTd6TTc0LjEzMSA2Mi45MzZsLjA0My0uMDEgNy40MzctNHYtNy42NDlsLTcuNDguNjg4ek03NC4xNzQgMzYuNDI5bC0uMDQzLS4wMVY0Ny4zNWw3LjQ4LjY5OXYtNy42NDV6Ii8+PHBhdGggZmlsbD0iIzFBNDc2RiIgZD0iTTgxLjYxMSA0OC4wNDlsLTcuNDgtLjY5OS0xNC4zMDMtLjU3MkgzOS41MDZsLTE0LjMwMy41NzJWMzYuNDQzbC0uMDE1LjAwOC4wMTUtLjAzMiAxNC4zMDMtMy4zMTRINTkuODI4bDE0LjMwMyAzLjMxNCA1LjI1OCAyLjc5NXYtMS43OTdsMi4yMjItLjI0My03LjQ4LTUuNDEtMTQuMzAzLTQuNDMySDM5LjUwNmwtMTQuMzAzIDQuNDMyVjIwLjgwN2wtNy40OCA4Ljc2M3Y3LjY1M2wuMDU4LS4wNDIgMi4xNjQuMjM2djEuODM0bC0yLjIyMiAxLjE4OXY3LjYxNWwuMDU4LS4wMDYgMi4xNjQuMDMydjMuMTk2bC0xLjg2Ny4wMjgtLjM1NS0uMDM0djcuNjE4bDIuMjIyIDEuMTk1djEuODU1bC0yLjEyOS4yMzUtLjA5My0uMDd2Ny42NTJsNy40OCA4Ljc2NFY2Ny41NjRsMTQuMzAzIDQuNDMySDU5LjgyOGwxNC4zNDUtNC40NDUgNy40MzgtNS4zNjctMi4yMjItLjI0NXYtMS44MThsLTUuMjE2IDIuODA1LTE0LjM0NSAzLjI5NXYuMDA0SDM5LjUwNnYtLjAwNGwtMTQuMzQ4LTMuMjk1LS4wMjUtLjA1MS4wNy4wMzdWNTEuOTY1bDE0LjMwMy41N3YuMDE0SDU5LjgyOHYtLjAxNGwxNC4zMDMtLjU3IDcuNDgtLjY1Ni0yLjIyMi0uMDMydi0zLjE5NnoiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS DynamoDB Streams",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS DynamoDB Sink",
        "description" : "Send data to Amazon DynamoDB. The sent data inserts, updates, or deletes an item on the specified AWS DynamoDB table.\n\nThe basic authentication method for the AWS DynamoDB service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the DynamoDB client loads the credentials through this provider and doesn't use the basic authentication method.\n\nThis Kamelet expects a JSON-formatted body and it must include the primary key values that define the DynamoDB item. The mapping between the JSON fields and table attribute values is done by key. For example, for  '{\"username\":\"oscerd\", \"city\":\"Rome\"}' input, the Kamelet inserts or update an item in the specified AWS DynamoDB table and sets the values for the 'username' and 'city' attributes. \n\nFor PutItem operation the Json body defines all item attributes.\nFor DeleteItem operation the Json body defines only the primary key attributes that identify the item to delete.\nFor UpdateItem operation the Json body defines both key attributes to identify the item to be updated and all item attributes tht get updated on the item.\n\nThe given Json body can use \"operation\", \"key\" and \"item\" as top level properties that will be mapped to respective attribute value maps.\n{\n  \"operation\": \"PutItem\"\n  \"key\": {},\n  \"item\": {}\n}",
        "required" : [ "table", "region" ],
        "type" : "object",
        "properties" : {
          "table" : {
            "title" : "Table",
            "description" : "The name of the DynamoDB table.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "operation" : {
            "title" : "Operation",
            "description" : "The operation to perform.",
            "type" : "string",
            "enum" : [ "PutItem", "UpdateItem", "DeleteItem" ],
            "default" : "PutItem",
            "example" : "PutItem"
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the DynamoDB client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dataTypes" : {
        "in" : {
          "default" : "json",
          "types" : {
            "json" : {
              "format" : "aws2-ddb:application-json",
              "description" : "Json representation of a DDB operation. The input type supports the operations: PutItem, UpdateItem, DeleteItem\n\nFor PutItem operation the Json body defines all item attributes.\nFor DeleteItem operation the Json body defines only the primary key attributes that identify the item to delete.\nFor UpdateItem operation the Json body defines both key attributes to identify the item to be updated and all item attributes tht get updated on the item.\n\nThe given Json body can use \"operation\", \"key\" and \"item\" as top level properties that will be mapped to respective attribute value maps.",
              "headers" : {
                "CamelAwsDdbOperation" : {
                  "title" : "Operation",
                  "description" : "The operation to perform. Overwrites the operation given in the Json body. One of PutItem, UpdateItem, DeleteItem.",
                  "default" : "PutItem",
                  "type" : "string"
                },
                "CamelAwsDdbReturnValues" : {
                  "title" : "Return Values",
                  "description" : "Use this parameter if you want to get the attribute name-value pairs before or after they are modified. Possible values are NONE, ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW.",
                  "type" : "string"
                }
              },
              "mediaType" : "application/json",
              "schema" : {
                "type" : "object",
                "required" : [ "key" ],
                "properties" : {
                  "operation" : {
                    "type" : "string",
                    "description" : "The operator to perform. One of PutItem, UpdateItem, DeleteItem"
                  },
                  "key" : {
                    "type" : "object",
                    "description" : "The primary key specifies the selection criteria for the query."
                  },
                  "item" : {
                    "type" : "object",
                    "description" : "Attribute value map specifies all attributes to change with the given operation."
                  }
                }
              }
            }
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:jackson", "camel:aws2-ddb", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setProperty" : {
              "name" : "operation",
              "constant" : "{{operation}}"
            }
          }, {
            "transform" : {
              "toType" : "aws2-ddb:application-json"
            }
          }, {
            "to" : {
              "uri" : "aws2-ddb:{{table}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "operation" : "{{operation}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS DynamoDB Sink",
      "description" : "Send data to Amazon DynamoDB. The sent data inserts, updates, or deletes an item on the specified AWS DynamoDB table.\n\nThe basic authentication method for the AWS DynamoDB service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the DynamoDB client loads the credentials through this provider and doesn't use the basic authentication method.\n\nThis Kamelet expects a JSON-formatted body and it must include the primary key values that define the DynamoDB item. The mapping between the JSON fields and table attribute values is done by key. For example, for  '{\"username\":\"oscerd\", \"city\":\"Rome\"}' input, the Kamelet inserts or update an item in the specified AWS DynamoDB table and sets the values for the 'username' and 'city' attributes. \n\nFor PutItem operation the Json body defines all item attributes.\nFor DeleteItem operation the Json body defines only the primary key attributes that identify the item to delete.\nFor UpdateItem operation the Json body defines both key attributes to identify the item to be updated and all item attributes tht get updated on the item.\n\nThe given Json body can use \"operation\", \"key\" and \"item\" as top level properties that will be mapped to respective attribute value maps.\n{\n  \"operation\": \"PutItem\"\n  \"key\": {},\n  \"item\": {}\n}",
      "required" : [ "table", "region" ],
      "properties" : {
        "table" : {
          "type" : "string",
          "title" : "Table",
          "description" : "The name of the DynamoDB table."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "operation" : {
          "type" : "string",
          "title" : "Operation",
          "description" : "The operation to perform.",
          "enum" : [ "PutItem", "UpdateItem", "DeleteItem" ],
          "default" : "PutItem"
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the DynamoDB client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-ddb-streams-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-ddb-streams-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNNzQuMTc0IDMxLjgwN2w3LjQzNyA1LjM2N3YtNy42MDJsLTcuNDgtOC43NjV2MTAuOTU3bC4wNDMuMDE1eiIvPjxwYXRoIGZpbGw9IiM1Mjk0Q0YiIGQ9Ik01OS44MzggODUuNjY2bDE0LjI5My03LjE0NlYyMC43OTFsLTE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMjA1Qjk4IiBkPSJNMzkuNDk2IDg1LjY2NkwyNS4yMDMgNzguNTJWMjAuNzkxbDE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNMzkuNTA2IDEzLjY2N2gyMC4zMjF2NzEuOTk5SDM5LjUwNnpNNzQuMTMxIDY3LjU2NFY3OC41Mmw3LjQ4LTguNzY0di03LjYwMmwtNy40MzcgNS4zOTd6TTc0LjEzMSA2Mi45MzZsLjA0My0uMDEgNy40MzctNHYtNy42NDlsLTcuNDguNjg4ek03NC4xNzQgMzYuNDI5bC0uMDQzLS4wMVY0Ny4zNWw3LjQ4LjY5OXYtNy42NDV6Ii8+PHBhdGggZmlsbD0iIzFBNDc2RiIgZD0iTTgxLjYxMSA0OC4wNDlsLTcuNDgtLjY5OS0xNC4zMDMtLjU3MkgzOS41MDZsLTE0LjMwMy41NzJWMzYuNDQzbC0uMDE1LjAwOC4wMTUtLjAzMiAxNC4zMDMtMy4zMTRINTkuODI4bDE0LjMwMyAzLjMxNCA1LjI1OCAyLjc5NXYtMS43OTdsMi4yMjItLjI0My03LjQ4LTUuNDEtMTQuMzAzLTQuNDMySDM5LjUwNmwtMTQuMzAzIDQuNDMyVjIwLjgwN2wtNy40OCA4Ljc2M3Y3LjY1M2wuMDU4LS4wNDIgMi4xNjQuMjM2djEuODM0bC0yLjIyMiAxLjE4OXY3LjYxNWwuMDU4LS4wMDYgMi4xNjQuMDMydjMuMTk2bC0xLjg2Ny4wMjgtLjM1NS0uMDM0djcuNjE4bDIuMjIyIDEuMTk1djEuODU1bC0yLjEyOS4yMzUtLjA5My0uMDd2Ny42NTJsNy40OCA4Ljc2NFY2Ny41NjRsMTQuMzAzIDQuNDMySDU5LjgyOGwxNC4zNDUtNC40NDUgNy40MzgtNS4zNjctMi4yMjItLjI0NXYtMS44MThsLTUuMjE2IDIuODA1LTE0LjM0NSAzLjI5NXYuMDA0SDM5LjUwNnYtLjAwNGwtMTQuMzQ4LTMuMjk1LS4wMjUtLjA1MS4wNy4wMzdWNTEuOTY1bDE0LjMwMy41N3YuMDE0SDU5LjgyOHYtLjAxNGwxNC4zMDMtLjU3IDcuNDgtLjY1Ni0yLjIyMi0uMDMydi0zLjE5NnoiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS DynamoDB Streams",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS DynamoDB Streams Source",
        "description" : "Receive events from Amazon DynamoDB Streams.\n\nThe basic authentication method for the AWS DynamoDB Streams service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the DynamoDB Streams client loads the credentials through this provider and doesn't use the basic authentication method.",
        "required" : [ "table", "region" ],
        "type" : "object",
        "properties" : {
          "table" : {
            "title" : "Table",
            "description" : "The name of the DynamoDB table.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "streamIteratorType" : {
            "title" : "Stream Iterator Type",
            "description" : "Defines where in the DynamoDB stream to start getting records. There are two enums and the value can be one of FROM_LATEST and FROM_START. Note that using FROM_START can cause a significant delay before the stream has caught up to real-time.",
            "type" : "string",
            "default" : "FROM_LATEST"
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the DynamoDB client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll from the database.",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:gson", "camel:aws2-ddb", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "aws2-ddbstream:{{table}}",
          "parameters" : {
            "secretKey" : "{{?secretKey}}",
            "accessKey" : "{{?accessKey}}",
            "region" : "{{region}}",
            "streamIteratorType" : "{{streamIteratorType}}",
            "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
            "uriEndpointOverride" : "{{?uriEndpointOverride}}",
            "overrideEndpoint" : "{{overrideEndpoint}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Gson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS DynamoDB Streams Source",
      "description" : "Receive events from Amazon DynamoDB Streams.\n\nThe basic authentication method for the AWS DynamoDB Streams service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the DynamoDB Streams client loads the credentials through this provider and doesn't use the basic authentication method.",
      "required" : [ "table", "region" ],
      "properties" : {
        "table" : {
          "type" : "string",
          "title" : "Table",
          "description" : "The name of the DynamoDB table."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "streamIteratorType" : {
          "type" : "string",
          "title" : "Stream Iterator Type",
          "description" : "Defines where in the DynamoDB stream to start getting records. There are two enums and the value can be one of FROM_LATEST and FROM_START. Note that using FROM_START can cause a significant delay before the stream has caught up to real-time.",
          "default" : "FROM_LATEST"
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the DynamoDB client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll from the database.",
          "default" : 500
        }
      }
    }
  },
  "aws-ec2-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-ec2-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjA2NSIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDMxMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTQyLjc1NCAyNDQuNDk1bC0yOS45MTggNi44MjZWNTcuNTY1bDI5LjkxOCA2LjgzOXYxODAuMDkxIiBmaWxsPSIjRjY4NTM2Ii8+PHBhdGggZD0iTTgwLjA4MiAyNTUuOTMxbC0zNy4zMjggMTAuNjA4VjQyLjYxMmwzNy4zMjggMTAuNTk1djIwMi43MjRNMTI3Ljk2NiAyNjcuNjgxbC00Ny44ODQgMTcuNTI0VjIzLjk0Nmw0Ny44ODQgMTcuNTE2djIyNi4yMTlNMjU2IDI0NS4wNzlsLTEyOC4wMzQgNjQuMDE3VjBMMjU2IDY0LjAxN3YxODEuMDYyIiBmaWxsPSIjRjY4NTM2Ii8+PHBhdGggZD0iTTEwMi40NDQgMTIuNzYzTDEyNy45NjYgMHYzMDkuMDk2bC0yNS41MjItMTIuNzU5VjEyLjc2M002MC4zMjUgMzMuODJsMTkuNzU3LTkuODc4djI2MS4yMTJsLTE5Ljc1Ny05Ljg3OFYzMy44Mk0yNy4wMTYgNTAuNDc3bDE1LjczOC03Ljg2OXYyMjMuODhsLTE1LjczOC03Ljg3NFY1MC40NzdNMTIuODM2IDU3LjU2NUwwIDYzLjk4M3YxODEuMTM0bDEyLjgzNiA2LjQxNFY1Ny41NjUiIGZpbGw9IiM5RDUwMjUiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS EC2",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS EC2 Sink",
        "description" : "Check the status of EC2 instances\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS EC2 Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the EC2 client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `instanceIds` / `ce-instanceids`: as a comma separated list of EC2 instance ids.",
        "required" : [ "region" ],
        "type" : "object",
        "properties" : {
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the CloudWatch client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-ec2", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[instanceIds]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEC2InstancesIds",
                    "simple" : "${header[instanceIds]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-instanceids]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEC2InstancesIds",
                    "simple" : "${header[ce-instanceids]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-ec2:ec2-route",
              "parameters" : {
                "accessKey" : "{{?accessKey}}",
                "secretKey" : "{{?secretKey}}",
                "region" : "{{region}}",
                "operation" : "describeInstancesStatus",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS EC2 Sink",
      "description" : "Check the status of EC2 instances\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS EC2 Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the EC2 client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `instanceIds` / `ce-instanceids`: as a comma separated list of EC2 instance ids.",
      "required" : [ "region" ],
      "properties" : {
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the CloudWatch client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-eventbridge-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-eventbridge-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMWVtIiBoZWlnaHQ9IjFlbSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI1NiAyNTYiIHN0eWxlPSItbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJJY29uaWZ5SWQtMTgyM2Y2NTU1NjktYWYxZGQ1LTIwMzYiIHgxPSIwJSIgeDI9IjEwMCUiIHkxPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNCMDA4NEQiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNGRjRGOEIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSJ1cmwoI0ljb25pZnlJZC0xODIzZjY1NTU2OS1hZjFkZDUtMjAzNikiIGQ9Ik0wIDBoMjU2djI1NkgweiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0xNzEuNzAyIDIxMS4yYy02Ljg1OCAwLTEyLjQ0LTUuNjEtMTIuNDQtMTIuNTA5czUuNTgyLTEyLjUwOSAxMi40NC0xMi41MDljNi44NTcgMCAxMi40MzggNS42MSAxMi40MzggMTIuNTFjMCA2Ljg5OC01LjU4MSAxMi41MDgtMTIuNDM4IDEyLjUwOFptLTI3LjI3OC01NC40aC0zMy4wNzFMOTQuODE1IDEyOGwxNi41MzgtMjguOGgzMy4wNzFMMTYwLjk2IDEyOGwtMTYuNTM1IDI4LjhaTTg4LjM4NyA2OS44MThjLTYuODU3IDAtMTIuNDM4LTUuNjEtMTIuNDM4LTEyLjUxYzAtNi44OTggNS41ODEtMTIuNTA4IDEyLjQzOC0xMi41MDhjNi44NjEgMCAxMi40NDMgNS42MSAxMi40NDMgMTIuNTA5cy01LjU4MiAxMi41MDktMTIuNDQzIDEyLjUwOVptODMuMzE1IDEwOS45NjRjLTIuMzYyIDAtNC42MTQuNDU4LTYuNjk5IDEuMjYxbC0xMy41MTQtMjIuOTMxbC0uNzEzLjQyNkwxNjcuMzkgMTI5LjZhMy4yMjYgMy4yMjYgMCAwIDAgMC0zLjJsLTE4LjM3NC0zMmEzLjE3NyAzLjE3NyAwIDAgMC0yLjc1NS0xLjZoLTMzLjQzNWwuMTMtLjA3N2wtMTIuMzktMjEuMDNjNC4wNDctMy40NjkgNi42MjgtOC42MjcgNi42MjgtMTQuMzg0YzAtMTAuNDI2LTguNDM2LTE4LjkwOS0xOC44MDctMTguOTA5Yy0xMC4zNjcgMC0xOC44MDMgOC40ODMtMTguODAzIDE4LjkwOWMwIDEwLjQyNSA4LjQzNiAxOC45MDkgMTguODAzIDE4LjkwOWMyLjM2NSAwIDQuNjE4LS40NTggNi43MDItMS4yNjFsMTEuNTY3IDE5LjYyNUw4OC4zODQgMTI2LjRhMy4yMjYgMy4yMjYgMCAwIDAgMCAzLjJsMTguMzc3IDMyYy41Ny45OTIgMS42MiAxLjYgMi43NTYgMS42aDM2Ljc0NGMuMjY0IDAgLjUyMS0uMDQyLjc3LS4xMDJsMTIuNDk2IDIxLjIxYy00LjA1MSAzLjQ2OC02LjYyOSA4LjYyNi02LjYyOSAxNC4zODNjMCAxMC40MjYgOC40MzMgMTguOTA5IDE4LjgwNCAxOC45MDljMTAuMzcgMCAxOC44MDMtOC40ODMgMTguODAzLTE4LjkwOWMwLTEwLjQyNS04LjQzMy0xOC45MDktMTguODAzLTE4LjkwOVptMTguOTY4LTc3LjA1Yy02Ljg1NyAwLTEyLjQzNi01LjYwOS0xMi40MzYtMTIuNTA4YzAtNi45IDUuNTc5LTEyLjUwOSAxMi40MzYtMTIuNTA5YzYuODU4IDAgMTIuNDQgNS42MSAxMi40NCAxMi41MDljMCA2LjktNS41ODIgMTIuNTA5LTEyLjQ0IDEyLjUwOVptMjMuMzAzIDIzLjY2OGwtMTIuMDgtMjEuMDRjNC41OTItMy40NTMgNy41OC04Ljk0NCA3LjU4LTE1LjEzNmMwLTEwLjQyNi04LjQzMi0xOC45MDktMTguODAzLTE4LjkwOWMtMi42MzggMC01LjE1Mi41NTQtNy40MzMgMS41NDlsLTkuODQ5LTE3LjE1NWEzLjE4IDMuMTggMCAwIDAtMi43NTYtMS42aC0zOS40NDh2Ni40aDM3LjYxMmw5LjExIDE1Ljg3MmMtMy43MDMgMy40NTYtNi4wMzYgOC4zNzQtNi4wMzYgMTMuODQzYzAgMTAuNDI2IDguNDMzIDE4LjkwOSAxOC44IDE4LjkwOWMxLjkzMiAwIDMuOC0uMjk4IDUuNTU2LS44NDVMMjA3LjU0NSAxMjhsLTE1Ljg5MiAyNy42NzRsNS41MTIgMy4ybDE2LjgwOC0yOS4yNzRhMy4yMSAzLjIxIDAgMCAwIDAtMy4yWm0tMTQ2LjA0IDUwLjM5Yy02Ljg2IDAtMTIuNDQyLTUuNjEyLTEyLjQ0Mi0xMi41MDhjMC02LjkgNS41ODEtMTIuNTEgMTIuNDQyLTEyLjUxYzYuODU3IDAgMTIuNDM5IDUuNjEgMTIuNDM5IDEyLjUxYzAgNi44OTYtNS41ODIgMTIuNTA4LTEyLjQ0IDEyLjUwOFptMTAuMzkzIDMuMjM2YzUuMDYyLTMuMzkyIDguNDEtOS4xODEgOC40MS0xNS43NDRjMC0xMC40MjYtOC40MzYtMTguOTEtMTguODAzLTE4LjkxYy0zLjAwNCAwLTUuODMzLjczLTguMzUzIDEuOTk0TDQ4LjQ1OCAxMjhsMTguNDI4LTMyLjA5M2wtNS41MTUtMy4yTDQyLjAyNyAxMjYuNGEzLjIxIDMuMjEgMCAwIDAgMCAzLjJsMTIuMzg4IDIxLjU2OGMtMy4yNjggMy40MDUtNS4yODkgOC4wMjItNS4yODkgMTMuMTE0YzAgMTAuNDI1IDguNDM2IDE4LjkwOCAxOC44MDcgMTguOTA4YzEuNTYyIDAgMy4wNzQtLjIxNCA0LjUyOC0uNTc5bDEwLjE1IDE3LjY4Yy41Ny45ODkgMS42MiAxLjYgMi43NTcgMS42aDM5LjQ1MXYtNi40SDg3LjIwNGwtOC44NzgtMTUuNDY1WiIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Eventbridge",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Eventbridge Sink",
        "description" : "Send events to an Amazon Eventbridge Eventbus.\n\nThe basic authentication method for the Eventbridge service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Eventbridge client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the headers, you need to set the `resources-arn` / `ce-resources-arn` property to specify the ARN of resources related to the event.\n\nIn the headers, you need to set the `detail-type` / `ce-detail-type` property to specify the detail type related to the event.\n\nIn the headers, you need to set the `event-source` / `ce-event-source` property to specify the event source related to the event.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the file name.",
        "required" : [ "eventbusNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "eventbusNameOrArn" : {
            "title" : "Eventbus Name",
            "description" : "The Eventbridge Eventbus name or Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the Eventbridge client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-eventbridge", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[resources-arn]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEventbridgeResourcesArn",
                    "simple" : "${header[resources-arn]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-resources-arn]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEventbridgeResourcesArn",
                    "simple" : "${header[ce-resources-arn]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[detail-type]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEventbridgeDetailType",
                    "simple" : "${header[detail-type]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-detail-type]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEventbridgeDetailType",
                    "simple" : "${header[ce-detail-type]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[event-source]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEventbridgeSource",
                    "simple" : "${header[event-source]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-event-source]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsEventbridgeSource",
                    "simple" : "${header[ce-event-source]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-eventbridge:{{eventbusNameOrArn}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}",
                "operation" : "putEvent"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Eventbridge Sink",
      "description" : "Send events to an Amazon Eventbridge Eventbus.\n\nThe basic authentication method for the Eventbridge service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Eventbridge client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the headers, you need to set the `resources-arn` / `ce-resources-arn` property to specify the ARN of resources related to the event.\n\nIn the headers, you need to set the `detail-type` / `ce-detail-type` property to specify the detail type related to the event.\n\nIn the headers, you need to set the `event-source` / `ce-event-source` property to specify the event source related to the event.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the file name.",
      "required" : [ "eventbusNameOrArn", "region" ],
      "properties" : {
        "eventbusNameOrArn" : {
          "type" : "string",
          "title" : "Eventbus Name",
          "description" : "The Eventbridge Eventbus name or Amazon Resource Name (ARN)."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the Eventbridge client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-kinesis-firehose-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-kinesis-firehose-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgODUgODUiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9IjIuNSIgeT0iMi41Ii8+PHN5bWJvbCBpZD0iQSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZT0ibm9uZSI+PHBhdGggZD0iTTEzLjc2NiAzLjEyaDUyLjQ2OGMzLjY1MSAwIDcuMTUyIDEuMzYzIDkuNzM0IDMuNzg4UzgwIDEyLjYyNCA4MCAxNi4wNTR2MjEuNjk4Yy0yLjcxNy0xLjMxOS04LjY2NC0yLjcyMy0xNy40NjQtMi43MjMtMy4zNy0uMDEzLTYuNzM3LjIyNC0xMC4wNjguNzA5LTUuOTMyLjkyMi05LjA1NyAyLjUxLTkuMDU3IDMuNDg5djM2Ljg3M2MwIC42MS44OTEgMS40MTggMi41ODEgMi4yMTJIMTMuNzY2QzYuMTYzIDc4LjMxMyAwIDcyLjUyMiAwIDY1LjM3OVYxNi4wNTRDMCA4LjkxMSA2LjE2MyAzLjEyIDEzLjc2NiAzLjEyeiIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0xMy43NjYgMGg1Mi40NjhjMy42NTEgMCA3LjE1MiAxLjM2MyA5LjczNCAzLjc4OFM4MCA5LjUwNCA4MCAxMi45MzR2MjEuNjdjLTIuNzE3LTEuMzE5LTguNjY0LTIuNzIzLTE3LjQ2NC0yLjcyM2E2Ny45NCA2Ny45NCAwIDAgMC0xMC4wNjguNzA5Yy01LjkzMi45MjItOS4wNTcgMi41MS05LjA1NyAzLjQ4OXYzNi44MTZjMCAuNjEuODkxIDEuNDE4IDIuNTgxIDIuMjEySDEzLjc2NmMtMy42NTEgMC03LjE1Mi0xLjM2My05LjczNC0zLjc4OFMwIDY1LjYwNCAwIDYyLjE3NHYtNDkuMjRDMCA1Ljc5MSA2LjE2MyAwIDEzLjc2NiAweiIgZmlsbD0iI2Y1ODUzNCIvPjxwYXRoIGQ9Ik02My45MjQgNDEuODA4YTU3LjAzIDU3LjAzIDAgMCAwLTguNDUzLjU5NiAyNi40NCAyNi40NCAwIDAgMS03LjU0Ny0uNjI0djMuNTQ2YzAgLjgyMyAyLjY0MSAyLjE1NiA3LjU0NyAyLjkwN2E1NC40NyA1NC40NyAwIDAgMCA4LjQ1My41OTZDNzQuMzM5IDQ4LjgyOCA4MCA0Ni41MTcgODAgNDUuMzI2VjQxLjc4em0tMTYuMzc3IDEwLjQxdjI0LjI1MWMwIDEuMjIgNC41MjggMy41MTcgMTUuMzIxIDMuNTE3YTUxLjY4IDUxLjY4IDAgMCAwIDEzLjI2OC0xLjQxOGMyLjE0My0uNjUyIDMuNjY4LTEuNDE4IDMuODM0LTEuOTQzVjUyLjUxNmMtMy4xNCAxLjgyOS05LjYxNSAyLjgzNi0xNi4wNDUgMi44MzZoLTIuNjcxbC0xLjYzLS4yN2gtLjgxNWwtMS4yNjgtLjA5OS0uNjc5LS4wOTktMS4zNTgtLjE3YTIyLjQ5IDIyLjQ5IDAgMCAxLTcuOTU1LTIuNDk2eiIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik02My45MjQgMzguMjc3YTU3LjAxIDU3LjAxIDAgMCAwLTguNDUzLjU5NmMtNC45ODEuNzgtNy41NDcgMi4xMTMtNy41NDcgMi45MjJzMi42NDEgMi4xNTYgNy41NDcgMi45MDdhNTQuNDYgNTQuNDYgMCAwIDAgOC40NTMuNTk2Qzc0LjMzOSA0NS4yOTggODAgNDIuOTg2IDgwIDQxLjc5NXMtNS42Ni0zLjUxNy0xNi4wNzYtMy41MTd6TTQ3LjU0NyA0OC42NzN2MjQuMjIzYzAgMS4yMzQgNC41MjggMy41MDMgMTUuMjc1IDMuNTAzYTUxLjY4IDUxLjY4IDAgMCAwIDEzLjI2OC0xLjQxOGMyLjE0My0uNjUyIDMuNjY4LTEuNDE4IDMuODM0LTEuOTQzdi0yNC4xMWMtMy4xNCAxLjgzLTkuNjE1IDIuODM2LTE2LjA0NSAyLjgzNmgtMi42NzJsLTEuNTg1LS4yMjdoLS44MTVsLTEuMjY4LS4wOTktLjY3OS0uMDk5LTEuMzU4LS4xN2EyMi40OSAyMi40OSAwIDAgMS03Ljk1NS0yLjQ5NnoiIGZpbGw9IiNmNTg1MzQiLz48cGF0aCBkPSJNMTMuNzY2IDc1LjE2NWgzMi4xOTZ2My4xMkgxMy43NjZDNi4xNjMgNzguMjg1IDAgNzIuNDk0IDAgNjUuMzUxdi0zLjEyYzAgNy4xNDMgNi4xNjMgMTIuOTM0IDEzLjc2NiAxMi45MzR6IiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTTY1LjE3NyAxNi4xNjhMNTMuMTAyIDQuODIydjUuNjczSDM0LjI0OVYzMC4zNWgxOC44MjN2Mi4xODRsNC4yNTYtLjQ0TDY5LjcyIDIwLjQyMnptLTU3LjU2OS0uMDAxdjE0LjE4MmgyMC44M1YxMC40NTJINy42MDh2NS43MTV6bTUuODExIDMzLjUxMnYxNC4xODJoMjAuODNWNDMuOTY0aC0yMC44M3Y1LjcxNXoiLz48L2c+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Kinesis Firehose",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Kinesis Firehose Sink",
        "description" : "Send message to an AWS Kinesis Firehose Stream\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Kinesis Firehose Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Kinesis Firehose client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
        "required" : [ "streamName", "region" ],
        "type" : "object",
        "properties" : {
          "streamName" : {
            "title" : "Stream Name",
            "description" : "The name of the stream we want to send to data to",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the Kinesis Firehose client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:aws2-kinesis", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "aws2-kinesis-firehose:{{streamName}}",
              "parameters" : {
                "accessKey" : "{{?accessKey}}",
                "secretKey" : "{{?secretKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Kinesis Firehose Sink",
      "description" : "Send message to an AWS Kinesis Firehose Stream\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Kinesis Firehose Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Kinesis Firehose client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
      "required" : [ "streamName", "region" ],
      "properties" : {
        "streamName" : {
          "type" : "string",
          "title" : "Stream Name",
          "description" : "The name of the stream we want to send to data to"
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the Kinesis Firehose client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-kinesis-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-kinesis-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMzA4LjIzNDAxIj48dGl0bGU+YXdzLWtpbmVzaXM8L3RpdGxlPjxwYXRoIGQ9Ik0wLDE3Mi4wODdsMTI3Ljc1NCw1OC44MSwxMjcuNzUyLTU4LjgxLTEyNy43NTItNS4yOTNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjZmNiZjkyIi8+PHBhdGggZD0iTTEyOC4xNDcsMCwuMDU5LDYzLjg4MXY5MC4xMzZIMTUzLjY0OFYxMi43NTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTS4wNTksMjE3LjU1OWwxMjguMTYyLDkwLjY3NUwyNTYsMjE3LjU1OSwxMjcuOTQ1LDE5OC45MjZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjZmNiZjkyIi8+PHBhdGggZD0iTTEyOC4xNDYsMTU0LjAxN2g2Ny41NzdWNTcuODM2TDE3NS45OSw0OS45NDMsMTI4LjE0Niw2My44OThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTTE3NS45OSwxNTQuMDE3aDUyLjIzM1Y5MS42MzJsLTE0Ljk0LTQuNDgxLTM3LjI5Myw2LjMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0yMTMuMjgyLDgyLjI2djcxLjc1N2g0Mi4yMjRMMjU2LDgxLjk0MWwtMTIuODI2LTUuMTI0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0xMjguMTQ3LDBWMTU0LjAxN2gyNS41VjEyLjc1MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMTk1LjcyNCw1Ny44MzZsLTE5LjczMy03Ljg5NFYxNTQuMDE3aDE5LjczMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMjI4LjIyNCw5MS42MzJsLTE0Ljk0MS00LjQ4djY2Ljg2NWgxNC45NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMjQzLjE3NCwxNTQuMDE3SDI1NlY4MS45NDFsLTEyLjgyNi01LjEyNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMTI3Ljc1NCwxODQuODYzdjQ2LjAzM2wxMjcuNzUyLTMxLjg0NFYxNzIuMDg3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iI2Y2ODUzNCIvPjxwYXRoIGQ9Ik0xMjcuNzU0LDI2Mi43ODF2NDUuNDUzTDI1NiwyNDQuMTE0VjIxNy41NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNLjA1OSwyNDQuMzlsMTI3LjY5NSw2My44NDRWMjYyLjQ0OEwuMDU4LDIxNy41NThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTTAsMTk5LjA1MWwxMjcuNzU0LDMxLjg0NVYxODQuODYyTDAsMTcyLjA4NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiM5ZDUwMjUiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Kinesis",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Kinesis Sink",
        "description" : "Send data to AWS Kinesis.\n\nThe basic authentication method for the Kinesis service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Kinesis client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to set the Kinesis partition key.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the partition key.\n\nYou can also set the `sequence-number` / `ce-sequencenumber` property in the header to specify the Sequence number.",
        "required" : [ "stream", "region" ],
        "type" : "object",
        "properties" : {
          "stream" : {
            "title" : "Stream Name",
            "description" : "The Kinesis stream that you want to access. The Kinesis stream that you specify must already exist.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the Kinesis client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/octet-stream"
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-kinesis", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsKinesisPartitionKey",
                    "simple" : "${header[partition]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partition]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsKinesisPartitionKey",
                    "simple" : "${header[ce-partition]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsKinesisPartitionKey",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[sequence-number]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsKinesisSequenceNumber",
                    "simple" : "${header[sequence-number]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-sequencenumber]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsKinesisSequenceNumber",
                    "simple" : "${header[ce-sequencenumber]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-kinesis:{{stream}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Kinesis Sink",
      "description" : "Send data to AWS Kinesis.\n\nThe basic authentication method for the Kinesis service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Kinesis client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to set the Kinesis partition key.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the partition key.\n\nYou can also set the `sequence-number` / `ce-sequencenumber` property in the header to specify the Sequence number.",
      "required" : [ "stream", "region" ],
      "properties" : {
        "stream" : {
          "type" : "string",
          "title" : "Stream Name",
          "description" : "The Kinesis stream that you want to access. The Kinesis stream that you specify must already exist."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the Kinesis client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-kinesis-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-kinesis-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMzA4LjIzNDAxIj48dGl0bGU+YXdzLWtpbmVzaXM8L3RpdGxlPjxwYXRoIGQ9Ik0wLDE3Mi4wODdsMTI3Ljc1NCw1OC44MSwxMjcuNzUyLTU4LjgxLTEyNy43NTItNS4yOTNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjZmNiZjkyIi8+PHBhdGggZD0iTTEyOC4xNDcsMCwuMDU5LDYzLjg4MXY5MC4xMzZIMTUzLjY0OFYxMi43NTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTS4wNTksMjE3LjU1OWwxMjguMTYyLDkwLjY3NUwyNTYsMjE3LjU1OSwxMjcuOTQ1LDE5OC45MjZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjZmNiZjkyIi8+PHBhdGggZD0iTTEyOC4xNDYsMTU0LjAxN2g2Ny41NzdWNTcuODM2TDE3NS45OSw0OS45NDMsMTI4LjE0Niw2My44OThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTTE3NS45OSwxNTQuMDE3aDUyLjIzM1Y5MS42MzJsLTE0Ljk0LTQuNDgxLTM3LjI5Myw2LjMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0yMTMuMjgyLDgyLjI2djcxLjc1N2g0Mi4yMjRMMjU2LDgxLjk0MWwtMTIuODI2LTUuMTI0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0xMjguMTQ3LDBWMTU0LjAxN2gyNS41VjEyLjc1MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMTk1LjcyNCw1Ny44MzZsLTE5LjczMy03Ljg5NFYxNTQuMDE3aDE5LjczMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMjI4LjIyNCw5MS42MzJsLTE0Ljk0MS00LjQ4djY2Ljg2NWgxNC45NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMjQzLjE3NCwxNTQuMDE3SDI1NlY4MS45NDFsLTEyLjgyNi01LjEyNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMTI3Ljc1NCwxODQuODYzdjQ2LjAzM2wxMjcuNzUyLTMxLjg0NFYxNzIuMDg3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iI2Y2ODUzNCIvPjxwYXRoIGQ9Ik0xMjcuNzU0LDI2Mi43ODF2NDUuNDUzTDI1NiwyNDQuMTE0VjIxNy41NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNLjA1OSwyNDQuMzlsMTI3LjY5NSw2My44NDRWMjYyLjQ0OEwuMDU4LDIxNy41NThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTTAsMTk5LjA1MWwxMjcuNzU0LDMxLjg0NVYxODQuODYyTDAsMTcyLjA4NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiM5ZDUwMjUiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Kinesis",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Kinesis Source",
        "description" : "Receive data from AWS Kinesis.\n\nThe basic authentication method for the Kinesis service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Kinesis client loads the credentials through this provider and doesn't use the basic authentication method.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAwsKinesisPartitionKey will be duplicated into aws.kinesis.partition.key and CamelAwsKinesisSequenceNumber will be duplicated in aws.kinesis.sequence.number",
        "required" : [ "stream", "region" ],
        "type" : "object",
        "properties" : {
          "stream" : {
            "title" : "Stream Name",
            "description" : "The Kinesis stream that you want to access. The Kinesis stream that you specify must already exist.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the Kinesis client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected stream.",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/octet-stream"
        }
      },
      "dependencies" : [ "camel:aws2-kinesis", "camel:kamelet", "camel:core", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1" ],
      "template" : {
        "from" : {
          "uri" : "aws2-kinesis:{{stream}}",
          "parameters" : {
            "secretKey" : "{{?secretKey}}",
            "accessKey" : "{{?accessKey}}",
            "region" : "{{region}}",
            "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
            "uriEndpointOverride" : "{{?uriEndpointOverride}}",
            "overrideEndpoint" : "{{overrideEndpoint}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Kinesis Source",
      "description" : "Receive data from AWS Kinesis.\n\nThe basic authentication method for the Kinesis service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Kinesis client loads the credentials through this provider and doesn't use the basic authentication method.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAwsKinesisPartitionKey will be duplicated into aws.kinesis.partition.key and CamelAwsKinesisSequenceNumber will be duplicated in aws.kinesis.sequence.number",
      "required" : [ "stream", "region" ],
      "properties" : {
        "stream" : {
          "type" : "string",
          "title" : "Stream Name",
          "description" : "The Kinesis stream that you want to access. The Kinesis stream that you specify must already exist."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the Kinesis client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected stream.",
          "default" : 500
        }
      }
    }
  },
  "aws-lambda-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-lambda-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjA2NSIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDMxMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTAgMjQ1LjI2MmwxNi4zMjIgOC4xNjFMMTkgMjQ4LjY2OFY1OS4zMzNsLTIuNjc4LTMuNDk0TDAgNjR2MTgxLjI2MiIgZmlsbD0iIzlENTAyNSIvPjxwYXRoIGQ9Ik00Ny42NzggNjMuNTdsLTMxLjM1Ni03LjczMXYxOTcuNTg0bDMxLjM1Ni03LjMwMlY2My41NyIgZmlsbD0iI0Y2ODUzNiIvPjxwYXRoIGQ9Ik0xNDMuODkzIDc4LjYwNGwyMi4zMzUtMTEuNTk3IDc0LjMwOSAyOC43NzgtMTkuNzU4IDIuNTc3LTc2Ljg4Ni0xOS43NTgiIGZpbGw9IiM2QjNBMTkiLz48cGF0aCBkPSJNMTQ0Ljc1MiAyMzAuNjU4bDIxLjkwNiAxMS41OTcgNzQuMzA4LTI4Ljc3OC0xOS43NTgtMi41NzgtNzYuNDU2IDE5Ljc1OSIgZmlsbD0iI0ZCQkY5MyIvPjxwYXRoIGQ9Ik0xNTAuMzM2IDE5OC44NzJsMzkuMDg3IDUuMTU1IDIuMjQ0LTQuMDI3di05MGwtMi4yNDQtNC43NjUtMzkuMDg3IDUuMTU0djg4LjQ4M00zNS42NTEgNDUuOTZsMjQuMDU0LTEyLjAyN0w2Mi4zMzMgMzl2MjMxbC0yLjYyOCA1LjMyOS0yNC4wNTQtMTIuMDI3VjQ1Ljk2IiBmaWxsPSIjOUQ1MDI1Ii8+PHBhdGggZD0iTTEwOC42NzEgMjU5LjAwN2wtNDguOTY2IDE1Ljg5MlYzMy45MzNsNDguOTY2IDE1Ljg5M3YyMDkuMTgxIiBmaWxsPSIjRjY4NTM2Ii8+PHBhdGggZD0iTTg5Ljc3MiAyODkuOTMzTDEyOCAzMDkuMjYybDQtNC41OTV2LTI5OUwxMjggMCA4OS43NzIgMTkuMzI5djI3MC42MDRNMjE5LjkxOSA5OC4zNjJsMTkuNzU5LTIuNTc3IDEuNjk3IDIuNDY1VjIxMWwtMS42OTcgMi45MDYtMTkuNzU5LTIuNTc3Vjk4LjM2MiIgZmlsbD0iIzlENTAyNSIvPjxwYXRoIGQ9Ik0xODkuNDIzIDEwNS4yMzV2OTkuMjIxbDQwLjgwNS00OS44MjUtNDAuODA1LTQ5LjM5NiIgZmlsbD0iI0Y2ODUzNiIvPjxwYXRoIGQ9Ik0yMzkuNjc4IDU1LjgzOUwxMjggMHYzMDkuMjYybDEyOC02NFY2NGwtMTYuMzIyLTguMTYxem0wIDE1OC4yMTdsLTczLjQ1IDIxLjkzNlY3My4yN2w3My40NSAyMS45MzZ2MTE4Ljg1eiIgZmlsbD0iI0Y2ODUzNiIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Lambda",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Lambda Sink",
        "description" : "Send a payload to an AWS Lambda function.\n\nThe basic authentication method for the Lambda service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Lambda client loads the credentials through this provider and doesn't use the basic authentication method.",
        "required" : [ "function", "region" ],
        "type" : "object",
        "properties" : {
          "function" : {
            "title" : "Function Name",
            "description" : "The Lambda Function name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the Lambda client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:aws2-lambda", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "aws2-lambda:{{function}}",
              "parameters" : {
                "accessKey" : "{{?accessKey}}",
                "secretKey" : "{{?secretKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Lambda Sink",
      "description" : "Send a payload to an AWS Lambda function.\n\nThe basic authentication method for the Lambda service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the Lambda client loads the credentials through this provider and doesn't use the basic authentication method.",
      "required" : [ "function", "region" ],
      "properties" : {
        "function" : {
          "type" : "string",
          "title" : "Function Name",
          "description" : "The Lambda Function name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the Lambda client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        }
      }
    }
  },
  "aws-redshift-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-redshift-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNjE1IDE3ODMuNyIgdmlld0JveD0iMCAwIDE2MTUgMTc4My43IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im04MDcuNSAxMzYzLjggNjc4LjMgMTYxLjV2LTEyNzAuNWwtNjc4LjMgMTYxLjV6IiBmaWxsPSIjMjA1Yjk3Ii8+PHBhdGggZD0ibTE0ODUuOCAyNTQuOCAxMjkuMiA2NC42djExNDEuM2wtMTI5LjIgNjQuNnptLTY3OC4zIDExMDktNjc4LjMgMTYxLjV2LTEyNzAuNWw2NzguMyAxNjEuNXoiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtMTI5LjIgMjU0LjgtMTI5LjIgNjQuNnYxMTQxLjNsMTI5LjIgNjQuNnoiIGZpbGw9IiMyMDViOTciLz48cGF0aCBkPSJtOTc5LjggMTc4My43IDI1OC40LTEyOS4ydi0xNTI1LjNsLTI1OC40LTEyOS4yLTc5IDg0N3oiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtNjM1LjIgMTc4My43LTI1OC40LTEyOS4ydi0xNTI1LjNsMjU4LjQtMTI5LjIgNzkgODQ3eiIgZmlsbD0iIzIwNWI5NyIvPjxwYXRoIGQ9Im02MzUuMiAwaDM0OC4xdjE3ODAuMWgtMzQ4LjF6IiBmaWxsPSIjMmU3M2I3Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Redshift",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Redshift Sink",
        "description" : "Send data to an AWS Redshift Database.\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the AWS RedShi data source.",
            "type" : "string",
            "default" : 5439
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured AWS Redshift Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured AWS Redshift Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the AWS Redshift Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the AWS RedShift Database.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.26", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:redshift://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "com.amazon.redshift.jdbc.Driver"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "sql:{{query}}",
              "parameters" : {
                "dataSource" : "#bean:{{dsBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Redshift Sink",
      "description" : "Send data to an AWS Redshift Database.\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the AWS RedShi data source.",
          "default" : 5439
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured AWS Redshift Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured AWS Redshift Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the AWS Redshift Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the AWS RedShift Database."
        }
      }
    }
  },
  "aws-redshift-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-redshift-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNjE1IDE3ODMuNyIgdmlld0JveD0iMCAwIDE2MTUgMTc4My43IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im04MDcuNSAxMzYzLjggNjc4LjMgMTYxLjV2LTEyNzAuNWwtNjc4LjMgMTYxLjV6IiBmaWxsPSIjMjA1Yjk3Ii8+PHBhdGggZD0ibTE0ODUuOCAyNTQuOCAxMjkuMiA2NC42djExNDEuM2wtMTI5LjIgNjQuNnptLTY3OC4zIDExMDktNjc4LjMgMTYxLjV2LTEyNzAuNWw2NzguMyAxNjEuNXoiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtMTI5LjIgMjU0LjgtMTI5LjIgNjQuNnYxMTQxLjNsMTI5LjIgNjQuNnoiIGZpbGw9IiMyMDViOTciLz48cGF0aCBkPSJtOTc5LjggMTc4My43IDI1OC40LTEyOS4ydi0xNTI1LjNsLTI1OC40LTEyOS4yLTc5IDg0N3oiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtNjM1LjIgMTc4My43LTI1OC40LTEyOS4ydi0xNTI1LjNsMjU4LjQtMTI5LjIgNzkgODQ3eiIgZmlsbD0iIzIwNWI5NyIvPjxwYXRoIGQ9Im02MzUuMiAwaDM0OC4xdjE3ODAuMWgtMzQ4LjF6IiBmaWxsPSIjMmU3M2I3Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Redshift",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Redshift Source",
        "description" : "Query data from an AWS RedShift Database.",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 5439
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured AWS RedShift Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured AWS RedShift Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the AWS RedShift Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the AWS RedShift Database.",
            "type" : "string"
          },
          "consumedQuery" : {
            "title" : "Consumed Query",
            "description" : "A query to run on a tuple consumed.",
            "type" : "string",
            "example" : "DELETE FROM accounts where user_id = :#user_id"
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll from the AWS RedShift database.",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.26", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:redshift://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "com.amazon.redshift.jdbc.Driver"
          }
        } ],
        "from" : {
          "uri" : "sql:{{query}}",
          "parameters" : {
            "dataSource" : "#bean:{{dsBean}}",
            "onConsume" : "{{?consumedQuery}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Redshift Source",
      "description" : "Query data from an AWS RedShift Database.",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 5439
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured AWS RedShift Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured AWS RedShift Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the AWS RedShift Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the AWS RedShift Database."
        },
        "consumedQuery" : {
          "type" : "string",
          "title" : "Consumed Query",
          "description" : "A query to run on a tuple consumed."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll from the AWS RedShift database.",
          "default" : 500
        }
      }
    }
  },
  "aws-s3-cdc-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-s3-cdc-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAwIDEwMCIKICAgaGVpZ2h0PSI3Mi4xOTk5OTciCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDU5Ljg0OTk5OCA3Mi4xOTk5OTciCiAgIHdpZHRoPSI1OS44NDk5OTgiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlkPSJzdmcxNDUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImRvd25sb2FkLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wLjIgKGU4NmM4NzA4NzksIDIwMjEtMDEtMTUpIj48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExNTEiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PGRjOnRpdGxlPjwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgICAgaWQ9ImRlZnMxNDkiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzE0NyIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjAuMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAuMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIwLjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjAuMSIKICAgICBpbmtzY2FwZTp6b29tPSI4LjE5IgogICAgIGlua3NjYXBlOmN4PSIyOS45MjUiCiAgICAgaW5rc2NhcGU6Y3k9IjM2LjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTQ1IiAvPjxnCiAgICAgaWQ9IkFtYXpvbl9DbG91ZFNlYXJjaCIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDc1LC0xMy45KSI+PGcKICAgICAgIGlkPSJnMTQyIj48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjIzLjk4NywzNi4yMDEgNTQuNDYyLDQwLjQ5NCA1NC40Niw1OS41MDYgMjMuOTg1LDYzLjc5MyAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTIwIiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDIwLjE3OSwyOC45MDggMjAuMTc5LDM3LjM0NCA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMjIiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI0OS45OTcsODYgMjAuMTksNzEuMDk0IDIwLjE5LDYyLjY1NCA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiNkOWE3NDEiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDc5LjgyNSwyOC45MTQgNzkuODIzLDM3LjM1IDUwLjAwMywyOC4zOTkgIgogICAgICAgICBpZD0icG9seWdvbjEyNiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjQ5Ljk5Nyw4NiA3OS44MDYsNzEuMDk5IDc5LjgwNiw2Mi42NiA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI4IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iMjAuMTc5LDI4LjkwOCAyMy45ODksMjcuMDA0IDIzLjk4NSw3Mi45OSAyMC4xNzUsNzEuMDg2ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzAiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI1MC4wMDEsNDAuODMyIDM5LjAxOSw0Mi4yMjkgMzkuMDE3LDU3Ljc2MiA0OS45OTksNTkuMTYgIgogICAgICAgICBpZD0icG9seWdvbjEzMiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjODc2OTI5IgogICAgICAgICBwb2ludHM9IjM1LjA4Myw0Mi43MjkgMjcuOTU0LDQzLjYzNyAyNy45NTQsNTYuMzU0IDM1LjA4MSw1Ny4yNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTM0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM2MjRhMWUiCiAgICAgICAgIHBvaW50cz0iNzkuODIzLDM3LjM1IDU0LjQ4MSw0MC40OTYgMjMuOTg3LDM2LjIwMSA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzYiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iI2ZhZDc5MSIKICAgICAgICAgcG9pbnRzPSI3OS44MDYsNjIuNjYgNTQuNDYsNTkuNTA2IDIzLjk4NSw2My43OTMgNDkuOTk5LDcxLjYgIgogICAgICAgICBpZD0icG9seWdvbjEzOCIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjUwLjAwMSw0MC44MzIgNzkuODA4LDQ0LjYyOSA3OS44MDgsNTUuMzMgNDkuOTk5LDU5LjA5MiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTQwIiAvPjwvZz48L2c+PC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS S3 CDC",
        "camel.apache.org/kamelet.namespace" : "AWS",
        "camel.apache.org/keda.type" : "aws-s3-cdc-queue"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS S3 CDC Source",
        "description" : "Receive data from AWS SQS subscribed to Eventbridge Bus reporting events related to an S3 bucket or multiple buckets.\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service.\nTo use this Kamelet you'll need to set up Eventbridge on your bucket and subscribe Eventbridge bus to an SQS Queue.\nFor doing this you'll need to enable Evenbridge notification on your bucket and creating a rule on Eventbridge console related to all the events on S3 bucket and pointing to the SQS Queue specified as parameter in this Kamelet.",
        "required" : [ "accessKey", "secretKey", "queueNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "queueNameOrArn" : {
            "title" : "Queue Name",
            "description" : "The SQS Queue Name or ARN",
            "type" : "string"
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Messages",
            "description" : "Delete messages after consuming them",
            "type" : "boolean",
            "default" : true
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:awsAccessKeyID", "urn:keda:required" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:awsSecretAccessKey", "urn:keda:required" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:awsRegion", "urn:keda:required" ],
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateQueue" : {
            "title" : "Autocreate Queue",
            "description" : "Setting the autocreation of the SQS queue.",
            "type" : "boolean",
            "default" : false
          },
          "amazonAWSHost" : {
            "title" : "AWS Host",
            "description" : "The hostname of the Amazon AWS cloud.",
            "type" : "string",
            "default" : "amazonaws.com"
          },
          "protocol" : {
            "title" : "Protocol",
            "description" : "The underlying protocol used to communicate with SQS",
            "type" : "string",
            "example" : "http or https",
            "default" : "https"
          },
          "queueURL" : {
            "title" : "Queue URL",
            "description" : "The full SQS Queue URL (required if using KEDA)",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:queueURL", "urn:keda:required" ]
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected stream",
            "type" : "integer",
            "default" : 500
          },
          "greedy" : {
            "title" : "Greedy Scheduler",
            "description" : "If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages.",
            "type" : "boolean",
            "default" : false
          },
          "getObject" : {
            "title" : "Greedy Object in Bucket",
            "description" : "If getObject is enabled, then the file created in the bucket will be get and returned as body, if not only the event will returned as body.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-sqs", "camel:aws2-s3", "camel:jsonpath", "camel:kamelet", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "aws2-sqs:{{queueNameOrArn}}",
          "parameters" : {
            "autoCreateQueue" : "{{autoCreateQueue}}",
            "secretKey" : "{{?secretKey}}",
            "accessKey" : "{{?accessKey}}",
            "region" : "{{region}}",
            "deleteAfterRead" : "{{deleteAfterRead}}",
            "amazonAWSHost" : "{{?amazonAWSHost}}",
            "protocol" : "{{?protocol}}",
            "uriEndpointOverride" : "{{?uriEndpointOverride}}",
            "overrideEndpoint" : "{{overrideEndpoint}}",
            "delay" : "{{delay}}",
            "greedy" : "{{greedy}}"
          },
          "steps" : [ {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${properties:getObject:true}",
                "steps" : [ {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                }, {
                  "setProperty" : {
                    "name" : "s3-event-name",
                    "jsonpath" : "$.detail.reason"
                  }
                }, {
                  "choice" : {
                    "when" : [ {
                      "simple" : "${exchangeProperty.s3-event-name} == \"PutObject\"",
                      "steps" : [ {
                        "setProperty" : {
                          "name" : "aws-s3-name",
                          "jsonpath" : "$.detail.object.key"
                        }
                      }, {
                        "setProperty" : {
                          "name" : "aws-s3-bucket",
                          "jsonpath" : "$.detail.bucket.name"
                        }
                      }, {
                        "toD" : "aws2-s3:${exchangeProperty.aws-s3-bucket}?accessKey={{accessKey}}&secretKey={{secretKey}}&region={{region}}&operation=getObject&keyName=${exchangeProperty.aws-s3-name}"
                      } ]
                    } ]
                  }
                } ]
              } ]
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS S3 CDC Source",
      "description" : "Receive data from AWS SQS subscribed to Eventbridge Bus reporting events related to an S3 bucket or multiple buckets.\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service.\nTo use this Kamelet you'll need to set up Eventbridge on your bucket and subscribe Eventbridge bus to an SQS Queue.\nFor doing this you'll need to enable Evenbridge notification on your bucket and creating a rule on Eventbridge console related to all the events on S3 bucket and pointing to the SQS Queue specified as parameter in this Kamelet.",
      "required" : [ "accessKey", "secretKey", "queueNameOrArn", "region" ],
      "properties" : {
        "queueNameOrArn" : {
          "type" : "string",
          "title" : "Queue Name",
          "description" : "The SQS Queue Name or ARN"
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Messages",
          "description" : "Delete messages after consuming them",
          "default" : true
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateQueue" : {
          "type" : "boolean",
          "title" : "Autocreate Queue",
          "description" : "Setting the autocreation of the SQS queue.",
          "default" : false
        },
        "amazonAWSHost" : {
          "type" : "string",
          "title" : "AWS Host",
          "description" : "The hostname of the Amazon AWS cloud.",
          "default" : "amazonaws.com"
        },
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "The underlying protocol used to communicate with SQS",
          "default" : "https"
        },
        "queueURL" : {
          "type" : "string",
          "title" : "Queue URL",
          "description" : "The full SQS Queue URL (required if using KEDA)"
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected stream",
          "default" : 500
        },
        "greedy" : {
          "type" : "boolean",
          "title" : "Greedy Scheduler",
          "description" : "If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages.",
          "default" : false
        },
        "getObject" : {
          "type" : "boolean",
          "title" : "Greedy Object in Bucket",
          "description" : "If getObject is enabled, then the file created in the bucket will be get and returned as body, if not only the event will returned as body.",
          "default" : false
        }
      }
    }
  },
  "aws-s3-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-s3-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAyNDguMiAzMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3QyOHtmaWxsOiM4YzMxMjN9LnN0Mjl7ZmlsbDojZTA1MjQzfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik0yMCA1Mi4xTDAgNjJ2MTc1LjVsMjAgOS45LjEtLjFWNTIuMmwtLjEtLjEiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNyAyMjJMMjAgMjQ3LjVWNTIuMUwxMjcgNzd2MTQ1Ii8+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik03OC43IDE4Mi4xbDQ1LjQgNS44LjMtLjcuMy03NC40LS41LS42LTQ1LjQgNS43LS4xIDY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDIyMi4zbDEwNC4xIDI1LjIuMi0uM1Y1Mi4xbC0uMi0uMi0xMDQuMSAyNS40djE0NSIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgMTgyLjFsLTQ1LjQgNS44di03NS43bDQ1LjQgNS43djY0LjIiLz48cGF0aCBkPSJNMTY5LjUgODYuOWwtNDUuNCA4LjMtNDUuNC04LjNMMTI0IDc1bDQ1LjUgMTEuOSIgZmlsbD0iIzVlMWYxOCIvPjxwYXRoIGQ9Ik0xNjkuNSAyMTMuMWwtNDUuNC04LjMtNDUuNCA4LjMgNDUuMyAxMi43IDQ1LjUtMTIuNyIgZmlsbD0iI2YyYjBhOSIvPjxwYXRoIGNsYXNzPSJzdDI4IiBkPSJNNzguNyA4Ni45bDQ1LjQtMTEuMi40LS4xVi4zbC0uNC0uMy00NS40IDIyLjd2NjQuMiIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgODYuOWwtNDUuNC0xMS4yVjBsNDUuNCAyMi43djY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDMwMGwtNDUuNC0yMi43di02NC4ybDQ1LjQgMTEuMi43LjgtLjIgNzMuNi0uNSAxLjMiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNC4xIDMwMGw0NS40LTIyLjd2LTY0LjJsLTQ1LjQgMTEuMlYzMDBNMjI4LjIgNTIuMWwyMCAxMHYxNzUuNWwtMjAgMTBWNTIuMSIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS S3",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS S3 Sink",
        "description" : "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to specify the name of the file to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the file name.",
        "required" : [ "bucketNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "bucketNameOrArn" : {
            "title" : "Bucket Name",
            "description" : "The S3 Bucket name or Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specifies to automatically create the S3 bucket.",
            "type" : "boolean",
            "default" : false
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "forcePathStyle" : {
            "title" : "Force Path Style",
            "description" : "Forces path style when accessing AWS S3 buckets.",
            "type" : "boolean",
            "default" : false
          },
          "keyName" : {
            "title" : "Key Name",
            "description" : "The key name for saving an element in the bucket.",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-s3", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${propertiesExist:!keyName}",
                "steps" : [ {
                  "choice" : {
                    "when" : [ {
                      "simple" : "${header[file]}",
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelAwsS3Key",
                          "simple" : "${header[file]}"
                        }
                      } ]
                    }, {
                      "simple" : "${header[ce-file]}",
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelAwsS3Key",
                          "simple" : "${header[ce-file]}"
                        }
                      } ]
                    } ],
                    "otherwise" : {
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelAwsS3Key",
                          "simple" : "${exchangeId}"
                        }
                      } ]
                    }
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-s3:{{bucketNameOrArn}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "autoCreateBucket" : "{{autoCreateBucket}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}",
                "forcePathStyle" : "{{forcePathStyle}}",
                "keyName" : "{{?keyName}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS S3 Sink",
      "description" : "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to specify the name of the file to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the file name.",
      "required" : [ "bucketNameOrArn", "region" ],
      "properties" : {
        "bucketNameOrArn" : {
          "type" : "string",
          "title" : "Bucket Name",
          "description" : "The S3 Bucket name or Amazon Resource Name (ARN)."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specifies to automatically create the S3 bucket.",
          "default" : false
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "forcePathStyle" : {
          "type" : "boolean",
          "title" : "Force Path Style",
          "description" : "Forces path style when accessing AWS S3 buckets.",
          "default" : false
        },
        "keyName" : {
          "type" : "string",
          "title" : "Key Name",
          "description" : "The key name for saving an element in the bucket."
        }
      }
    }
  },
  "aws-s3-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-s3-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAyNDguMiAzMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3QyOHtmaWxsOiM4YzMxMjN9LnN0Mjl7ZmlsbDojZTA1MjQzfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik0yMCA1Mi4xTDAgNjJ2MTc1LjVsMjAgOS45LjEtLjFWNTIuMmwtLjEtLjEiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNyAyMjJMMjAgMjQ3LjVWNTIuMUwxMjcgNzd2MTQ1Ii8+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik03OC43IDE4Mi4xbDQ1LjQgNS44LjMtLjcuMy03NC40LS41LS42LTQ1LjQgNS43LS4xIDY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDIyMi4zbDEwNC4xIDI1LjIuMi0uM1Y1Mi4xbC0uMi0uMi0xMDQuMSAyNS40djE0NSIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgMTgyLjFsLTQ1LjQgNS44di03NS43bDQ1LjQgNS43djY0LjIiLz48cGF0aCBkPSJNMTY5LjUgODYuOWwtNDUuNCA4LjMtNDUuNC04LjNMMTI0IDc1bDQ1LjUgMTEuOSIgZmlsbD0iIzVlMWYxOCIvPjxwYXRoIGQ9Ik0xNjkuNSAyMTMuMWwtNDUuNC04LjMtNDUuNCA4LjMgNDUuMyAxMi43IDQ1LjUtMTIuNyIgZmlsbD0iI2YyYjBhOSIvPjxwYXRoIGNsYXNzPSJzdDI4IiBkPSJNNzguNyA4Ni45bDQ1LjQtMTEuMi40LS4xVi4zbC0uNC0uMy00NS40IDIyLjd2NjQuMiIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgODYuOWwtNDUuNC0xMS4yVjBsNDUuNCAyMi43djY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDMwMGwtNDUuNC0yMi43di02NC4ybDQ1LjQgMTEuMi43LjgtLjIgNzMuNi0uNSAxLjMiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNC4xIDMwMGw0NS40LTIyLjd2LTY0LjJsLTQ1LjQgMTEuMlYzMDBNMjI4LjIgNTIuMWwyMCAxMHYxNzUuNWwtMjAgMTBWNTIuMSIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS S3",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS S3 Source",
        "description" : "Receive data from an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAwsS3Key will be duplicated into aws.s3.key and CamelAwsS3BucketName will be duplicated in aws.s3.bucket.name",
        "required" : [ "bucketNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "bucketNameOrArn" : {
            "title" : "Bucket Name",
            "description" : "The S3 Bucket name or Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Objects",
            "description" : "Specifies to delete objects after consuming them.",
            "type" : "boolean",
            "default" : true
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specifies to automatically create the S3 bucket.",
            "type" : "boolean",
            "default" : false
          },
          "prefix" : {
            "title" : "Prefix",
            "description" : "The AWS S3 bucket prefix to consider while searching.",
            "type" : "string",
            "example" : "folder/"
          },
          "ignoreBody" : {
            "title" : "Ignore Body",
            "description" : "If true, the S3 Object body is ignored. Setting this to true overrides any behavior defined by the `includeBody` option. If false, the S3 object is put in the body.",
            "type" : "boolean",
            "default" : false
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "forcePathStyle" : {
            "title" : "Force Path Style",
            "description" : "Forces path style when accessing AWS S3 buckets.",
            "type" : "boolean",
            "default" : false
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected bucket.",
            "type" : "integer",
            "default" : 500
          },
          "maxMessagesPerPoll" : {
            "title" : "Max Messages Per Poll",
            "description" : "Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum number of messages as a limit to poll at each polling. The default value is 10. Use 0 or a negative number to set it as unlimited.",
            "type" : "integer",
            "default" : 10
          }
        }
      },
      "dataTypes" : {
        "out" : {
          "default" : "binary",
          "headers" : {
            "CamelAwsS3BucketName" : {
              "title" : "S3 Bucket Name",
              "description" : "The bucket name which has been used to retrieve objects",
              "type" : "string"
            },
            "CamelAwsS3Key" : {
              "title" : "S3 Key",
              "description" : "The key under which the retrieved object is stored",
              "type" : "string"
            },
            "CamelAwsS3ContentType" : {
              "title" : "Content Type",
              "description" : "The content type of the retrieved object.",
              "default" : "application/octet-stream",
              "type" : "string"
            },
            "CamelAwsS3ETag" : {
              "title" : "ETag Value",
              "description" : "The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. \nThis data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3.",
              "type" : "string"
            }
          },
          "types" : {
            "binary" : {
              "format" : "application-octet-stream",
              "description" : "Default binary representation of the S3 object retrieved from the bucket.",
              "mediaType" : "application/octet-stream"
            },
            "cloudevents" : {
              "format" : "aws2-s3:application-cloudevents",
              "description" : "Output data type represents AWS S3 get object response as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with\nrespective data from the S3 bucket and its derived object.",
              "headers" : {
                "CamelCloudEventID" : {
                  "title" : "CloudEvent ID",
                  "description" : "The Camel exchange id set as event id",
                  "type" : "string"
                },
                "CamelCloudEventType" : {
                  "title" : "CloudEvent Type",
                  "description" : "The event type",
                  "default" : "org.apache.camel.event.aws.s3.getObject",
                  "type" : "string"
                },
                "CamelCloudEventSource" : {
                  "title" : "CloudEvent Source",
                  "description" : "The event source. By default, the S3 bucket name with prefix \"aws.s3.bucket.\".",
                  "type" : "string"
                },
                "CamelCloudEventSubject" : {
                  "title" : "CloudEvent Subject",
                  "description" : "The event subject. Usually the S3 key.",
                  "type" : "string"
                },
                "CamelCloudEventTime" : {
                  "title" : "CloudEvent Time",
                  "description" : "The exchange creation timestamp as event time.",
                  "type" : "string"
                }
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-s3", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "aws2-s3:{{bucketNameOrArn}}",
          "parameters" : {
            "autoCreateBucket" : "{{autoCreateBucket}}",
            "secretKey" : "{{?secretKey}}",
            "accessKey" : "{{?accessKey}}",
            "region" : "{{region}}",
            "ignoreBody" : "{{ignoreBody}}",
            "deleteAfterRead" : "{{deleteAfterRead}}",
            "prefix" : "{{?prefix}}",
            "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
            "uriEndpointOverride" : "{{?uriEndpointOverride}}",
            "overrideEndpoint" : "{{overrideEndpoint}}",
            "forcePathStyle" : "{{forcePathStyle}}",
            "delay" : "{{delay}}",
            "maxMessagesPerPoll" : "{{maxMessagesPerPoll}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS S3 Source",
      "description" : "Receive data from an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAwsS3Key will be duplicated into aws.s3.key and CamelAwsS3BucketName will be duplicated in aws.s3.bucket.name",
      "required" : [ "bucketNameOrArn", "region" ],
      "properties" : {
        "bucketNameOrArn" : {
          "type" : "string",
          "title" : "Bucket Name",
          "description" : "The S3 Bucket name or Amazon Resource Name (ARN)."
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Objects",
          "description" : "Specifies to delete objects after consuming them.",
          "default" : true
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specifies to automatically create the S3 bucket.",
          "default" : false
        },
        "prefix" : {
          "type" : "string",
          "title" : "Prefix",
          "description" : "The AWS S3 bucket prefix to consider while searching."
        },
        "ignoreBody" : {
          "type" : "boolean",
          "title" : "Ignore Body",
          "description" : "If true, the S3 Object body is ignored. Setting this to true overrides any behavior defined by the `includeBody` option. If false, the S3 object is put in the body.",
          "default" : false
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "forcePathStyle" : {
          "type" : "boolean",
          "title" : "Force Path Style",
          "description" : "Forces path style when accessing AWS S3 buckets.",
          "default" : false
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected bucket.",
          "default" : 500
        },
        "maxMessagesPerPoll" : {
          "type" : "integer",
          "title" : "Max Messages Per Poll",
          "description" : "Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum number of messages as a limit to poll at each polling. The default value is 10. Use 0 or a negative number to set it as unlimited.",
          "default" : 10
        }
      }
    }
  },
  "aws-s3-streaming-upload-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-s3-streaming-upload-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAyNDguMiAzMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3QyOHtmaWxsOiM4YzMxMjN9LnN0Mjl7ZmlsbDojZTA1MjQzfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik0yMCA1Mi4xTDAgNjJ2MTc1LjVsMjAgOS45LjEtLjFWNTIuMmwtLjEtLjEiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNyAyMjJMMjAgMjQ3LjVWNTIuMUwxMjcgNzd2MTQ1Ii8+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik03OC43IDE4Mi4xbDQ1LjQgNS44LjMtLjcuMy03NC40LS41LS42LTQ1LjQgNS43LS4xIDY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDIyMi4zbDEwNC4xIDI1LjIuMi0uM1Y1Mi4xbC0uMi0uMi0xMDQuMSAyNS40djE0NSIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgMTgyLjFsLTQ1LjQgNS44di03NS43bDQ1LjQgNS43djY0LjIiLz48cGF0aCBkPSJNMTY5LjUgODYuOWwtNDUuNCA4LjMtNDUuNC04LjNMMTI0IDc1bDQ1LjUgMTEuOSIgZmlsbD0iIzVlMWYxOCIvPjxwYXRoIGQ9Ik0xNjkuNSAyMTMuMWwtNDUuNC04LjMtNDUuNCA4LjMgNDUuMyAxMi43IDQ1LjUtMTIuNyIgZmlsbD0iI2YyYjBhOSIvPjxwYXRoIGNsYXNzPSJzdDI4IiBkPSJNNzguNyA4Ni45bDQ1LjQtMTEuMi40LS4xVi4zbC0uNC0uMy00NS40IDIyLjd2NjQuMiIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgODYuOWwtNDUuNC0xMS4yVjBsNDUuNCAyMi43djY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDMwMGwtNDUuNC0yMi43di02NC4ybDQ1LjQgMTEuMi43LjgtLjIgNzMuNi0uNSAxLjMiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNC4xIDMwMGw0NS40LTIyLjd2LTY0LjJsLTQ1LjQgMTEuMlYzMDBNMjI4LjIgNTIuMWwyMCAxMHYxNzUuNWwtMjAgMTBWNTIuMSIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS S3",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS S3 Streaming upload Sink",
        "description" : "Upload data to AWS S3 in streaming upload mode.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS S3 Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the S3 client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
        "required" : [ "bucketNameOrArn", "region", "keyName" ],
        "type" : "object",
        "properties" : {
          "bucketNameOrArn" : {
            "title" : "Bucket Name",
            "description" : "The S3 Bucket name or Amazon Resource Name (ARN)..",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Setting the autocreation of the S3 bucket bucketName.",
            "type" : "boolean",
            "default" : false
          },
          "restartingPolicy" : {
            "title" : "Restarting Policy",
            "description" : "The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of override, lastPart",
            "type" : "string",
            "default" : "lastPart"
          },
          "batchMessageNumber" : {
            "title" : "Batch Message Number",
            "description" : "The number of messages composing a batch in streaming upload mode",
            "type" : "integer",
            "default" : 10
          },
          "batchSize" : {
            "title" : "Batch Size",
            "description" : "The batch size (in bytes) in streaming upload mode",
            "type" : "integer",
            "default" : 1000000
          },
          "streamingUploadTimeout" : {
            "title" : "Streaming Upload Timeout",
            "description" : "While streaming upload mode is true, this option set the timeout to complete upload",
            "type" : "integer"
          },
          "namingStrategy" : {
            "title" : "Naming Strategy",
            "description" : "The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of progressive, random",
            "type" : "string",
            "default" : "progressive"
          },
          "keyName" : {
            "title" : "Key Name",
            "description" : "Setting the key name for an element in the bucket through endpoint parameter. In Streaming Upload, with the default configuration, this will be the base for the progressive creation of files.",
            "type" : "string"
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "forcePathStyle" : {
            "title" : "Force Path Style",
            "description" : "Forces path style when accessing AWS S3 buckets.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:aws2-s3", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "aws2-s3:{{bucketNameOrArn}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "autoCreateBucket" : "{{autoCreateBucket}}",
                "streamingUploadMode" : "true",
                "restartingPolicy" : "{{restartingPolicy}}",
                "batchMessageNumber" : "{{batchMessageNumber}}",
                "batchSize" : "{{batchSize}}",
                "namingStrategy" : "{{namingStrategy}}",
                "keyName" : "{{keyName}}",
                "streamingUploadTimeout" : "{{?streamingUploadTimeout}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}",
                "forcePathStyle" : "{{forcePathStyle}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS S3 Streaming upload Sink",
      "description" : "Upload data to AWS S3 in streaming upload mode.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS S3 Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the S3 client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
      "required" : [ "bucketNameOrArn", "region", "keyName" ],
      "properties" : {
        "bucketNameOrArn" : {
          "type" : "string",
          "title" : "Bucket Name",
          "description" : "The S3 Bucket name or Amazon Resource Name (ARN).."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Setting the autocreation of the S3 bucket bucketName.",
          "default" : false
        },
        "restartingPolicy" : {
          "type" : "string",
          "title" : "Restarting Policy",
          "description" : "The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of override, lastPart",
          "default" : "lastPart"
        },
        "batchMessageNumber" : {
          "type" : "integer",
          "title" : "Batch Message Number",
          "description" : "The number of messages composing a batch in streaming upload mode",
          "default" : 10
        },
        "batchSize" : {
          "type" : "integer",
          "title" : "Batch Size",
          "description" : "The batch size (in bytes) in streaming upload mode",
          "default" : 1000000
        },
        "streamingUploadTimeout" : {
          "type" : "integer",
          "title" : "Streaming Upload Timeout",
          "description" : "While streaming upload mode is true, this option set the timeout to complete upload"
        },
        "namingStrategy" : {
          "type" : "string",
          "title" : "Naming Strategy",
          "description" : "The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of progressive, random",
          "default" : "progressive"
        },
        "keyName" : {
          "type" : "string",
          "title" : "Key Name",
          "description" : "Setting the key name for an element in the bucket through endpoint parameter. In Streaming Upload, with the default configuration, this will be the base for the progressive creation of files."
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "forcePathStyle" : {
          "type" : "boolean",
          "title" : "Force Path Style",
          "description" : "Forces path style when accessing AWS S3 buckets.",
          "default" : false
        }
      }
    }
  },
  "aws-secrets-manager-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-secrets-manager-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzUgNzUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6dXJsKCNSZWRHcmFkaWVudCk7fS5jbHMtMntmaWxsOiNmZmY7fTwvc3R5bGU+PGxpbmVhckdyYWRpZW50IGlkPSJSZWRHcmFkaWVudCIgeDE9Ii0yMDQyLjU0IiB5MT0iMTk4NS40NyIgeDI9Ii0xOTM2LjQ3IiB5Mj0iMjA5MS41NCIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAwMSAtMTk1Mikgcm90YXRlKC05MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNiZDA4MTYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZjUyNTIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+QVdTLVNlY3JldHMtTWFuYWdlcjwvdGl0bGU+PGcgaWQ9IlJlZmVyZW5jZSI+PHJlY3QgaWQ9IlJlZF9HcmFkaWVudCIgZGF0YS1uYW1lPSJSZWQgR3JhZGllbnQiIGNsYXNzPSJjbHMtMSIgd2lkdGg9Ijc1IiBoZWlnaHQ9Ijc1Ii8+PGcgaWQ9Ikljb25fVGVzdCIgZGF0YS1uYW1lPSJJY29uIFRlc3QiPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iNTQuNTIiIHk9IjQ3LjA4IiB3aWR0aD0iMiIgaGVpZ2h0PSIxNi45MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjAxIDU1LjUzKSByb3RhdGUoLTQ1KSIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMTkuMTMiIHk9IjEwLjc3IiB3aWR0aD0iMiIgaGVpZ2h0PSIxOC43NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTguMzUgMjAuMTMpIHJvdGF0ZSgtNDUpIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxNS4wNSIgeT0iNTQuMDUiIHdpZHRoPSI5LjkiIGhlaWdodD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMzLjA3IDMwLjI3KSByb3RhdGUoLTQ1KSIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iNTAuMDUiIHk9IjE5LjA1IiB3aWR0aD0iOS45IiBoZWlnaHQ9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuOTMgNDQuNzYpIHJvdGF0ZSgtNDUpIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNjAuNDYsMzYuNTJhMjIuODcsMjIuODcsMCwwLDAtNC4zMS0xMi40NGwtMS42MiwxLjE4YTIwLjg2LDIwLjg2LDAsMCwxLDMuOTMsMTEuMjZoLTJ2MmgyYTIwLjcsMjAuNywwLDAsMS0zLjkzLDExLjMyTDU2LjE1LDUxYTIyLjcyLDIyLjcyLDAsMCwwLDQuMzEtMTIuNWgydi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTI1LjIxLDIwLjUyQTIwLjc3LDIwLjc3LDAsMCwxLDM2LjUsMTYuNTl2MS45M2gyVjE2LjU5YTIwLjc3LDIwLjc3LDAsMCwxLDExLjI5LDMuOTNMNTEsMTguOUEyMi44MSwyMi44MSwwLDAsMCwzOC41LDE0LjU5VjEyLjUyaC0ydjIuMDdBMjIuODEsMjIuODEsMCwwLDAsMjQsMTguOVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik00OS43OSw1NC41OEEyMC43NywyMC43NywwLDAsMSwzOC41LDU4LjUxdi0yaC0ydjJhMjAuNzcsMjAuNzcsMCwwLDEtMTEuMjktMy45M0wyNCw1Ni4yQTIyLjgxLDIyLjgxLDAsMCwwLDM2LjUsNjAuNTF2Mmgydi0yQTIyLjgxLDIyLjgxLDAsMCwwLDUxLDU2LjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTguODUsNTFsMS42Mi0xLjE4YTIwLjcsMjAuNywwLDAsMS0zLjkzLTExLjMyaDJ2LTJoLTJhMjAuODYsMjAuODYsMCwwLDEsMy45My0xMS4yNmwtMS42Mi0xLjE4YTIyLjg3LDIyLjg3LDAsMCwwLTQuMzEsMTIuNDRoLTJ2MmgyQTIyLjcyLDIyLjcyLDAsMCwwLDE4Ljg1LDUxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQyLjM5LDI0LjI1YTcuNSw3LjUsMCwwLDAtNC44OS0xLjczaDBjLTMuODYsMC03LDIuNzMtNyw2LjA5djQuOTFoLTJhMSwxLDAsMCwwLTEsMXYxNGExLDEsMCwwLDAsLjI5LjcxLDEsMSwwLDAsMCwuNzEuMjloMThhMSwxLDAsMCwwLDEtMXYtMTRhMSwxLDAsMCwwLS4yOS0uNywxLDEsMCwwLDAtLjcxLS4zaC0ydi00LjlBNS43MSw1LjcxLDAsMCwwLDQyLjM5LDI0LjI1Wk0zMi41LDI4LjYxYzAtMi4yNiwyLjI1LTQuMDksNS00LjA5aDBhNS41NSw1LjU1LDAsMCwxLDMuNiwxLjI1LDMuNzYsMy43NiwwLDAsMSwxLjQxLDIuODV2NC45aC0xMFptMTMsOS45MWgtM3YyaDN2MmgtM3YyaDN2M2gtMTZ2LTEyaDE2WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTM2LjUsNDIuNzZ2Mi43NmgyVjQyLjc2YTIuOTMsMi45MywwLDEsMC0yLDBabTEtMy44MkExLjA4LDEuMDgsMCwxLDEsMzYuNDMsNDAsMS4wNywxLjA3LDAsMCwxLDM3LjUsMzguOTRaIi8+PC9nPjwvZz48L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Secrets Manager",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Secrets Manager Sink",
        "description" : "Create a secret in AWS Secrets Manager.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Secrets Manager Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Secrets Manager client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `secret-name` / `ce-secret-name`: as the secret name to create.\n\nIf the header won't be set the exchange ID will be used as secret name.",
        "required" : [ "region" ],
        "type" : "object",
        "properties" : {
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the Secrets Manager client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws-secrets-manager", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[secret-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSecretsManagerSecretName",
                    "simple" : "${header[secret-name]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-secret-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSecretsManagerSecretName",
                    "simple" : "${header[ce-secret-name]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSecretsManagerSecretName",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "aws-secrets-manager:kamelet",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "operation" : "createSecret"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Secrets Manager Sink",
      "description" : "Create a secret in AWS Secrets Manager.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Secrets Manager Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Secrets Manager client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `secret-name` / `ce-secret-name`: as the secret name to create.\n\nIf the header won't be set the exchange ID will be used as secret name.",
      "required" : [ "region" ],
      "properties" : {
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the Secrets Manager client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        }
      }
    }
  },
  "aws-ses-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-ses-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjI5OXB4IiB2aWV3Qm94PSIwIDAgMjU2IDI5OSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+Cgk8Zz4KCQk8cGF0aCBkPSJNNjAuNTU2LDQ3LjYwMiBMMCwxNDQuMDEgTDYwLjU1NiwyNDAuNDM0IEw2MS42MTIsMjM5LjY4MSBMNjAuODM3LDQ3LjggTDYwLjU1Niw0Ny42MDIiIGZpbGw9IiM4NzY5MjkiPjwvcGF0aD4KCQk8cGF0aCBkPSJNMTI4LjE4NywyMjMuMTA1IEw2MC41NTYsMjQwLjQzNCBMNjAuNTU2LDQ3LjYwMiBMMTI4LjE4Nyw2NC45MjcgTDEyOC4xODcsMjIzLjEwNSIgZmlsbD0iI0Q5QTc0MSI+PC9wYXRoPgoJCTxwYXRoIGQ9Ik0yNTUuOTc5LDcxLjg2OCBMMjIzLjM3OSw3Ny4yNTkgTDE0OC41MzgsMCBMMTExLjMzMSwxNi4yOTIgTDExNi4yMzksMjUuNDQ1IEw4OS45MDYsMzUuOTcxIEw4OS45MDYsMjc5LjM5OSBMMTI4LjE4NiwyOTguNTUyIEwxMjguODIzLDI5OC4wNTMgTDEyOC4yMzQsNDcuODE4IEwyMDkuMzc2LDE3MC43ODYgTDI1NS45NzksNzEuODY4IiBmaWxsPSIjODc2OTI5Ij48L3BhdGg+CgkJPHBhdGggZD0iTTE0OC41MzgsMCBMMjQ4LjIxNyw0OS44MzcgTDIwOC44LDEyMS4zNTcgTDE0OC41MzgsMCIgZmlsbD0iI0Q5QTc0MSI+PC9wYXRoPgoJCTxwYXRoIGQ9Ik0yNTUuOTc1LDcxLjg2OCBMMjU2LDIzNC41OTYgTDEyOC4xODcsMjk4LjU1MiBMMTI4LjE3LDIwLjY4MyBMMjA4LjgsMTY2Ljk3NCBMMjU1Ljk3NSw3MS44NjgiIGZpbGw9IiNEOUE3NDEiPjwvcGF0aD4KCTwvZz4KPC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS SES",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS SES Sink",
        "description" : "Send email through the Amazon Simple Email Service (SES).\n\nThe basic authentication method for the SES service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SES client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the following properties:\n\n- `subject` / `ce-subject` property to specify the email subject. If you do not set this property in the header, the Kamelet uses the exchange ID for the email subject.\n\n- `to` / `ce-to` to provide a comma-separated list of email addresses.\n\n- `reply-to-addresses` / `ce-reply-to-addresses`to provider a comma-separated list of reply-to email addresses.",
        "required" : [ "from", "region" ],
        "type" : "object",
        "properties" : {
          "from" : {
            "title" : "From",
            "description" : "From address",
            "type" : "string",
            "example" : "user@example.com"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the SES client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-ses", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[subject]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSesSubject",
                    "simple" : "${header[subject]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-subject]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSesSubject",
                    "simple" : "${header[ce-subject]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSesSubject",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[to]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSesTo",
                    "simple" : "${header[to]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-to]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSesTo",
                    "simple" : "${header[ce-to]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[reply-to-addresses]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSesReplyToAddresses",
                    "simple" : "${header[reply-to-addresses]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-reply-to-addresses]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSesReplyToAddresses",
                    "simple" : "${header[ce-reply-to-addresses]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-ses://{{from}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS SES Sink",
      "description" : "Send email through the Amazon Simple Email Service (SES).\n\nThe basic authentication method for the SES service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SES client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the following properties:\n\n- `subject` / `ce-subject` property to specify the email subject. If you do not set this property in the header, the Kamelet uses the exchange ID for the email subject.\n\n- `to` / `ce-to` to provide a comma-separated list of email addresses.\n\n- `reply-to-addresses` / `ce-reply-to-addresses`to provider a comma-separated list of reply-to email addresses.",
      "required" : [ "from", "region" ],
      "properties" : {
        "from" : {
          "type" : "string",
          "title" : "From",
          "description" : "From address"
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the SES client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        }
      }
    }
  },
  "aws-sns-fifo-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-sns-fifo-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnICAgdmlld0JveD0iMCAwIDI1NiAyNTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPg0KCTxnPg0KCQk8cGF0aCBkPSJNOTguODc1LDIzMi4wMzMgTDcyLjQ0MiwyMjQuNjI1IEw0Ny40NDEsMTk2LjExNyBMNzguNzEzLDE5NS4yNTQgTDk4Ljg3NSwyMzIuMDMzIiBmaWxsPSIjOTk1QjgwIj48L3BhdGg+DQoJCTxwYXRoIGQ9Ik0zNy43NSwyMTMuMjMzIEwyMi44NzUsMjA5LjA2NyBMOC44MTcsMTkzLjAzMyBMMjUuODk5LDE5MC4yMjQgTDM3Ljc1LDIxMy4yMzMiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTAsMTkxLjAxNyBMMTUuMjA0LDE5NC4xMDggTDE3LjQxMSwxOTAuMjI2IEwxNy40MTEsNTguNTAzIEwxNS4yMDQsNTUuOTQyIEwwLDY0LjYgTDAsMTkxLjAxNyIgZmlsbD0iIzdCM0Y2NSI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNNzMuOTMzLDY5LjcwOCBMMTUuMjA4LDU1Ljk0MiBMMTUuMjA4LDE5NC4xMDggTDI0LjAwNiwxOTMuMjkgTDM3Ljc1LDIxMy4yMzMgTDQ4LjM1LDE5MS4wMjggTDczLjkzMywxODguNjUgTDczLjkzMyw2OS43MDgiIGZpbGw9IiNDMTdCOUQiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTMzLjk1OCwxOTguMTMzIEw2MC4wMjEsMjAzLjM4MyBMNjEuNzM3LDE5OS4zMzggTDYxLjczNywzNy40NCBMNjAuMDIxLDMzLjc3NSBMMzMuOTU4LDQ2Ljk4MyBMMzMuOTU4LDE5OC4xMzMiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTIwOC43MzQsODEuNTE2IEw2MC4wMjEsMzMuNzc1IEw2MC4wMjEsMjAzLjM4NyBMNzcuMjQyLDIwMS4xNzEgTDk4Ljg3NSwyMzIuMDMzIEwxMTYuMDAxLDE5Ni4xODMgTDIwOC43MzQsMTg0LjI1IEwyMDguNzM0LDgxLjUxNiIgZmlsbD0iI0MxN0I5RCI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNMTgxLjgzMywyNTYuNDkyIEwxNDQuMjY3LDI0NS45NjcgTDEwOC43NTgsMjA1LjQ2NyBMMTU0Ljc5MSwyMDQuOTk5IEwxODEuODMzLDI1Ni40OTIiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTg5LjU5MSwyMDguOTUgTDEyNy45MjEsMjE2LjM2NyBMMTMwLjg5OCwyMTMuODAxIEwxMzAuODk4LDQuMTE3IEwxMjcuOTIxLDAgTDg5LjU5MSwxOS4xNTggTDg5LjU5MSwyMDguOTUiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTI1Niw2NC4wMzMgTDEyNy45MjUsMCBMMTI3LjkyNSwyMTYuMzY3IEwxNTAuNTIyLDIxMS44MzkgTDE4MS44MzMsMjU2LjQ5MiBMMjA4LjczNCwyMDAuMTgzIEwyMDguNzE3LDIwMC4xODEgTDI1NiwxOTAuNzA4IEwyNTYsNjQuMDMzIiBmaWxsPSIjQzE3QjlEIj48L3BhdGg+DQoJPC9nPg0KPC9zdmc+DQo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS SNS",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS SNS FIFO Sink",
        "description" : "Send message to an AWS SNS FIFO Topic.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SNS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SNS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `subject` / `ce-subject`: the subject of the message",
        "required" : [ "topicNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "topicNameOrArn" : {
            "title" : "Topic Name",
            "description" : "The SNS Topic name or ARN",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "contentBasedDeduplication" : {
            "title" : "Content-Based Deduplication",
            "description" : "Use content-based deduplication (should be enabled in the SQS FIFO queue first)",
            "type" : "boolean",
            "default" : false
          },
          "autoCreateTopic" : {
            "title" : "Autocreate Topic",
            "description" : "Setting the autocreation of the SNS topic.",
            "type" : "boolean",
            "default" : false
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the SNS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:aws2-sns", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[subject]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSnsSubject",
                    "simple" : "${header[subject]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-subject]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSnsSubject",
                    "simple" : "${header[ce-subject]}"
                  }
                } ]
              } ]
            }
          }, {
            "setProperty" : {
              "name" : "contentBasedDeduplication",
              "constant" : "{{contentBasedDeduplication}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[group]}",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelAwsSnsMessageGroupId",
                    "simple" : "${header[group]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-group]}",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelAwsSnsMessageGroupId",
                    "simple" : "${header[ce-group]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelAwsSnsMessageGroupId",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty.contentBasedDeduplication} == 'true'",
                "steps" : [ {
                  "to" : {
                    "uri" : "aws2-sns:{{topicNameOrArn}}",
                    "parameters" : {
                      "autoCreateTopic" : "{{autoCreateTopic}}",
                      "accessKey" : "{{?accessKey}}",
                      "secretKey" : "{{?secretKey}}",
                      "region" : "{{region}}",
                      "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                      "messageGroupIdStrategy" : "usePropertyValue",
                      "messageDeduplicationIdStrategy" : "useContentBasedDeduplication",
                      "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                      "overrideEndpoint" : "{{overrideEndpoint}}"
                    }
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "to" : {
                    "uri" : "aws2-sns:{{topicNameOrArn}}",
                    "parameters" : {
                      "autoCreateTopic" : "{{autoCreateTopic}}",
                      "accessKey" : "{{?accessKey}}",
                      "secretKey" : "{{?secretKey}}",
                      "region" : "{{region}}",
                      "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                      "messageGroupIdStrategy" : "usePropertyValue",
                      "messageDeduplicationIdStrategy" : "useExchangeId",
                      "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                      "overrideEndpoint" : "{{overrideEndpoint}}"
                    }
                  }
                } ]
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS SNS FIFO Sink",
      "description" : "Send message to an AWS SNS FIFO Topic.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SNS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SNS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `subject` / `ce-subject`: the subject of the message",
      "required" : [ "topicNameOrArn", "region" ],
      "properties" : {
        "topicNameOrArn" : {
          "type" : "string",
          "title" : "Topic Name",
          "description" : "The SNS Topic name or ARN"
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "contentBasedDeduplication" : {
          "type" : "boolean",
          "title" : "Content-Based Deduplication",
          "description" : "Use content-based deduplication (should be enabled in the SQS FIFO queue first)",
          "default" : false
        },
        "autoCreateTopic" : {
          "type" : "boolean",
          "title" : "Autocreate Topic",
          "description" : "Setting the autocreation of the SNS topic.",
          "default" : false
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the SNS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-sns-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-sns-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnICAgdmlld0JveD0iMCAwIDI1NiAyNTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPg0KCTxnPg0KCQk8cGF0aCBkPSJNOTguODc1LDIzMi4wMzMgTDcyLjQ0MiwyMjQuNjI1IEw0Ny40NDEsMTk2LjExNyBMNzguNzEzLDE5NS4yNTQgTDk4Ljg3NSwyMzIuMDMzIiBmaWxsPSIjOTk1QjgwIj48L3BhdGg+DQoJCTxwYXRoIGQ9Ik0zNy43NSwyMTMuMjMzIEwyMi44NzUsMjA5LjA2NyBMOC44MTcsMTkzLjAzMyBMMjUuODk5LDE5MC4yMjQgTDM3Ljc1LDIxMy4yMzMiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTAsMTkxLjAxNyBMMTUuMjA0LDE5NC4xMDggTDE3LjQxMSwxOTAuMjI2IEwxNy40MTEsNTguNTAzIEwxNS4yMDQsNTUuOTQyIEwwLDY0LjYgTDAsMTkxLjAxNyIgZmlsbD0iIzdCM0Y2NSI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNNzMuOTMzLDY5LjcwOCBMMTUuMjA4LDU1Ljk0MiBMMTUuMjA4LDE5NC4xMDggTDI0LjAwNiwxOTMuMjkgTDM3Ljc1LDIxMy4yMzMgTDQ4LjM1LDE5MS4wMjggTDczLjkzMywxODguNjUgTDczLjkzMyw2OS43MDgiIGZpbGw9IiNDMTdCOUQiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTMzLjk1OCwxOTguMTMzIEw2MC4wMjEsMjAzLjM4MyBMNjEuNzM3LDE5OS4zMzggTDYxLjczNywzNy40NCBMNjAuMDIxLDMzLjc3NSBMMzMuOTU4LDQ2Ljk4MyBMMzMuOTU4LDE5OC4xMzMiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTIwOC43MzQsODEuNTE2IEw2MC4wMjEsMzMuNzc1IEw2MC4wMjEsMjAzLjM4NyBMNzcuMjQyLDIwMS4xNzEgTDk4Ljg3NSwyMzIuMDMzIEwxMTYuMDAxLDE5Ni4xODMgTDIwOC43MzQsMTg0LjI1IEwyMDguNzM0LDgxLjUxNiIgZmlsbD0iI0MxN0I5RCI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNMTgxLjgzMywyNTYuNDkyIEwxNDQuMjY3LDI0NS45NjcgTDEwOC43NTgsMjA1LjQ2NyBMMTU0Ljc5MSwyMDQuOTk5IEwxODEuODMzLDI1Ni40OTIiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTg5LjU5MSwyMDguOTUgTDEyNy45MjEsMjE2LjM2NyBMMTMwLjg5OCwyMTMuODAxIEwxMzAuODk4LDQuMTE3IEwxMjcuOTIxLDAgTDg5LjU5MSwxOS4xNTggTDg5LjU5MSwyMDguOTUiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTI1Niw2NC4wMzMgTDEyNy45MjUsMCBMMTI3LjkyNSwyMTYuMzY3IEwxNTAuNTIyLDIxMS44MzkgTDE4MS44MzMsMjU2LjQ5MiBMMjA4LjczNCwyMDAuMTgzIEwyMDguNzE3LDIwMC4xODEgTDI1NiwxOTAuNzA4IEwyNTYsNjQuMDMzIiBmaWxsPSIjQzE3QjlEIj48L3BhdGg+DQoJPC9nPg0KPC9zdmc+DQo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS SNS",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS SNS Sink",
        "description" : "Send message to an Amazon Simple Notification Service (SNS) topic.\n\nThe basic authentication method for the SNS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SNS client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `subject` / `ce-subject` property to specify the subject of the message.",
        "required" : [ "topicNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "topicNameOrArn" : {
            "title" : "Topic Name",
            "description" : "The SNS topic name name or Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateTopic" : {
            "title" : "Autocreate Topic",
            "description" : "Setting the autocreation of the SNS topic.",
            "type" : "boolean",
            "default" : false
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the SNS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-sns", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[subject]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSnsSubject",
                    "simple" : "${header[subject]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-subject]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsSnsSubject",
                    "simple" : "${header[ce-subject]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-sns:{{topicNameOrArn}}",
              "parameters" : {
                "autoCreateTopic" : "{{autoCreateTopic}}",
                "accessKey" : "{{?accessKey}}",
                "secretKey" : "{{?secretKey}}",
                "region" : "{{region}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS SNS Sink",
      "description" : "Send message to an Amazon Simple Notification Service (SNS) topic.\n\nThe basic authentication method for the SNS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SNS client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `subject` / `ce-subject` property to specify the subject of the message.",
      "required" : [ "topicNameOrArn", "region" ],
      "properties" : {
        "topicNameOrArn" : {
          "type" : "string",
          "title" : "Topic Name",
          "description" : "The SNS topic name name or Amazon Resource Name (ARN)."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateTopic" : {
          "type" : "boolean",
          "title" : "Autocreate Topic",
          "description" : "Setting the autocreation of the SNS topic.",
          "default" : false
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the SNS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-sqs-batch-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-sqs-batch-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAwIDEwMCIKICAgaGVpZ2h0PSI3Mi4xOTk5OTciCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDU5Ljg0OTk5OCA3Mi4xOTk5OTciCiAgIHdpZHRoPSI1OS44NDk5OTgiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlkPSJzdmcxNDUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImRvd25sb2FkLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wLjIgKGU4NmM4NzA4NzksIDIwMjEtMDEtMTUpIj48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExNTEiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PGRjOnRpdGxlPjwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgICAgaWQ9ImRlZnMxNDkiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzE0NyIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjAuMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAuMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIwLjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjAuMSIKICAgICBpbmtzY2FwZTp6b29tPSI4LjE5IgogICAgIGlua3NjYXBlOmN4PSIyOS45MjUiCiAgICAgaW5rc2NhcGU6Y3k9IjM2LjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTQ1IiAvPjxnCiAgICAgaWQ9IkFtYXpvbl9DbG91ZFNlYXJjaCIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDc1LC0xMy45KSI+PGcKICAgICAgIGlkPSJnMTQyIj48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjIzLjk4NywzNi4yMDEgNTQuNDYyLDQwLjQ5NCA1NC40Niw1OS41MDYgMjMuOTg1LDYzLjc5MyAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTIwIiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDIwLjE3OSwyOC45MDggMjAuMTc5LDM3LjM0NCA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMjIiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI0OS45OTcsODYgMjAuMTksNzEuMDk0IDIwLjE5LDYyLjY1NCA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiNkOWE3NDEiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDc5LjgyNSwyOC45MTQgNzkuODIzLDM3LjM1IDUwLjAwMywyOC4zOTkgIgogICAgICAgICBpZD0icG9seWdvbjEyNiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjQ5Ljk5Nyw4NiA3OS44MDYsNzEuMDk5IDc5LjgwNiw2Mi42NiA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI4IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iMjAuMTc5LDI4LjkwOCAyMy45ODksMjcuMDA0IDIzLjk4NSw3Mi45OSAyMC4xNzUsNzEuMDg2ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzAiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI1MC4wMDEsNDAuODMyIDM5LjAxOSw0Mi4yMjkgMzkuMDE3LDU3Ljc2MiA0OS45OTksNTkuMTYgIgogICAgICAgICBpZD0icG9seWdvbjEzMiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjODc2OTI5IgogICAgICAgICBwb2ludHM9IjM1LjA4Myw0Mi43MjkgMjcuOTU0LDQzLjYzNyAyNy45NTQsNTYuMzU0IDM1LjA4MSw1Ny4yNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTM0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM2MjRhMWUiCiAgICAgICAgIHBvaW50cz0iNzkuODIzLDM3LjM1IDU0LjQ4MSw0MC40OTYgMjMuOTg3LDM2LjIwMSA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzYiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iI2ZhZDc5MSIKICAgICAgICAgcG9pbnRzPSI3OS44MDYsNjIuNjYgNTQuNDYsNTkuNTA2IDIzLjk4NSw2My43OTMgNDkuOTk5LDcxLjYgIgogICAgICAgICBpZD0icG9seWdvbjEzOCIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjUwLjAwMSw0MC44MzIgNzkuODA4LDQ0LjYyOSA3OS44MDgsNTUuMzMgNDkuOTk5LDU5LjA5MiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTQwIiAvPjwvZz48L2c+PC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS SQS",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS SQS Batch Sink",
        "description" : "Send Batch message to an AWS SQS Queue.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
        "required" : [ "queueNameOrArn", "region", "batchSeparator" ],
        "type" : "object",
        "properties" : {
          "queueNameOrArn" : {
            "title" : "Queue Name",
            "description" : "The SQS Queue name or ARN",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateQueue" : {
            "title" : "Autocreate Queue",
            "description" : "Setting the autocreation of the SQS queue.",
            "type" : "boolean",
            "default" : false
          },
          "batchSeparator" : {
            "title" : "Batch Separator",
            "description" : "The batch separator string",
            "type" : "string",
            "example" : ","
          },
          "amazonAWSHost" : {
            "title" : "AWS Host",
            "description" : "The hostname of the Amazon AWS cloud.",
            "type" : "string",
            "default" : "amazonaws.com"
          },
          "protocol" : {
            "title" : "Protocol",
            "description" : "The underlying protocol used to communicate with SQS",
            "type" : "string",
            "example" : "http or https",
            "default" : "https"
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the SQS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:aws2-sqs", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "aws2-sqs:{{queueNameOrArn}}",
              "parameters" : {
                "autoCreateQueue" : "{{autoCreateQueue}}",
                "accessKey" : "{{?accessKey}}",
                "secretKey" : "{{?secretKey}}",
                "region" : "{{region}}",
                "batchSeparator" : "{{batchSeparator}}",
                "operation" : "sendBatchMessage",
                "amazonAWSHost" : "{{?amazonAWSHost}}",
                "protocol" : "{{?protocol}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS SQS Batch Sink",
      "description" : "Send Batch message to an AWS SQS Queue.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
      "required" : [ "queueNameOrArn", "region", "batchSeparator" ],
      "properties" : {
        "queueNameOrArn" : {
          "type" : "string",
          "title" : "Queue Name",
          "description" : "The SQS Queue name or ARN"
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateQueue" : {
          "type" : "boolean",
          "title" : "Autocreate Queue",
          "description" : "Setting the autocreation of the SQS queue.",
          "default" : false
        },
        "batchSeparator" : {
          "type" : "string",
          "title" : "Batch Separator",
          "description" : "The batch separator string"
        },
        "amazonAWSHost" : {
          "type" : "string",
          "title" : "AWS Host",
          "description" : "The hostname of the Amazon AWS cloud.",
          "default" : "amazonaws.com"
        },
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "The underlying protocol used to communicate with SQS",
          "default" : "https"
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the SQS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-sqs-fifo-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-sqs-fifo-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAwIDEwMCIKICAgaGVpZ2h0PSI3Mi4xOTk5OTciCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDU5Ljg0OTk5OCA3Mi4xOTk5OTciCiAgIHdpZHRoPSI1OS44NDk5OTgiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlkPSJzdmcxNDUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImRvd25sb2FkLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wLjIgKGU4NmM4NzA4NzksIDIwMjEtMDEtMTUpIj48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExNTEiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PGRjOnRpdGxlPjwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgICAgaWQ9ImRlZnMxNDkiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzE0NyIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjAuMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAuMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIwLjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjAuMSIKICAgICBpbmtzY2FwZTp6b29tPSI4LjE5IgogICAgIGlua3NjYXBlOmN4PSIyOS45MjUiCiAgICAgaW5rc2NhcGU6Y3k9IjM2LjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTQ1IiAvPjxnCiAgICAgaWQ9IkFtYXpvbl9DbG91ZFNlYXJjaCIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDc1LC0xMy45KSI+PGcKICAgICAgIGlkPSJnMTQyIj48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjIzLjk4NywzNi4yMDEgNTQuNDYyLDQwLjQ5NCA1NC40Niw1OS41MDYgMjMuOTg1LDYzLjc5MyAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTIwIiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDIwLjE3OSwyOC45MDggMjAuMTc5LDM3LjM0NCA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMjIiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI0OS45OTcsODYgMjAuMTksNzEuMDk0IDIwLjE5LDYyLjY1NCA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiNkOWE3NDEiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDc5LjgyNSwyOC45MTQgNzkuODIzLDM3LjM1IDUwLjAwMywyOC4zOTkgIgogICAgICAgICBpZD0icG9seWdvbjEyNiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjQ5Ljk5Nyw4NiA3OS44MDYsNzEuMDk5IDc5LjgwNiw2Mi42NiA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI4IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iMjAuMTc5LDI4LjkwOCAyMy45ODksMjcuMDA0IDIzLjk4NSw3Mi45OSAyMC4xNzUsNzEuMDg2ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzAiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI1MC4wMDEsNDAuODMyIDM5LjAxOSw0Mi4yMjkgMzkuMDE3LDU3Ljc2MiA0OS45OTksNTkuMTYgIgogICAgICAgICBpZD0icG9seWdvbjEzMiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjODc2OTI5IgogICAgICAgICBwb2ludHM9IjM1LjA4Myw0Mi43MjkgMjcuOTU0LDQzLjYzNyAyNy45NTQsNTYuMzU0IDM1LjA4MSw1Ny4yNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTM0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM2MjRhMWUiCiAgICAgICAgIHBvaW50cz0iNzkuODIzLDM3LjM1IDU0LjQ4MSw0MC40OTYgMjMuOTg3LDM2LjIwMSA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzYiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iI2ZhZDc5MSIKICAgICAgICAgcG9pbnRzPSI3OS44MDYsNjIuNjYgNTQuNDYsNTkuNTA2IDIzLjk4NSw2My43OTMgNDkuOTk5LDcxLjYgIgogICAgICAgICBpZD0icG9seWdvbjEzOCIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjUwLjAwMSw0MC44MzIgNzkuODA4LDQ0LjYyOSA3OS44MDgsNTUuMzMgNDkuOTk5LDU5LjA5MiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTQwIiAvPjwvZz48L2c+PC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS SQS",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS SQS FIFO Sink",
        "description" : "Send message to an AWS SQS FIFO Queue.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
        "required" : [ "queueNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "queueNameOrArn" : {
            "title" : "Queue Name",
            "description" : "The SQS Queue name or ARN",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "contentBasedDeduplication" : {
            "title" : "Content-Based Deduplication",
            "description" : "Use content-based deduplication (should be enabled in the SQS FIFO queue first)",
            "type" : "boolean",
            "default" : false
          },
          "autoCreateQueue" : {
            "title" : "Autocreate Queue",
            "description" : "Setting the autocreation of the SQS queue.",
            "type" : "boolean",
            "default" : false
          },
          "amazonAWSHost" : {
            "title" : "AWS Host",
            "description" : "The hostname of the Amazon AWS cloud.",
            "type" : "string",
            "default" : "amazonaws.com"
          },
          "protocol" : {
            "title" : "Protocol",
            "description" : "The underlying protocol used to communicate with SQS",
            "type" : "string",
            "example" : "http or https",
            "default" : "https"
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the SQS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:aws2-sqs", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setProperty" : {
              "name" : "contentBasedDeduplication",
              "constant" : "{{contentBasedDeduplication}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[group]}",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelAwsMessageGroupId",
                    "simple" : "${header[group]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-group]}",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelAwsMessageGroupId",
                    "simple" : "${header[ce-group]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelAwsMessageGroupId",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty.contentBasedDeduplication} == 'true'",
                "steps" : [ {
                  "to" : {
                    "uri" : "aws2-sqs:{{queueNameOrArn}}",
                    "parameters" : {
                      "autoCreateQueue" : "{{autoCreateQueue}}",
                      "accessKey" : "{{?accessKey}}",
                      "secretKey" : "{{?secretKey}}",
                      "region" : "{{region}}",
                      "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                      "messageGroupIdStrategy" : "usePropertyValue",
                      "messageDeduplicationIdStrategy" : "useContentBasedDeduplication",
                      "amazonAWSHost" : "{{?amazonAWSHost}}",
                      "protocol" : "{{?protocol}}",
                      "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                      "overrideEndpoint" : "{{overrideEndpoint}}"
                    }
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "to" : {
                    "uri" : "aws2-sqs:{{queueNameOrArn}}",
                    "parameters" : {
                      "autoCreateQueue" : "{{autoCreateQueue}}",
                      "accessKey" : "{{?accessKey}}",
                      "secretKey" : "{{?secretKey}}",
                      "region" : "{{region}}",
                      "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                      "messageGroupIdStrategy" : "usePropertyValue",
                      "messageDeduplicationIdStrategy" : "useExchangeId",
                      "amazonAWSHost" : "{{?amazonAWSHost}}",
                      "protocol" : "{{?protocol}}",
                      "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                      "overrideEndpoint" : "{{overrideEndpoint}}"
                    }
                  }
                } ]
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS SQS FIFO Sink",
      "description" : "Send message to an AWS SQS FIFO Queue.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
      "required" : [ "queueNameOrArn", "region" ],
      "properties" : {
        "queueNameOrArn" : {
          "type" : "string",
          "title" : "Queue Name",
          "description" : "The SQS Queue name or ARN"
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "contentBasedDeduplication" : {
          "type" : "boolean",
          "title" : "Content-Based Deduplication",
          "description" : "Use content-based deduplication (should be enabled in the SQS FIFO queue first)",
          "default" : false
        },
        "autoCreateQueue" : {
          "type" : "boolean",
          "title" : "Autocreate Queue",
          "description" : "Setting the autocreation of the SQS queue.",
          "default" : false
        },
        "amazonAWSHost" : {
          "type" : "string",
          "title" : "AWS Host",
          "description" : "The hostname of the Amazon AWS cloud.",
          "default" : "amazonaws.com"
        },
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "The underlying protocol used to communicate with SQS",
          "default" : "https"
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the SQS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-sqs-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-sqs-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAwIDEwMCIKICAgaGVpZ2h0PSI3Mi4xOTk5OTciCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDU5Ljg0OTk5OCA3Mi4xOTk5OTciCiAgIHdpZHRoPSI1OS44NDk5OTgiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlkPSJzdmcxNDUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImRvd25sb2FkLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wLjIgKGU4NmM4NzA4NzksIDIwMjEtMDEtMTUpIj48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExNTEiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PGRjOnRpdGxlPjwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgICAgaWQ9ImRlZnMxNDkiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzE0NyIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjAuMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAuMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIwLjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjAuMSIKICAgICBpbmtzY2FwZTp6b29tPSI4LjE5IgogICAgIGlua3NjYXBlOmN4PSIyOS45MjUiCiAgICAgaW5rc2NhcGU6Y3k9IjM2LjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTQ1IiAvPjxnCiAgICAgaWQ9IkFtYXpvbl9DbG91ZFNlYXJjaCIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDc1LC0xMy45KSI+PGcKICAgICAgIGlkPSJnMTQyIj48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjIzLjk4NywzNi4yMDEgNTQuNDYyLDQwLjQ5NCA1NC40Niw1OS41MDYgMjMuOTg1LDYzLjc5MyAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTIwIiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDIwLjE3OSwyOC45MDggMjAuMTc5LDM3LjM0NCA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMjIiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI0OS45OTcsODYgMjAuMTksNzEuMDk0IDIwLjE5LDYyLjY1NCA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiNkOWE3NDEiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDc5LjgyNSwyOC45MTQgNzkuODIzLDM3LjM1IDUwLjAwMywyOC4zOTkgIgogICAgICAgICBpZD0icG9seWdvbjEyNiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjQ5Ljk5Nyw4NiA3OS44MDYsNzEuMDk5IDc5LjgwNiw2Mi42NiA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI4IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iMjAuMTc5LDI4LjkwOCAyMy45ODksMjcuMDA0IDIzLjk4NSw3Mi45OSAyMC4xNzUsNzEuMDg2ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzAiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI1MC4wMDEsNDAuODMyIDM5LjAxOSw0Mi4yMjkgMzkuMDE3LDU3Ljc2MiA0OS45OTksNTkuMTYgIgogICAgICAgICBpZD0icG9seWdvbjEzMiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjODc2OTI5IgogICAgICAgICBwb2ludHM9IjM1LjA4Myw0Mi43MjkgMjcuOTU0LDQzLjYzNyAyNy45NTQsNTYuMzU0IDM1LjA4MSw1Ny4yNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTM0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM2MjRhMWUiCiAgICAgICAgIHBvaW50cz0iNzkuODIzLDM3LjM1IDU0LjQ4MSw0MC40OTYgMjMuOTg3LDM2LjIwMSA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzYiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iI2ZhZDc5MSIKICAgICAgICAgcG9pbnRzPSI3OS44MDYsNjIuNjYgNTQuNDYsNTkuNTA2IDIzLjk4NSw2My43OTMgNDkuOTk5LDcxLjYgIgogICAgICAgICBpZD0icG9seWdvbjEzOCIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjUwLjAwMSw0MC44MzIgNzkuODA4LDQ0LjYyOSA3OS44MDgsNTUuMzMgNDkuOTk5LDU5LjA5MiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTQwIiAvPjwvZz48L2c+PC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS SQS",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS SQS Sink",
        "description" : "Send messages to an Amazon Simple Queue Service (SQS) queue.\n\nThe basic authentication method for the SQS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SQS client loads the credentials through this provider and doesn't use the basic authentication method.",
        "required" : [ "queueNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "queueNameOrArn" : {
            "title" : "Queue Name",
            "description" : "The SQS Queue name or or Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateQueue" : {
            "title" : "Autocreate Queue",
            "description" : "Automatically create the SQS queue.",
            "type" : "boolean",
            "default" : false
          },
          "amazonAWSHost" : {
            "title" : "AWS Host",
            "description" : "The hostname of the Amazon AWS cloud.",
            "type" : "string",
            "default" : "amazonaws.com"
          },
          "protocol" : {
            "title" : "Protocol",
            "description" : "The underlying protocol used to communicate with SQS.",
            "type" : "string",
            "example" : "http or https",
            "default" : "https"
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:aws2-sqs", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "aws2-sqs:{{queueNameOrArn}}",
              "parameters" : {
                "autoCreateQueue" : "{{autoCreateQueue}}",
                "accessKey" : "{{?accessKey}}",
                "secretKey" : "{{?secretKey}}",
                "region" : "{{region}}",
                "amazonAWSHost" : "{{?amazonAWSHost}}",
                "protocol" : "{{?protocol}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS SQS Sink",
      "description" : "Send messages to an Amazon Simple Queue Service (SQS) queue.\n\nThe basic authentication method for the SQS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SQS client loads the credentials through this provider and doesn't use the basic authentication method.",
      "required" : [ "queueNameOrArn", "region" ],
      "properties" : {
        "queueNameOrArn" : {
          "type" : "string",
          "title" : "Queue Name",
          "description" : "The SQS Queue name or or Amazon Resource Name (ARN)."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateQueue" : {
          "type" : "boolean",
          "title" : "Autocreate Queue",
          "description" : "Automatically create the SQS queue.",
          "default" : false
        },
        "amazonAWSHost" : {
          "type" : "string",
          "title" : "AWS Host",
          "description" : "The hostname of the Amazon AWS cloud.",
          "default" : "amazonaws.com"
        },
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "The underlying protocol used to communicate with SQS.",
          "default" : "https"
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-sqs-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-sqs-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAwIDEwMCIKICAgaGVpZ2h0PSI3Mi4xOTk5OTciCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDU5Ljg0OTk5OCA3Mi4xOTk5OTciCiAgIHdpZHRoPSI1OS44NDk5OTgiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlkPSJzdmcxNDUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImRvd25sb2FkLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wLjIgKGU4NmM4NzA4NzksIDIwMjEtMDEtMTUpIj48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExNTEiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PGRjOnRpdGxlPjwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgICAgaWQ9ImRlZnMxNDkiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzE0NyIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjAuMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAuMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIwLjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjAuMSIKICAgICBpbmtzY2FwZTp6b29tPSI4LjE5IgogICAgIGlua3NjYXBlOmN4PSIyOS45MjUiCiAgICAgaW5rc2NhcGU6Y3k9IjM2LjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTQ1IiAvPjxnCiAgICAgaWQ9IkFtYXpvbl9DbG91ZFNlYXJjaCIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDc1LC0xMy45KSI+PGcKICAgICAgIGlkPSJnMTQyIj48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjIzLjk4NywzNi4yMDEgNTQuNDYyLDQwLjQ5NCA1NC40Niw1OS41MDYgMjMuOTg1LDYzLjc5MyAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTIwIiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDIwLjE3OSwyOC45MDggMjAuMTc5LDM3LjM0NCA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMjIiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI0OS45OTcsODYgMjAuMTksNzEuMDk0IDIwLjE5LDYyLjY1NCA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiNkOWE3NDEiCiAgICAgICAgIHBvaW50cz0iNTAuMDAzLDE0IDc5LjgyNSwyOC45MTQgNzkuODIzLDM3LjM1IDUwLjAwMywyOC4zOTkgIgogICAgICAgICBpZD0icG9seWdvbjEyNiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjQ5Ljk5Nyw4NiA3OS44MDYsNzEuMDk5IDc5LjgwNiw2Mi42NiA0OS45OTksNzEuNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTI4IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM4NzY5MjkiCiAgICAgICAgIHBvaW50cz0iMjAuMTc5LDI4LjkwOCAyMy45ODksMjcuMDA0IDIzLjk4NSw3Mi45OSAyMC4xNzUsNzEuMDg2ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzAiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iIzg3NjkyOSIKICAgICAgICAgcG9pbnRzPSI1MC4wMDEsNDAuODMyIDM5LjAxOSw0Mi4yMjkgMzkuMDE3LDU3Ljc2MiA0OS45OTksNTkuMTYgIgogICAgICAgICBpZD0icG9seWdvbjEzMiIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjODc2OTI5IgogICAgICAgICBwb2ludHM9IjM1LjA4Myw0Mi43MjkgMjcuOTU0LDQzLjYzNyAyNy45NTQsNTYuMzU0IDM1LjA4MSw1Ny4yNiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTM0IiAvPjxwb2x5Z29uCiAgICAgICAgIGZpbGw9IiM2MjRhMWUiCiAgICAgICAgIHBvaW50cz0iNzkuODIzLDM3LjM1IDU0LjQ4MSw0MC40OTYgMjMuOTg3LDM2LjIwMSA1MC4wMDMsMjguMzk5ICIKICAgICAgICAgaWQ9InBvbHlnb24xMzYiIC8+PHBvbHlnb24KICAgICAgICAgZmlsbD0iI2ZhZDc5MSIKICAgICAgICAgcG9pbnRzPSI3OS44MDYsNjIuNjYgNTQuNDYsNTkuNTA2IDIzLjk4NSw2My43OTMgNDkuOTk5LDcxLjYgIgogICAgICAgICBpZD0icG9seWdvbjEzOCIgLz48cG9seWdvbgogICAgICAgICBmaWxsPSIjZDlhNzQxIgogICAgICAgICBwb2ludHM9IjUwLjAwMSw0MC44MzIgNzkuODA4LDQ0LjYyOSA3OS44MDgsNTUuMzMgNDkuOTk5LDU5LjA5MiAiCiAgICAgICAgIGlkPSJwb2x5Z29uMTQwIiAvPjwvZz48L2c+PC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS SQS",
        "camel.apache.org/keda.type" : "aws-sqs-queue",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS SQS Source",
        "description" : "Receive data from AWS SQS.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAwsSqsMessageId will be duplicated into aws.sqs.message.id and CamelAwsSqsReceiptHandle will be duplicated in aws.sqs.receipt.handle",
        "required" : [ "queueNameOrArn", "region" ],
        "type" : "object",
        "properties" : {
          "queueNameOrArn" : {
            "title" : "Queue Name",
            "description" : "The SQS Queue Name or ARN",
            "type" : "string"
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Messages",
            "description" : "Delete messages after consuming them",
            "type" : "boolean",
            "default" : true
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:awsAccessKeyID", "urn:keda:required" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:awsSecretAccessKey", "urn:keda:required" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:awsRegion", "urn:keda:required" ],
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "autoCreateQueue" : {
            "title" : "Autocreate Queue",
            "description" : "Setting the autocreation of the SQS queue.",
            "type" : "boolean",
            "default" : false
          },
          "amazonAWSHost" : {
            "title" : "AWS Host",
            "description" : "The hostname of the Amazon AWS cloud.",
            "type" : "string",
            "default" : "amazonaws.com"
          },
          "protocol" : {
            "title" : "Protocol",
            "description" : "The underlying protocol used to communicate with SQS",
            "type" : "string",
            "example" : "http or https",
            "default" : "https"
          },
          "queueURL" : {
            "title" : "Queue URL",
            "description" : "The full SQS Queue URL (required if using KEDA)",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:queueURL", "urn:keda:required" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected stream",
            "type" : "integer",
            "default" : 500
          },
          "greedy" : {
            "title" : "Greedy Scheduler",
            "description" : "If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dataTypes" : {
        "out" : {
          "default" : "text",
          "headers" : {
            "CamelAwsSqsMessageId" : {
              "title" : "The SQS Message Id",
              "description" : "The Amazon SQS message ID",
              "type" : "string"
            },
            "CamelAwsSqsReceiptHandle" : {
              "title" : "The SQS Message Receipt Handle",
              "description" : "The Amazon SQS message receipt handle.",
              "type" : "string"
            },
            "CamelAwsSqsMD5OfBody" : {
              "title" : "The SQS Message MD5 Checksum",
              "description" : "The content type of the retrieved object.",
              "default" : "application/octet-stream",
              "type" : "string"
            },
            "CamelAwsSqsAttributes" : {
              "title" : "The SQS Message System Attributes",
              "description" : "A map of the attributes requested in ReceiveMessage to their respective values, the Map type is Map<MessageSystemAttributeName, String>",
              "type" : "object"
            },
            "CamelAwsSqsMessageAttributes" : {
              "title" : "The SQS Message Attributes",
              "description" : "The Amazon SQS message attributes, the Map type is Map<String, MessageAttributeValue>",
              "type" : "object"
            }
          },
          "types" : {
            "text" : {
              "format" : "text-plain",
              "description" : "Default String representation of the SQS message received from the queue.",
              "mediaType" : "text/plain"
            },
            "cloudevents" : {
              "format" : "aws2-sqs:application-cloudevents",
              "description" : "Output data type represents AWS SQS receive message response as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with\nrespective data from the SQS message and its derived object.",
              "headers" : {
                "CamelCloudEventID" : {
                  "title" : "CloudEvent ID",
                  "description" : "The Camel exchange id set as event id",
                  "type" : "string"
                },
                "CamelCloudEventType" : {
                  "title" : "CloudEvent Type",
                  "description" : "The event type",
                  "default" : "org.apache.camel.event.aws.sqs.receiveMessage",
                  "type" : "string"
                },
                "CamelCloudEventSource" : {
                  "title" : "CloudEvent Source",
                  "description" : "The event source. By default, the SQS Received message receipt handle with prefix \"aws.sqs.queue.\".",
                  "type" : "string"
                },
                "CamelCloudEventSubject" : {
                  "title" : "CloudEvent Subject",
                  "description" : "The event subject. The SQS message ID",
                  "type" : "string"
                },
                "CamelCloudEventTime" : {
                  "title" : "CloudEvent Time",
                  "description" : "The exchange creation timestamp as event time.",
                  "type" : "string"
                }
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-sqs", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "aws2-sqs:{{queueNameOrArn}}",
          "parameters" : {
            "autoCreateQueue" : "{{autoCreateQueue}}",
            "secretKey" : "{{?secretKey}}",
            "accessKey" : "{{?accessKey}}",
            "region" : "{{region}}",
            "deleteAfterRead" : "{{deleteAfterRead}}",
            "amazonAWSHost" : "{{?amazonAWSHost}}",
            "protocol" : "{{?protocol}}",
            "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
            "uriEndpointOverride" : "{{?uriEndpointOverride}}",
            "overrideEndpoint" : "{{overrideEndpoint}}",
            "delay" : "{{delay}}",
            "greedy" : "{{greedy}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS SQS Source",
      "description" : "Receive data from AWS SQS.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAwsSqsMessageId will be duplicated into aws.sqs.message.id and CamelAwsSqsReceiptHandle will be duplicated in aws.sqs.receipt.handle",
      "required" : [ "queueNameOrArn", "region" ],
      "properties" : {
        "queueNameOrArn" : {
          "type" : "string",
          "title" : "Queue Name",
          "description" : "The SQS Queue Name or ARN"
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Messages",
          "description" : "Delete messages after consuming them",
          "default" : true
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "autoCreateQueue" : {
          "type" : "boolean",
          "title" : "Autocreate Queue",
          "description" : "Setting the autocreation of the SQS queue.",
          "default" : false
        },
        "amazonAWSHost" : {
          "type" : "string",
          "title" : "AWS Host",
          "description" : "The hostname of the Amazon AWS cloud.",
          "default" : "amazonaws.com"
        },
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "The underlying protocol used to communicate with SQS",
          "default" : "https"
        },
        "queueURL" : {
          "type" : "string",
          "title" : "Queue URL",
          "description" : "The full SQS Queue URL (required if using KEDA)"
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected stream",
          "default" : 500
        },
        "greedy" : {
          "type" : "boolean",
          "title" : "Greedy Scheduler",
          "description" : "If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages.",
          "default" : false
        }
      }
    }
  },
  "aws-sts-assume-role-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-sts-assume-role-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQ5MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiIHZpZXdCb3g9IjAgMCAyNTYgNDkwIiB3aWR0aD0iMjU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiMzYzQ5MjkiPjxwYXRoIGQ9Im0yMSAxNjUuNzUtMjEgNi44NTYgMjEuNzUgMi41MTl6Ii8+PHBhdGggZD0ibTE5Ljk1NSAyMDYuODA2IDEwOC4wNDUgNi45MDggMTA4LjA0NS02LjkwOC0xMDguMDQ1LTIxLjA1NnoiLz48cGF0aCBkPSJtMjM0LjUgMTc1LjEyNSAyMS41LTIuNTE5LTIxLjUtNS43MzF6Ii8+PC9nPjxwYXRoIGQ9Im0xNTcuMzg3IDM1Mi45MjkgNTYuNjA2IDEzLjM5Ni01Ni43NTYgMTcuMTE2eiIgZmlsbD0iI2I3Y2E5ZCIvPjxwYXRoIGQ9Im0xOS45NTUgOTIuMjIxdi0zOC4yMDJsMTA4LjA0NS01NC4wMTkuNDgyLjQwNS0uMjQ4IDQ4LjQ5Ni0uMjM0LjEwMi0uNDA1IDEuMTE3LTU5LjA5OCAyMy44NTYtLjU0MiA4NC4wMzcgMzEuNDUyLTUuMjkgMjguNTkzLTUuNzIxdjM0My4wMjhsLTMyLjM2OS0xNi4xNzd2LTQ1Ljc3MWwtMjguMzU0LTExLjMzOHYtMjE0LjY3NWwtNDcuMzIyIDQuNzM3di0zOC4xOTVsLTE5Ljk1NSAzLjk5NXYtNzIuNDA4eiIgZmlsbD0iIzRiNjEyYyIvPjxwYXRoIGQ9Im05OS40MDggMTUyLjcyNy0zMi4xMzEgNi40MjR2LTg1Ljg3MWwzMi4xMzEgMTAuMDE4eiIgZmlsbD0iIzc1OWMzZSIvPjxwYXRoIGQ9Im0xODMuOTI1IDI3Ljk1OSA1Mi4xMDYgMjYuMDZ2MzguMjAybDE5Ljk2OSA3Ljk3N3Y3Mi40MDJsLTE5Ljk2OS0zLjk4OXYzOC4xOTVsLTI1LjQ0MS0yLjUzOC0yMS44ODEtMi4xOTl2NDIuOTM5aDQ3LjMzNnYzOS4yODRsLTIxLjk5NyAxLjk3NHYzOS42MTFsLTUzLjY5MiAxMC42NzJ2NDUuNzdsNTMuNTctMTUuODk5LjEyMiA0MC4zOC01My42OTIgMjEuMjgydjQ1Ljc3MWwtMzIuMzU2IDE2LjE3N3YtMzQzLjAyOGwyOC41NzIgNS43MSAzMC41ODMgNC4wMzh2LTgyLjc4NGwtNTguMzM4LTIyLjQ5OC0uODE3LTIuNDY1di00OS4wMDN6IiBmaWxsPSIjNzU5YzNlIi8+PHBhdGggZD0ibTE2MC4zNTYgNjEuOTQxLTMyLjM1Ni0xMi45MzEtNjAuNzIzIDI0LjI3IDMyLjEzMSAxMC4wMTh6IiBmaWxsPSIjM2M0OTI5Ii8+PHBhdGggZD0ibTY3LjI3NyA3My4yOCA2MC43MjMtMjQuMjcgMTIuNzc1IDUuMTA0IDE5LjU4MSA3LjgyNyAyOC4zNTMgMTEuMzUzLTEuNTE1IDEuNTQxLTI4Ljg3NiA4Ljk5MS0xLjc0LS41MjgtMjguNTc4LTEwLjAxOC0yOC41OTIgMTAuMDE4eiIgZmlsbD0iIzNjNDkyOSIvPjxwYXRoIGQ9Im0xNTYuNTc4IDgzLjI5OCAzMi4xMzEtMTAuMDA0djg1Ljg2NGwtMzIuMTMxLTYuNDQ2eiIgZmlsbD0iIzRiNjEyYyIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS STS",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS STS Assume Role Action",
        "description" : "Assume a role through STS\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS STS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Translate client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nIn the headers, you have to specify the `role-arn` / `ce-role-arn` property to specify the role ARN you want to assume.\n\nIn the headers, you have to specify the `role-session-name` / `ce-role-session-name` property to specify the role Session name you want to use.",
        "required" : [ "region" ],
        "type" : "object",
        "properties" : {
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the STS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:dns", "camel:kamelet", "camel:core", "camel:aws2-sts" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[role-arn]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsStsRoleArn",
                    "simple" : "${header[role-arn]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-role-arn]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsStsRoleArn",
                    "simple" : "${header[ce-role-arn]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[role-session-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsStsRoleSessionName",
                    "simple" : "${header[role-session-name]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-role-session-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsStsRoleSessionName",
                    "simple" : "${header[ce-role-session-name]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-sts://default",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "operation" : "assumeRole",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS STS Assume Role Action",
      "description" : "Assume a role through STS\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS STS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Translate client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nIn the headers, you have to specify the `role-arn` / `ce-role-arn` property to specify the role ARN you want to assume.\n\nIn the headers, you have to specify the `role-session-name` / `ce-role-session-name` property to specify the role Session name you want to use.",
      "required" : [ "region" ],
      "properties" : {
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the STS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        }
      }
    }
  },
  "aws-timestream-query-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-timestream-query-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5BV1MgVGltZXN0cmVhbTwvdGl0bGU+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjAlIiB5MT0iMTAwJSIgeDI9IjEwMCUiIHkyPSIwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMkUyN0FEIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM1MjdGRkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8Zz4KICAgICAgICA8cmVjdCBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9yZWN0PgogICAgICAgIDxwYXRoIGQ9Ik0xOTQuOTQyMjM3LDE2Ny4zMzc2IEwxOTkuMDQ3MTU1LDE2My4yIEwxNzkuOTk4ODEsMTYzLjIgTDE3NC45NjM2OTcsMTU4LjEyNDggTDE2NS40Mzk1MjQsMTY3LjcyNDggTDEzNy43OTcxOTksMTM5Ljg2MjQgTDE0Mi4yODYyNiwxMzUuMzM3NiBMMTY1LjQzOTUyNCwxNTguNjc1MiBMMTc0Ljk2MzY5NywxNDkuMDc1MiBMMTgyLjYyNzQ4MSwxNTYuOCBMMTk5LjA0NzE1NSwxNTYuOCBMMTk0Ljk0MjIzNywxNTIuNjYyNCBMMTk5LjQzMTI5NywxNDguMTM3NiBMMjExLjIsMTYwIEwxOTkuNDMxMjk3LDE3MS44NjI0IEwxOTQuOTQyMjM3LDE2Ny4zMzc2IFogTTE2NS40Mzk1MjQsMTE3LjA3NTIgTDE3MC40NzQ2MzYsMTEyIEwxODAuNTE2MjksMTEyIEwxOTAuMDI0NTg5LDEyMi42NjI0IEwxODUuMzAwNTk5LDEyNi45Mzc2IEwxNzcuNjg3NjEsMTE4LjQgTDE3My4xMDMzMDgsMTE4LjQgTDE2NS40Mzk1MjQsMTI2LjEyNDggTDE1Ny43NzU3MzksMTE4LjQgTDE0MC4wNDE3MjksMTE4LjQgTDE0MC4wNDE3MjksMTEyIEwxNjAuNDA0NDExLDExMiBMMTY1LjQzOTUyNCwxMTcuMDc1MiBaIE0xOTkuMDQ3MTU1LDExNS4yIEwxOTQuMDEyMDQzLDExNS4yIEwxOTQuMDEyMDQzLDEwOC44IEwyMDkuODg1NjY0LDEwOC44IEwyMDkuODg1NjY0LDEyNC44IEwyMDMuNTM2MjE1LDEyNC44IEwyMDMuNTM2MjE1LDExOS43MjQ4IEwxOTUuMzI2Mzc5LDEyOCBMMjAzLjUzNjIxNSwxMzYuMjc1MiBMMjAzLjUzNjIxNSwxMzEuMiBMMjA5Ljg4NTY2NCwxMzEuMiBMMjA5Ljg4NTY2NCwxNDcuMiBMMTk0LjAxMjA0MywxNDcuMiBMMTk0LjAxMjA0MywxNDAuOCBMMTk5LjA0NzE1NSwxNDAuOCBMMTkwLjgzNzMxOCwxMzIuNTI0OCBMMTgyLjYyNzQ4MSwxNDAuOCBMMTYzLjU3OTEzNSwxNDAuOCBMMTU4LjE1OTg4MSwxNDYuMjYyNCBMMTUzLjY3MDgyMSwxNDEuNzM3NiBMMTYwLjk1MDQ2NCwxMzQuNCBMMTc5Ljk5ODgxLDEzNC40IEwxOTkuMDQ3MTU1LDExNS4yIFogTTEzNy43OTcxOTksMTU3LjczNzYgTDE0NC4xNDY2NDgsMTUxLjMzNzYgTDE0OC42MzU3MDgsMTU1Ljg2MjQgTDE0Mi4yODYyNiwxNjIuMjYyNCBMMTM3Ljc5NzE5OSwxNTcuNzM3NiBaIE0xMDUuMTE5NzYyLDQ0LjggQzEzNi45MjczMjUsNDQuOCAxNTkuMDkwMDc1LDU0LjkxODQgMTU5LjA5MDA3NSw2NCBDMTU5LjA5MDA3NSw3My4wODE2IDEzNi45MjczMjUsODMuMiAxMDUuMTE5NzYyLDgzLjIgQzczLjMxMjE5OSw4My4yIDUxLjE0OTQ0ODYsNzMuMDgxNiA1MS4xNDk0NDg2LDY0IEM1MS4xNDk0NDg2LDU0LjkxODQgNzMuMzEyMTk5LDQ0LjggMTA1LjExOTc2Miw0NC44IEwxMDUuMTE5NzYyLDQ0LjggWiBNMTM2Ljg2NzAwNSwxMDUuNiBMMTMwLjUxNzU1NiwxMDUuNiBMMTMwLjUxNzU1NiwxNzYgQzEzMC41MTc1NTYsMTc3Ljc2NjQgMTMxLjkzNjY1OCwxNzkuMiAxMzMuNjkyMjgxLDE3OS4yIEwxNTkuMDkwMDc1LDE3OS4yIEwxNTkuMDkwMDc1LDE5MiBDMTU5LjA5MDA3NSwyMDEuMDgxNiAxMzYuOTI3MzI1LDIxMS4yIDEwNS4xMTk3NjIsMjExLjIgQzc0LjMyNDkzNiwyMTEuMiA1MS4xNDk0NDg2LDIwMC4wNjcyIDUxLjE0OTQ0ODYsMTkyLjg0OCBMNTEuMTQ5NDQ4NiwxNjguNTU2OCBDNjAuODU0NTgwOCwxNzYuOTA4OCA4MC44NTUzNDQsMTgyLjQgMTA1LjExOTc2MiwxODIuNCBDMTEzLjAwNTc3NywxODIuNCAxMjAuNjY2Mzg3LDE4MS43OTUyIDEyNy44NzkzNiwxODAuNTk4NCBMMTI2Ljg1MDc1LDE3NC4yODE2IEMxMTkuOTc0Mjk3LDE3NS40MjA4IDExMi42NjI5MDcsMTc2IDEwNS4xMTk3NjIsMTc2IEM3My4zMTIxOTksMTc2IDUxLjE0OTQ0ODYsMTY1Ljg4MTYgNTEuMTQ5NDQ4NiwxNTYuOCBMNTEuMTQ5NDQ4NiwxMjMuNzU2OCBDNjAuODU0NTgwOCwxMzIuMTA4OCA4MC44NTUzNDQsMTM3LjYgMTA1LjExOTc2MiwxMzcuNiBDMTEzLjAwNTc3NywxMzcuNiAxMjAuNjY2Mzg3LDEzNi45OTUyIDEyNy44NzkzNiwxMzUuNzk4NCBMMTI2Ljg1MDc1LDEyOS40ODE2IEMxMTkuOTc0Mjk3LDEzMC42MjA4IDExMi42NjI5MDcsMTMxLjIgMTA1LjExOTc2MiwxMzEuMiBDNzMuMzEyMTk5LDEzMS4yIDUxLjE0OTQ0ODYsMTIxLjA4MTYgNTEuMTQ5NDQ4NiwxMTIgTDUxLjE0OTQ0ODYsNzUuNzU2OCBDNjAuODU0NTgwOCw4NC4xMDg4IDgwLjg1NTM0NCw4OS42IDEwNS4xMTk3NjIsODkuNiBDMTI5LjM4NDE4LDg5LjYgMTQ5LjM4NDk0Myw4NC4xMDg4IDE1OS4wOTAwNzUsNzUuNzU2OCBMMTU5LjA5MDA3NSwxMDguOCBMMTY1LjQzOTUyNCwxMDguOCBMMTY1LjQzOTUyNCw2NCBDMTY1LjQzOTUyNCw0OS40MDQ4IDEzOS41MDgzNzYsMzguNCAxMDUuMTE5NzYyLDM4LjQgQzcwLjczMTE0ODIsMzguNCA0NC44LDQ5LjQwNDggNDQuOCw2NCBMNDQuOCwxOTIuODQ4IEM0NC44LDIwNi4wMzIgNzIuOTg4Mzc3MywyMTcuNiAxMDUuMTE5NzYyLDIxNy42IEMxMzkuNTA4Mzc2LDIxNy42IDE2NS40Mzk1MjQsMjA2LjU5NTIgMTY1LjQzOTUyNCwxOTIgTDE2NS40Mzk1MjQsMTc5LjIgTDIwOS44ODU2NjQsMTc5LjIgTDIwOS44ODU2NjQsMTcyLjggTDEzNi44NjcwMDUsMTcyLjggTDEzNi44NjcwMDUsMTA1LjYgWiIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Timestream",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Timestream Query Sink",
        "description" : "Query an AWS Timestream Database\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Timestream Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Timestream client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `query` / `ce-query`: as a Timestream Query",
        "required" : [ "region" ],
        "type" : "object",
        "properties" : {
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "If true, the CloudWatch client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
            "type" : "boolean",
            "default" : false
          },
          "uriEndpointOverride" : {
            "title" : "Overwrite Endpoint URI",
            "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
            "type" : "string"
          },
          "overrideEndpoint" : {
            "title" : "Endpoint Overwrite",
            "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-timestream", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[query]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsTimestreamQueryString",
                    "simple" : "${header[query]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-query]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsTimestreamQueryString",
                    "simple" : "${header[ce-query]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-timestream:query",
              "parameters" : {
                "accessKey" : "{{?accessKey}}",
                "secretKey" : "{{?secretKey}}",
                "region" : "{{region}}",
                "operation" : "query",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}",
                "uriEndpointOverride" : "{{?uriEndpointOverride}}",
                "overrideEndpoint" : "{{overrideEndpoint}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Timestream Query Sink",
      "description" : "Query an AWS Timestream Database\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Timestream Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Timestream client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nThe Kamelet expects the following headers to be set:\n\n- `query` / `ce-query`: as a Timestream Query",
      "required" : [ "region" ],
      "properties" : {
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "If true, the CloudWatch client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
          "default" : false
        },
        "uriEndpointOverride" : {
          "type" : "string",
          "title" : "Overwrite Endpoint URI",
          "description" : "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
        },
        "overrideEndpoint" : {
          "type" : "boolean",
          "title" : "Endpoint Overwrite",
          "description" : "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
          "default" : false
        }
      }
    }
  },
  "aws-translate-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "aws-translate-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTIyLjg4IDg0LjgxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMjIuODggODQuODEiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDt9PC9zdHlsZT48Zz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTE4LjI5LDEwLjljMi4zMSwyLjMxLDMuOSw1LjM0LDQuNDEsOC43MmMwLjE5LDEuMywwLjE4LDIuNDIsMC4xOCwzLjd2MjEuMDljMCwxLjE0LDAuMDMsMi4yNy0wLjA3LDMuNDEgYy0wLjQ0LDQuNzItMy4wOCw5LjA3LTcuMDYsMTEuNjRjLTUuMDQsMy4yNy0xMC44LDIuNTItMTYuODMsMi41MmMxLjk5LDUuNDgsNiwxMC41NCwxMC4zMywxNC4zN2wtMS42MiwzLjA0bC0wLjA1LTAuMDIgYy0xMC40OS0yLjctMjEuNTUtOC45LTI4LjI5LTE3LjRjLTQuMTctMC4wNC03LjU4LDAuMDEtMTEuNzQtMC41NWMtNC41OCwyLjc4LTEwLjAzLDQuNTktMTUuNDEsNC41OSBjLTMuNDksNC4zNS03LjU1LDguMDctMTIuMTksMTEuMTJjLTUuMDEsMy4yOS0xMC42Nyw1Ljc5LTE2Ljk4LDcuNDVjLTAuMzEsMC4wOC0wLjYyLDAuMTYtMC45NCwwLjIgYy0xLjA5LDAuMTItMi4yMy0wLjI3LTMuMDEtMS4xNWMtMS4yOC0xLjQ0LTEuMTQtMy42NSwwLjMtNC45M2M0LjA4LTMuNjEsNi4zNi03LjU3LDcuOTktMTIuNjdjLTcuOTYsMC0xNC42MiwwLjg0LTIxLjEtNS42MyBjLTguMDktOC4xLTYuMDgtMjYuOTMtNS42Ny0zOC4yM2MwLjEzLTMuNjMtMC4xMi02LjAyLDEuMzMtOS44MUMzLjc1LDcuNDIsNy42NSwzLjQzLDEyLjU4LDEuNDVjNC42MS0xLjg2LDkuNjItMS40LDE0LjQ4LTEuNCBoMjkuNTVjMi4xNywwLDMuOTQtMC4wMSw2LjE2LDAuNTFjMy43NCwwLjg2LDcuMTMsMi44NSw5Ljc4LDUuNzRsMzQuMTIsMC4wMUMxMTEuMTgsNi4zMSwxMTUuMDUsNy42NSwxMTguMjksMTAuOUwxMTguMjksMTAuOXogTTk5LjkzLDQyLjc5aC04Ljk3bC0xLjI0LDQuNDZoLTguMDRjMi42OS03LjYsNS4zOS0xNS4yMSw4LjA4LTIyLjgyYzAuOTctMi43NSwyLjA3LTcuMyw1LjYtNy4zYzMuNjYsMCw0Ljg3LDQuMTcsNS44OSw3LjA1IGw4LjE4LDIzLjA2aC04LjI0TDk5LjkzLDQyLjc5TDk5LjkzLDQyLjc5eiBNOTguMjgsMzYuOTRsLTIuODItOS43MmwtMi44LDkuNzJIOTguMjhMOTguMjgsMzYuOTR6IE04My4xNSw3MS42NmwtNS44My00LjgyIGwtNy4yOCw4Ljk5bC0xMC41Ny05LjE3bC00Ljk5LDUuNjRsMTEuNDUsOS4xMWw5LjI4LTAuOEw4My4xNSw3MS42Nkw4My4xNSw3MS42NnogTTc2LjY1LDkuODZjMy40MiwxMy4zMSw3LjA3LDM2LjY5LTIuMTEsNDguNTMgYzIuMTcsMC4wMyw0LjMxLDAuMDMsNi40OCwwLjAzYzQuOTIsNi41NCwxMS4yNCwxMS4xMSwxOC42OCwxNC40NWMwLjcsMC4zMSwxLjQxLDAuNjIsMi4xMiwwLjljLTIuNTMtMy4wNi00Ljc1LTYuNTktNi4xNi0xMC4zMyBjLTAuNjUtMS43My0xLTMuMjUtMS40NC01LjAyYzIuMDQsMCw0LjA0LDAuMDIsNi4wOSwwLjA5YzQuNTMsMC4xNiw5LjMsMC4yOSwxMy4wNy0xLjgyYzEuNjMtMC45MSwyLjk0LTIuMiwzLjk3LTMuNzUgYzAuOTEtMS4zOSwxLjU1LTIuOTgsMS44My00LjY3YzAuMjEtMS4yOCwwLjE0LTIuNjksMC4xNC0zLjk5VjIyLjYzYzAtMC41NywwLjAxLTEuMDktMC4wMy0xLjY2Yy0wLjIzLTIuOTMtMS41My01LjU5LTMuNTEtNy41NyBjLTEuOTItMS45My00LjQ5LTMuMjEtNy4zMy0zLjQ5Yy0wLjczLTAuMDctMS40NS0wLjA2LTIuMTgtMC4wNkw3Ni42NSw5Ljg2TDc2LjY1LDkuODZ6IE0yMS4yMSwxMy40OWgxMy40NFY5LjdoNnYzLjc5aDEzLjQ5djYuMjIgaC0yLjc3Yy0wLjIyLDEuNzUtMC42MywzLjQ5LTEuMTksNS4yMWwwLjAxLDBjLTAuNTcsMS43NS0xLjM1LDMuNTEtMi4yOCw1LjI1Yy0xLjU4LDIuOTUtMy42Miw1Ljc4LTUuOTgsOC41IGMzLjc4LDQuNTIsOC40Niw4LjQ1LDE0LjA1LDEyLjAzbC0zLjA5LDQuODFjLTUuODYtMy43Ni0xMC44NC03LjktMTQuOTMtMTIuNjdjLTMuNjYsMy41NC03LjgxLDYuODQtMTIuMTcsOS44NWwtMy4yNS00LjcgYzQuMzEtMi45OCw4LjQtNi4yNCwxMS45Mi05LjcxYy0zLjI1LTQuNzUtNS43My0xMC4wOC03LjQ1LTE2LjIxbDUuNTEtMS41NGMxLjQxLDUuMDMsMy4zOSw5LjQ1LDUuOTMsMTMuNDEgYzEuNzMtMi4xLDMuMjMtNC4yNSw0LjQyLTYuNDZjMC43NS0xLjQsMS4zOS0yLjg2LDEuODgtNC4zNWwwLjAxLDB2MGMwLjM3LTEuMTEsMC42NS0yLjI2LDAuODQtMy40MkgyMS4yMVYxMy40OUwyMS4yMSwxMy40OXoiLz48L2c+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "AWS Translate",
        "camel.apache.org/kamelet.namespace" : "AWS"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "AWS Translate Action",
        "description" : "Translate a text in a specific language.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Translate Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Translate client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
        "required" : [ "region", "sourceLanguage", "targetLanguage" ],
        "type" : "object",
        "properties" : {
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from AWS.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "region" : {
            "title" : "AWS Region",
            "description" : "The AWS region to access.",
            "type" : "string",
            "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
          },
          "sourceLanguage" : {
            "title" : "Source Language",
            "description" : "The source language of the translating text.",
            "type" : "string",
            "example" : "it",
            "enum" : [ "ar", "zh", "zh-TW", "cs", "da", "nl", "en", "fi", "fr", "de", "he", "hi", "id", "it", "ja", "ko", "ms", "no", "fa", "pl", "pt", "ru", "es", "sv", "tr" ]
          },
          "targetLanguage" : {
            "title" : "Target Language",
            "description" : "The target language of the translating text.",
            "type" : "string",
            "example" : "it",
            "enum" : [ "ar", "zh", "zh-TW", "cs", "da", "nl", "en", "fi", "fr", "de", "he", "hi", "id", "it", "ja", "ko", "ms", "no", "fa", "pl", "pt", "ru", "es", "sv", "tr" ]
          },
          "useDefaultCredentialsProvider" : {
            "title" : "Default Credentials Provider",
            "description" : "Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:dns", "camel:kamelet", "camel:aws2-translate" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "aws2-translate://translate",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{region}}",
                "sourceLanguage" : "{{sourceLanguage}}",
                "targetLanguage" : "{{targetLanguage}}",
                "useDefaultCredentialsProvider" : "{{useDefaultCredentialsProvider}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "AWS Translate Action",
      "description" : "Translate a text in a specific language.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS Translate Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the Translate client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.",
      "required" : [ "region", "sourceLanguage", "targetLanguage" ],
      "properties" : {
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from AWS.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from AWS.",
          "format" : "password"
        },
        "region" : {
          "type" : "string",
          "title" : "AWS Region",
          "description" : "The AWS region to access.",
          "enum" : [ "ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global" ]
        },
        "sourceLanguage" : {
          "type" : "string",
          "title" : "Source Language",
          "description" : "The source language of the translating text.",
          "enum" : [ "ar", "zh", "zh-TW", "cs", "da", "nl", "en", "fi", "fr", "de", "he", "hi", "id", "it", "ja", "ko", "ms", "no", "fa", "pl", "pt", "ru", "es", "sv", "tr" ]
        },
        "targetLanguage" : {
          "type" : "string",
          "title" : "Target Language",
          "description" : "The target language of the translating text.",
          "enum" : [ "ar", "zh", "zh-TW", "cs", "da", "nl", "en", "fi", "fr", "de", "he", "hi", "id", "it", "ja", "ko", "ms", "no", "fa", "pl", "pt", "ru", "es", "sv", "tr" ]
        },
        "useDefaultCredentialsProvider" : {
          "type" : "boolean",
          "title" : "Default Credentials Provider",
          "description" : "Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
          "default" : false
        }
      }
    }
  },
  "azure-cosmosdb-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-cosmosdb-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJhIiBjeD0iLTEwNS4wMDYiIGN5PSItMTAuNDA5IiByPSI1Ljk1NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjAzNiAwIDAgMS4wMjcgMTE3LjczOSAxOS42NDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIuMTgzIiBzdG9wLWNvbG9yPSIjNWVhMGVmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDA3OGQ0Ii8+PC9yYWRpYWxHcmFkaWVudD48Y2xpcFBhdGggaWQ9ImIiPjxwYXRoIGQ9Ik0xNC45NjkgNy41M2E2LjEzNyA2LjEzNyAwIDExLTcuMzk1LTQuNTQzIDYuMTM3IDYuMTM3IDAgMDE3LjM5NSA0LjU0M3oiIGZpbGw9Im5vbmUiLz48L2NsaXBQYXRoPjwvZGVmcz48cGF0aCBkPSJNMi45NTQgNS4yNjZhLjE3NS4xNzUgMCAwMS0uMTc2LS4xNzZBMi4wMTIgMi4wMTIgMCAwMC43NjkgMy4wODFhLjE3Ni4xNzYgMCAwMS0uMTc2LS4xNzUuMTc2LjE3NiAwIDAxLjE3Ni0uMTc2QTIuMDEyIDIuMDEyIDAgMDAyLjc3OC43MmEuMTc1LjE3NSAwIDAxLjE3Ni0uMTc2LjE3NS4xNzUgMCAwMS4xNzYuMTc2IDIuMDEyIDIuMDEyIDAgMDAyLjAwOSAyLjAwOS4xNzUuMTc1IDAgMDEuMTc2LjE3Ni4xNzUuMTc1IDAgMDEtLjE3Ni4xNzZBMi4wMTEgMi4wMTEgMCAwMDMuMTMgNS4wOWEuMTc3LjE3NyAwIDAxLS4xNzYuMTc2ek0xNS42MTEgMTcuNDU2YS4xNDEuMTQxIDAgMDEtLjE0MS0uMTQxIDEuNjA5IDEuNjA5IDAgMDAtMS42MDctMS42MDcuMTQxLjE0MSAwIDAxLS4xNDEtLjE0LjE0MS4xNDEgMCAwMS4xNDEtLjE0MSAxLjYwOCAxLjYwOCAwIDAwMS42MDctMS42MDcuMTQxLjE0MSAwIDAxLjE0MS0uMTQxLjE0MS4xNDEgMCAwMS4xNDEuMTQxIDEuNjA4IDEuNjA4IDAgMDAxLjYwNyAxLjYwNy4xNDEuMTQxIDAgMTEwIC4yODIgMS42MDkgMS42MDkgMCAwMC0xLjYwNyAxLjYwNy4xNDEuMTQxIDAgMDEtLjE0MS4xNHoiIGZpbGw9IiM1MGU2ZmYiLz48cGF0aCBkPSJNMTQuOTY5IDcuNTNhNi4xMzcgNi4xMzcgMCAxMS03LjM5NS00LjU0MyA2LjEzNyA2LjEzNyAwIDAxNy4zOTUgNC41NDN6IiBmaWxsPSJ1cmwoI2EpIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2IpIiBmaWxsPSIjZjJmMmYyIj48cGF0aCBkPSJNNS43MDkgMTMuMTE1YTEuNjM4IDEuNjM4IDAgMTAuMDA1LTMuMjc1IDEuMzA3IDEuMzA3IDAgMDAuMDA3LS4xNEExLjY1MSAxLjY1MSAwIDAwNC4wNiA4LjA2NEgyLjgzMmE2LjI1MSA2LjI1MSAwIDAwMS41OTUgNS4wNTF6TTE1LjA0NSA3LjgxNWMwLS4wMTUgMC0uMDMtLjAwNy0uMDQ0YTUuOTc4IDUuOTc4IDAgMDAtMS40MDYtMi44OCAxLjgyNSAxLjgyNSAwIDAwLS4yODktLjA5IDEuODA2IDEuODA2IDAgMDAtMi4zIDEuNjYzIDIgMiAwIDAwLS4yLS4wMTMgMS43MzcgMS43MzcgMCAwMC0uNTgxIDMuMzc0IDEuNDUxIDEuNDUxIDAgMDAuNTQxLjFoMi4wM2ExMy40NTMgMTMuNDUzIDAgMDAyLjIxMi0yLjExeiIvPjwvZz48cGF0aCBkPSJNMTcuMTkxIDMuODMyYy0uNjI5LTEuMDQ3LTIuMS0xLjQ1NS00LjE1NS0xLjE0OWExNC42MDYgMTQuNjA2IDAgMDAtMi4wODIuNDUyIDYuNDU2IDYuNDU2IDAgMDExLjUyOC43NjdjLjI0MS0uMDUzLjQ4My0uMTE2LjcxNS0uMTUxYTcuNDkgNy40OSAwIDAxMS4xMDMtLjA4OSAyLjE4OCAyLjE4OCAwIDAxMS45NTkuNzI1Yy4zODMuNjM4LjA2IDEuNzI5LS44ODYgM2ExNi43MjMgMTYuNzIzIDAgMDEtNC43NDkgNC4wNTFBMTYuNzU4IDE2Ljc1OCAwIDAxNC44IDEzLjdjLTEuNTY0LjIzNC0yLjY4MiAwLTMuMDY1LS42MzZzLS4wNi0xLjczLjg4Ni0yLjk5NWMuMTE3LS4xNTcuMTQ2LS4yMzQuMjc5LS4zOTJhNi4yNTIgNi4yNTIgMCAwMS4wMjYtMS42MyAxMS41NTIgMTEuNTUyIDAgMDAtMS4xNyAxLjM3MkMuNTE3IDExLjA3Ni4xODEgMTIuNTY2LjgwOSAxMy42MTNhMy4xNjUgMy4xNjUgMCAwMDIuOSAxLjI0OSA4LjQzNCA4LjQzNCAwIDAwMS4yNTEtLjEgMTcuODU1IDE3Ljg1NSAwIDAwNi4yMTktMi40QTE3LjgwOCAxNy44MDggMCAwMDE2LjI0IDguMDNjMS4yNDMtMS42NjEgMS41NzktMy4xNS45NTEtNC4xOTh6IiBmaWxsPSIjNTBlNmZmIi8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure CosmosDB",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure CosmosDB Sink",
        "description" : "Send Data to an Azure CosmosDB instance\n\nIn the headers, you can optionally set the `itemPartitionKey` / `ce-itemPartitionKey` property to specify the partition key for a specific item.\n\nIf you do not set the property in the header, you'll need to use the static property itemPartitonKey.\n\nThere are two different mechanism of authentication `SHARED_ACCOUNT_KEY` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `SHARED_ACCOUNT_KEY` accountKey property will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
        "required" : [ "databaseName", "containerName", "databaseEndpoint" ],
        "type" : "object",
        "properties" : {
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The Azure Cosmos database name.",
            "type" : "string"
          },
          "containerName" : {
            "title" : "Container Name",
            "description" : "The Azure Cosmos container name.",
            "type" : "string"
          },
          "accountKey" : {
            "title" : "Account Key",
            "description" : "The Azure Cosmos account Key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "databaseEndpoint" : {
            "title" : "Database Endpoint",
            "description" : "Sets the Azure Cosmos database endpoint the component will connect to.",
            "type" : "string"
          },
          "itemPartitionKey" : {
            "title" : "Item Partition Key",
            "description" : "Represents a partition key value in the Azure Cosmos DB database service. A partition key identifies the partition where the item is stored in.",
            "type" : "string"
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
            "default" : "SHARED_ACCOUNT_KEY"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:azure-cosmosdb", "camel:kamelet", "camel:jackson", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${propertiesExist:!itemPartitionKey}",
                "steps" : [ {
                  "choice" : {
                    "when" : [ {
                      "simple" : "${header[itemPartitionKey]}",
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelAzureCosmosDbItemPartitionKey",
                          "simple" : "${header[itemPartitionKey]}"
                        }
                      } ]
                    }, {
                      "simple" : "${header[ce-itemPartitionKey]}",
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelAzureCosmosDbItemPartitionKey",
                          "simple" : "${header[ce-itemPartitionKey]}"
                        }
                      } ]
                    } ]
                  }
                } ]
              } ]
            }
          }, {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "azure-cosmosdb:{{databaseName}}/{{containerName}}",
              "parameters" : {
                "accountKey" : "{{?accountKey}}",
                "databaseEndpoint" : "{{databaseEndpoint}}",
                "itemPartitionKey" : "{{?itemPartitionKey}}",
                "operation" : "createItem",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure CosmosDB Sink",
      "description" : "Send Data to an Azure CosmosDB instance\n\nIn the headers, you can optionally set the `itemPartitionKey` / `ce-itemPartitionKey` property to specify the partition key for a specific item.\n\nIf you do not set the property in the header, you'll need to use the static property itemPartitonKey.\n\nThere are two different mechanism of authentication `SHARED_ACCOUNT_KEY` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `SHARED_ACCOUNT_KEY` accountKey property will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
      "required" : [ "databaseName", "containerName", "databaseEndpoint" ],
      "properties" : {
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The Azure Cosmos database name."
        },
        "containerName" : {
          "type" : "string",
          "title" : "Container Name",
          "description" : "The Azure Cosmos container name."
        },
        "accountKey" : {
          "type" : "string",
          "title" : "Account Key",
          "description" : "The Azure Cosmos account Key.",
          "format" : "password"
        },
        "databaseEndpoint" : {
          "type" : "string",
          "title" : "Database Endpoint",
          "description" : "Sets the Azure Cosmos database endpoint the component will connect to."
        },
        "itemPartitionKey" : {
          "type" : "string",
          "title" : "Item Partition Key",
          "description" : "Represents a partition key value in the Azure Cosmos DB database service. A partition key identifies the partition where the item is stored in."
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        }
      }
    }
  },
  "azure-cosmosdb-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-cosmosdb-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJhIiBjeD0iLTEwNS4wMDYiIGN5PSItMTAuNDA5IiByPSI1Ljk1NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjAzNiAwIDAgMS4wMjcgMTE3LjczOSAxOS42NDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIuMTgzIiBzdG9wLWNvbG9yPSIjNWVhMGVmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDA3OGQ0Ii8+PC9yYWRpYWxHcmFkaWVudD48Y2xpcFBhdGggaWQ9ImIiPjxwYXRoIGQ9Ik0xNC45NjkgNy41M2E2LjEzNyA2LjEzNyAwIDExLTcuMzk1LTQuNTQzIDYuMTM3IDYuMTM3IDAgMDE3LjM5NSA0LjU0M3oiIGZpbGw9Im5vbmUiLz48L2NsaXBQYXRoPjwvZGVmcz48cGF0aCBkPSJNMi45NTQgNS4yNjZhLjE3NS4xNzUgMCAwMS0uMTc2LS4xNzZBMi4wMTIgMi4wMTIgMCAwMC43NjkgMy4wODFhLjE3Ni4xNzYgMCAwMS0uMTc2LS4xNzUuMTc2LjE3NiAwIDAxLjE3Ni0uMTc2QTIuMDEyIDIuMDEyIDAgMDAyLjc3OC43MmEuMTc1LjE3NSAwIDAxLjE3Ni0uMTc2LjE3NS4xNzUgMCAwMS4xNzYuMTc2IDIuMDEyIDIuMDEyIDAgMDAyLjAwOSAyLjAwOS4xNzUuMTc1IDAgMDEuMTc2LjE3Ni4xNzUuMTc1IDAgMDEtLjE3Ni4xNzZBMi4wMTEgMi4wMTEgMCAwMDMuMTMgNS4wOWEuMTc3LjE3NyAwIDAxLS4xNzYuMTc2ek0xNS42MTEgMTcuNDU2YS4xNDEuMTQxIDAgMDEtLjE0MS0uMTQxIDEuNjA5IDEuNjA5IDAgMDAtMS42MDctMS42MDcuMTQxLjE0MSAwIDAxLS4xNDEtLjE0LjE0MS4xNDEgMCAwMS4xNDEtLjE0MSAxLjYwOCAxLjYwOCAwIDAwMS42MDctMS42MDcuMTQxLjE0MSAwIDAxLjE0MS0uMTQxLjE0MS4xNDEgMCAwMS4xNDEuMTQxIDEuNjA4IDEuNjA4IDAgMDAxLjYwNyAxLjYwNy4xNDEuMTQxIDAgMTEwIC4yODIgMS42MDkgMS42MDkgMCAwMC0xLjYwNyAxLjYwNy4xNDEuMTQxIDAgMDEtLjE0MS4xNHoiIGZpbGw9IiM1MGU2ZmYiLz48cGF0aCBkPSJNMTQuOTY5IDcuNTNhNi4xMzcgNi4xMzcgMCAxMS03LjM5NS00LjU0MyA2LjEzNyA2LjEzNyAwIDAxNy4zOTUgNC41NDN6IiBmaWxsPSJ1cmwoI2EpIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2IpIiBmaWxsPSIjZjJmMmYyIj48cGF0aCBkPSJNNS43MDkgMTMuMTE1YTEuNjM4IDEuNjM4IDAgMTAuMDA1LTMuMjc1IDEuMzA3IDEuMzA3IDAgMDAuMDA3LS4xNEExLjY1MSAxLjY1MSAwIDAwNC4wNiA4LjA2NEgyLjgzMmE2LjI1MSA2LjI1MSAwIDAwMS41OTUgNS4wNTF6TTE1LjA0NSA3LjgxNWMwLS4wMTUgMC0uMDMtLjAwNy0uMDQ0YTUuOTc4IDUuOTc4IDAgMDAtMS40MDYtMi44OCAxLjgyNSAxLjgyNSAwIDAwLS4yODktLjA5IDEuODA2IDEuODA2IDAgMDAtMi4zIDEuNjYzIDIgMiAwIDAwLS4yLS4wMTMgMS43MzcgMS43MzcgMCAwMC0uNTgxIDMuMzc0IDEuNDUxIDEuNDUxIDAgMDAuNTQxLjFoMi4wM2ExMy40NTMgMTMuNDUzIDAgMDAyLjIxMi0yLjExeiIvPjwvZz48cGF0aCBkPSJNMTcuMTkxIDMuODMyYy0uNjI5LTEuMDQ3LTIuMS0xLjQ1NS00LjE1NS0xLjE0OWExNC42MDYgMTQuNjA2IDAgMDAtMi4wODIuNDUyIDYuNDU2IDYuNDU2IDAgMDExLjUyOC43NjdjLjI0MS0uMDUzLjQ4My0uMTE2LjcxNS0uMTUxYTcuNDkgNy40OSAwIDAxMS4xMDMtLjA4OSAyLjE4OCAyLjE4OCAwIDAxMS45NTkuNzI1Yy4zODMuNjM4LjA2IDEuNzI5LS44ODYgM2ExNi43MjMgMTYuNzIzIDAgMDEtNC43NDkgNC4wNTFBMTYuNzU4IDE2Ljc1OCAwIDAxNC44IDEzLjdjLTEuNTY0LjIzNC0yLjY4MiAwLTMuMDY1LS42MzZzLS4wNi0xLjczLjg4Ni0yLjk5NWMuMTE3LS4xNTcuMTQ2LS4yMzQuMjc5LS4zOTJhNi4yNTIgNi4yNTIgMCAwMS4wMjYtMS42MyAxMS41NTIgMTEuNTUyIDAgMDAtMS4xNyAxLjM3MkMuNTE3IDExLjA3Ni4xODEgMTIuNTY2LjgwOSAxMy42MTNhMy4xNjUgMy4xNjUgMCAwMDIuOSAxLjI0OSA4LjQzNCA4LjQzNCAwIDAwMS4yNTEtLjEgMTcuODU1IDE3Ljg1NSAwIDAwNi4yMTktMi40QTE3LjgwOCAxNy44MDggMCAwMDE2LjI0IDguMDNjMS4yNDMtMS42NjEgMS41NzktMy4xNS45NTEtNC4xOTh6IiBmaWxsPSIjNTBlNmZmIi8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure CosmosDB",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure CosmosDB Source",
        "description" : "Consume Changes from a CosmosDB instance.\n\nThere are two different mechanism of authentication `SHARED_ACCOUNT_KEY` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `SHARED_ACCOUNT_KEY` accountKey property will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
        "required" : [ "databaseName", "containerName", "databaseEndpoint" ],
        "type" : "object",
        "properties" : {
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The Azure Cosmos database name.",
            "type" : "string"
          },
          "containerName" : {
            "title" : "Container Name",
            "description" : "The Azure Cosmos container name.",
            "type" : "string"
          },
          "accountKey" : {
            "title" : "Account Key",
            "description" : "The Azure Cosmos account Key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "leaseDatabaseName" : {
            "title" : "Lease Database Name",
            "description" : "Sets the lease container which acts as a state storage and coordinates processing the change feed across multiple workers.",
            "type" : "string"
          },
          "leaseContainerName" : {
            "title" : "Lease Container Name",
            "description" : "Sets the lease database where the leaseContainerName will be stored.",
            "type" : "string"
          },
          "createLeaseDatabaseIfNotExists" : {
            "title" : "Autocreate Lease Database",
            "description" : "Sets if the component should create Cosmos lease database for the consumer automatically in case it doesn’t exist in Cosmos account.",
            "type" : "boolean",
            "default" : false
          },
          "createLeaseContainerIfNotExists" : {
            "title" : "Autocreate Lease Container",
            "description" : "Sets if the component should create Cosmos lease container for the consumer automatically in case it doesn’t exist in Cosmos database.",
            "type" : "boolean",
            "default" : false
          },
          "databaseEndpoint" : {
            "title" : "Database Endpoint",
            "description" : "Sets the Azure Cosmos database endpoint the component will connect to.",
            "type" : "string"
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
            "default" : "SHARED_ACCOUNT_KEY"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:azure-cosmosdb", "camel:kamelet", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "azure-cosmosdb:{{databaseName}}/{{containerName}}",
          "parameters" : {
            "leaseDatabaseName" : "{{?leaseDatabaseName}}",
            "leaseContainerName" : "{{?leaseContainerName}}",
            "accountKey" : "{{?accountKey}}",
            "createLeaseDatabaseIfNotExists" : "{{createLeaseDatabaseIfNotExists}}",
            "createLeaseContainerIfNotExists" : "{{createLeaseContainerIfNotExists}}",
            "databaseEndpoint" : "{{databaseEndpoint}}",
            "credentialType" : "{{credentialType}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure CosmosDB Source",
      "description" : "Consume Changes from a CosmosDB instance.\n\nThere are two different mechanism of authentication `SHARED_ACCOUNT_KEY` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `SHARED_ACCOUNT_KEY` accountKey property will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
      "required" : [ "databaseName", "containerName", "databaseEndpoint" ],
      "properties" : {
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The Azure Cosmos database name."
        },
        "containerName" : {
          "type" : "string",
          "title" : "Container Name",
          "description" : "The Azure Cosmos container name."
        },
        "accountKey" : {
          "type" : "string",
          "title" : "Account Key",
          "description" : "The Azure Cosmos account Key.",
          "format" : "password"
        },
        "leaseDatabaseName" : {
          "type" : "string",
          "title" : "Lease Database Name",
          "description" : "Sets the lease container which acts as a state storage and coordinates processing the change feed across multiple workers."
        },
        "leaseContainerName" : {
          "type" : "string",
          "title" : "Lease Container Name",
          "description" : "Sets the lease database where the leaseContainerName will be stored."
        },
        "createLeaseDatabaseIfNotExists" : {
          "type" : "boolean",
          "title" : "Autocreate Lease Database",
          "description" : "Sets if the component should create Cosmos lease database for the consumer automatically in case it doesn’t exist in Cosmos account.",
          "default" : false
        },
        "createLeaseContainerIfNotExists" : {
          "type" : "boolean",
          "title" : "Autocreate Lease Container",
          "description" : "Sets if the component should create Cosmos lease container for the consumer automatically in case it doesn’t exist in Cosmos database.",
          "default" : false
        },
        "databaseEndpoint" : {
          "type" : "string",
          "title" : "Database Endpoint",
          "description" : "Sets the Azure Cosmos database endpoint the component will connect to."
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        }
      }
    }
  },
  "azure-eventhubs-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-eventhubs-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9Ii0uMDc1IC0uMTc0IDE1OC40IDE2My4xMDEiIHdpZHRoPSIyNDM5IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiMwMDZmZDQiPjxwYXRoIGQ9Im02LjIyNS4wMjZoMTQ2LjZjMS4zIDAgMy0uMiA0LjEuNS45LjYuOCAxLjUuOCAyLjR2MzEuOGMwIC45LS4xIDEuOC0uOCAyLjQtLjguOC0xLjcuOC0yLjguOGgtMTQuMWMtMS4yIDAtMi40LS4xLTMuMi0xLS43LS44LS43LTEuOS0uNy0yLjl2LTEyLjVoLTExNHYxMi44YzAgMS0uMSAyLS44IDIuOC0uOC44LTEuOC44LTIuOC44aC0xNC44Yy0xIDAtMiAwLTIuOC0uOC0uOC0uOC0uOC0xLjctLjktMi44di0yOC44YzAtMS4xLS4xLTIuMy4xLTMuNC4yLTEgMS4xLTEuOCAyLjEtMiAxLjQtLjIgMi43LS4xIDQtLjF6Ii8+PHBhdGggZD0ibTM2LjYyNSAzNy42MjdoMTkuNGMxLjIgMCAyLjYuMSAzLjQgMS4xLjcuOC43IDEuOC43IDIuOHYxNC40YzAgMS4xIDAgMi4xLS44IDMtLjguOC0xLjkuOC0zIC44aC0xNy43Yy0xLjMgMC0yLjcuMS0zLjktLjItMS4yLS41LTEuNy0xLjYtMS43LTIuOXYtMTUuMWMwLTEuMSAwLTIuMS43LTIuOS44LS45IDEuOS0xIDIuOS0xem0zOC4yIDE3LjJoMTkuOGMxIDAgMS45IDAgMi43LjdzLjkgMS42LjkgMi42djE0LjhjMCAxLjItLjQgMi4yLTEuNSAyLjgtMS4yLjUtMi44LjMtNC4xLjNoLTE3LjRjLTEuMSAwLTIuMSAwLTIuOS0uOHMtLjgtMS45LS44LTIuOXYtMTMuN2MwLTEuMS4xLTIuMS45LTIuOS42LS44IDEuNC0uOCAyLjQtLjl6bS0zNi4xIDE2aDE3LjdjMSAwIDEuOS4xIDIuNi44LjguOC44IDEuOS44IDIuOXYxNC4xYzAgMS0uMSAxLjgtLjggMi41LS44LjgtMS44LjgtMi45LjhoLTE5LjRjLTEgMC0xLjkgMC0yLjctLjdzLS45LTEuNi0xLTIuNnYtMTQuMWMwLTEuMSAwLTIuMi45LTMgMS4xLTEgMy4zLS42IDQuOC0uN3ptNzMuOSAwaDIwLjFjMSAwIDEuOS4xIDIuNi44LjkuOC44IDEuOS44IDN2MTQuMWMwIDEtLjEgMS45LS45IDIuNi0uOC44LTEuOC44LTIuOS44aC0xNy4xYy0xLjQgMC0yLjkuMS00LjItLjItMS4yLS41LTEuNy0xLjYtMS43LTIuOHYtMTQuNGMwLTEuMSAwLTIgLjgtMi45LjctLjggMS42LTEgMi41LTF6bS0zNy44IDE2LjRoMTkuOGMxIDAgMS45IDAgMi43LjdzLjkgMS43LjkgMi43djE0LjhjMCAxLjEtLjQgMi0xLjMgMi42LTEuMi42LTIuOS40LTQuMy40aC0xNy40Yy0xLjEgMC0yLjEgMC0yLjktLjhzLS44LTEuOC0uOS0yLjl2LTEzLjdjMC0xLjEgMC0yLjIuOC0yLjkuNy0uOCAxLjYtLjggMi42LS45em0tMzYuMSAxNmgxNy44YzEgMCAxLjkuMSAyLjYuOXMuNyAxLjcuNyAyLjd2MTQuMWMwIDEgMCAxLjktLjcgMi43cy0xLjcuOS0yLjcuOWgtMTkuOGMtMS4xIDAtMi4yIDAtMi45LTEtLjctLjktLjctMS45LS43LTN2LTE0LjFjMC0xLjMuNS0yLjQgMS43LTIuOSAxLjItLjQgMi43LS4yIDQtLjN6bS0zNC41IDIxLjZoMTQuNGMxLjEgMCAyLjIuMSAzIDEgLjcuOC42IDEuNy43IDIuN3YxMi43aDExNC40di0xMi40YzAtMSAwLTIgLjgtMi44LjktLjkgMS45LS45IDMuMS0uOWgxMy40YzEgMCAyLjIgMCAzIC42LjkuNyAxLjMgMS45IDEuMyAzdjMwLjVjMCAxLjEtLjEgMi0uOSAyLjctMSAxLTIuOC42LTQuMS43aC0xNDkuM2MtLjkgMC0xLjctLjEtMi4zLS43LS44LS43LS45LTEuNy0uOS0yLjd2LTMwLjhjMC0xLjIuMi0yLjMgMS4xLTMuMS41LS41IDEuNC0uNCAyLjMtLjV6Ii8+PC9nPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Eventhubs",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Eventhubs Sink",
        "description" : "Send events to Azure Event Hubs.\n\nThe Kamelet checks for the `partition-id` / `ce-partition-id` header which is an identifier of the Event Hub partition that the event will be sent to. If the identifier is not specified, the Event Hubs service will be responsible for routing events that are sent to an available partition.\n   \nA header is optional. If the header is not set, the partition is assigned by Event Hubs.\n\nThere are two different mechanism of authentication `CONNECTION_STRING` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `CONNECTION_STRING` sharedAccessName and sharedAccessKey properties will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
        "required" : [ "namespaceName", "eventhubName" ],
        "type" : "object",
        "properties" : {
          "namespaceName" : {
            "title" : "Eventhubs Namespace",
            "description" : "The Event Hubs namespace.",
            "type" : "string"
          },
          "eventhubName" : {
            "title" : "Eventhubs Name",
            "description" : "The Event Hub name.",
            "type" : "string"
          },
          "sharedAccessName" : {
            "title" : "Share Access Name",
            "description" : "The Event Hubs SAS key name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "sharedAccessKey" : {
            "title" : "Share Access Key",
            "description" : "The key for the Event Hubs SAS key name.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "CONNECTION_STRING", "AZURE_IDENTITY" ],
            "default" : "CONNECTION_STRING"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:azure-eventhubs", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition-id]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureEventHubsPartitionId",
                    "simple" : "${header[partition-id]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partition-id]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureEventHubsPartitionId",
                    "simple" : "${header[ce-partition-id]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "azure-eventhubs://{{namespaceName}}/{{eventhubName}}",
              "parameters" : {
                "sharedAccessName" : "{{?sharedAccessName}}",
                "sharedAccessKey" : "{{?sharedAccessKey}}",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Eventhubs Sink",
      "description" : "Send events to Azure Event Hubs.\n\nThe Kamelet checks for the `partition-id` / `ce-partition-id` header which is an identifier of the Event Hub partition that the event will be sent to. If the identifier is not specified, the Event Hubs service will be responsible for routing events that are sent to an available partition.\n   \nA header is optional. If the header is not set, the partition is assigned by Event Hubs.\n\nThere are two different mechanism of authentication `CONNECTION_STRING` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `CONNECTION_STRING` sharedAccessName and sharedAccessKey properties will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
      "required" : [ "namespaceName", "eventhubName" ],
      "properties" : {
        "namespaceName" : {
          "type" : "string",
          "title" : "Eventhubs Namespace",
          "description" : "The Event Hubs namespace."
        },
        "eventhubName" : {
          "type" : "string",
          "title" : "Eventhubs Name",
          "description" : "The Event Hub name."
        },
        "sharedAccessName" : {
          "type" : "string",
          "title" : "Share Access Name",
          "description" : "The Event Hubs SAS key name."
        },
        "sharedAccessKey" : {
          "type" : "string",
          "title" : "Share Access Key",
          "description" : "The key for the Event Hubs SAS key name.",
          "format" : "password"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "CONNECTION_STRING", "AZURE_IDENTITY" ],
          "default" : "CONNECTION_STRING"
        }
      }
    }
  },
  "azure-eventhubs-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-eventhubs-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9Ii0uMDc1IC0uMTc0IDE1OC40IDE2My4xMDEiIHdpZHRoPSIyNDM5IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiMwMDZmZDQiPjxwYXRoIGQ9Im02LjIyNS4wMjZoMTQ2LjZjMS4zIDAgMy0uMiA0LjEuNS45LjYuOCAxLjUuOCAyLjR2MzEuOGMwIC45LS4xIDEuOC0uOCAyLjQtLjguOC0xLjcuOC0yLjguOGgtMTQuMWMtMS4yIDAtMi40LS4xLTMuMi0xLS43LS44LS43LTEuOS0uNy0yLjl2LTEyLjVoLTExNHYxMi44YzAgMS0uMSAyLS44IDIuOC0uOC44LTEuOC44LTIuOC44aC0xNC44Yy0xIDAtMiAwLTIuOC0uOC0uOC0uOC0uOC0xLjctLjktMi44di0yOC44YzAtMS4xLS4xLTIuMy4xLTMuNC4yLTEgMS4xLTEuOCAyLjEtMiAxLjQtLjIgMi43LS4xIDQtLjF6Ii8+PHBhdGggZD0ibTM2LjYyNSAzNy42MjdoMTkuNGMxLjIgMCAyLjYuMSAzLjQgMS4xLjcuOC43IDEuOC43IDIuOHYxNC40YzAgMS4xIDAgMi4xLS44IDMtLjguOC0xLjkuOC0zIC44aC0xNy43Yy0xLjMgMC0yLjcuMS0zLjktLjItMS4yLS41LTEuNy0xLjYtMS43LTIuOXYtMTUuMWMwLTEuMSAwLTIuMS43LTIuOS44LS45IDEuOS0xIDIuOS0xem0zOC4yIDE3LjJoMTkuOGMxIDAgMS45IDAgMi43LjdzLjkgMS42LjkgMi42djE0LjhjMCAxLjItLjQgMi4yLTEuNSAyLjgtMS4yLjUtMi44LjMtNC4xLjNoLTE3LjRjLTEuMSAwLTIuMSAwLTIuOS0uOHMtLjgtMS45LS44LTIuOXYtMTMuN2MwLTEuMS4xLTIuMS45LTIuOS42LS44IDEuNC0uOCAyLjQtLjl6bS0zNi4xIDE2aDE3LjdjMSAwIDEuOS4xIDIuNi44LjguOC44IDEuOS44IDIuOXYxNC4xYzAgMS0uMSAxLjgtLjggMi41LS44LjgtMS44LjgtMi45LjhoLTE5LjRjLTEgMC0xLjkgMC0yLjctLjdzLS45LTEuNi0xLTIuNnYtMTQuMWMwLTEuMSAwLTIuMi45LTMgMS4xLTEgMy4zLS42IDQuOC0uN3ptNzMuOSAwaDIwLjFjMSAwIDEuOS4xIDIuNi44LjkuOC44IDEuOS44IDN2MTQuMWMwIDEtLjEgMS45LS45IDIuNi0uOC44LTEuOC44LTIuOS44aC0xNy4xYy0xLjQgMC0yLjkuMS00LjItLjItMS4yLS41LTEuNy0xLjYtMS43LTIuOHYtMTQuNGMwLTEuMSAwLTIgLjgtMi45LjctLjggMS42LTEgMi41LTF6bS0zNy44IDE2LjRoMTkuOGMxIDAgMS45IDAgMi43LjdzLjkgMS43LjkgMi43djE0LjhjMCAxLjEtLjQgMi0xLjMgMi42LTEuMi42LTIuOS40LTQuMy40aC0xNy40Yy0xLjEgMC0yLjEgMC0yLjktLjhzLS44LTEuOC0uOS0yLjl2LTEzLjdjMC0xLjEgMC0yLjIuOC0yLjkuNy0uOCAxLjYtLjggMi42LS45em0tMzYuMSAxNmgxNy44YzEgMCAxLjkuMSAyLjYuOXMuNyAxLjcuNyAyLjd2MTQuMWMwIDEgMCAxLjktLjcgMi43cy0xLjcuOS0yLjcuOWgtMTkuOGMtMS4xIDAtMi4yIDAtMi45LTEtLjctLjktLjctMS45LS43LTN2LTE0LjFjMC0xLjMuNS0yLjQgMS43LTIuOSAxLjItLjQgMi43LS4yIDQtLjN6bS0zNC41IDIxLjZoMTQuNGMxLjEgMCAyLjIuMSAzIDEgLjcuOC42IDEuNy43IDIuN3YxMi43aDExNC40di0xMi40YzAtMSAwLTIgLjgtMi44LjktLjkgMS45LS45IDMuMS0uOWgxMy40YzEgMCAyLjIgMCAzIC42LjkuNyAxLjMgMS45IDEuMyAzdjMwLjVjMCAxLjEtLjEgMi0uOSAyLjctMSAxLTIuOC42LTQuMS43aC0xNDkuM2MtLjkgMC0xLjctLjEtMi4zLS43LS44LS43LS45LTEuNy0uOS0yLjd2LTMwLjhjMC0xLjIuMi0yLjMgMS4xLTMuMS41LS41IDEuNC0uNCAyLjMtLjV6Ii8+PC9nPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Eventhubs",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Eventhubs Source",
        "description" : "Receive events from Azure Event Hubs.\n\nThere are two different mechanism of authentication `CONNECTION_STRING` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `CONNECTION_STRING` sharedAccessName and sharedAccessKey properties will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
        "required" : [ "namespaceName", "eventhubName", "blobAccountName", "blobAccessKey", "blobContainerName" ],
        "type" : "object",
        "properties" : {
          "namespaceName" : {
            "title" : "Eventhubs Namespace",
            "description" : "The Event Hubs namespace.",
            "type" : "string"
          },
          "eventhubName" : {
            "title" : "Eventhubs Name",
            "description" : "The Event Hub name.",
            "type" : "string"
          },
          "sharedAccessName" : {
            "title" : "Share Access Name",
            "description" : "The Event Hubs SAS key name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "sharedAccessKey" : {
            "title" : "Share Access Key",
            "description" : "The key for the Event Hubs SAS key name.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "blobAccountName" : {
            "title" : "Azure Storage Blob Account Name",
            "description" : "The name of the Storage Blob account.",
            "type" : "string"
          },
          "blobContainerName" : {
            "title" : "Azure Storage Blob Container Name",
            "description" : "The name of the Storage Blob container.",
            "type" : "string"
          },
          "blobAccessKey" : {
            "title" : "Azure Storage Blob Access Key",
            "description" : "The key for the Azure Storage Blob service that is associated with the Storage Blob account name.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "CONNECTION_STRING", "AZURE_IDENTITY" ],
            "default" : "CONNECTION_STRING"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/octet-stream"
        }
      },
      "dependencies" : [ "camel:azure-eventhubs", "camel:kamelet", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "azure-eventhubs://{{namespaceName}}/{{eventhubName}}",
          "parameters" : {
            "sharedAccessName" : "{{?sharedAccessName}}",
            "sharedAccessKey" : "{{?sharedAccessKey}}",
            "blobAccountName" : "{{blobAccountName}}",
            "blobAccessKey" : "{{blobAccessKey}}",
            "blobContainerName" : "{{blobContainerName}}",
            "credentialType" : "{{credentialType}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Eventhubs Source",
      "description" : "Receive events from Azure Event Hubs.\n\nThere are two different mechanism of authentication `CONNECTION_STRING` and `AZURE_IDENTITY`, you could specify with credentialType property. If you're using `CONNECTION_STRING` sharedAccessName and sharedAccessKey properties will be needed.\n\nIn case of `AZURE_IDENTITY` selection, the DefaultAzureCredential will attempt to authenticate via the following mechanisms in the following order enviroment, Workload Identity, Managed Identity, Azure Developer CLI, IntelliJ, Azure CLI and Azure Powershell. ",
      "required" : [ "namespaceName", "eventhubName", "blobAccountName", "blobAccessKey", "blobContainerName" ],
      "properties" : {
        "namespaceName" : {
          "type" : "string",
          "title" : "Eventhubs Namespace",
          "description" : "The Event Hubs namespace."
        },
        "eventhubName" : {
          "type" : "string",
          "title" : "Eventhubs Name",
          "description" : "The Event Hub name."
        },
        "sharedAccessName" : {
          "type" : "string",
          "title" : "Share Access Name",
          "description" : "The Event Hubs SAS key name."
        },
        "sharedAccessKey" : {
          "type" : "string",
          "title" : "Share Access Key",
          "description" : "The key for the Event Hubs SAS key name.",
          "format" : "password"
        },
        "blobAccountName" : {
          "type" : "string",
          "title" : "Azure Storage Blob Account Name",
          "description" : "The name of the Storage Blob account."
        },
        "blobContainerName" : {
          "type" : "string",
          "title" : "Azure Storage Blob Container Name",
          "description" : "The name of the Storage Blob container."
        },
        "blobAccessKey" : {
          "type" : "string",
          "title" : "Azure Storage Blob Access Key",
          "description" : "The key for the Azure Storage Blob service that is associated with the Storage Blob account name.",
          "format" : "password"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "CONNECTION_STRING", "AZURE_IDENTITY" ],
          "default" : "CONNECTION_STRING"
        }
      }
    }
  },
  "azure-functions-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-functions-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE4LjI0IDIxLjQ2IDY0IDY0IiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiPjxwYXRoIGQ9Ik04MS44MzcgNTMuODVjLjU4NS0uNTg1LjQ4Ny0xLjcgMC0yLjMwN2wtMy4wODctMy4wODctMTMuOC0xMy4zODZjLS41ODUtLjU4NS0xLjQ5NS0uNTg1LTIuMiAwLS41ODUuNTg1LS44MTIgMS43IDAgMi4zMDdsMTQuNSAxNC4xOThjLjU4NS41ODUuNTg1IDEuNyAwIDIuMzA3TDYyLjQ0IDY4LjU2OGMtLjU4NS41ODUtLjU4NSAxLjcgMCAyLjMwNy41ODUuNTg1IDEuNy40ODcgMi4yIDBsMTMuOC0xMy42OHptLTYzLjE5NCAwYy0uNTg1LS41ODUtLjQ4Ny0xLjcgMC0yLjMwN2wzLjA4Ny0zLjA4NyAxMy44LTEzLjM4NmMuNTg1LS41ODUgMS40OTUtLjU4NSAyLjIgMCAuNTg1LjU4NS44MTIgMS43IDAgMi4zMDdsLTE0LjIgMTQuMmMtLjU4NS41ODUtLjU4NSAxLjcgMCAyLjMwN2wxNC41IDE0LjY4NmMuNTg1LjU4NS41ODUgMS43IDAgMi4zMDctLjU4NS41ODUtMS43LjQ4Ny0yLjIgMEwyMS43MyA1Ny40eiIgZmlsbD0iIzM5OTljNiIvPjxwYXRoIGQ9Ik01Mi44MjMgNDMuODc1TDY1LjgyIDIzLjk2SDQ2LjMyNUwzNS44MyA1My41NmwxMi44LjA5Ny0xMC4wMDcgMjkuMzA3TDY2LjI0IDQzLjg3OHoiIGZpbGw9IiNmY2QxMTYiLz48cGF0aCBkPSJNNjYuMjQyIDQzLjg3NWgtMTMuNDJMNjUuODIgMjMuOTZINTUuNjE3TDQ0LjgzIDQ4LjU1NGwxMi44LjA5Ny0xOS4wMDcgMzQuM3oiIG9wYWNpdHk9Ii4zIiBmaWxsPSIjZmY4YzAwIi8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Functions",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Function Sink",
        "description" : "Forward data to an Azure Function.",
        "required" : [ "url" ],
        "type" : "object",
        "properties" : {
          "url" : {
            "title" : "URL",
            "description" : "The Azure Functions URL you want to send the data to.",
            "type" : "string",
            "example" : "https://azure-function-demo-12234.azurewebsites.net/api/httpexample",
            "pattern" : "^(https)://.*"
          },
          "method" : {
            "title" : "Method",
            "description" : "The HTTP method to use.",
            "type" : "string",
            "default" : "POST",
            "enum" : [ "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "PATCH" ]
          },
          "key" : {
            "title" : "Key",
            "description" : "A function-specific API key is required, if the authLevel of the function is FUNCTION or master key if the authLevel is ADMIN.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:vertx-http", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "removeHeader" : {
              "name" : "CamelHttpUri"
            }
          }, {
            "setHeader" : {
              "name" : "CamelHttpMethod",
              "constant" : "{{method}}"
            }
          }, {
            "to" : "vertx-http:{{url}}?code={{?key}}"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Function Sink",
      "description" : "Forward data to an Azure Function.",
      "required" : [ "url" ],
      "properties" : {
        "url" : {
          "type" : "string",
          "title" : "URL",
          "description" : "The Azure Functions URL you want to send the data to."
        },
        "method" : {
          "type" : "string",
          "title" : "Method",
          "description" : "The HTTP method to use.",
          "enum" : [ "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "PATCH" ],
          "default" : "POST"
        },
        "key" : {
          "type" : "string",
          "title" : "Key",
          "description" : "A function-specific API key is required, if the authLevel of the function is FUNCTION or master key if the authLevel is ADMIN.",
          "format" : "password"
        }
      }
    }
  },
  "azure-servicebus-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-servicebus-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgODEgODIiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNMS4zMzMgMEMuNTMzIDAgMCAuNTMzIDAgMS4zMzN2MTZjMCAuOC41MzMgMS4zMzMgMS4zMzMgMS4zMzNoOGMuOCAwIDEuMzMzLS41MzMgMS4zMzMtMS4zMzN2LTYuNjY2aDU4LjY2N3Y2LjY2N2MwIC44LjUzMyAxLjMzMyAxLjYgMS4zMzNoNy43MzNjLjggMCAxLjMzMy0uNTMzIDEuMzMzLTEuMzMzdi04LThDODAgLjUzMyA3OS40NjcgMCA3OC42NjcgMGgwSDEuMzMzem03Ny4zMzQgODBjLjggMCAxLjMzMy0uNTMzIDEuMzMzLTEuMzMzVjYyLjkzNGMwLS44LS41MzMtMS4zMzMtMS4zMzMtMS4zMzNoLTcuNzMzYy0uOCAwLTEuMzMzLjUzMy0xLjMzMyAxLjMzM3Y2LjRIMTAuNjY3di02LjY2N2MwLS44LS41MzMtMS4zMzMtMS42LTEuMzMzSDEuMzMzYy0uOCAwLTEuMzMzLjUzMy0xLjMzMyAxLjZ2MTUuNzMzQzAgNzkuNDY3LjUzMyA4MCAxLjMzMyA4MGg3Ny4zMzR6IiBmaWxsPSIjMDA3MmM2IiBzdHJva2U9Im5vbmUiLz48cGF0aCBkPSJNMjkuNTE5IDM2LjQ0N2wzLjQ1Mi0zLjQ1MiAyLjU1NiAyLjU1Ni0zLjQ1MiAzLjQ1MXptNS4wMDctNS4wMDhsMy40NTYtMy40NTYgMi41NiAyLjU2TDM3LjA4NiAzNHptNy41Ny0yLjQ2M2wtMi41Ni0yLjU0NCAzLjQyNC0zLjQyNCAyLjU2IDIuNTQ0ek0zOS41MzUgNTIuNWwyLjU2MS0yLjU2IDMuNDI0IDMuNDI2LTIuNTYxIDIuNTZ6bS0xLjU1MS0xLjU3MmwtMy40NTYtMy40NTYgMi41Ni0yLjU0NCAzLjQ1NiAzLjQ1NnptLTUuMDA4LTUuMDA4bC0zLjQ1Ni0zLjQ1NiAyLjU2LTIuNTQ0IDMuNDQgMy40NHoiIHN0cm9rZT0ibm9uZSIgZmlsbD0iI2I4ZDQzMiIvPjxwYXRoIGQ9Ik01Ny44MSAyNC4zOTVhNC40NCA0LjQ0IDAgMCAxLTMuMTU4IDEuMzA5IDQuNDMgNC40MyAwIDAgMS0zLjE1OC0xLjMwOWwtNi4wNTMtNi4wNTN2MTIuMzA2aDE4LjQyNFYxOC4zNDJsLTYuMDU0IDYuMDUzem0tMy4xNjEuNDA5YTMuNTQgMy41NCAwIDAgMCAyLjUyMy0xLjA0NWw2LjY5LTYuNjl2LS4zNTVINDUuNDM4di4zNTVsNi42OSA2LjY5YTMuNTQgMy41NCAwIDAgMCAyLjUyMiAxLjA0NXptMy4xNjEgMzEuMTVhNC40NCA0LjQ0IDAgMCAxLTMuMTU4IDEuMzA5IDQuNDMgNC40MyAwIDAgMS0zLjE1OC0xLjMwOWwtNi4wNTMtNi4wNTN2MTIuMzA2aDE4LjQyNFY0OS45MDFsLTYuMDU0IDYuMDUzem0tMy4xNjEuNDFhMy41NCAzLjU0IDAgMCAwIDIuNTIzLTEuMDQ1bDYuNjktNi42ODl2LS4zNTVINDUuNDM4di4zNTVsNi42OSA2LjY4OWEzLjU0IDMuNTQgMCAwIDAgMi41MjIgMS4wNDV6TTE5LjcxOCA0MC41OTljLTEuMzQ0IDEuMzQ0LTMuMTMzIDIuMDg1LTUuMDM1IDIuMDg1cy0zLjY5LS43NDEtNS4wMzUtMi4wODVMMCAzMC45NDl2MTkuNjEzaDI5LjM2NlYzMC45NDlsLTkuNjQ4IDkuNjV6bS01LjAzNS42NTJhNS42NSA1LjY1IDAgMCAwIDQuMDIyLTEuNjY2bDEwLjY2MS0xMC42NjF2LS41NjVIMHYuNTY2bDEwLjY2MSAxMC42NjFhNS42NiA1LjY2IDAgMCAwIDQuMDIyIDEuNjY0eiIgc3Ryb2tlPSJub25lIiBmaWxsPSIjNTliNGQ5Ii8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Servicebus",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Servicebus Sink",
        "description" : "Send Messages to Azure Servicebus.",
        "required" : [ "topicOrQueueName", "connectionString" ],
        "type" : "object",
        "properties" : {
          "topicOrQueueName" : {
            "title" : "Topic Or Queue Name",
            "description" : "Topic Or Queue Name for the Azure Servicebus instance",
            "type" : "string"
          },
          "connectionString" : {
            "title" : "Connection String",
            "description" : "Connection String for Azure Servicebus instance",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "serviceBusType" : {
            "title" : "Servicebus Type",
            "description" : "The service bus type of connection to execute. Queue is for typical queue option and topic for subscription based model.",
            "type" : "string",
            "default" : "queue",
            "enum" : [ "queue", "topic" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ],
            "default" : "CONNECTION_STRING"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/octet-stream"
        }
      },
      "dependencies" : [ "camel:azure-servicebus", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "azure-servicebus:{{topicOrQueueName}}",
              "parameters" : {
                "connectionString" : "{{connectionString}}",
                "serviceBusType" : "{{serviceBusType}}",
                "producerOperation" : "sendMessages",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Servicebus Sink",
      "description" : "Send Messages to Azure Servicebus.",
      "required" : [ "topicOrQueueName", "connectionString" ],
      "properties" : {
        "topicOrQueueName" : {
          "type" : "string",
          "title" : "Topic Or Queue Name",
          "description" : "Topic Or Queue Name for the Azure Servicebus instance"
        },
        "connectionString" : {
          "type" : "string",
          "title" : "Connection String",
          "description" : "Connection String for Azure Servicebus instance",
          "format" : "password"
        },
        "serviceBusType" : {
          "type" : "string",
          "title" : "Servicebus Type",
          "description" : "The service bus type of connection to execute. Queue is for typical queue option and topic for subscription based model.",
          "enum" : [ "queue", "topic" ],
          "default" : "queue"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ],
          "default" : "CONNECTION_STRING"
        }
      }
    }
  },
  "azure-servicebus-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-servicebus-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgODEgODIiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNMS4zMzMgMEMuNTMzIDAgMCAuNTMzIDAgMS4zMzN2MTZjMCAuOC41MzMgMS4zMzMgMS4zMzMgMS4zMzNoOGMuOCAwIDEuMzMzLS41MzMgMS4zMzMtMS4zMzN2LTYuNjY2aDU4LjY2N3Y2LjY2N2MwIC44LjUzMyAxLjMzMyAxLjYgMS4zMzNoNy43MzNjLjggMCAxLjMzMy0uNTMzIDEuMzMzLTEuMzMzdi04LThDODAgLjUzMyA3OS40NjcgMCA3OC42NjcgMGgwSDEuMzMzem03Ny4zMzQgODBjLjggMCAxLjMzMy0uNTMzIDEuMzMzLTEuMzMzVjYyLjkzNGMwLS44LS41MzMtMS4zMzMtMS4zMzMtMS4zMzNoLTcuNzMzYy0uOCAwLTEuMzMzLjUzMy0xLjMzMyAxLjMzM3Y2LjRIMTAuNjY3di02LjY2N2MwLS44LS41MzMtMS4zMzMtMS42LTEuMzMzSDEuMzMzYy0uOCAwLTEuMzMzLjUzMy0xLjMzMyAxLjZ2MTUuNzMzQzAgNzkuNDY3LjUzMyA4MCAxLjMzMyA4MGg3Ny4zMzR6IiBmaWxsPSIjMDA3MmM2IiBzdHJva2U9Im5vbmUiLz48cGF0aCBkPSJNMjkuNTE5IDM2LjQ0N2wzLjQ1Mi0zLjQ1MiAyLjU1NiAyLjU1Ni0zLjQ1MiAzLjQ1MXptNS4wMDctNS4wMDhsMy40NTYtMy40NTYgMi41NiAyLjU2TDM3LjA4NiAzNHptNy41Ny0yLjQ2M2wtMi41Ni0yLjU0NCAzLjQyNC0zLjQyNCAyLjU2IDIuNTQ0ek0zOS41MzUgNTIuNWwyLjU2MS0yLjU2IDMuNDI0IDMuNDI2LTIuNTYxIDIuNTZ6bS0xLjU1MS0xLjU3MmwtMy40NTYtMy40NTYgMi41Ni0yLjU0NCAzLjQ1NiAzLjQ1NnptLTUuMDA4LTUuMDA4bC0zLjQ1Ni0zLjQ1NiAyLjU2LTIuNTQ0IDMuNDQgMy40NHoiIHN0cm9rZT0ibm9uZSIgZmlsbD0iI2I4ZDQzMiIvPjxwYXRoIGQ9Ik01Ny44MSAyNC4zOTVhNC40NCA0LjQ0IDAgMCAxLTMuMTU4IDEuMzA5IDQuNDMgNC40MyAwIDAgMS0zLjE1OC0xLjMwOWwtNi4wNTMtNi4wNTN2MTIuMzA2aDE4LjQyNFYxOC4zNDJsLTYuMDU0IDYuMDUzem0tMy4xNjEuNDA5YTMuNTQgMy41NCAwIDAgMCAyLjUyMy0xLjA0NWw2LjY5LTYuNjl2LS4zNTVINDUuNDM4di4zNTVsNi42OSA2LjY5YTMuNTQgMy41NCAwIDAgMCAyLjUyMiAxLjA0NXptMy4xNjEgMzEuMTVhNC40NCA0LjQ0IDAgMCAxLTMuMTU4IDEuMzA5IDQuNDMgNC40MyAwIDAgMS0zLjE1OC0xLjMwOWwtNi4wNTMtNi4wNTN2MTIuMzA2aDE4LjQyNFY0OS45MDFsLTYuMDU0IDYuMDUzem0tMy4xNjEuNDFhMy41NCAzLjU0IDAgMCAwIDIuNTIzLTEuMDQ1bDYuNjktNi42ODl2LS4zNTVINDUuNDM4di4zNTVsNi42OSA2LjY4OWEzLjU0IDMuNTQgMCAwIDAgMi41MjIgMS4wNDV6TTE5LjcxOCA0MC41OTljLTEuMzQ0IDEuMzQ0LTMuMTMzIDIuMDg1LTUuMDM1IDIuMDg1cy0zLjY5LS43NDEtNS4wMzUtMi4wODVMMCAzMC45NDl2MTkuNjEzaDI5LjM2NlYzMC45NDlsLTkuNjQ4IDkuNjV6bS01LjAzNS42NTJhNS42NSA1LjY1IDAgMCAwIDQuMDIyLTEuNjY2bDEwLjY2MS0xMC42NjF2LS41NjVIMHYuNTY2bDEwLjY2MSAxMC42NjFhNS42NiA1LjY2IDAgMCAwIDQuMDIyIDEuNjY0eiIgc3Ryb2tlPSJub25lIiBmaWxsPSIjNTliNGQ5Ii8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Servicebus",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Servicebus Source",
        "description" : "Consume Messages from Azure Servicebus.\n\nThe subscribtion name parameter needs to be populated in case of consuming from a Topic.",
        "required" : [ "topicOrQueueName", "connectionString" ],
        "type" : "object",
        "properties" : {
          "topicOrQueueName" : {
            "title" : "Topic Or Queue Name",
            "description" : "Topic Or Queue Name for the Azure Servicebus instance",
            "type" : "string"
          },
          "connectionString" : {
            "title" : "Connection String",
            "description" : "Connection String for Azure Servicebus instance",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "serviceBusReceiveMode" : {
            "title" : "Servicebus Receive Mode",
            "description" : "Sets the receive mode for the receiver",
            "type" : "string",
            "default" : "PEEK_LOCK",
            "enum" : [ "PEEK_LOCK", "RECEIVE_AND_DELETE" ]
          },
          "subscriptionName" : {
            "title" : "Subscription Name",
            "description" : "Sets the name of the subscription in the topic to listen to. This parameter is mandatory in case of topic.",
            "type" : "string"
          },
          "serviceBusType" : {
            "title" : "Servicebus Type",
            "description" : "The service bus type of connection to execute. Queue is for typical queue option and topic for subscription based model.",
            "type" : "string",
            "default" : "queue",
            "enum" : [ "queue", "topic" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ],
            "default" : "CONNECTION_STRING"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/octet-stream"
        }
      },
      "dependencies" : [ "camel:azure-servicebus", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "azure-servicebus:{{topicOrQueueName}}",
          "parameters" : {
            "connectionString" : "{{connectionString}}",
            "serviceBusReceiveMode" : "{{serviceBusReceiveMode}}",
            "subscriptionName" : "{{?subscriptionName}}",
            "serviceBusType" : "{{serviceBusType}}",
            "credentialType" : "{{credentialType}}"
          },
          "steps" : [ {
            "setBody" : {
              "simple" : "${body.toBytes()}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Servicebus Source",
      "description" : "Consume Messages from Azure Servicebus.\n\nThe subscribtion name parameter needs to be populated in case of consuming from a Topic.",
      "required" : [ "topicOrQueueName", "connectionString" ],
      "properties" : {
        "topicOrQueueName" : {
          "type" : "string",
          "title" : "Topic Or Queue Name",
          "description" : "Topic Or Queue Name for the Azure Servicebus instance"
        },
        "connectionString" : {
          "type" : "string",
          "title" : "Connection String",
          "description" : "Connection String for Azure Servicebus instance",
          "format" : "password"
        },
        "serviceBusReceiveMode" : {
          "type" : "string",
          "title" : "Servicebus Receive Mode",
          "description" : "Sets the receive mode for the receiver",
          "enum" : [ "PEEK_LOCK", "RECEIVE_AND_DELETE" ],
          "default" : "PEEK_LOCK"
        },
        "subscriptionName" : {
          "type" : "string",
          "title" : "Subscription Name",
          "description" : "Sets the name of the subscription in the topic to listen to. This parameter is mandatory in case of topic."
        },
        "serviceBusType" : {
          "type" : "string",
          "title" : "Servicebus Type",
          "description" : "The service bus type of connection to execute. Queue is for typical queue option and topic for subscription based model.",
          "enum" : [ "queue", "topic" ],
          "default" : "queue"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ],
          "default" : "CONNECTION_STRING"
        }
      }
    }
  },
  "azure-storage-blob-append-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-blob-append-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny41NTggMHptLjIzNCA1Ny45NjRjMCAzLjM1My0yLjgwNSA2LjIyNy02LjA3OCA2LjIyN0gyOC41MmMtMy4yNzMgMC02LjA3OC0yLjg3NC02LjA3OC02LjIyN1YyMi4yNzZjMC0zLjM1MyAyLjgwNS02LjIyOCA2LjA3OC02LjIyOGgyOS45MjJsOS4zNTEgOS41ODF2MzIuMzM1ek00MS42MSA0Ni40NjdjMC0uNDc5LS4yMzQtLjcxOC0uMjM0LS45NThzLS4yMzQtLjQ3OS0uNDY3LS43MTgtLjIzNC0uMjQtLjQ2OC0uMjRoLS43MDFjLS40NjggMC0uNzAyIDAtLjkzNS4yNHMtLjQ2OC40NzktLjcwMS45NTgtLjIzNC45NTgtLjIzNCAxLjQzN3Y0LjU1MWMwIC43MTkuMjM0IDEuMTk3LjQ2OCAxLjQzNy4yMzQuNDc5LjQ2OC43MTkuNzAxLjcxOS4yMzQuMjQuNDY4LjI0LjkzNS4yNC4yMzQgMCAuNDY4IDAgLjcwMS0uMjRhLjUxLjUxIDAgMCAwIC40NjgtLjQ3OWMuMjM0LS4yNC4yMzQtLjQ3OS40NjctLjcxOCAwLS4yNC4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE5LjIzMy0xLjE5OHYtMy4xMTRjLS40NjctLjI0LS40NjctLjQ3OS0uNDY3LS45NTh6bTEwLjUyLTE4LjY4M2MwLS40NzktLjIzNC0uNzE4LS4yMzQtLjk1OHMtLjIzNC0uNDc5LS40NjgtLjcxOS0uMjM0LS4yNC0uNDY4LS4yNGgtLjcwMWMtLjQ2NyAwLS43MDEgMC0uOTM1LjI0cy0uNDY4LjQ3OS0uNzAyLjk1OC0uMjMzLjk1OC0uMjMzIDEuNDM3djQuNTUxYzAgLjcxOS4yMzMgMS4xOTguNDY3IDEuNDM3LjIzNC40NzkuNDY4LjcxOS43MDEuNzE5LjIzNC4yNC40NjcuMjQuOTM1LjI0LjIzNCAwIC40NjcgMCAuNzAxLS4yNGEuNTEuNTEgMCAwIDAgLjQ2OC0uNDc5Yy4yMzQtLjI0LjIzNC0uNDc5LjQ2OC0uNzE5IDAtLjIzOS4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE4LjIzNC0xLjE5OHYtMy4xMTRjLS4yMzQgMC0uMjM0LS40NzktLjQ2Ny0uOTU4em00LjY3NS04LjM4M0gyOC41MTljLTEuNjM2IDAtMi44MDUgMS4xOTgtMi44MDUgMi44NzR2MzUuNjg5YzAgMS42NzcgMS4xNjkgMi44NzQgMi44MDUgMi44NzRoMzMuMTk1YTIuODggMi44OCAwIDAgMCAyLjgwNS0yLjg3NFYyNy4zMDVoLTcuNDh2LTcuOTA0ek0zNiAyNi41ODd2LS40NzlsLjIzNC0uMjQgMi44MDUtMS45MTZoMi41NzF2MTEuNDk3aDIuMzM4bC4yMzMuMjRjLjIzNC4yMzkgMCAuMjM5IDAgLjIzOXYxLjE5N3MwIC4yNC0uMjMzLjI0aC03LjcxNGwtLjIzNC0uMjR2LTEuNDM3czAtLjI0LjIzNC0uMjRoMi44MDV2LTguODYybC0yLjEwNCAxLjE5OGMtLjIzNCAwLS4yMzQuMjM5LS40NjcuMjM5aC0uMjM0czAtLjIzOS0uMjM0LS4yMzl2LTEuMTk4em04LjE4MiAyNS42MjljLS4yMzMuOTU4LS40NjcgMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjM5LTEuNDAzLjQ3OS0yLjMzOC40NzlzLTEuNjM2LS4yNC0yLjMzOC0uNDc5YTIuMTMgMi4xMyAwIDAgMS0xLjQwMy0xLjQzN2MtLjIzNC0uNzE4LS43MDEtMS40MzctLjcwMS0yLjE1Ni0uMjM0LS45NTgtLjIzNC0xLjkxNi0uMjM0LTIuODc0IDAtMS4xOTggMC0yLjE1Ni4yMzQtMi44NzQuMjM0LS45NTguNDY3LTEuNjc3LjkzNS0yLjE1NnMuOTM1LTEuMTk4IDEuNDAzLTEuNDM3Yy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yMzkgMi4zMzcuNDc5YTIuMTMgMi4xMyAwIDAgMSAxLjQwMyAxLjQzN2MuMjM0LjcxOS43MDEgMS40MzcuNzAxIDIuMTU2LjIzNC45NTguMjM0IDEuOTE2LjIzNCAyLjg3NCAwIDEuMTk4IDAgMi4xNTYtLjIzNCAyLjg3NHptMTAuNTIgMy4zNTN2LjI0czAgLjIzOS0uMjM0LjIzOWgtNy43MTRsLS4yMzQtLjIzOXYtMS40MzdzMC0uMjM5LjIzNC0uMjM5aDIuODA1di04Ljg2MmwtMi4xMDQgMS4xOThjLS4yMzQgMC0uMjM0LjIzOS0uNDY4LjIzOWgtLjIzNHMwLS4yMzktLjIzNC0uMjM5VjQ0Ljc5bC4yMzQtLjI0IDIuODA1LTEuOTE2aDIuNTcydjExLjQ5N2gyLjMzOGwuMjM0LjIzOXYxLjE5OHptLjIzNC0yMi4wMzZjLS4yMzQuOTU4LS40NjggMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjQtMS40MDMuNDc5LTIuMzM4LjQ3OXMtMS42MzYtLjI0LTIuMzM4LS40NzlhMi4xMyAyLjEzIDAgMCAxLTEuNDAzLTEuNDM3Yy0uMjM0LS40NzktLjcwMS0xLjQzNy0uNzAxLTIuMTU2cy0uMjM0LTEuOTE2LS4yMzQtMi44NzRjMC0xLjE5OCAwLTIuMTU2LjIzNC0yLjg3NC4yMzQtLjk1OC40NjgtMS42NzcuOTM1LTIuMTU2LjQ2OC0uNzE4LjkzNS0xLjE5OCAxLjQwMy0xLjQzNy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yNCAyLjMzOC40NzlhMi4xMyAyLjEzIDAgMCAxIDEuNDAzIDEuNDM3Yy4yMzQuNzE4LjcwMSAxLjQzNy43MDEgMi4xNTYuMjM0Ljk1OC4yMzQgMS45MTYuMjM0IDIuODc0IDAgMS4xOTgtLjIzNCAyLjE1Ni0uMjM0IDIuODc0eiIgZmlsbD0iIzAwNzhkNyIgc3Ryb2tlPSJub25lIi8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Blob Append Sink",
        "description" : "Upload data in append mode to Azure Storage Blob.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
        "required" : [ "accountName", "containerName" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "containerName" : {
            "title" : "Container Name",
            "description" : "The Azure Storage Blob container name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The Azure Storage Blob access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
            "default" : "SHARED_ACCOUNT_KEY"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:azure-storage-blob", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageBlobBlobName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageBlobBlobName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageBlobBlobName",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "azure-storage-blob://{{accountName}}/{{containerName}}",
              "parameters" : {
                "accessKey" : "{{?accessKey}}",
                "operation" : "commitAppendBlob",
                "blobType" : "appendBlob",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Blob Append Sink",
      "description" : "Upload data in append mode to Azure Storage Blob.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
      "required" : [ "accountName", "containerName" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob account name."
        },
        "containerName" : {
          "type" : "string",
          "title" : "Container Name",
          "description" : "The Azure Storage Blob container name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The Azure Storage Blob access key.",
          "format" : "password"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        }
      }
    }
  },
  "azure-storage-blob-cdc-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-blob-cdc-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgODEgODIiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNMS4zMzMgMEMuNTMzIDAgMCAuNTMzIDAgMS4zMzN2MTZjMCAuOC41MzMgMS4zMzMgMS4zMzMgMS4zMzNoOGMuOCAwIDEuMzMzLS41MzMgMS4zMzMtMS4zMzN2LTYuNjY2aDU4LjY2N3Y2LjY2N2MwIC44LjUzMyAxLjMzMyAxLjYgMS4zMzNoNy43MzNjLjggMCAxLjMzMy0uNTMzIDEuMzMzLTEuMzMzdi04LThDODAgLjUzMyA3OS40NjcgMCA3OC42NjcgMGgwSDEuMzMzem03Ny4zMzQgODBjLjggMCAxLjMzMy0uNTMzIDEuMzMzLTEuMzMzVjYyLjkzNGMwLS44LS41MzMtMS4zMzMtMS4zMzMtMS4zMzNoLTcuNzMzYy0uOCAwLTEuMzMzLjUzMy0xLjMzMyAxLjMzM3Y2LjRIMTAuNjY3di02LjY2N2MwLS44LS41MzMtMS4zMzMtMS42LTEuMzMzSDEuMzMzYy0uOCAwLTEuMzMzLjUzMy0xLjMzMyAxLjZ2MTUuNzMzQzAgNzkuNDY3LjUzMyA4MCAxLjMzMyA4MGg3Ny4zMzR6IiBmaWxsPSIjMDA3MmM2IiBzdHJva2U9Im5vbmUiLz48cGF0aCBkPSJNMjkuNTE5IDM2LjQ0N2wzLjQ1Mi0zLjQ1MiAyLjU1NiAyLjU1Ni0zLjQ1MiAzLjQ1MXptNS4wMDctNS4wMDhsMy40NTYtMy40NTYgMi41NiAyLjU2TDM3LjA4NiAzNHptNy41Ny0yLjQ2M2wtMi41Ni0yLjU0NCAzLjQyNC0zLjQyNCAyLjU2IDIuNTQ0ek0zOS41MzUgNTIuNWwyLjU2MS0yLjU2IDMuNDI0IDMuNDI2LTIuNTYxIDIuNTZ6bS0xLjU1MS0xLjU3MmwtMy40NTYtMy40NTYgMi41Ni0yLjU0NCAzLjQ1NiAzLjQ1NnptLTUuMDA4LTUuMDA4bC0zLjQ1Ni0zLjQ1NiAyLjU2LTIuNTQ0IDMuNDQgMy40NHoiIHN0cm9rZT0ibm9uZSIgZmlsbD0iI2I4ZDQzMiIvPjxwYXRoIGQ9Ik01Ny44MSAyNC4zOTVhNC40NCA0LjQ0IDAgMCAxLTMuMTU4IDEuMzA5IDQuNDMgNC40MyAwIDAgMS0zLjE1OC0xLjMwOWwtNi4wNTMtNi4wNTN2MTIuMzA2aDE4LjQyNFYxOC4zNDJsLTYuMDU0IDYuMDUzem0tMy4xNjEuNDA5YTMuNTQgMy41NCAwIDAgMCAyLjUyMy0xLjA0NWw2LjY5LTYuNjl2LS4zNTVINDUuNDM4di4zNTVsNi42OSA2LjY5YTMuNTQgMy41NCAwIDAgMCAyLjUyMiAxLjA0NXptMy4xNjEgMzEuMTVhNC40NCA0LjQ0IDAgMCAxLTMuMTU4IDEuMzA5IDQuNDMgNC40MyAwIDAgMS0zLjE1OC0xLjMwOWwtNi4wNTMtNi4wNTN2MTIuMzA2aDE4LjQyNFY0OS45MDFsLTYuMDU0IDYuMDUzem0tMy4xNjEuNDFhMy41NCAzLjU0IDAgMCAwIDIuNTIzLTEuMDQ1bDYuNjktNi42ODl2LS4zNTVINDUuNDM4di4zNTVsNi42OSA2LjY4OWEzLjU0IDMuNTQgMCAwIDAgMi41MjIgMS4wNDV6TTE5LjcxOCA0MC41OTljLTEuMzQ0IDEuMzQ0LTMuMTMzIDIuMDg1LTUuMDM1IDIuMDg1cy0zLjY5LS43NDEtNS4wMzUtMi4wODVMMCAzMC45NDl2MTkuNjEzaDI5LjM2NlYzMC45NDlsLTkuNjQ4IDkuNjV6bS01LjAzNS42NTJhNS42NSA1LjY1IDAgMCAwIDQuMDIyLTEuNjY2bDEwLjY2MS0xMC42NjF2LS41NjVIMHYuNTY2bDEwLjY2MSAxMC42NjFhNS42NiA1LjY2IDAgMCAwIDQuMDIyIDEuNjY0eiIgc3Ryb2tlPSJub25lIiBmaWxsPSIjNTliNGQ5Ii8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Servicebus",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Blob CDC Source",
        "description" : "Receive data from Azure Service Bus subscribed to Azure Eventgrid reporting events related to a Azure Storage Blob account.\n\nConnection string is the basic method for authenticating to the Azure Servicebus Queue.\n\nTo use this Kamelet you'll need to set up Events on your Azure Storage Blob account and select as an endpoint an Azure Servicebus Queue.",
        "required" : [ "topicOrQueueName", "connectionString", "accountName", "containerName", "accessKey" ],
        "type" : "object",
        "properties" : {
          "topicOrQueueName" : {
            "title" : "Topic Or Queue Name",
            "description" : "Topic Or Queue Name for the Azure Servicebus instance",
            "type" : "string"
          },
          "connectionString" : {
            "title" : "Connection String",
            "description" : "Connection String for Azure Servicebus instance",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "serviceBusReceiveMode" : {
            "title" : "Servicebus Receive Mode",
            "description" : "Sets the receive mode for the receiver.",
            "type" : "string",
            "default" : "RECEIVE_AND_DELETE",
            "enum" : [ "RECEIVE_AND_DELETE", "PEEK_LOCK" ]
          },
          "subscriptionName" : {
            "title" : "Subscription Name",
            "description" : "Sets the name of the subscription in the topic to listen to. This parameter is mandatory in case of topic.",
            "type" : "string"
          },
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "containerName" : {
            "title" : "Container Name",
            "description" : "The Azure Storage Blob container name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The Azure Storage Blob access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "default" : "SHARED_ACCOUNT_KEY",
            "enum" : [ "SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY" ]
          },
          "getBlob" : {
            "title" : "Get Object in Container",
            "description" : "If getBlob is enabled, then the file created in the container will be get and returned as body, if not only the event will be returned as body.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/octet-stream"
        }
      },
      "dependencies" : [ "camel:azure-servicebus", "camel:azure-storage-blob", "camel:kamelet", "camel:core", "camel:jsonpath", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "azure-servicebus:{{topicOrQueueName}}",
          "parameters" : {
            "connectionString" : "{{connectionString}}",
            "serviceBusReceiveMode" : "{{serviceBusReceiveMode}}",
            "subscriptionName" : "{{?subscriptionName}}"
          },
          "steps" : [ {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${properties:getBlob:true}",
                "steps" : [ {
                  "setBody" : {
                    "simple" : "${body.toString()}"
                  }
                }, {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                }, {
                  "setProperty" : {
                    "name" : "azure-storage-blob-event-type",
                    "jsonpath" : "$.eventType"
                  }
                }, {
                  "setProperty" : {
                    "name" : "azure-storage-blob-subject",
                    "jsonpath" : "$.subject"
                  }
                }, {
                  "setProperty" : {
                    "name" : "azure-storage-blob-blob-name",
                    "simple" : "${exchangeProperty.azure-storage-blob-subject.substring(${exchangeProperty.azure-storage-blob-subject.lastIndexOf(\"/\")}++)}"
                  }
                }, {
                  "log" : "${exchangeProperty.azure-storage-blob-event-type} - ${exchangeProperty.azure-storage-blob-subject} - ${exchangeProperty.azure-storage-blob-blob-name}"
                }, {
                  "choice" : {
                    "when" : [ {
                      "simple" : "${exchangeProperty.azure-storage-blob-event-type} == \"Microsoft.Storage.BlobCreated\" && ${exchangeProperty.azure-storage-blob-subject} contains \"{{containerName}}\"",
                      "steps" : [ {
                        "toD" : "azure-storage-blob:{{accountName}}/{{containerName}}?accessKey=RAW({{accessKey}})&operation=getBlob&blobName=${exchangeProperty.azure-storage-blob-blob-name}&credentialType={{credentialType}}"
                      } ]
                    } ]
                  }
                } ]
              } ]
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Blob CDC Source",
      "description" : "Receive data from Azure Service Bus subscribed to Azure Eventgrid reporting events related to a Azure Storage Blob account.\n\nConnection string is the basic method for authenticating to the Azure Servicebus Queue.\n\nTo use this Kamelet you'll need to set up Events on your Azure Storage Blob account and select as an endpoint an Azure Servicebus Queue.",
      "required" : [ "topicOrQueueName", "connectionString", "accountName", "containerName", "accessKey" ],
      "properties" : {
        "topicOrQueueName" : {
          "type" : "string",
          "title" : "Topic Or Queue Name",
          "description" : "Topic Or Queue Name for the Azure Servicebus instance"
        },
        "connectionString" : {
          "type" : "string",
          "title" : "Connection String",
          "description" : "Connection String for Azure Servicebus instance",
          "format" : "password"
        },
        "serviceBusReceiveMode" : {
          "type" : "string",
          "title" : "Servicebus Receive Mode",
          "description" : "Sets the receive mode for the receiver.",
          "enum" : [ "RECEIVE_AND_DELETE", "PEEK_LOCK" ],
          "default" : "RECEIVE_AND_DELETE"
        },
        "subscriptionName" : {
          "type" : "string",
          "title" : "Subscription Name",
          "description" : "Sets the name of the subscription in the topic to listen to. This parameter is mandatory in case of topic."
        },
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob account name."
        },
        "containerName" : {
          "type" : "string",
          "title" : "Container Name",
          "description" : "The Azure Storage Blob container name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The Azure Storage Blob access key.",
          "format" : "password"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        },
        "getBlob" : {
          "type" : "boolean",
          "title" : "Get Object in Container",
          "description" : "If getBlob is enabled, then the file created in the container will be get and returned as body, if not only the event will be returned as body.",
          "default" : false
        }
      }
    }
  },
  "azure-storage-blob-changefeed-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-blob-changefeed-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny41NTggMHptLjIzNCA1Ny45NjRjMCAzLjM1My0yLjgwNSA2LjIyNy02LjA3OCA2LjIyN0gyOC41MmMtMy4yNzMgMC02LjA3OC0yLjg3NC02LjA3OC02LjIyN1YyMi4yNzZjMC0zLjM1MyAyLjgwNS02LjIyOCA2LjA3OC02LjIyOGgyOS45MjJsOS4zNTEgOS41ODF2MzIuMzM1ek00MS42MSA0Ni40NjdjMC0uNDc5LS4yMzQtLjcxOC0uMjM0LS45NThzLS4yMzQtLjQ3OS0uNDY3LS43MTgtLjIzNC0uMjQtLjQ2OC0uMjRoLS43MDFjLS40NjggMC0uNzAyIDAtLjkzNS4yNHMtLjQ2OC40NzktLjcwMS45NTgtLjIzNC45NTgtLjIzNCAxLjQzN3Y0LjU1MWMwIC43MTkuMjM0IDEuMTk3LjQ2OCAxLjQzNy4yMzQuNDc5LjQ2OC43MTkuNzAxLjcxOS4yMzQuMjQuNDY4LjI0LjkzNS4yNC4yMzQgMCAuNDY4IDAgLjcwMS0uMjRhLjUxLjUxIDAgMCAwIC40NjgtLjQ3OWMuMjM0LS4yNC4yMzQtLjQ3OS40NjctLjcxOCAwLS4yNC4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE5LjIzMy0xLjE5OHYtMy4xMTRjLS40NjctLjI0LS40NjctLjQ3OS0uNDY3LS45NTh6bTEwLjUyLTE4LjY4M2MwLS40NzktLjIzNC0uNzE4LS4yMzQtLjk1OHMtLjIzNC0uNDc5LS40NjgtLjcxOS0uMjM0LS4yNC0uNDY4LS4yNGgtLjcwMWMtLjQ2NyAwLS43MDEgMC0uOTM1LjI0cy0uNDY4LjQ3OS0uNzAyLjk1OC0uMjMzLjk1OC0uMjMzIDEuNDM3djQuNTUxYzAgLjcxOS4yMzMgMS4xOTguNDY3IDEuNDM3LjIzNC40NzkuNDY4LjcxOS43MDEuNzE5LjIzNC4yNC40NjcuMjQuOTM1LjI0LjIzNCAwIC40NjcgMCAuNzAxLS4yNGEuNTEuNTEgMCAwIDAgLjQ2OC0uNDc5Yy4yMzQtLjI0LjIzNC0uNDc5LjQ2OC0uNzE5IDAtLjIzOS4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE4LjIzNC0xLjE5OHYtMy4xMTRjLS4yMzQgMC0uMjM0LS40NzktLjQ2Ny0uOTU4em00LjY3NS04LjM4M0gyOC41MTljLTEuNjM2IDAtMi44MDUgMS4xOTgtMi44MDUgMi44NzR2MzUuNjg5YzAgMS42NzcgMS4xNjkgMi44NzQgMi44MDUgMi44NzRoMzMuMTk1YTIuODggMi44OCAwIDAgMCAyLjgwNS0yLjg3NFYyNy4zMDVoLTcuNDh2LTcuOTA0ek0zNiAyNi41ODd2LS40NzlsLjIzNC0uMjQgMi44MDUtMS45MTZoMi41NzF2MTEuNDk3aDIuMzM4bC4yMzMuMjRjLjIzNC4yMzkgMCAuMjM5IDAgLjIzOXYxLjE5N3MwIC4yNC0uMjMzLjI0aC03LjcxNGwtLjIzNC0uMjR2LTEuNDM3czAtLjI0LjIzNC0uMjRoMi44MDV2LTguODYybC0yLjEwNCAxLjE5OGMtLjIzNCAwLS4yMzQuMjM5LS40NjcuMjM5aC0uMjM0czAtLjIzOS0uMjM0LS4yMzl2LTEuMTk4em04LjE4MiAyNS42MjljLS4yMzMuOTU4LS40NjcgMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjM5LTEuNDAzLjQ3OS0yLjMzOC40NzlzLTEuNjM2LS4yNC0yLjMzOC0uNDc5YTIuMTMgMi4xMyAwIDAgMS0xLjQwMy0xLjQzN2MtLjIzNC0uNzE4LS43MDEtMS40MzctLjcwMS0yLjE1Ni0uMjM0LS45NTgtLjIzNC0xLjkxNi0uMjM0LTIuODc0IDAtMS4xOTggMC0yLjE1Ni4yMzQtMi44NzQuMjM0LS45NTguNDY3LTEuNjc3LjkzNS0yLjE1NnMuOTM1LTEuMTk4IDEuNDAzLTEuNDM3Yy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yMzkgMi4zMzcuNDc5YTIuMTMgMi4xMyAwIDAgMSAxLjQwMyAxLjQzN2MuMjM0LjcxOS43MDEgMS40MzcuNzAxIDIuMTU2LjIzNC45NTguMjM0IDEuOTE2LjIzNCAyLjg3NCAwIDEuMTk4IDAgMi4xNTYtLjIzNCAyLjg3NHptMTAuNTIgMy4zNTN2LjI0czAgLjIzOS0uMjM0LjIzOWgtNy43MTRsLS4yMzQtLjIzOXYtMS40MzdzMC0uMjM5LjIzNC0uMjM5aDIuODA1di04Ljg2MmwtMi4xMDQgMS4xOThjLS4yMzQgMC0uMjM0LjIzOS0uNDY4LjIzOWgtLjIzNHMwLS4yMzktLjIzNC0uMjM5VjQ0Ljc5bC4yMzQtLjI0IDIuODA1LTEuOTE2aDIuNTcydjExLjQ5N2gyLjMzOGwuMjM0LjIzOXYxLjE5OHptLjIzNC0yMi4wMzZjLS4yMzQuOTU4LS40NjggMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjQtMS40MDMuNDc5LTIuMzM4LjQ3OXMtMS42MzYtLjI0LTIuMzM4LS40NzlhMi4xMyAyLjEzIDAgMCAxLTEuNDAzLTEuNDM3Yy0uMjM0LS40NzktLjcwMS0xLjQzNy0uNzAxLTIuMTU2cy0uMjM0LTEuOTE2LS4yMzQtMi44NzRjMC0xLjE5OCAwLTIuMTU2LjIzNC0yLjg3NC4yMzQtLjk1OC40NjgtMS42NzcuOTM1LTIuMTU2LjQ2OC0uNzE4LjkzNS0xLjE5OCAxLjQwMy0xLjQzNy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yNCAyLjMzOC40NzlhMi4xMyAyLjEzIDAgMCAxIDEuNDAzIDEuNDM3Yy4yMzQuNzE4LjcwMSAxLjQzNy43MDEgMi4xNTYuMjM0Ljk1OC4yMzQgMS45MTYuMjM0IDIuODc0IDAgMS4xOTgtLjIzNCAyLjE1Ni0uMjM0IDIuODc0eiIgZmlsbD0iIzAwNzhkNyIgc3Ryb2tlPSJub25lIi8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob Changefeed",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Blob Changefeed Source",
        "description" : "Consume events from an Azure Storage Blob change feed.",
        "required" : [ "period", "accountName", "accessKey" ],
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period between Polls",
            "description" : "The interval (in milliseconds) between fetches to the Azure Storage change feed.",
            "type" : "integer",
            "default" : 10000
          },
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The Azure Storage Blob access Key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:azure-storage-blob", "camel:kamelet", "camel:core", "camel:jackson", "camel:jsonpath", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "timer:azure-storage-blob-stream",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "to" : {
              "uri" : "azure-storage-blob:{{accountName}}",
              "parameters" : {
                "operation" : "getChangeFeed",
                "accessKey" : "{{accessKey}}",
                "credentialType" : "SHARED_ACCOUNT_KEY"
              }
            }
          }, {
            "split" : {
              "expression" : {
                "simple" : "${body}"
              }
            }
          }, {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
              }
            }
          }, {
            "setHeader" : {
              "name" : "azure-storage-blob-changefeed-topic",
              "jsonpath" : {
                "suppressExceptions" : true,
                "expression" : "$.topic"
              }
            }
          }, {
            "setHeader" : {
              "name" : "azure-storage-blob-changefeed-subject",
              "jsonpath" : {
                "suppressExceptions" : true,
                "expression" : "$.subject"
              }
            }
          }, {
            "setHeader" : {
              "name" : "azure-storage-blob-changefeed-eventType",
              "jsonpath" : {
                "suppressExceptions" : true,
                "expression" : "$.eventType"
              }
            }
          }, {
            "setHeader" : {
              "name" : "azure-storage-blob-changefeed-eventTime",
              "jsonpath" : {
                "suppressExceptions" : true,
                "expression" : "$.eventTime"
              }
            }
          }, {
            "setHeader" : {
              "name" : "azure-storage-blob-changefeed-id",
              "jsonpath" : {
                "suppressExceptions" : true,
                "expression" : "$.id"
              }
            }
          }, {
            "setHeader" : {
              "name" : "azure-storage-blob-changefeed-dataVersion",
              "jsonpath" : {
                "suppressExceptions" : true,
                "expression" : "$.dataVersion"
              }
            }
          }, {
            "setHeader" : {
              "name" : "azure-storage-blob-changefeed-metadataVersion",
              "jsonpath" : {
                "suppressExceptions" : true,
                "expression" : "$.metadataVersion"
              }
            }
          }, {
            "setBody" : {
              "jsonpath" : {
                "expression" : "$.data"
              }
            }
          }, {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "module-class-names" : "com.fasterxml.jackson.datatype.jsr310.JavaTimeModule"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Blob Changefeed Source",
      "description" : "Consume events from an Azure Storage Blob change feed.",
      "required" : [ "period", "accountName", "accessKey" ],
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period between Polls",
          "description" : "The interval (in milliseconds) between fetches to the Azure Storage change feed.",
          "default" : 10000
        },
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob account name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The Azure Storage Blob access Key.",
          "format" : "password"
        }
      }
    }
  },
  "azure-storage-blob-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-blob-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny41NTggMHptLjIzNCA1Ny45NjRjMCAzLjM1My0yLjgwNSA2LjIyNy02LjA3OCA2LjIyN0gyOC41MmMtMy4yNzMgMC02LjA3OC0yLjg3NC02LjA3OC02LjIyN1YyMi4yNzZjMC0zLjM1MyAyLjgwNS02LjIyOCA2LjA3OC02LjIyOGgyOS45MjJsOS4zNTEgOS41ODF2MzIuMzM1ek00MS42MSA0Ni40NjdjMC0uNDc5LS4yMzQtLjcxOC0uMjM0LS45NThzLS4yMzQtLjQ3OS0uNDY3LS43MTgtLjIzNC0uMjQtLjQ2OC0uMjRoLS43MDFjLS40NjggMC0uNzAyIDAtLjkzNS4yNHMtLjQ2OC40NzktLjcwMS45NTgtLjIzNC45NTgtLjIzNCAxLjQzN3Y0LjU1MWMwIC43MTkuMjM0IDEuMTk3LjQ2OCAxLjQzNy4yMzQuNDc5LjQ2OC43MTkuNzAxLjcxOS4yMzQuMjQuNDY4LjI0LjkzNS4yNC4yMzQgMCAuNDY4IDAgLjcwMS0uMjRhLjUxLjUxIDAgMCAwIC40NjgtLjQ3OWMuMjM0LS4yNC4yMzQtLjQ3OS40NjctLjcxOCAwLS4yNC4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE5LjIzMy0xLjE5OHYtMy4xMTRjLS40NjctLjI0LS40NjctLjQ3OS0uNDY3LS45NTh6bTEwLjUyLTE4LjY4M2MwLS40NzktLjIzNC0uNzE4LS4yMzQtLjk1OHMtLjIzNC0uNDc5LS40NjgtLjcxOS0uMjM0LS4yNC0uNDY4LS4yNGgtLjcwMWMtLjQ2NyAwLS43MDEgMC0uOTM1LjI0cy0uNDY4LjQ3OS0uNzAyLjk1OC0uMjMzLjk1OC0uMjMzIDEuNDM3djQuNTUxYzAgLjcxOS4yMzMgMS4xOTguNDY3IDEuNDM3LjIzNC40NzkuNDY4LjcxOS43MDEuNzE5LjIzNC4yNC40NjcuMjQuOTM1LjI0LjIzNCAwIC40NjcgMCAuNzAxLS4yNGEuNTEuNTEgMCAwIDAgLjQ2OC0uNDc5Yy4yMzQtLjI0LjIzNC0uNDc5LjQ2OC0uNzE5IDAtLjIzOS4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE4LjIzNC0xLjE5OHYtMy4xMTRjLS4yMzQgMC0uMjM0LS40NzktLjQ2Ny0uOTU4em00LjY3NS04LjM4M0gyOC41MTljLTEuNjM2IDAtMi44MDUgMS4xOTgtMi44MDUgMi44NzR2MzUuNjg5YzAgMS42NzcgMS4xNjkgMi44NzQgMi44MDUgMi44NzRoMzMuMTk1YTIuODggMi44OCAwIDAgMCAyLjgwNS0yLjg3NFYyNy4zMDVoLTcuNDh2LTcuOTA0ek0zNiAyNi41ODd2LS40NzlsLjIzNC0uMjQgMi44MDUtMS45MTZoMi41NzF2MTEuNDk3aDIuMzM4bC4yMzMuMjRjLjIzNC4yMzkgMCAuMjM5IDAgLjIzOXYxLjE5N3MwIC4yNC0uMjMzLjI0aC03LjcxNGwtLjIzNC0uMjR2LTEuNDM3czAtLjI0LjIzNC0uMjRoMi44MDV2LTguODYybC0yLjEwNCAxLjE5OGMtLjIzNCAwLS4yMzQuMjM5LS40NjcuMjM5aC0uMjM0czAtLjIzOS0uMjM0LS4yMzl2LTEuMTk4em04LjE4MiAyNS42MjljLS4yMzMuOTU4LS40NjcgMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjM5LTEuNDAzLjQ3OS0yLjMzOC40NzlzLTEuNjM2LS4yNC0yLjMzOC0uNDc5YTIuMTMgMi4xMyAwIDAgMS0xLjQwMy0xLjQzN2MtLjIzNC0uNzE4LS43MDEtMS40MzctLjcwMS0yLjE1Ni0uMjM0LS45NTgtLjIzNC0xLjkxNi0uMjM0LTIuODc0IDAtMS4xOTggMC0yLjE1Ni4yMzQtMi44NzQuMjM0LS45NTguNDY3LTEuNjc3LjkzNS0yLjE1NnMuOTM1LTEuMTk4IDEuNDAzLTEuNDM3Yy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yMzkgMi4zMzcuNDc5YTIuMTMgMi4xMyAwIDAgMSAxLjQwMyAxLjQzN2MuMjM0LjcxOS43MDEgMS40MzcuNzAxIDIuMTU2LjIzNC45NTguMjM0IDEuOTE2LjIzNCAyLjg3NCAwIDEuMTk4IDAgMi4xNTYtLjIzNCAyLjg3NHptMTAuNTIgMy4zNTN2LjI0czAgLjIzOS0uMjM0LjIzOWgtNy43MTRsLS4yMzQtLjIzOXYtMS40MzdzMC0uMjM5LjIzNC0uMjM5aDIuODA1di04Ljg2MmwtMi4xMDQgMS4xOThjLS4yMzQgMC0uMjM0LjIzOS0uNDY4LjIzOWgtLjIzNHMwLS4yMzktLjIzNC0uMjM5VjQ0Ljc5bC4yMzQtLjI0IDIuODA1LTEuOTE2aDIuNTcydjExLjQ5N2gyLjMzOGwuMjM0LjIzOXYxLjE5OHptLjIzNC0yMi4wMzZjLS4yMzQuOTU4LS40NjggMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjQtMS40MDMuNDc5LTIuMzM4LjQ3OXMtMS42MzYtLjI0LTIuMzM4LS40NzlhMi4xMyAyLjEzIDAgMCAxLTEuNDAzLTEuNDM3Yy0uMjM0LS40NzktLjcwMS0xLjQzNy0uNzAxLTIuMTU2cy0uMjM0LTEuOTE2LS4yMzQtMi44NzRjMC0xLjE5OCAwLTIuMTU2LjIzNC0yLjg3NC4yMzQtLjk1OC40NjgtMS42NzcuOTM1LTIuMTU2LjQ2OC0uNzE4LjkzNS0xLjE5OCAxLjQwMy0xLjQzNy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yNCAyLjMzOC40NzlhMi4xMyAyLjEzIDAgMCAxIDEuNDAzIDEuNDM3Yy4yMzQuNzE4LjcwMSAxLjQzNy43MDEgMi4xNTYuMjM0Ljk1OC4yMzQgMS45MTYuMjM0IDIuODc0IDAgMS4xOTgtLjIzNCAyLjE1Ni0uMjM0IDIuODc0eiIgZmlsbD0iIzAwNzhkNyIgc3Ryb2tlPSJub25lIi8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Blob Sink",
        "description" : "Upload data to Azure Storage Blob.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
        "required" : [ "accountName", "containerName" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "containerName" : {
            "title" : "Container Name",
            "description" : "The Azure Storage Blob container name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The Azure Storage Blob access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
            "default" : "SHARED_ACCOUNT_KEY"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:azure-storage-blob", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageBlobBlobName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageBlobBlobName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageBlobBlobName",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "azure-storage-blob://{{accountName}}/{{containerName}}",
              "parameters" : {
                "accessKey" : "{{?accessKey}}",
                "operation" : "uploadBlockBlob",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Blob Sink",
      "description" : "Upload data to Azure Storage Blob.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
      "required" : [ "accountName", "containerName" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob account name."
        },
        "containerName" : {
          "type" : "string",
          "title" : "Container Name",
          "description" : "The Azure Storage Blob container name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The Azure Storage Blob access key.",
          "format" : "password"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        }
      }
    }
  },
  "azure-storage-blob-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-blob-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny41NTggMHptLjIzNCA1Ny45NjRjMCAzLjM1My0yLjgwNSA2LjIyNy02LjA3OCA2LjIyN0gyOC41MmMtMy4yNzMgMC02LjA3OC0yLjg3NC02LjA3OC02LjIyN1YyMi4yNzZjMC0zLjM1MyAyLjgwNS02LjIyOCA2LjA3OC02LjIyOGgyOS45MjJsOS4zNTEgOS41ODF2MzIuMzM1ek00MS42MSA0Ni40NjdjMC0uNDc5LS4yMzQtLjcxOC0uMjM0LS45NThzLS4yMzQtLjQ3OS0uNDY3LS43MTgtLjIzNC0uMjQtLjQ2OC0uMjRoLS43MDFjLS40NjggMC0uNzAyIDAtLjkzNS4yNHMtLjQ2OC40NzktLjcwMS45NTgtLjIzNC45NTgtLjIzNCAxLjQzN3Y0LjU1MWMwIC43MTkuMjM0IDEuMTk3LjQ2OCAxLjQzNy4yMzQuNDc5LjQ2OC43MTkuNzAxLjcxOS4yMzQuMjQuNDY4LjI0LjkzNS4yNC4yMzQgMCAuNDY4IDAgLjcwMS0uMjRhLjUxLjUxIDAgMCAwIC40NjgtLjQ3OWMuMjM0LS4yNC4yMzQtLjQ3OS40NjctLjcxOCAwLS4yNC4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE5LjIzMy0xLjE5OHYtMy4xMTRjLS40NjctLjI0LS40NjctLjQ3OS0uNDY3LS45NTh6bTEwLjUyLTE4LjY4M2MwLS40NzktLjIzNC0uNzE4LS4yMzQtLjk1OHMtLjIzNC0uNDc5LS40NjgtLjcxOS0uMjM0LS4yNC0uNDY4LS4yNGgtLjcwMWMtLjQ2NyAwLS43MDEgMC0uOTM1LjI0cy0uNDY4LjQ3OS0uNzAyLjk1OC0uMjMzLjk1OC0uMjMzIDEuNDM3djQuNTUxYzAgLjcxOS4yMzMgMS4xOTguNDY3IDEuNDM3LjIzNC40NzkuNDY4LjcxOS43MDEuNzE5LjIzNC4yNC40NjcuMjQuOTM1LjI0LjIzNCAwIC40NjcgMCAuNzAxLS4yNGEuNTEuNTEgMCAwIDAgLjQ2OC0uNDc5Yy4yMzQtLjI0LjIzNC0uNDc5LjQ2OC0uNzE5IDAtLjIzOS4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE4LjIzNC0xLjE5OHYtMy4xMTRjLS4yMzQgMC0uMjM0LS40NzktLjQ2Ny0uOTU4em00LjY3NS04LjM4M0gyOC41MTljLTEuNjM2IDAtMi44MDUgMS4xOTgtMi44MDUgMi44NzR2MzUuNjg5YzAgMS42NzcgMS4xNjkgMi44NzQgMi44MDUgMi44NzRoMzMuMTk1YTIuODggMi44OCAwIDAgMCAyLjgwNS0yLjg3NFYyNy4zMDVoLTcuNDh2LTcuOTA0ek0zNiAyNi41ODd2LS40NzlsLjIzNC0uMjQgMi44MDUtMS45MTZoMi41NzF2MTEuNDk3aDIuMzM4bC4yMzMuMjRjLjIzNC4yMzkgMCAuMjM5IDAgLjIzOXYxLjE5N3MwIC4yNC0uMjMzLjI0aC03LjcxNGwtLjIzNC0uMjR2LTEuNDM3czAtLjI0LjIzNC0uMjRoMi44MDV2LTguODYybC0yLjEwNCAxLjE5OGMtLjIzNCAwLS4yMzQuMjM5LS40NjcuMjM5aC0uMjM0czAtLjIzOS0uMjM0LS4yMzl2LTEuMTk4em04LjE4MiAyNS42MjljLS4yMzMuOTU4LS40NjcgMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjM5LTEuNDAzLjQ3OS0yLjMzOC40NzlzLTEuNjM2LS4yNC0yLjMzOC0uNDc5YTIuMTMgMi4xMyAwIDAgMS0xLjQwMy0xLjQzN2MtLjIzNC0uNzE4LS43MDEtMS40MzctLjcwMS0yLjE1Ni0uMjM0LS45NTgtLjIzNC0xLjkxNi0uMjM0LTIuODc0IDAtMS4xOTggMC0yLjE1Ni4yMzQtMi44NzQuMjM0LS45NTguNDY3LTEuNjc3LjkzNS0yLjE1NnMuOTM1LTEuMTk4IDEuNDAzLTEuNDM3Yy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yMzkgMi4zMzcuNDc5YTIuMTMgMi4xMyAwIDAgMSAxLjQwMyAxLjQzN2MuMjM0LjcxOS43MDEgMS40MzcuNzAxIDIuMTU2LjIzNC45NTguMjM0IDEuOTE2LjIzNCAyLjg3NCAwIDEuMTk4IDAgMi4xNTYtLjIzNCAyLjg3NHptMTAuNTIgMy4zNTN2LjI0czAgLjIzOS0uMjM0LjIzOWgtNy43MTRsLS4yMzQtLjIzOXYtMS40MzdzMC0uMjM5LjIzNC0uMjM5aDIuODA1di04Ljg2MmwtMi4xMDQgMS4xOThjLS4yMzQgMC0uMjM0LjIzOS0uNDY4LjIzOWgtLjIzNHMwLS4yMzktLjIzNC0uMjM5VjQ0Ljc5bC4yMzQtLjI0IDIuODA1LTEuOTE2aDIuNTcydjExLjQ5N2gyLjMzOGwuMjM0LjIzOXYxLjE5OHptLjIzNC0yMi4wMzZjLS4yMzQuOTU4LS40NjggMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjQtMS40MDMuNDc5LTIuMzM4LjQ3OXMtMS42MzYtLjI0LTIuMzM4LS40NzlhMi4xMyAyLjEzIDAgMCAxLTEuNDAzLTEuNDM3Yy0uMjM0LS40NzktLjcwMS0xLjQzNy0uNzAxLTIuMTU2cy0uMjM0LTEuOTE2LS4yMzQtMi44NzRjMC0xLjE5OCAwLTIuMTU2LjIzNC0yLjg3NC4yMzQtLjk1OC40NjgtMS42NzcuOTM1LTIuMTU2LjQ2OC0uNzE4LjkzNS0xLjE5OCAxLjQwMy0xLjQzNy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yNCAyLjMzOC40NzlhMi4xMyAyLjEzIDAgMCAxIDEuNDAzIDEuNDM3Yy4yMzQuNzE4LjcwMSAxLjQzNy43MDEgMi4xNTYuMjM0Ljk1OC4yMzQgMS45MTYuMjM0IDIuODc0IDAgMS4xOTgtLjIzNCAyLjE1Ni0uMjM0IDIuODc0eiIgZmlsbD0iIzAwNzhkNyIgc3Ryb2tlPSJub25lIi8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Blob Source",
        "description" : "Consume files from Azure Storage Blob.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAzureStorageBlobETag will be duplicated into azure.storage.blob.e.tag and CamelAzureStorageBlobBlobSize will be duplicated in azure.storage.blob.blob.size",
        "required" : [ "accountName", "containerName" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "containerName" : {
            "title" : "Container Name",
            "description" : "The Azure Storage Blob container name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The Azure Storage Blob access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected blob.",
            "type" : "integer",
            "default" : 500
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Blob",
            "description" : "Specifies to delete blobs after consuming them",
            "type" : "boolean",
            "default" : false
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
            "default" : "SHARED_ACCOUNT_KEY"
          }
        }
      },
      "dataTypes" : {
        "out" : {
          "default" : "binary",
          "headers" : {
            "CamelAzureStorageBlobBlobName" : {
              "title" : "Azure Storage Blob Name",
              "description" : "The name of the blob retrieved",
              "type" : "string"
            },
            "CamelAzureStorageBlobBlobType" : {
              "title" : "The Azure Storage Blob Type",
              "description" : "The Blob type, one of blockblob, appendblob or pageblob",
              "type" : "string"
            },
            "CamelAzureStorageBlobContentType" : {
              "title" : "Content Type",
              "description" : "The content type of the retrieved object.",
              "default" : "application/octet-stream",
              "type" : "string"
            },
            "CamelAzureStorageBlobETag" : {
              "title" : "ETag Value",
              "description" : "The E tag of the blob",
              "type" : "string"
            },
            "CamelAzureStorageBlobCreationTime" : {
              "title" : "Creation time",
              "description" : "The Creation time of the blob",
              "type" : "string"
            },
            "CamelAzureStorageBlobLastModified" : {
              "title" : "Last modification time",
              "description" : "The Last modification time of the blob",
              "type" : "string"
            },
            "CamelAzureStorageBlobLeaseStatus" : {
              "title" : "Lease status",
              "description" : "Status of the lease on the blob, one of locked or unlocked",
              "type" : "string"
            },
            "CamelAzureStorageBlobMetadata" : {
              "title" : "Blob Metadata",
              "description" : "Additional Metadata of the blob of type Map<String,Object>",
              "type" : "object"
            }
          },
          "types" : {
            "binary" : {
              "format" : "application-octet-stream",
              "description" : "Default binary representation of the Blob object retrieved from the container.",
              "mediaType" : "application/octet-stream"
            },
            "cloudevents" : {
              "format" : "azure-storage-blob:application-cloudevents",
              "description" : "Output data type represents Azure Storage Blob get blob response as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with\nrespective data from the Azure container and its derived object.",
              "headers" : {
                "CamelCloudEventID" : {
                  "title" : "CloudEvent ID",
                  "description" : "The Camel exchange id set as event id",
                  "type" : "string"
                },
                "CamelCloudEventType" : {
                  "title" : "CloudEvent Type",
                  "description" : "The event type",
                  "default" : "org.apache.camel.event.azure.storage.blob.getBlob",
                  "type" : "string"
                },
                "CamelCloudEventSource" : {
                  "title" : "CloudEvent Source",
                  "description" : "The event source. By default, the E Tag name of the blob with prefix \"azure.storage.blob.\".",
                  "type" : "string"
                },
                "CamelCloudEventSubject" : {
                  "title" : "CloudEvent Subject",
                  "description" : "The event subject. Usually the Azure Storage Blob name.",
                  "type" : "string"
                },
                "CamelCloudEventTime" : {
                  "title" : "CloudEvent Time",
                  "description" : "The exchange creation timestamp as event time.",
                  "type" : "string"
                }
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:azure-storage-blob", "camel:kamelet", "camel:core", "camel:jsonpath", "camel:timer", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1" ],
      "template" : {
        "from" : {
          "uri" : "azure-storage-blob:{{accountName}}/{{containerName}}",
          "parameters" : {
            "accessKey" : "{{?accessKey}}",
            "credentialType" : "{{credentialType}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          }, {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${properties:deleteAfterRead:true}",
                "steps" : [ {
                  "to" : {
                    "uri" : "azure-storage-blob:{{accountName}}/{{containerName}}",
                    "parameters" : {
                      "operation" : "deleteBlob",
                      "accessKey" : "{{?accessKey}}",
                      "credentialType" : "{{credentialType}}"
                    }
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Blob Source",
      "description" : "Consume files from Azure Storage Blob.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAzureStorageBlobETag will be duplicated into azure.storage.blob.e.tag and CamelAzureStorageBlobBlobSize will be duplicated in azure.storage.blob.blob.size",
      "required" : [ "accountName", "containerName" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob account name."
        },
        "containerName" : {
          "type" : "string",
          "title" : "Container Name",
          "description" : "The Azure Storage Blob container name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The Azure Storage Blob access key.",
          "format" : "password"
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected blob.",
          "default" : 500
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Blob",
          "description" : "Specifies to delete blobs after consuming them",
          "default" : false
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        }
      }
    }
  },
  "azure-storage-datalake-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-datalake-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNi4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4wIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxMTU4LjIgODYwLjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDExNTguMiA4NjAuNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzA5NUNBMjt9DQoJLnN0MXtmaWxsOiNGRkZGRkY7fQ0KCS5zdDJ7ZmlsbDojMzJCRUVEO30NCgkuc3Qze2ZpbGw6IzFCMUIyMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTkyNy43LDE5Ny44SDYwOC44Yy0zLjQsMC4xLTYuOC0wLjktOS41LTNsLTkxLjItNjAuN2MtMi45LTEuNy02LjEtMi42LTkuNS0yLjZIMjMwLjVjLTkuMywwLTE3LDcuNC0xNy4yLDE2LjgNCgl2NTYzLjdjMC4yLDkuMyw3LjksMTYuOCwxNy4yLDE2LjhoNjk3LjFjOS4zLDAsMTctNy41LDE3LjItMTYuOHYtNDk3Qzk0NC45LDIwNS42LDkzNy4yLDE5Ny44LDkyNy43LDE5Ny44TDkyNy43LDE5Ny44eiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTQzOS4zLDE2NC4zSDI4Ni45Yy0zLjgsMC02LjksMy4xLTYuOSw2Ljl2MTkuNGMwLDMuOCwzLjEsNi45LDYuOSw2LjloMTUyLjNjMy44LDAsNi45LTMuMSw2LjktNi45DQoJYzAsMCwwLDAsMCwwdi0xOS40QzQ0Ni4xLDE2Ny4zLDQ0My4xLDE2NC4zLDQzOS4zLDE2NC4zeiIvPg0KPHBhdGggY2xhc3M9InN0MiIgZD0iTTMwOC40LDE2NC4zaC0yMy43Yy0yLjYsMC00LjcsMi4xLTQuNyw0Ljd2MjMuN2MwLDIuNiwyLjEsNC43LDQuNyw0LjdoMjMuN2MyLjYsMCw0LjctMi4xLDQuNy00LjdWMTY5DQoJQzMxMy4yLDE2Ni40LDMxMS4xLDE2NC4zLDMwOC40LDE2NC4zeiIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTkyNy43LDE5N0g1NzkuMWMtNC42LTAuMS05LDEuOC0xMiw1LjJMNTA5LDI1OC4xYy0zLjMsMy03LjYsNC43LTEyLDQuN0gyMzAuNWMtOS41LDAtMTcuMiw3LjctMTcuMiwxNy4ybDAsMA0KCXY0MzAuM2MwLjIsOS4zLDcuOSwxNi44LDE3LjIsMTYuOGg2OTcuMWM5LjMsMCwxNy03LjQsMTcuMi0xNi44VjIxNWMwLjEtMi4zLTAuMy00LjctMS4xLTYuOUM5NDEuMywyMDEuNCw5MzQuOSwxOTcsOTI3LjcsMTk3eiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTYyOS45LDI4OC4yYy0xLjEtMC4zLTIuMy0wLjMtMy41LDBjMCwwLTMuOSwwLTUuNiwzbC0xMzYsMTk3LjVjLTEuMiwyLjEtMS4yLDQuOCwwLDYuOWMxLjMsMi40LDMuNyw0LDYuNSw0LjMNCgloODAuNWwtMzUuNiwxMTkuNmMtMC40LDAuNy0wLjYsMS41LTAuNiwyLjJjMCwwLjgsMC4xLDEuNiwwLjQsMi4zYzAuMywwLjcsMC43LDEuNCwxLjMsMS45YzAuNiwwLjYsMS4zLDEsMiwxLjNjMSwwLjQsMiwwLjQsMywwDQoJYzIuNiwwLDMuOSwwLDUuNi0zTDY4OCw0MjMuN3YtNC4zYy0wLjItMy45LTMuNC02LjktNy4zLTYuOWgtODYuMWwzNC45LTExNy41QzYzMS4yLDI5My4yLDYzMS4zLDI5MC4zLDYyOS45LDI4OC4yTDYyOS45LDI4OC4yeiIvPg0KPC9zdmc+DQo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob Data Lake",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Blob Data Lake Sink",
        "description" : "Send data to Azure Storage Blob Data Lake.",
        "required" : [ "accountName", "clientId", "clientSecret", "tenantId", "fileSystemName" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob Data lake account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientId" : {
            "title" : "Client Id",
            "description" : "The Azure Storage Blob Data lake client Id.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Client Secret",
            "description" : "The Azure Storage Blob Data lake client secret.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "tenantId" : {
            "title" : "Tenant Id",
            "description" : "The Azure Storage Blob Data lake tenant id.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "fileSystemName" : {
            "title" : "File System Name",
            "description" : "The Azure Storage Blob Data lake File system name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "CLIENT_SECRET", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY", "AZURE_SAS", "SERVICE_CLIENT_INSTANCE" ],
            "default" : "CLIENT_SECRET"
          }
        }
      },
      "dependencies" : [ "camel:azure-storage-datalake", "camel:kamelet", "camel:core", "camel:timer", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageDataLakeFileName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageDataLakeFileName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageDataLakeFileName",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "azure-storage-datalake:{{accountName}}/{{fileSystemName}}",
              "parameters" : {
                "clientId" : "{{clientId}}",
                "clientSecret" : "{{clientSecret}}",
                "tenantId" : "{{tenantId}}",
                "operation" : "upload",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Blob Data Lake Sink",
      "description" : "Send data to Azure Storage Blob Data Lake.",
      "required" : [ "accountName", "clientId", "clientSecret", "tenantId", "fileSystemName" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob Data lake account name."
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client Id",
          "description" : "The Azure Storage Blob Data lake client Id.",
          "format" : "password"
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Client Secret",
          "description" : "The Azure Storage Blob Data lake client secret.",
          "format" : "password"
        },
        "tenantId" : {
          "type" : "string",
          "title" : "Tenant Id",
          "description" : "The Azure Storage Blob Data lake tenant id.",
          "format" : "password"
        },
        "fileSystemName" : {
          "type" : "string",
          "title" : "File System Name",
          "description" : "The Azure Storage Blob Data lake File system name."
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "CLIENT_SECRET", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY", "AZURE_SAS", "SERVICE_CLIENT_INSTANCE" ],
          "default" : "CLIENT_SECRET"
        }
      }
    }
  },
  "azure-storage-datalake-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-datalake-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNi4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4wIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxMTU4LjIgODYwLjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDExNTguMiA4NjAuNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzA5NUNBMjt9DQoJLnN0MXtmaWxsOiNGRkZGRkY7fQ0KCS5zdDJ7ZmlsbDojMzJCRUVEO30NCgkuc3Qze2ZpbGw6IzFCMUIyMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTkyNy43LDE5Ny44SDYwOC44Yy0zLjQsMC4xLTYuOC0wLjktOS41LTNsLTkxLjItNjAuN2MtMi45LTEuNy02LjEtMi42LTkuNS0yLjZIMjMwLjVjLTkuMywwLTE3LDcuNC0xNy4yLDE2LjgNCgl2NTYzLjdjMC4yLDkuMyw3LjksMTYuOCwxNy4yLDE2LjhoNjk3LjFjOS4zLDAsMTctNy41LDE3LjItMTYuOHYtNDk3Qzk0NC45LDIwNS42LDkzNy4yLDE5Ny44LDkyNy43LDE5Ny44TDkyNy43LDE5Ny44eiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTQzOS4zLDE2NC4zSDI4Ni45Yy0zLjgsMC02LjksMy4xLTYuOSw2Ljl2MTkuNGMwLDMuOCwzLjEsNi45LDYuOSw2LjloMTUyLjNjMy44LDAsNi45LTMuMSw2LjktNi45DQoJYzAsMCwwLDAsMCwwdi0xOS40QzQ0Ni4xLDE2Ny4zLDQ0My4xLDE2NC4zLDQzOS4zLDE2NC4zeiIvPg0KPHBhdGggY2xhc3M9InN0MiIgZD0iTTMwOC40LDE2NC4zaC0yMy43Yy0yLjYsMC00LjcsMi4xLTQuNyw0Ljd2MjMuN2MwLDIuNiwyLjEsNC43LDQuNyw0LjdoMjMuN2MyLjYsMCw0LjctMi4xLDQuNy00LjdWMTY5DQoJQzMxMy4yLDE2Ni40LDMxMS4xLDE2NC4zLDMwOC40LDE2NC4zeiIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTkyNy43LDE5N0g1NzkuMWMtNC42LTAuMS05LDEuOC0xMiw1LjJMNTA5LDI1OC4xYy0zLjMsMy03LjYsNC43LTEyLDQuN0gyMzAuNWMtOS41LDAtMTcuMiw3LjctMTcuMiwxNy4ybDAsMA0KCXY0MzAuM2MwLjIsOS4zLDcuOSwxNi44LDE3LjIsMTYuOGg2OTcuMWM5LjMsMCwxNy03LjQsMTcuMi0xNi44VjIxNWMwLjEtMi4zLTAuMy00LjctMS4xLTYuOUM5NDEuMywyMDEuNCw5MzQuOSwxOTcsOTI3LjcsMTk3eiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTYyOS45LDI4OC4yYy0xLjEtMC4zLTIuMy0wLjMtMy41LDBjMCwwLTMuOSwwLTUuNiwzbC0xMzYsMTk3LjVjLTEuMiwyLjEtMS4yLDQuOCwwLDYuOWMxLjMsMi40LDMuNyw0LDYuNSw0LjMNCgloODAuNWwtMzUuNiwxMTkuNmMtMC40LDAuNy0wLjYsMS41LTAuNiwyLjJjMCwwLjgsMC4xLDEuNiwwLjQsMi4zYzAuMywwLjcsMC43LDEuNCwxLjMsMS45YzAuNiwwLjYsMS4zLDEsMiwxLjNjMSwwLjQsMiwwLjQsMywwDQoJYzIuNiwwLDMuOSwwLDUuNi0zTDY4OCw0MjMuN3YtNC4zYy0wLjItMy45LTMuNC02LjktNy4zLTYuOWgtODYuMWwzNC45LTExNy41QzYzMS4yLDI5My4yLDYzMS4zLDI5MC4zLDYyOS45LDI4OC4yTDYyOS45LDI4OC4yeiIvPg0KPC9zdmc+DQo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob Data Lake",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Blob Data Lake Source",
        "description" : "Consume files from Azure Storage Blob Data Lake.",
        "required" : [ "accountName", "clientId", "clientSecret", "tenantId", "fileSystemName" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob Data lake account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientId" : {
            "title" : "Client Id",
            "description" : "The Azure Storage Blob Data lake client Id.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Client Secret",
            "description" : "The Azure Storage Blob Data lake client secret.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "tenantId" : {
            "title" : "Tenant Id",
            "description" : "The Azure Storage Blob Data lake tenant id.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "fileSystemName" : {
            "title" : "File System Name",
            "description" : "The Azure Storage Blob Data lake File system name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected blob.",
            "type" : "integer",
            "default" : 500
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "CLIENT_SECRET", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY", "AZURE_SAS", "SERVICE_CLIENT_INSTANCE" ],
            "default" : "CLIENT_SECRET"
          }
        }
      },
      "dependencies" : [ "camel:azure-storage-datalake", "camel:kamelet", "camel:core", "camel:timer", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1" ],
      "template" : {
        "from" : {
          "uri" : "azure-storage-datalake:{{accountName}}/{{fileSystemName}}",
          "parameters" : {
            "clientId" : "{{clientId}}",
            "clientSecret" : "{{clientSecret}}",
            "tenantId" : "{{tenantId}}",
            "delay" : "{{delay}}",
            "credentialType" : "{{credentialType}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Blob Data Lake Source",
      "description" : "Consume files from Azure Storage Blob Data Lake.",
      "required" : [ "accountName", "clientId", "clientSecret", "tenantId", "fileSystemName" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob Data lake account name."
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client Id",
          "description" : "The Azure Storage Blob Data lake client Id.",
          "format" : "password"
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Client Secret",
          "description" : "The Azure Storage Blob Data lake client secret.",
          "format" : "password"
        },
        "tenantId" : {
          "type" : "string",
          "title" : "Tenant Id",
          "description" : "The Azure Storage Blob Data lake tenant id.",
          "format" : "password"
        },
        "fileSystemName" : {
          "type" : "string",
          "title" : "File System Name",
          "description" : "The Azure Storage Blob Data lake File system name."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected blob.",
          "default" : 500
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "CLIENT_SECRET", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY", "AZURE_SAS", "SERVICE_CLIENT_INSTANCE" ],
          "default" : "CLIENT_SECRET"
        }
      }
    }
  },
  "azure-storage-files-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-files-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny41NTggMHptLjIzNCA1Ny45NjRjMCAzLjM1My0yLjgwNSA2LjIyNy02LjA3OCA2LjIyN0gyOC41MmMtMy4yNzMgMC02LjA3OC0yLjg3NC02LjA3OC02LjIyN1YyMi4yNzZjMC0zLjM1MyAyLjgwNS02LjIyOCA2LjA3OC02LjIyOGgyOS45MjJsOS4zNTEgOS41ODF2MzIuMzM1ek00MS42MSA0Ni40NjdjMC0uNDc5LS4yMzQtLjcxOC0uMjM0LS45NThzLS4yMzQtLjQ3OS0uNDY3LS43MTgtLjIzNC0uMjQtLjQ2OC0uMjRoLS43MDFjLS40NjggMC0uNzAyIDAtLjkzNS4yNHMtLjQ2OC40NzktLjcwMS45NTgtLjIzNC45NTgtLjIzNCAxLjQzN3Y0LjU1MWMwIC43MTkuMjM0IDEuMTk3LjQ2OCAxLjQzNy4yMzQuNDc5LjQ2OC43MTkuNzAxLjcxOS4yMzQuMjQuNDY4LjI0LjkzNS4yNC4yMzQgMCAuNDY4IDAgLjcwMS0uMjRhLjUxLjUxIDAgMCAwIC40NjgtLjQ3OWMuMjM0LS4yNC4yMzQtLjQ3OS40NjctLjcxOCAwLS4yNC4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE5LjIzMy0xLjE5OHYtMy4xMTRjLS40NjctLjI0LS40NjctLjQ3OS0uNDY3LS45NTh6bTEwLjUyLTE4LjY4M2MwLS40NzktLjIzNC0uNzE4LS4yMzQtLjk1OHMtLjIzNC0uNDc5LS40NjgtLjcxOS0uMjM0LS4yNC0uNDY4LS4yNGgtLjcwMWMtLjQ2NyAwLS43MDEgMC0uOTM1LjI0cy0uNDY4LjQ3OS0uNzAyLjk1OC0uMjMzLjk1OC0uMjMzIDEuNDM3djQuNTUxYzAgLjcxOS4yMzMgMS4xOTguNDY3IDEuNDM3LjIzNC40NzkuNDY4LjcxOS43MDEuNzE5LjIzNC4yNC40NjcuMjQuOTM1LjI0LjIzNCAwIC40NjcgMCAuNzAxLS4yNGEuNTEuNTEgMCAwIDAgLjQ2OC0uNDc5Yy4yMzQtLjI0LjIzNC0uNDc5LjQ2OC0uNzE5IDAtLjIzOS4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE4LjIzNC0xLjE5OHYtMy4xMTRjLS4yMzQgMC0uMjM0LS40NzktLjQ2Ny0uOTU4em00LjY3NS04LjM4M0gyOC41MTljLTEuNjM2IDAtMi44MDUgMS4xOTgtMi44MDUgMi44NzR2MzUuNjg5YzAgMS42NzcgMS4xNjkgMi44NzQgMi44MDUgMi44NzRoMzMuMTk1YTIuODggMi44OCAwIDAgMCAyLjgwNS0yLjg3NFYyNy4zMDVoLTcuNDh2LTcuOTA0ek0zNiAyNi41ODd2LS40NzlsLjIzNC0uMjQgMi44MDUtMS45MTZoMi41NzF2MTEuNDk3aDIuMzM4bC4yMzMuMjRjLjIzNC4yMzkgMCAuMjM5IDAgLjIzOXYxLjE5N3MwIC4yNC0uMjMzLjI0aC03LjcxNGwtLjIzNC0uMjR2LTEuNDM3czAtLjI0LjIzNC0uMjRoMi44MDV2LTguODYybC0yLjEwNCAxLjE5OGMtLjIzNCAwLS4yMzQuMjM5LS40NjcuMjM5aC0uMjM0czAtLjIzOS0uMjM0LS4yMzl2LTEuMTk4em04LjE4MiAyNS42MjljLS4yMzMuOTU4LS40NjcgMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjM5LTEuNDAzLjQ3OS0yLjMzOC40NzlzLTEuNjM2LS4yNC0yLjMzOC0uNDc5YTIuMTMgMi4xMyAwIDAgMS0xLjQwMy0xLjQzN2MtLjIzNC0uNzE4LS43MDEtMS40MzctLjcwMS0yLjE1Ni0uMjM0LS45NTgtLjIzNC0xLjkxNi0uMjM0LTIuODc0IDAtMS4xOTggMC0yLjE1Ni4yMzQtMi44NzQuMjM0LS45NTguNDY3LTEuNjc3LjkzNS0yLjE1NnMuOTM1LTEuMTk4IDEuNDAzLTEuNDM3Yy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yMzkgMi4zMzcuNDc5YTIuMTMgMi4xMyAwIDAgMSAxLjQwMyAxLjQzN2MuMjM0LjcxOS43MDEgMS40MzcuNzAxIDIuMTU2LjIzNC45NTguMjM0IDEuOTE2LjIzNCAyLjg3NCAwIDEuMTk4IDAgMi4xNTYtLjIzNCAyLjg3NHptMTAuNTIgMy4zNTN2LjI0czAgLjIzOS0uMjM0LjIzOWgtNy43MTRsLS4yMzQtLjIzOXYtMS40MzdzMC0uMjM5LjIzNC0uMjM5aDIuODA1di04Ljg2MmwtMi4xMDQgMS4xOThjLS4yMzQgMC0uMjM0LjIzOS0uNDY4LjIzOWgtLjIzNHMwLS4yMzktLjIzNC0uMjM5VjQ0Ljc5bC4yMzQtLjI0IDIuODA1LTEuOTE2aDIuNTcydjExLjQ5N2gyLjMzOGwuMjM0LjIzOXYxLjE5OHptLjIzNC0yMi4wMzZjLS4yMzQuOTU4LS40NjggMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjQtMS40MDMuNDc5LTIuMzM4LjQ3OXMtMS42MzYtLjI0LTIuMzM4LS40NzlhMi4xMyAyLjEzIDAgMCAxLTEuNDAzLTEuNDM3Yy0uMjM0LS40NzktLjcwMS0xLjQzNy0uNzAxLTIuMTU2cy0uMjM0LTEuOTE2LS4yMzQtMi44NzRjMC0xLjE5OCAwLTIuMTU2LjIzNC0yLjg3NC4yMzQtLjk1OC40NjgtMS42NzcuOTM1LTIuMTU2LjQ2OC0uNzE4LjkzNS0xLjE5OCAxLjQwMy0xLjQzNy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yNCAyLjMzOC40NzlhMi4xMyAyLjEzIDAgMCAxIDEuNDAzIDEuNDM3Yy4yMzQuNzE4LjcwMSAxLjQzNy43MDEgMi4xNTYuMjM0Ljk1OC4yMzQgMS45MTYuMjM0IDIuODc0IDAgMS4xOTgtLjIzNCAyLjE1Ni0uMjM0IDIuODc0eiIgZmlsbD0iIzAwNzhkNyIgc3Ryb2tlPSJub25lIi8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Files Sink",
        "description" : "Upload data to Azure Storage Files Share.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
        "required" : [ "accountName", "shareName" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Blob account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "shareName" : {
            "title" : "Share Name",
            "description" : "The Azure Storage File Share share name.",
            "type" : "string"
          },
          "sharedKey" : {
            "title" : "Shared Access Key",
            "description" : "The Azure Storage Blob access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "SHARED_KEY_CREDENTIAL", "AZURE_SAS" ],
            "default" : "SHARED_ACCOUNT_KEY"
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The directory from where the producer will upload the file.",
            "type" : "string",
            "default" : "."
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:azure-storage-blob", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "azure-files://{{accountName}}/{{shareName}}/{{directoryName}}",
              "parameters" : {
                "sharedKey" : "{{?sharedKey}}",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Files Sink",
      "description" : "Upload data to Azure Storage Files Share.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
      "required" : [ "accountName", "shareName" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Blob account name."
        },
        "shareName" : {
          "type" : "string",
          "title" : "Share Name",
          "description" : "The Azure Storage File Share share name."
        },
        "sharedKey" : {
          "type" : "string",
          "title" : "Shared Access Key",
          "description" : "The Azure Storage Blob access key.",
          "format" : "password"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "SHARED_KEY_CREDENTIAL", "AZURE_SAS" ],
          "default" : "SHARED_ACCOUNT_KEY"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The directory from where the producer will upload the file.",
          "default" : "."
        }
      }
    }
  },
  "azure-storage-files-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-files-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny41NTggMHptLjIzNCA1Ny45NjRjMCAzLjM1My0yLjgwNSA2LjIyNy02LjA3OCA2LjIyN0gyOC41MmMtMy4yNzMgMC02LjA3OC0yLjg3NC02LjA3OC02LjIyN1YyMi4yNzZjMC0zLjM1MyAyLjgwNS02LjIyOCA2LjA3OC02LjIyOGgyOS45MjJsOS4zNTEgOS41ODF2MzIuMzM1ek00MS42MSA0Ni40NjdjMC0uNDc5LS4yMzQtLjcxOC0uMjM0LS45NThzLS4yMzQtLjQ3OS0uNDY3LS43MTgtLjIzNC0uMjQtLjQ2OC0uMjRoLS43MDFjLS40NjggMC0uNzAyIDAtLjkzNS4yNHMtLjQ2OC40NzktLjcwMS45NTgtLjIzNC45NTgtLjIzNCAxLjQzN3Y0LjU1MWMwIC43MTkuMjM0IDEuMTk3LjQ2OCAxLjQzNy4yMzQuNDc5LjQ2OC43MTkuNzAxLjcxOS4yMzQuMjQuNDY4LjI0LjkzNS4yNC4yMzQgMCAuNDY4IDAgLjcwMS0uMjRhLjUxLjUxIDAgMCAwIC40NjgtLjQ3OWMuMjM0LS4yNC4yMzQtLjQ3OS40NjctLjcxOCAwLS4yNC4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE5LjIzMy0xLjE5OHYtMy4xMTRjLS40NjctLjI0LS40NjctLjQ3OS0uNDY3LS45NTh6bTEwLjUyLTE4LjY4M2MwLS40NzktLjIzNC0uNzE4LS4yMzQtLjk1OHMtLjIzNC0uNDc5LS40NjgtLjcxOS0uMjM0LS4yNC0uNDY4LS4yNGgtLjcwMWMtLjQ2NyAwLS43MDEgMC0uOTM1LjI0cy0uNDY4LjQ3OS0uNzAyLjk1OC0uMjMzLjk1OC0uMjMzIDEuNDM3djQuNTUxYzAgLjcxOS4yMzMgMS4xOTguNDY3IDEuNDM3LjIzNC40NzkuNDY4LjcxOS43MDEuNzE5LjIzNC4yNC40NjcuMjQuOTM1LjI0LjIzNCAwIC40NjcgMCAuNzAxLS4yNGEuNTEuNTEgMCAwIDAgLjQ2OC0uNDc5Yy4yMzQtLjI0LjIzNC0uNDc5LjQ2OC0uNzE5IDAtLjIzOS4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE4LjIzNC0xLjE5OHYtMy4xMTRjLS4yMzQgMC0uMjM0LS40NzktLjQ2Ny0uOTU4em00LjY3NS04LjM4M0gyOC41MTljLTEuNjM2IDAtMi44MDUgMS4xOTgtMi44MDUgMi44NzR2MzUuNjg5YzAgMS42NzcgMS4xNjkgMi44NzQgMi44MDUgMi44NzRoMzMuMTk1YTIuODggMi44OCAwIDAgMCAyLjgwNS0yLjg3NFYyNy4zMDVoLTcuNDh2LTcuOTA0ek0zNiAyNi41ODd2LS40NzlsLjIzNC0uMjQgMi44MDUtMS45MTZoMi41NzF2MTEuNDk3aDIuMzM4bC4yMzMuMjRjLjIzNC4yMzkgMCAuMjM5IDAgLjIzOXYxLjE5N3MwIC4yNC0uMjMzLjI0aC03LjcxNGwtLjIzNC0uMjR2LTEuNDM3czAtLjI0LjIzNC0uMjRoMi44MDV2LTguODYybC0yLjEwNCAxLjE5OGMtLjIzNCAwLS4yMzQuMjM5LS40NjcuMjM5aC0uMjM0czAtLjIzOS0uMjM0LS4yMzl2LTEuMTk4em04LjE4MiAyNS42MjljLS4yMzMuOTU4LS40NjcgMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjM5LTEuNDAzLjQ3OS0yLjMzOC40NzlzLTEuNjM2LS4yNC0yLjMzOC0uNDc5YTIuMTMgMi4xMyAwIDAgMS0xLjQwMy0xLjQzN2MtLjIzNC0uNzE4LS43MDEtMS40MzctLjcwMS0yLjE1Ni0uMjM0LS45NTgtLjIzNC0xLjkxNi0uMjM0LTIuODc0IDAtMS4xOTggMC0yLjE1Ni4yMzQtMi44NzQuMjM0LS45NTguNDY3LTEuNjc3LjkzNS0yLjE1NnMuOTM1LTEuMTk4IDEuNDAzLTEuNDM3Yy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yMzkgMi4zMzcuNDc5YTIuMTMgMi4xMyAwIDAgMSAxLjQwMyAxLjQzN2MuMjM0LjcxOS43MDEgMS40MzcuNzAxIDIuMTU2LjIzNC45NTguMjM0IDEuOTE2LjIzNCAyLjg3NCAwIDEuMTk4IDAgMi4xNTYtLjIzNCAyLjg3NHptMTAuNTIgMy4zNTN2LjI0czAgLjIzOS0uMjM0LjIzOWgtNy43MTRsLS4yMzQtLjIzOXYtMS40MzdzMC0uMjM5LjIzNC0uMjM5aDIuODA1di04Ljg2MmwtMi4xMDQgMS4xOThjLS4yMzQgMC0uMjM0LjIzOS0uNDY4LjIzOWgtLjIzNHMwLS4yMzktLjIzNC0uMjM5VjQ0Ljc5bC4yMzQtLjI0IDIuODA1LTEuOTE2aDIuNTcydjExLjQ5N2gyLjMzOGwuMjM0LjIzOXYxLjE5OHptLjIzNC0yMi4wMzZjLS4yMzQuOTU4LS40NjggMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjQtMS40MDMuNDc5LTIuMzM4LjQ3OXMtMS42MzYtLjI0LTIuMzM4LS40NzlhMi4xMyAyLjEzIDAgMCAxLTEuNDAzLTEuNDM3Yy0uMjM0LS40NzktLjcwMS0xLjQzNy0uNzAxLTIuMTU2cy0uMjM0LTEuOTE2LS4yMzQtMi44NzRjMC0xLjE5OCAwLTIuMTU2LjIzNC0yLjg3NC4yMzQtLjk1OC40NjgtMS42NzcuOTM1LTIuMTU2LjQ2OC0uNzE4LjkzNS0xLjE5OCAxLjQwMy0xLjQzNy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yNCAyLjMzOC40NzlhMi4xMyAyLjEzIDAgMCAxIDEuNDAzIDEuNDM3Yy4yMzQuNzE4LjcwMSAxLjQzNy43MDEgMi4xNTYuMjM0Ljk1OC4yMzQgMS45MTYuMjM0IDIuODc0IDAgMS4xOTgtLjIzNCAyLjE1Ni0uMjM0IDIuODc0eiIgZmlsbD0iIzAwNzhkNyIgc3Ryb2tlPSJub25lIi8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Blob",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage File Source",
        "description" : "Consume files from Azure Storage File Shares.",
        "required" : [ "accountName", "shareName" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage File Share account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "shareName" : {
            "title" : "Share Name",
            "description" : "The Azure Storage File Share share name.",
            "type" : "string"
          },
          "sharedKey" : {
            "title" : "Shared Access Key",
            "description" : "The Azure Storage Blob access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected blob.",
            "type" : "integer",
            "default" : 500
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Blob",
            "description" : "Specifies to delete blobs after consuming them",
            "type" : "boolean",
            "default" : false
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "SHARED_KEY_CREDENTIAL", "AZURE_SAS" ],
            "default" : "SHARED_ACCOUNT_KEY"
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The directory from where the consumer will start reading files.",
            "type" : "string",
            "default" : "."
          },
          "recursive" : {
            "title" : "Recursive Mode",
            "description" : "If a directory, the consumer will look for files in all the sub-directories as well.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:azure-files", "camel:kamelet", "camel:core", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "azure-files:{{accountName}}/{{shareName}}/{{directoryName}}",
          "parameters" : {
            "sharedKey" : "{{?sharedKey}}",
            "credentialType" : "{{credentialType}}",
            "delay" : "{{delay}}",
            "delete" : "{{deleteAfterRead}}",
            "recursive" : "{{recursive}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage File Source",
      "description" : "Consume files from Azure Storage File Shares.",
      "required" : [ "accountName", "shareName" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage File Share account name."
        },
        "shareName" : {
          "type" : "string",
          "title" : "Share Name",
          "description" : "The Azure Storage File Share share name."
        },
        "sharedKey" : {
          "type" : "string",
          "title" : "Shared Access Key",
          "description" : "The Azure Storage Blob access key.",
          "format" : "password"
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected blob.",
          "default" : 500
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Blob",
          "description" : "Specifies to delete blobs after consuming them",
          "default" : false
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "SHARED_KEY_CREDENTIAL", "AZURE_SAS" ],
          "default" : "SHARED_ACCOUNT_KEY"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The directory from where the consumer will start reading files.",
          "default" : "."
        },
        "recursive" : {
          "type" : "boolean",
          "title" : "Recursive Mode",
          "description" : "If a directory, the consumer will look for files in all the sub-directories as well.",
          "default" : false
        }
      }
    }
  },
  "azure-storage-queue-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-queue-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNzAuMDUzIDM0LjYzNEg1MC41OGw5LjczNiA3LjgwNXptLTM5LjQyIDEwLjQ4OGMtLjIzOCAwLS40NzUgMC0uNzEzLS4yNDRsLTkuMDI0LTcuMzE3djExLjk1MWgyMC42NlYzNy4zMTdsLTkuNzM2IDcuNTYxYy0uNDc1LjI0NC0uOTUuMjQ0LTEuMTg3LjI0NHptMjkuNjgzIDBjLS4yMzggMC0uNzEzIDAtLjcxMy0uMjQ0bC05LjI2MS03LjMxN3YxMS45NTFoMjAuNjZWMzcuMzE3bC05LjczNiA3LjU2MWMtLjQ3NS4yNDQtLjcxMy4yNDQtLjk1LjI0NHpNNjcuNjc4IDBIMjIuNTU5TDAgNDBsMjIuNTU5IDQwSDY3LjQ0TDkwIDQwIDY3LjY3OCAwem03LjgzNiA1Ny4wNzNIMTQuMDExYy0xLjkgMC0zLjMyNS0xLjcwNy0zLjMyNS0zLjY1OVYyOS4yNjhjMC0xLjk1MSAxLjQyNS0zLjY1OCAzLjMyNS0zLjY1OGg2MS41MDRjLjcxMyAwIDEuOSAwIDkuOTc0IDE1LjYxbC4yMzcuNzMyLS4yMzcuNzMyYy04LjA3NCAxNC4zOS05LjI2MSAxNC4zOS05Ljk3NCAxNC4zOXpNNDAuMzcgMzQuNjM0SDIwLjY2bDkuNzM2IDcuODA1em0tMjYuMzU5LTYuMzQxYy0uNDc1IDAtLjk1LjQ4OC0uOTUuOTc2djI0LjE0NmMwIC40ODguNDc1IDEuMjIuOTUgMS4yMkg3NS4wNGMxLjE4OC0xLjIyIDQuNzQ5LTcuMDczIDcuODM3LTEyLjY4My0zLjA4Ny02LjA5OC02Ljg4Ni0xMi40MzktNy44MzctMTMuNjU5SDE0LjAxMXptMjkuOTIxIDIyLjQzOWMwIC43MzItLjcxMyAxLjQ2My0xLjY2MyAxLjQ2M0gxOC45OThjLS43MTMgMC0uOTUtLjczMi0uOTUtMS40NjNWMzIuOTI3YzAtLjczMi4yMzgtLjk3Ni45NS0uOTc2SDQyLjI3Yy43MTIgMCAxLjY2My4yNDQgMS42NjMuOTc2djE3LjgwNXptMjkuMjA5IDBjMCAuNzMyLS40NzUgMS40NjMtMS4xODggMS40NjNINDguOTE5Yy0uNzEyIDAtMS4xODctLjczMi0xLjE4Ny0xLjQ2M1YzMi45MjdjMC0uNzMyLjQ3NS0uOTc2IDEuMTg3LS45NzZoMjMuMDM0Yy43MTMgMCAxLjE4OC4yNDQgMS4xODguOTc2djE3LjgwNXoiIGZpbGw9IiMwMDc4ZDciIHN0cm9rZT0ibm9uZSIvPjwvc3ltYm9sPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Queue",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Queue Sink",
        "description" : "Send events to Azure Storage queues.\n\nIn the header, you can set the `partition` / `ce-partition` property to determine how long an event remains in the Azure Storage queue. Use `PnDTnHnMn.nS.` format. For example, `PT20.345S` parses as 20.345 seconds and `P2D` parses as 2 days. If you not set the property in the header, the Kamelet uses the default of `P27D` (7 days).",
        "required" : [ "accountName", "queueName", "accessKey" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Queue account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "queueName" : {
            "title" : "Queue Name",
            "description" : "The Azure Storage Queue container name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The Azure Storage Queue access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY" ],
            "default" : "SHARED_ACCOUNT_KEY"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:azure-storage-queue", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[expiration]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageQueueTimeToLive",
                    "simple" : "${header[expiration]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-expiration]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAzureStorageQueueTimeToLive",
                    "simple" : "${header[ce-expiration]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "azure-storage-queue://{{accountName}}/{{queueName}}",
              "parameters" : {
                "accessKey" : "{{accessKey}}",
                "credentialType" : "{{credentialType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Queue Sink",
      "description" : "Send events to Azure Storage queues.\n\nIn the header, you can set the `partition` / `ce-partition` property to determine how long an event remains in the Azure Storage queue. Use `PnDTnHnMn.nS.` format. For example, `PT20.345S` parses as 20.345 seconds and `P2D` parses as 2 days. If you not set the property in the header, the Kamelet uses the default of `P27D` (7 days).",
      "required" : [ "accountName", "queueName", "accessKey" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Queue account name."
        },
        "queueName" : {
          "type" : "string",
          "title" : "Queue Name",
          "description" : "The Azure Storage Queue container name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The Azure Storage Queue access key.",
          "format" : "password"
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        }
      }
    }
  },
  "azure-storage-queue-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "azure-storage-queue-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNzAuMDUzIDM0LjYzNEg1MC41OGw5LjczNiA3LjgwNXptLTM5LjQyIDEwLjQ4OGMtLjIzOCAwLS40NzUgMC0uNzEzLS4yNDRsLTkuMDI0LTcuMzE3djExLjk1MWgyMC42NlYzNy4zMTdsLTkuNzM2IDcuNTYxYy0uNDc1LjI0NC0uOTUuMjQ0LTEuMTg3LjI0NHptMjkuNjgzIDBjLS4yMzggMC0uNzEzIDAtLjcxMy0uMjQ0bC05LjI2MS03LjMxN3YxMS45NTFoMjAuNjZWMzcuMzE3bC05LjczNiA3LjU2MWMtLjQ3NS4yNDQtLjcxMy4yNDQtLjk1LjI0NHpNNjcuNjc4IDBIMjIuNTU5TDAgNDBsMjIuNTU5IDQwSDY3LjQ0TDkwIDQwIDY3LjY3OCAwem03LjgzNiA1Ny4wNzNIMTQuMDExYy0xLjkgMC0zLjMyNS0xLjcwNy0zLjMyNS0zLjY1OVYyOS4yNjhjMC0xLjk1MSAxLjQyNS0zLjY1OCAzLjMyNS0zLjY1OGg2MS41MDRjLjcxMyAwIDEuOSAwIDkuOTc0IDE1LjYxbC4yMzcuNzMyLS4yMzcuNzMyYy04LjA3NCAxNC4zOS05LjI2MSAxNC4zOS05Ljk3NCAxNC4zOXpNNDAuMzcgMzQuNjM0SDIwLjY2bDkuNzM2IDcuODA1em0tMjYuMzU5LTYuMzQxYy0uNDc1IDAtLjk1LjQ4OC0uOTUuOTc2djI0LjE0NmMwIC40ODguNDc1IDEuMjIuOTUgMS4yMkg3NS4wNGMxLjE4OC0xLjIyIDQuNzQ5LTcuMDczIDcuODM3LTEyLjY4My0zLjA4Ny02LjA5OC02Ljg4Ni0xMi40MzktNy44MzctMTMuNjU5SDE0LjAxMXptMjkuOTIxIDIyLjQzOWMwIC43MzItLjcxMyAxLjQ2My0xLjY2MyAxLjQ2M0gxOC45OThjLS43MTMgMC0uOTUtLjczMi0uOTUtMS40NjNWMzIuOTI3YzAtLjczMi4yMzgtLjk3Ni45NS0uOTc2SDQyLjI3Yy43MTIgMCAxLjY2My4yNDQgMS42NjMuOTc2djE3LjgwNXptMjkuMjA5IDBjMCAuNzMyLS40NzUgMS40NjMtMS4xODggMS40NjNINDguOTE5Yy0uNzEyIDAtMS4xODctLjczMi0xLjE4Ny0xLjQ2M1YzMi45MjdjMC0uNzMyLjQ3NS0uOTc2IDEuMTg3LS45NzZoMjMuMDM0Yy43MTMgMCAxLjE4OC4yNDQgMS4xODguOTc2djE3LjgwNXoiIGZpbGw9IiMwMDc4ZDciIHN0cm9rZT0ibm9uZSIvPjwvc3ltYm9sPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Azure Storage Queue",
        "camel.apache.org/kamelet.namespace" : "Azure"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Storage Queue Source",
        "description" : "Receive events from Azure Storage queues.\n\nOne header will be duplicated with different names for clarity at sink level, CamelAzureStorageQueueMessageId will be duplicated into azure.storage.queue.message.id",
        "required" : [ "accountName", "queueName", "accessKey" ],
        "type" : "object",
        "properties" : {
          "accountName" : {
            "title" : "Account Name",
            "description" : "The Azure Storage Queue account name.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "queueName" : {
            "title" : "Queue Name",
            "description" : "The Azure Storage Queue container name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The Azure Storage Queue access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "maxMessages" : {
            "title" : "Maximum Messages",
            "description" : "The maximum number of messages to get. You can specify a value between 1 and 32. The default is 1 (one message). If there are fewer than the maximum number of messages in the queue, then all the messages are returned.",
            "type" : "integer",
            "default" : 1
          },
          "credentialType" : {
            "title" : "Credential Type",
            "description" : "Determines the credential strategy to adopt.",
            "type" : "string",
            "enum" : [ "SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY" ],
            "default" : "SHARED_ACCOUNT_KEY"
          }
        }
      },
      "dataTypes" : {
        "out" : {
          "default" : "text",
          "headers" : {
            "CamelAzureStorageQueueMessageId" : {
              "title" : "Azure Storage Queue Message Id",
              "description" : "The id of the message",
              "type" : "string"
            },
            "CamelAzureStorageQueueInsertionTime" : {
              "title" : "Azure Storage Queue Message Insertion Time",
              "description" : "The time the Message was inserted into the Queue.",
              "type" : "OffsetDateTime"
            },
            "CamelAzureStorageQueueExpirationTime" : {
              "title" : "Azure Storage Queue Message Expiration Time",
              "description" : "The time that the Message will expire and be automatically deleted.",
              "type" : "OffsetDateTime"
            },
            "CamelAzureStorageQueuePopReceipt" : {
              "title" : "Pop Receipt",
              "description" : "Unique identifier that must match for the message to be deleted or updated. If deletion fails using this pop receipt then the message has been dequeued by another client.",
              "type" : "string"
            },
            "CamelAzureStorageQueueTimeNextVisible" : {
              "title" : "Azure Storage Queue Message Time Next Visible",
              "description" : "The time that the message will again become visible in the Queue.",
              "type" : "OffsetDateTime"
            },
            "CamelAzureStorageQueueDequeueCount" : {
              "title" : "Dequeue Count",
              "description" : "The number of times the message has been dequeued",
              "type" : "long"
            }
          },
          "types" : {
            "binary" : {
              "format" : "text-plain",
              "description" : "Default text representation of the Message dequeued from the queue.",
              "mediaType" : "text/plain"
            },
            "cloudevents" : {
              "format" : "azure-storage-queue:application-cloudevents",
              "description" : "Output data type represents Azure Storage Queue receive messages operation as CloudEvent V1. The data type sets Camel\nspecific CloudEvent headers on the exchange.",
              "headers" : {
                "CamelCloudEventID" : {
                  "title" : "CloudEvent ID",
                  "description" : "The Camel exchange id set as event id",
                  "type" : "string"
                },
                "CamelCloudEventType" : {
                  "title" : "CloudEvent Type",
                  "description" : "The event type",
                  "default" : "org.apache.camel.event.azure.storage.queue.receiveMessages",
                  "type" : "string"
                },
                "CamelCloudEventSource" : {
                  "title" : "CloudEvent Source",
                  "description" : "The event source. By default, the Message Id of the message received with prefix \"azure.storage.queue.\".",
                  "type" : "string"
                },
                "CamelCloudEventSubject" : {
                  "title" : "CloudEvent Subject",
                  "description" : "The event subject. Usually the Pop receipt of the message dequeued.",
                  "type" : "string"
                },
                "CamelCloudEventTime" : {
                  "title" : "CloudEvent Time",
                  "description" : "The exchange creation timestamp as event time.",
                  "type" : "string"
                }
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:azure-storage-queue", "camel:kamelet", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "azure-storage-queue://{{accountName}}/{{queueName}}",
          "parameters" : {
            "accessKey" : "{{accessKey}}",
            "maxMessages" : "{{maxMessages}}",
            "credentialType" : "{{credentialType}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Storage Queue Source",
      "description" : "Receive events from Azure Storage queues.\n\nOne header will be duplicated with different names for clarity at sink level, CamelAzureStorageQueueMessageId will be duplicated into azure.storage.queue.message.id",
      "required" : [ "accountName", "queueName", "accessKey" ],
      "properties" : {
        "accountName" : {
          "type" : "string",
          "title" : "Account Name",
          "description" : "The Azure Storage Queue account name."
        },
        "queueName" : {
          "type" : "string",
          "title" : "Queue Name",
          "description" : "The Azure Storage Queue container name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The Azure Storage Queue access key.",
          "format" : "password"
        },
        "maxMessages" : {
          "type" : "integer",
          "title" : "Maximum Messages",
          "description" : "The maximum number of messages to get. You can specify a value between 1 and 32. The default is 1 (one message). If there are fewer than the maximum number of messages in the queue, then all the messages are returned.",
          "default" : 1
        },
        "credentialType" : {
          "type" : "string",
          "title" : "Credential Type",
          "description" : "Determines the credential strategy to adopt.",
          "enum" : [ "SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY" ],
          "default" : "SHARED_ACCOUNT_KEY"
        }
      }
    }
  },
  "beer-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "beer-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iOTJwdCIgd2lkdGg9IjkycHQiIHZlcnNpb249IjEuMCIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+Cgk8ZGVmcz4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImEiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjZmZmZmZmIiBzdG9wLW9wYWNpdHk9Ii41IiBvZmZzZXQ9IjAiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIuMSIgb2Zmc2V0PSIxIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImQiIHkyPSI2Mi4yOTkiIHhsaW5rOmhyZWY9IiNhIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9IjMzLjYxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC43ODQ3OSAwIDAgMS4yNzQyIC0yNS42OTEgLTguNTYzNSkiIHgyPSI5NS42ODkiIHgxPSI1OS4wOTkiLz4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImMiIHkyPSIyNDEuMDkiIHhsaW5rOmhyZWY9IiNhIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9IjIwOC4wNCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjk3NzcgMCAwIC41MDU2MyAtMjUuNjkxIC04LjU2MzUpIiB4Mj0iMjguMTc5IiB4MT0iMTcuNDAyIi8+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJiIiB5Mj0iODAuOTA5IiB4bGluazpocmVmPSIjYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHkxPSI1NS45ODgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS41NDY5IDAgMCAuNjQ2NDcgLTI1LjY5MSAtOC41NjM1KSIgeDI9Ijg3LjA3NCIgeDE9IjcwLjA2MyIvPgoJPC9kZWZzPgoJPHBhdGggc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0ibTEyLjQ2MyAyNC44ODZjMi4zNTIgMS4yMjYgMjIuMzY4IDUuNDg4IDMzLjk3MiA1LjIyNiAxNi41MjcgMC4yNjIgMzAuMzEzLTYuMDQ5IDMyLjkyNy03LjA1NSAwIDEuNDMzLTIuMzA3IDEwLjI3My0yLjYxNCAxNS42NzkgMCA1LjQ0OCAxLjgzIDI4LjQxNSAyLjA5MSAzMy43MTEgMC44NjggNi4xNzggMi43MDQgMTMuODYxIDQuNDQzIDE5LjA3NyAxLjgyOSAzLjU1My0yMy41NjMgOS44NTYtMzQuNzU3IDEwLjQ1Ni0xMi42MDIgMC43OC0zOC45MzctNC4zNzUtMzcuMzY5LTguMzY2IDAtMy45NjggMy42NTktMTMuMzgzIDMuNjU5LTE5LjU5OSAwLjUyMi02LjAyNS0wLjI2Mi0yMy4yNzMtMC4yNjItMzAuODM2LTAuMjYxLTYuNzgtMS4wNTMtMTIuNTYxLTIuMDktMTguMjkzeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjZmJkOTAwIi8+Cgk8cGF0aCBkPSJtMTAuNjMzIDk0LjY1OWMtNS41ODUxLTEuMzMxLTcuODc4NiAxMC4xMTEtMS44Mjg4IDEyLjAyMSA2LjM2NzggMy43NSAyOS43MDMgNy4wNiAzOS4xOTkgNi4yNyAxMS4xMDEtMC4yNiAzMS4xOTItNC40NCAzNS44MDEtOC4zNiA2LjEzNC0zLjkyIDUuNDY2LTEzLjA2NiAwLTEyLjAyMS0zLjI3OCAzLjY1OC0yNi42OTkgOC44ODEtMzYuNTg1IDkuNDExLTkuMjIzIDAuNzgtMzAuNzQ5LTIuNTMtMzYuNTg2LTcuMzIxeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjZmJmM2JmIi8+Cgk8cGF0aCBzdHJva2UtbGluZWpvaW49ImJldmVsIiBkPSJtNzcuMzgyIDM0LjA0NmMxLjI0NS0zLjIxMiA5LjYzOS02Ljk3MiAxMi4zNjQtNy41MTYgNC42ODYtMS4wNSAxMi4zODQtMS4zODggMTYuNzY0IDQuMjggNy45NCAxMC4zMjMgNi43NiAyOC42MjYgMi44NiAzNC42MzgtMi43OCA1LjEwNC05LjM3MSAxMC4yODItMTQuNjM1IDExLjg3OC01LjE1MSAxLjUzMy0xMi43MDcgMi42NjEtMTQuMzMzIDMuNzExLTAuMzUtMS4yOTYtMS4zMjctNy4zODgtMS4zOC05LjA3MSAxLjk1IDAuMTI4IDcuNDg5LTAuODkzIDExLjY5NS0xLjg2OCAzLjkwMi0wLjg5OSA2LjQ1LTMuMjc0IDkuMzMzLTYuMjIyIDUtNC43IDQuMzUtMjEuMTYgMC41NC0yNS4wNTctMi4yMzMtMi4yNjItNi44NDktMy45MDQtOS45MTUtMy4zMjMtNC45OTIgMS4wMzItMTMuNjc3IDcuMzY2LTEzLjY3NyA2Ljk4LTAuNTA4LTIuMDgtMC4yNS02LjE1OSAwLjM4NC04LjQzeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMS4yNSIgZmlsbD0iI2ZiZjNiZiIvPgoJPHBhdGggc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0ibTMyLjAyMiAzOC4zNjhjMS42NTUgMS4yMDYtMS4zNTUgMTYuOTU1LTAuOTQyIDI4LjEzMSAwLjQxNCAxNC4yOTUgMS40NDQgMjMuNTI4LTAuNTIxIDI0LjYzNS0zLjEwOCAxLjY3NS05LjkwMS0wLjEzNS0xMi4wNDYtMi40Mi0xLjI3My0xLjUwNyAxLjgwNi0xMC4yNCAyLjAxMy0xNi40MjktMC40MTQtOC43MTEtMS43MDMtMzMuMzAzLTAuNDYxLTM0Ljc3OCAyLjI1Mi0yLjA1MyA5LjY4MS0xLjE1MiAxMS45NTcgMC44NjF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxLjI1IiBmaWxsPSIjZmJlNjAwIi8+Cgk8cGF0aCBkPSJtNDAuNjEyIDM5LjAzN2MtMS40NzggMS40MjQtMC4wNjMgMTkuNjI1LTAuMDYzIDIyLjU1OSAwLjMwNSAzLjgwOC0xLjEwMSAyNy40NTItMC4xNzggMjguOTU0IDEuODQ4IDIuMTIyIDEwLjIxNiAyLjQ0MiAxMy4wMDEtMC4zNTYgMS41MDUtMS44NzUtMC40NzgtMjIuNTQ0LTAuNDc4LTI3LjY4IDAtNS41MSAxLjQwNy0yMi4wNTItMC40NC0yMy41OC0yLjAzMy0yLjE0OS04LjQ0LTMuMTgtMTEuODQyIDAuMTAzeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjZmJlNjAwIi8+Cgk8cGF0aCBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJtNjAuMzAxIDM3LjU5M2MtMS42NTggMS4yNTYgMS4xNzkgMTUuOCAxLjE5NCAyNi45ODIgMC4xMzcgMTQuMjk5LTEuMjQ1IDI0LjY2MiAwLjgyNCAyNS43MDkgMy4yNjggMS41NzggMTAuODgxLTEuNTQyIDEzLTMuODkxIDEuMjUzLTEuNTQ1LTEuNDExLTEwLjE3OS0yLjA4Mi0xNi4zNTgtMC45ODQtOC4xNjQgMC4xNDgtMzMuMTI4LTEuMTg5LTM0LjU2NC0yLjQwMi0xLjk4NC05LjQ4MiAwLjA0LTExLjc0NyAyLjEyMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjEuMjUiIGZpbGw9IiNmYmU2MDAiLz4KCTxwYXRoIGQ9Im01My41ODIgMzEuMTJjLTQuOTg5IDEuMTA5LTM2LjU4OC0zLjE0MS0zOS43MjktNC44MDQgMC45MjQgNC42MiAzLjE0MSA0NS4yNzIgMS42NjMgNDkuODkyIDAuMTg1IDIuMDMyLTMuODggMTUuMTUyLTMuNjk1IDE3LjkyNCAxNy4xODQtNjguMzcgMzkuNzI4LTQ4Ljk2OCA0MS43NjEtNjMuMDEyeiIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSJ1cmwoI2QpIi8+Cgk8cGF0aCBkPSJtMTAuMDI3IDk1LjMwOWMtMy4wNTE1LTAuODk3LTUuMjA1MyA2LjgyMS0yLjg3MiA5LjE1MSA1Ljc0MyAyLjY5IDEzLjI4Mi0yLjMzIDM4LjIzLTEuNjEtMTIuNzQzLTAuMzYtMzEuNTg5LTIuODc0LTM1LjM1OC03LjU0MXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNjKSIvPgoJPHBhdGggZD0ibTc4LjU5IDMzLjU2N2M0LjQ4Ny00LjQ4OCA4Ljc5NC01LjU2NCAxMy45OTktNi40NjIgOC43OTEtMi4zMzMgMTQuOTAxIDMuNzY5IDE2Ljg3MSAxMS44NDYtNC40OS03LjE3OS0xMC4yMy04LjI1Ni0xNC4xNzgtOC40MzYtNC4xMjggMC43MTgtMTUuNzk1IDcuODk4LTE2Ljg3MiA5LjE1NHMtMC43MTgtNC4xMjggMC4xOC02LjEwMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNiKSIvPgoJPHBhdGggc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0ibTExLjQwOCA3Ny4zNGMyLjM4MzIgMS4xNTkgNC4yODExLTEuNTY5MyAzLjQ2NDktMy4wMzAzIDAuOTE1MDMgMC4wODY1OCAxLjc5NDgtMC4zMjU0IDEuNzk0OC0xLjc5NDggMC43MjA0NC0wLjcyMDQ0LTAuMzY0NjEtMS44NTQ0LTAuMzY0NjEtMi43MzU3LTAuOTkzNTQtMC45OTM1NCAwLjAwNTYtMi4xNjUgMC4wMDU2LTMuNzI1NyAwLTEuNTUzNSAwLjg5NzQyLTIuNTAyNCAwLjg5NzQyLTQuMTI4MSAwLTIuMzYxMSAyLjA1OTQtMS4xODA3IDAuODk3NDItNC42NjY2IDEuMDg4Mi0wLjQyNDU1IDIuMjc0MS0xLjQ4NDUgMC44OTc0Mi0yLjY5MjMgMi4xNjAxLTAuMjM5NTIgMy4yMTg2LTIuMzU0MiAwLjUzODQ1LTQuNjY2NiA0LjA3MzQgMC00LjIzMDItOC43MzA1IDIuNjkyMy02Ljk5OTkgMi4yMjItMC41NTU1MSAxLjc5NDgtMi4yMTUxIDEuNzk0OC00LjMwNzYgMi44NzE3IDMuOTQ4NyA2Ljg5NTQgMi42MjEzIDcuNTM4MyAwIDEuMzQ4NiA0LjM5OTggMTAuNTkgMi41ODY5IDEwLjU5LTIuODcxNyAwLjE3OTQ4IDYuNzUwMiA3LjExNzcgMy40MDQ2IDguNDM1OCAzLjk0ODYtMS42MTU0IDEuODY2MiAxLjU4NDEgOS4wNzk2IDQuMzA3NiA5LjE1MzctNi4zMDk3IDQuNzMyMy01LjE3MjkgMTMuMDAxIDIuNTEyOCAxNC41MzggMy44OTM4IDAgNS4zODQ1LTMuMjc4NSA1LjM4NDUtNy44OTczIDEuMjU2NCAyLjY0NDcgNi45NzIgNC4yNzk3IDYuOTk5OS0wLjE3OTQ4IDIuODcxNyA1LjU0NDYgNi40OTU5LTEuNDcwNCA0LjMwNzYtMi4xNTM4IDUuMDI1NiAxLjkwNTcgMy4yMTI4LTYuOTgxMSAxLjM3ODUtOS4wNTYgMi44NzE4LTAuOTE0NDggMS44MzQ2LTcuNjE4NCAwLjA1NzQtOS43ODk4IDIuNjIxMiAyLjY2NTIgNi43Mzg1LTAuODMxMTIgNi4yODItNS45MjMgMS4yMjggMy40NjcxIDkuMTQ3NS0wLjM2ODI4IDMuNzY5Mi04LjQzNTggMC0xLjU0NTEtNC40ODcxLTEuNzQ4OC01LjU2NC0wLjUzODQ1LTAuMDE1NDEtNS40NDYxLTQuMDk5Ny05LjY5MjEtNi45OTk5LTguNjE1MiAxLjc5OS0yLjY5MzItOS4wNDgtNC44OTk5LTExLjMwOC0wLjUzOSAxLjM1MS01LjcwMTItMTMuODEtOS4zMzM2LTE0LjE3OS02LjEwMjktMS43NDgtMi41MTI4LTExLjc3MS0yLjU1ODYtMTQuNzE4IDYuMjgxOSAwLTQuODYwNi0xNi4zMDktNi45OTk5LTE1Ljk3NCAwLjM1ODk3LTMuNDg5OS0yLjQzMzEtOS4yMjc0IDAuMzU4OTctOC43OTQ3IDMuMjMwNy01LjM4NDUtMi43MDM0LTcuODQyIDkuNTYxMS0zLjQxMDIgMTAuMjMxLTIuNTEyOCAyLjI2MjQtMi42OTIzIDExLjMxMSAwLjUzODQ1IDExLjEyOC0xLjk3NDMgMi4xMjk3LTAuODk3NDIgOC40MzY2IDEuMjU2NCA4LjYxNTItMS42Nzk0IDIuMzIwNiAwLjI0NTcgMTMuNjc0IDcuMTc5NCAxMS44NDYgMCAyLjUyMzQgMC43MDg3NyA0LjY5NDEtMC4xNzk0OCA3LjM1ODggMCAxLjU0NTUtMC44OTc0MiAyLjg1MjgtMC44OTc0MiA0LjQ4NzEgMC4zNzIwNiAwLjc0NDEyLTEuMjU5NyAyLjcyNDQgMC41Mzg0NSAzLjk0ODYtNC4yMTY3IDEuNzU5My0zLjMwMjQgNC40NjQyLTEuNjcwMSA1LjcyMjZ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9IiNmZmZmZmYiLz4KCTxwYXRoIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Im0xMS4zMTcgMzIuNTc0Yy0xLjUwOTgtMS42NSAxLjIyMS03LjA0IDQuMjQyLTYuNzYzIDAuNjg5LTIuNDc0IDIuNTg2LTIuODkyIDQuNjg4LTIuMTg3LTEuMDQ4LTIuMDQ1IDEuNTAzLTMuOTkyIDMuNzUtMS42ODIgMS41MTctMi42MjIgNC42NzctNC42NDUgNi4zNTYtMy4yMzEtMC4xMzItMy4zNzMgNi4wNjMtNi43OTQgOC4zMzEtMy44MzcgMCAwLjYwNi0wLjM2MiAxLjg3NSAwIDEuODc1IiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9Im5vbmUiLz4KCTxwYXRoIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Im00OC4zNzIgMjIuMzc0Yy0wLjEwNC00LjcyMSAxNC4wMDktOC41OTEgMTEuMjUtMC4zMTMgMS4yNjktMC42MzQgNi44NzUtMS4yOTkgNS44NDQgMi4zMTQgNC4xMjMtMC40NjYgMTAuMzkgMS4xMDQgNi42NjIgNi42ODggMi4zOTYgMS44MDYgMS4zMzEgNi42OTYtMC4zMTkgNS4wNjEiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjFwdCIgZmlsbD0ibm9uZSIvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Beers",
        "camel.apache.org/kamelet.namespace" : "Dataset"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Beer Source",
        "description" : "Produces periodic events about beers!",
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period",
            "description" : "The time interval between two events",
            "type" : "integer",
            "default" : 5000
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:timer", "camel:http", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "timer:beer",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "to" : "https://random-data-api.com/api/beer/random_beer"
          }, {
            "removeHeaders" : {
              "pattern" : "*"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Beer Source",
      "description" : "Produces periodic events about beers!",
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period",
          "description" : "The time interval between two events",
          "default" : 5000
        }
      }
    }
  },
  "bitcoin-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "bitcoin-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CjxzdmcgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNjQiIHdpZHRoPSI2NCIgdmVyc2lvbj0iMS4xIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwNjMwODc2LC0wLjAwMzAxOTg0KSI+CjxwYXRoIGZpbGw9IiNmNzkzMWEiIGQ9Im02My4wMzMsMzkuNzQ0Yy00LjI3NCwxNy4xNDMtMjEuNjM3LDI3LjU3Ni0zOC43ODIsMjMuMzAxLTE3LjEzOC00LjI3NC0yNy41NzEtMjEuNjM4LTIzLjI5NS0zOC43OCw0LjI3Mi0xNy4xNDUsMjEuNjM1LTI3LjU3OSwzOC43NzUtMjMuMzA1LDE3LjE0NCw0LjI3NCwyNy41NzYsMjEuNjQsMjMuMzAyLDM4Ljc4NHoiLz4KPHBhdGggZmlsbD0iI0ZGRiIgZD0ibTQ2LjEwMywyNy40NDRjMC42MzctNC4yNTgtMi42MDUtNi41NDctNy4wMzgtOC4wNzRsMS40MzgtNS43NjgtMy41MTEtMC44NzUtMS40LDUuNjE2Yy0wLjkyMy0wLjIzLTEuODcxLTAuNDQ3LTIuODEzLTAuNjYybDEuNDEtNS42NTMtMy41MDktMC44NzUtMS40MzksNS43NjZjLTAuNzY0LTAuMTc0LTEuNTE0LTAuMzQ2LTIuMjQyLTAuNTI3bDAuMDA0LTAuMDE4LTQuODQyLTEuMjA5LTAuOTM0LDMuNzVzMi42MDUsMC41OTcsMi41NSwwLjYzNGMxLjQyMiwwLjM1NSwxLjY3OSwxLjI5NiwxLjYzNiwyLjA0MmwtMS42MzgsNi41NzFjMC4wOTgsMC4wMjUsMC4yMjUsMC4wNjEsMC4zNjUsMC4xMTctMC4xMTctMC4wMjktMC4yNDItMC4wNjEtMC4zNzEtMC4wOTJsLTIuMjk2LDkuMjA1Yy0wLjE3NCwwLjQzMi0wLjYxNSwxLjA4LTEuNjA5LDAuODM0LDAuMDM1LDAuMDUxLTIuNTUyLTAuNjM3LTIuNTUyLTAuNjM3bC0xLjc0Myw0LjAxOSw0LjU2OSwxLjEzOWMwLjg1LDAuMjEzLDEuNjgzLDAuNDM2LDIuNTAzLDAuNjQ2bC0xLjQ1Myw1LjgzNCwzLjUwNywwLjg3NSwxLjQzOS01Ljc3MmMwLjk1OCwwLjI2LDEuODg4LDAuNSwyLjc5OCwwLjcyNmwtMS40MzQsNS43NDUsMy41MTEsMC44NzUsMS40NTMtNS44MjNjNS45ODcsMS4xMzMsMTAuNDg5LDAuNjc2LDEyLjM4NC00LjczOSwxLjUyNy00LjM2LTAuMDc2LTYuODc1LTMuMjI2LTguNTE1LDIuMjk0LTAuNTI5LDQuMDIyLTIuMDM4LDQuNDgzLTUuMTU1em0tOC4wMjIsMTEuMjQ5Yy0xLjA4NSw0LjM2LTguNDI2LDIuMDAzLTEwLjgwNiwxLjQxMmwxLjkyOC03LjcyOWMyLjM4LDAuNTk0LDEwLjAxMiwxLjc3LDguODc4LDYuMzE3em0xLjA4Ni0xMS4zMTJjLTAuOTksMy45NjYtNy4xLDEuOTUxLTkuMDgyLDEuNDU3bDEuNzQ4LTcuMDFjMS45ODIsMC40OTQsOC4zNjUsMS40MTYsNy4zMzQsNS41NTN6Ii8+CjwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Bitcoin",
        "camel.apache.org/kamelet.namespace" : "Bitcoin"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Bitcoin Source",
        "description" : "Provides a feed of the value of the Bitcoin compared to USDT using the Binance service.",
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period between Updates",
            "description" : "The interval between updates in milliseconds",
            "type" : "integer",
            "default" : 10000
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json",
          "schema" : {
            "type" : "object",
            "properties" : {
              "currencyPair" : {
                "type" : "string"
              },
              "open" : {
                "type" : "number"
              },
              "last" : {
                "type" : "number"
              },
              "bid" : {
                "type" : "number"
              },
              "ask" : {
                "type" : "number"
              },
              "high" : {
                "type" : "number"
              },
              "low" : {
                "type" : "number"
              },
              "vwap" : {
                "type" : "number"
              },
              "volume" : {
                "type" : "number"
              },
              "quoteVolume" : {
                "type" : "number"
              },
              "bidSize" : {
                "type" : "number"
              },
              "askSize" : {
                "type" : "number"
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:xchange", "camel:kamelet", "camel:jackson", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "timer:update",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "to" : "xchange:binance?service=marketdata&method=ticker&currencyPair=BTC/USDT"
          }, {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Bitcoin Source",
      "description" : "Provides a feed of the value of the Bitcoin compared to USDT using the Binance service.",
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period between Updates",
          "description" : "The interval between updates in milliseconds",
          "default" : 10000
        }
      }
    }
  },
  "caffeine-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "caffeine-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9ItCh0LvQvtC5XzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyODEuOCAyNzMuOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjgxLjggMjczLjg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cmVjdCB4PSIxODYuNyIgeT0iMTIxLjYiIHdpZHRoPSIyLjQiIGhlaWdodD0iNDUuNiIvPgoJPHJlY3QgeD0iNDMuNCIgeT0iNzcuMiIgdHJhbnNmb3JtPSJtYXRyaXgoMC41MDA0IC0wLjg2NTggMC44NjU4IDAuNTAwNCAtNjEuMjQ1NCA4Ni43Nzc1KSIgd2lkdGg9IjIuNCIgaGVpZ2h0PSIzOC41Ii8+Cgk8cmVjdCB4PSIxMjYuNSIgeT0iMjIyLjMiIHdpZHRoPSIyLjQiIGhlaWdodD0iMzcuNCIvPgoJPHBvbHlnb24gcG9pbnRzPSIyNjcuMSwxNDUuMSAyNjcuNywxNDQuNCAyNjcuMSwxNDMuNyAyNjcuMSwxNDMuNyAyNjYuNSwxNDIuOCAyNjYsMTQyLjEgMjY2LDE0Mi4xIDI0Ny4xLDExNi4xIDI0NS4yLDExNy41IAoJCTI2NCwxNDMuNSAyNjQsMTQzLjUgMjY0LjQsMTQ0IDI2NC43LDE0NC40IDI0NS45LDE3MC4zIDI0Ny44LDE3MS43IDI2NiwxNDYuNyAyNjYsMTQ2LjcgMjY2LDE0Ni42IDI2Ny4xLDE0NS4xIAkiLz4KCTxyZWN0IHg9IjIzMi45IiB5PSIxNTIuOSIgdHJhbnNmb3JtPSJtYXRyaXgoMC41ODc2IC0wLjgwOTEgMC44MDkxIDAuNTg3NiAtMjMuMDYyNCAyNjIuODY1OCkiIHdpZHRoPSIyNi45IiBoZWlnaHQ9IjIuNCIvPgoJPHBvbHlnb24gcG9pbnRzPSIyMTQuOSwxMDIuMiAxNzcuNywxMTQuMyAxMzQsODkuMSAxMzQsNTAuMiAxMzEuNyw1MC4yIDEzMS43LDg3LjcgMTI4LjUsODUuOSAxMjcuNyw4NS40IDEyNi44LDg1LjkgMTIzLjcsODcuNyAKCQkxMjMuNyw1MC4yIDEyMS4zLDUwLjIgMTIxLjMsODkuMSA5My43LDEwNS4xIDk0LjksMTA3LjEgMTI2LjUsODguOSAxMjYuNSw4OC45IDEyNy43LDg4LjIgMTI4LjgsODguOSAxMjguOCw4OC44IDE3Ni4zLDExNi4zIAoJCTE3Ni4zLDE3Mi41IDE0My42LDE5MS41IDE0NC44LDE5My41IDE3Ny43LDE3NC41IDIxNC45LDE4Ni42IDIxNS42LDE4NC4zIDE3OC43LDE3Mi4zIDE3OC43LDExNi41IDIxNS42LDEwNC41IAkiLz4KCTxyZWN0IHg9IjIyNi44IiB5PSI1OC44IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjMwOTQgLTAuOTUwOSAwLjk1MDkgMC4zMDk0IDExMS44OTczIDI3NC4wMzI1KSIgd2lkdGg9IjM1LjciIGhlaWdodD0iMi40Ii8+Cgk8cG9seWdvbiBwb2ludHM9IjcwLjQsMTA3LjEgNzAuNSwxMDcuMSA4NC45LDEyOS41IDg4LjcsMTI5LjUgODguNywxMDAuOCA4NS4xLDEwMC44IDg1LjEsMTIzLjEgODUuMSwxMjMuMSA3MC43LDEwMC44IDY2LjgsMTAwLjggCgkJNjYuOCwxMjkuNSA3MC40LDEyOS41IAkiLz4KCTxwb2x5Z29uIHBvaW50cz0iNzksMTcxLjIgNzksMTM1LjkgNzYuNiwxMzUuOSA3Ni42LDE2Ni41IDQyLjYsMTg2LjEgNDMuOSwxODguMiA3Ni42LDE2OS4zIDc2LjYsMTcxLjIgNzYuNiwxNzMuMiA3Ni42LDE3My45IAoJCTc4LjksMTc1LjMgNzguOSwxNzUuMyA4MC42LDE3Ni4yIDQ3LjgsMTk1LjEgNDksMTk3LjIgODMsMTc3LjYgMTEwLjUsMTkzLjUgMTExLjcsMTkxLjUgNzksMTcyLjUgCSIvPgoJPHBvbHlnb24gcG9pbnRzPSIxMzUuMSwyMDkuNSAxMzUsMjA5LjUgMTIwLjYsMTg3LjIgMTE2LjcsMTg3LjIgMTE2LjcsMjE1LjkgMTIwLjMsMjE1LjkgMTIwLjMsMTkzLjUgMTIwLjMsMTkzLjUgMTM0LjcsMjE1LjkgCgkJMTM4LjYsMjE1LjkgMTM4LjYsMTg3LjIgMTM1LjEsMTg3LjIgCSIvPgoJPHBhdGggZD0iTTM0LjksMTg4LjhjLTMuMS0xLjgtNy0xLjgtNy0xLjhjLTMuOSwwLTcsMS44LTcsMS44Yy0zLjIsMS44LTQuOSw1LjItNC45LDUuMmMtMS44LDMuNC0xLjgsNy44LTEuOCw3LjgKCQljMCw0LjMsMS44LDcuNywxLjgsNy43YzEuOCwzLjQsNC45LDUuMiw0LjksNS4yYzMuMSwxLjgsNy4xLDEuOCw3LjEsMS44YzMuOSwwLDctMS44LDctMS44YzMuMS0xLjgsNC45LTUuMiw0LjktNS4yCgkJYzEuOC0zLjQsMS44LTcuOCwxLjgtNy44YzAtNC41LTEuOC03LjgtMS44LTcuOEMzOC4xLDE5MC42LDM0LjksMTg4LjgsMzQuOSwxODguOHogTTM2LjQsMjA4Yy0xLjIsMi42LTMuNSw0LTMuNSw0CgkJYy0yLjIsMS40LTUsMS40LTUsMS40Yy0yLjgsMC01LjEtMS40LTUuMS0xLjRjLTIuMi0xLjQtMy40LTQtMy40LTRjLTEuMy0yLjYtMS4zLTYuMS0xLjMtNi4xYzAtMy42LDEuMi02LjMsMS4yLTYuMwoJCWMxLjItMi42LDMuNC00LDMuNC00YzIuMi0xLjQsNS4xLTEuNCw1LjEtMS40YzIuOSwwLDUuMSwxLjQsNS4xLDEuNGMyLjIsMS40LDMuNCw0LDMuNCw0YzEuMiwyLjYsMS4yLDYuMiwxLjIsNi4yCgkJQzM3LjcsMjA1LjQsMzYuNCwyMDgsMzYuNCwyMDh6Ii8+Cgk8cGF0aCBkPSJNMTIwLjYsNDEuOWMzLjIsMS44LDcuMSwxLjgsNy4xLDEuOGMzLjksMCw3LTEuOCw3LTEuOGMzLjEtMS44LDQuOS01LjIsNC45LTUuMmMxLjgtMy40LDEuOC03LjgsMS44LTcuOAoJCWMwLTQuNS0xLjgtNy44LTEuOC03LjhjLTEuOC0zLjMtNC45LTUuMi00LjktNS4yYy0zLjEtMS44LTctMS44LTctMS44Yy0zLjksMC03LDEuOC03LDEuOGMtMy4yLDEuOC00LjksNS4yLTQuOSw1LjIKCQljLTEuOCwzLjQtMS44LDcuOC0xLjgsNy44YzAsNC4zLDEuOCw3LjcsMS44LDcuN0MxMTcuNSw0MC4xLDEyMC42LDQxLjksMTIwLjYsNDEuOXogTTExOS4xLDIyLjhjMS4yLTIuNiwzLjUtNCwzLjUtNAoJCWMyLjItMS40LDUuMS0xLjQsNS4xLTEuNGMyLjksMCw1LjEsMS40LDUuMSwxLjRjMi4yLDEuNCwzLjUsNCwzLjUsNGMxLjIsMi42LDEuMiw2LjIsMS4yLDYuMmMwLDMuNi0xLjIsNi4yLTEuMiw2LjIKCQljLTEuMiwyLjYtMy41LDQtMy41LDRjLTIuMiwxLjQtNSwxLjQtNSwxLjRjLTIuOCwwLTUtMS40LTUtMS40Yy0yLjItMS40LTMuNS00LTMuNS00Yy0xLjItMi42LTEuMi02LjEtMS4yLTYuMQoJCUMxMTcuOSwyNS41LDExOS4xLDIyLjgsMTE5LjEsMjIuOHoiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjM5LjcsMTk4LjUgMjM5LjYsMTk4LjUgMjI1LjMsMTc2LjIgMjIxLjMsMTc2LjIgMjIxLjMsMjA0LjkgMjI0LjksMjA0LjkgMjI0LjksMTgyLjUgMjI1LDE4Mi41IDIzOS40LDIwNC45IAoJCTI0My4zLDIwNC45IDI0My4zLDE3Ni4yIDIzOS43LDE3Ni4yIAkiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjI0LjksODkuMyAyMjUsODkuMyAyMzkuNCwxMTEuNyAyNDMuMywxMTEuNyAyNDMuMyw4MyAyMzkuNyw4MyAyMzkuNywxMDUuMyAyMzkuNiwxMDUuMyAyMjUuMyw4MyAyMjEuMyw4MyAKCQkyMjEuMywxMTEuNyAyMjQuOSwxMTEuNyAJIi8+CjwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Caffeine",
        "camel.apache.org/kamelet.namespace" : "Cache"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Caffeine Action",
        "description" : "Perform operations on a caffeine cache\n\nThe Kamelet expects the following headers to be set:\n\n- `caffeine-key` / `ce-caffeinekey`: as the cache key used in the operation\n\n- `caffeine-operation` / `ce-caffeineoperation`: as the operation to perform. It can be PUT, GET, INVALIDATE and CLEANUP.\n\nIf the caffeine-key header won't be set the exchange ID will be used as key.\n\nIf the caffeine-operation header won't be set, the GET operation will be performed.",
        "required" : [ "cacheName" ],
        "type" : "object",
        "properties" : {
          "cacheName" : {
            "title" : "Cache name",
            "description" : "The name of the cache we want to use",
            "type" : "string",
            "default" : "caffeine-cache"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:caffeine", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[caffeine-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelCaffeineKey",
                    "simple" : "${header[caffeine-key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-caffeinekey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelCaffeineKey",
                    "simple" : "${header[ce-caffeinekey]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelCaffeineKey",
                    "simple" : "${body}"
                  }
                } ]
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[caffeine-operation]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelCaffeineAction",
                    "simple" : "${header[caffeine-operation]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-caffeineoperation]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelCaffeineAction",
                    "simple" : "${header[ce-caffeineoperation]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelCaffeineAction",
                    "constant" : "GET"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "caffeine-cache:{{cacheName}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Caffeine Action",
      "description" : "Perform operations on a caffeine cache\n\nThe Kamelet expects the following headers to be set:\n\n- `caffeine-key` / `ce-caffeinekey`: as the cache key used in the operation\n\n- `caffeine-operation` / `ce-caffeineoperation`: as the operation to perform. It can be PUT, GET, INVALIDATE and CLEANUP.\n\nIf the caffeine-key header won't be set the exchange ID will be used as key.\n\nIf the caffeine-operation header won't be set, the GET operation will be performed.",
      "required" : [ "cacheName" ],
      "properties" : {
        "cacheName" : {
          "type" : "string",
          "title" : "Cache name",
          "description" : "The name of the cache we want to use",
          "default" : "caffeine-cache"
        }
      }
    }
  },
  "cassandra-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "cassandra-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIgMzI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHRpdGxlPmNhc3NhbmRyYTwvdGl0bGU+CjxwYXRoIGQ9Ik0yMy4zLDguN2MwLDAtMC4zLDAuMy0wLjUsMC41Yy0wLjUsMC41LTEuMiwxLjMtMS43LDEuNWgwYy0wLjEsMC0wLjEsMC0wLjItMC4xbDAuOS0xLjlsMCwwYzAsMC4xLTEsMS45LTIuMiwxLjZsMCwwCgljMCwwLDAsMC0wLjEsMGMwLjYtMC44LDAuOC0xLjUsMC44LTEuNXMtMSwxLjYtMi4zLDEuMmMwLDAtMC4xLDAtMC4xLTAuMWMwLDAsMC0wLjEsMC0wLjFjMC0wLjEsMC4xLTAuMSwwLjEtMC4yCgljMC4xLTAuMiwwLjMtMC41LDAuMy0wLjVTMTguMyw5LjUsMTgsOS43bDAsMGMtMC4yLDAuMS0wLjUsMC4zLTAuNywwLjNjLTAuMSwwLTAuMSwwLTAuMiwwYy0wLjMtMC4xLTAuMy0wLjMtMC4yLTAuNgoJYzAuMS0wLjMsMC4yLTAuNSwwLjItMC41cy0wLjMsMC40LTAuNSwwLjhjLTAuMiwwLjMtMC40LDAuNS0wLjYsMC42bC0wLjIsMGMtMC4xLTAuMiwwLjEtMSwwLjEtMWMtMC4xLDAuMi0wLjMsMC40LTAuNCwwLjYKCWMtMC4xLDAuMi0wLjMsMC4zLTAuNSwwLjRoMGMtMC4xLDAtMC4yLDAtMC4zLDBjMCwwLTAuMS0wLjEtMC4xLTAuMmMtMC4xLTAuNCwwLjItMSwwLjItMWMwLDAtMC4xLDAuMy0wLjMsMC43djAKCWMwLDAuMS0wLjEsMC4yLTAuMSwwLjJjLTAuMSwwLjItMC4yLDAuMy0wLjMsMC4zYy0wLjItMC4xLTAuMy0wLjMtMC4zLTAuNWMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjRzMCwwLjMtMC4yLDAuNwoJYzAsMC4xLTAuMSwwLjItMC4yLDAuM2MwLDAtMC4xLDAuMS0wLjEsMC4xYy0xLjIsMC4yLTIuNCwwLjYtMy41LDFjLTAuMywwLjEtMC42LDAuMi0wLjksMC4zYy0xLDAuNC0yLDEtMy4xLDEuNwoJYy0xLjIsMC44LTIuMywxLjYtMy40LDIuNmMtMC42LDAuNS0xLjIsMS4xLTEuOCwxLjdjNC43LTIuNiw2LjYtNi4zLDE1LjUtNi43YzYuNy0wLjMsOS45LDIuOCwxMC45LDIuOWMyLjYsMC4xLDQuMy0xLjksNC45LTIuNgoJYzAuMS0wLjIsMC4yLTAuMywwLjItMC4zYzAsMC0wLjQsMC41LTEsMWwwLDBjLTAuNiwwLjUtMS40LDAuOS0yLjEsMC44aDBjLTAuMSwwLTAuMiwwLTAuMywwYzEtMC42LDEuNi0xLjYsMi0yLjEKCWMwLjEtMC4yLDAuMy0wLjUsMC4zLTAuNXMtMi4zLDIuNC00LjEsMi4yYy0wLjEsMC0wLjEsMC0wLjIsMGMwLjgtMC42LDEuMy0xLjQsMS43LTIuMXYwaDBjMC40LTAuNywwLjYtMS4zLDAuNi0xLjMKCWMwLDAtMC40LDAuNy0xLDEuNGwwLDBjLTAuNiwwLjctMS4zLDEuNS0yLDEuN2MtMC4xLDAtMC4yLDAuMS0wLjMsMC4xYzEuNC0xLjMsMi4xLTMuMSwyLjEtMy4xcy0xLjUsMi4xLTIuNywyLjUKCWMtMC4xLDAtMC4yLDAuMS0wLjIsMC4xYzAuOC0wLjcsMS4yLTEuMiwxLjQtMS43YzAuMy0wLjUsMC40LTAuOSwwLjQtMC45bDAsMGMtMC4xLDAuMi0wLjIsMC4zLTAuNCwwLjRsMCwwYy0wLjMsMC40LTAuOSwxLTEuNCwxLjQKCWwwLDBjLTAuMSwwLjEtMC4zLDAuMi0wLjQsMC4zYzAsMC0wLjEsMC4xLTAuMSwwLjFjLTAuMSwwLjEtMC4yLDAuMS0wLjQsMC4yYzAsMC0wLjEsMC0wLjEsMGMtMC4xLTAuMS0wLjItMC4xLTAuMy0wLjIKCWMtMC4xLDAuMS0wLjEsMC4yLTAuMiwwLjJoMGMwLDAtMC4xLDAtMC4xLDBjMS4xLTEuMiwxLjktMi44LDEuOS0yLjhsMCwwYzAsMC0xLjYsMi4xLTIuMywyLjNjLTAuMSwwLTAuMi0wLjEtMC4zLTAuMQoJYzAtMC4xLDAtMC4xLDAuMS0wLjJjMC4yLTAuNCwwLjYtMSwwLjYtMXMtMC4xLDAuMS0wLjIsMC4xYy0wLjEsMC4xLTAuMywwLjItMC40LDAuM2MtMC4xLDAuMS0wLjIsMC4xLTAuMiwwLjEKCWMtMC4xLDAuMS0wLjIsMC4xLTAuMywwLjFjLTAuMSwwLjEtMC4yLDAuMS0wLjMsMC4xYy0wLjEsMC0wLjEsMC0wLjEsMEMyMi4zLDEwLjUsMjMuMyw4LjcsMjMuMyw4LjdMMjMuMyw4Ljd6IE0xNywxMS42CgljLTAuNCwwLTAuOCwwLTEuMiwwYy0wLjQsMC0wLjcsMC0xLjEsMC4xYy0wLjQsMC4yLTAuNywwLjQtMSwwLjZjMCwwLjEsMCwwLjEsMCwwLjJjMCwwLjEsMCwwLjItMC4xLDAuMmwxLjIsMC45bDAsMGwtMC41LTEuNwoJbDAuOCwxLjVjMCwwLDAuMSwwLDAuMSwwbDAtMS42bDAuNSwxLjZsMC42LTEuNWwwLDEuN2MwLDAsMCwwLDAsMGwwLjktMS4zbC0wLjUsMS42bDAsMGwxLjQtMC45bC0xLDEuNHYwbDEuMy0wLjVjMCwwLDAsMCwwLjEtMC4xCgljLTAuMy0wLjQsMC0wLjksMC41LTAuOGMwLjItMC4zLDAuMy0wLjcsMC40LTFDMTguNiwxMS43LDE3LjgsMTEuNiwxNywxMS42TDE3LDExLjZ6IE0xMy42LDExLjhMMTMuNiwxMS44Yy0wLjQsMC0wLjgsMC4xLTEuMiwwLjIKCXMtMC44LDAuMS0xLjEsMC4yaDBjMC4yLDAuNSwwLjQsMSwwLjcsMS40YzAuMS0wLjMsMC4zLTAuNiwwLjUtMC45Yy0wLjItMC41LDAuMy0wLjksMC44LTAuN0MxMy40LDExLjksMTMuNSwxMS44LDEzLjYsMTEuOAoJTDEzLjYsMTEuOHogTTE5LjYsMTEuOWMwLDAuNC0wLjEsMC43LTAuMiwxLjFjMC40LDAuMywwLjEsMS0wLjQsMC45Yy0wLjIsMC4zLTAuNSwwLjYtMC43LDAuOGwwLjksMGwtMS4zLDAuM2MwLDAtMC4xLDAuMS0wLjEsMC4xCgljMC44LDAuMSwxLjUsMC40LDIuMSwwLjljMC40LTAuOCwwLjctMS42LDAuNy0yLjZDMjAuNCwxMi44LDIwLDEyLjMsMTkuNiwxMS45TDE5LjYsMTEuOXogTTExLjEsMTIuMmMtMC40LDAuMS0wLjgsMC4yLTEuMSwwLjMKCWMtMC4yLDAuMy0wLjMsMC43LTAuMywxYzAsMi4yLDEuMyw0LDMuMSw0LjlsMCwwYy0wLjMtMC4zLTAuNi0wLjctMC44LTEuMWMtMC45LDAuMS0xLjItMS4xLTAuNC0xLjRjLTAuMS0wLjYsMC0xLjMsMC4yLTEuOQoJQzExLjUsMTMuNSwxMS4yLDEyLjksMTEuMSwxMi4yTDExLjEsMTIuMnogTTIxLjMsMTIuMmMwLjIsMC41LDAuMywxLjEsMC4zLDEuN2MwLDMuMy0yLjksNS45LTYuNiw1LjljLTMuNiwwLTYuNi0yLjYtNi42LTUuOQoJYzAtMC4zLDAtMC42LDAuMS0wLjljLTEsMC40LTEuOSwwLjktMi44LDEuNWMtMC4zLDAuNS0wLjQsMS4xLTAuNCwxLjZjMC4xLDEuMywxLjMsMi40LDMsMy4ybC0wLjMtMC4xYy0zLjEtMC45LTUuNSwwLjctOC4xLTAuNwoJYzAuNiwwLjUsMS4zLDEsMy4zLDFjMC43LDAsMi45LTAuMSwzLjMsMC4yYzAuNCwwLjMtMS40LDItMS40LDJzMy0yLjUsMy4zLTEuN2MwLjIsMC41LTAuOSwyLTAuOSwyczEtMS40LDEuOC0xLjcKCWMwLjUtMC4yLDEtMC4yLDEuNCwwLjRjMC4yLDAuMy0xLjIsMi4xLTEuMiwyLjFzMi0xLjksMi4zLTEuOGMwLjQsMC4xLDAsMS44LDAsMS44czAuNy0xLjcsMS4xLTEuOWMwLjUtMC4yLTEuMiw0LTEuMiw0CglzMi4xLTMuOSwyLjUtNGMwLjctMC4yLDEuMSwyLjcsMS4xLDIuN3MtMC4zLTIuNSwwLTIuN2MyLjMtMSwxLDQuMywxLDQuM3MxLjUtMy42LDAuNi00LjRjMi40LDEuNiwyLjEsNC40LDIuMSw0LjRzMC42LTEuNC0xLjEtNC43CgljMSwwLDIuNCwyLjUsMi40LDIuNXMtMS42LTIuOC0wLjUtMi44YzIuMS0wLjEsMi4zLDMuNywyLjMsMy43czAuNi0wLjUtMS4xLTQuMmMxLjEtMC43LDMuNywzLjQsMy43LDMuNHMtMi40LTQtMi00LjMKCWMwLjQtMC4zLDEuOCwxLjMsMS44LDEuM3MtMS4xLTEuNS0wLjgtMS42YzAuMy0wLjIsMy4yLDIuOSwzLjIsMi45cy0yLjUtMy0yLjEtMy40YzAuNC0wLjQsMi4zLDEsMi4zLDFzLTIuOC0xLjktMi4zLTIuMgoJYzAuOC0wLjQsMywxLDMsMXMtMS4zLTEuMS0xLjEtMS40YzAuMi0wLjMsMi44LDEuNywyLjgsMS43cy0yLjMtMS44LTIuNC0yLjNjLTAuMS0wLjUsMS44LDAuMiwxLjgsMC4ycy0yLjEtMS0yLjItMS4zCgljMC0wLjMsMS40LDAuMywxLjQsMC4zcy0yLTEuNi0yLjUtMC4zYy0wLjEsMC4yLTAuMiwwLjQtMC40LDAuNmMwLjEtMC40LDAuMi0wLjcsMC4xLTEuMWMwLTAuMSwwLTAuMi0wLjEtMC40CglDMjQuNiwxMy41LDIzLjIsMTIuOCwyMS4zLDEyLjJMMjEuMywxMi4yeiBNMTMuNSwxMi44Yy0wLjEsMC4yLTAuNCwwLjMtMC43LDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAuMiwwLjNsMS43LDAuNmMwLDAsMCwwLDAtMC4xCglMMTMuNSwxMi44eiBNMTIuNywxMy40Yy0wLjEsMC4yLTAuMiwwLjQtMC4zLDAuN2MwLjIsMC4yLDAuMywwLjMsMC41LDAuNWwxLjIsMGwwLDBMMTIuNywxMy40eiBNMTguMiwxNC4xbC0wLjgsMC42bDAuMSwwCglDMTcuOCwxNC41LDE4LDE0LjMsMTguMiwxNC4xeiBNMTIuMiwxNC41QzEyLjIsMTQuNSwxMi4yLDE0LjUsMTIuMiwxNC41Yy0wLjEsMC41LTAuMSwwLjktMC4xLDEuM2MwLjMsMC4xLDAuNiwwLjMsMC42LDAuNmwxLjItMC44CgljLTAuMSwwLTAuMi0wLjEtMC4zLTAuMWwtMS40LTAuMWwwLjgtMC4yQzEyLjgsMTUsMTIuNSwxNC44LDEyLjIsMTQuNUwxMi4yLDE0LjV6IE0xMy4zLDE0LjhjMC4yLDAuMSwwLjQsMC4yLDAuNiwwLjNsMC4yLDAKCWMwLDAsMCwwLDAtMC4xTDEzLjMsMTQuOHogTTE3LjQsMTUuN2wxLjIsMS4yTDE3LDE2LjJsMC45LDEuNGwtMS40LTEuMWwwLDBsMC41LDEuN2wtMC44LTEuNWwtMC4xLDEuOGwtMC41LTEuOGwtMC42LDEuN2wwLjItMS44CglsMCwwTDE0LDE4LjJsMC40LTEuNWMtMC41LDAuNC0wLjgsMS0xLjEsMS42YzAuMSwwLjEsMC4zLDAuMywwLjQsMC40YzIuMiwwLjYsNC42LTAuMyw1LjgtMi4zYy0wLjUtMC4zLTEuMS0wLjYtMS43LTAuN0wxNy40LDE1Ljd6CgkgTTE0LjIsMTZsLTEuNCwwLjVjMCwwLDAsMCwwLDAuMWMwLDAuMi0wLjEsMC40LTAuMiwwLjZjMC4xLDAuMywwLjMsMC42LDAuNSwwLjhjMC4xLTAuMywwLjMtMC42LDAuNC0wLjhMMTMsMTcuNEwxNC4yLDE2egoJIE0xOSwxOS43Yy0wLjIsMC4xLTAuNSwwLjEtMC44LDAuMkMxOC41LDE5LjgsMTguOCwxOS43LDE5LDE5Ljd6IE0xNy42LDIwYy0wLjIsMC0wLjMsMC4xLTAuNSwwLjFjLTAuMywwLTAuNSwwLjEtMC44LDAuMQoJQzE2LjgsMjAuMSwxNy4yLDIwLjEsMTcuNiwyMEwxNy42LDIweiBNMTUuOCwyMC4yYy0wLjEsMC0wLjMsMC0wLjQsMEMxNS41LDIwLjIsMTUuNiwyMC4yLDE1LjgsMjAuMnoiLz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Cassandra",
        "camel.apache.org/kamelet.namespace" : "Nosql"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Cassandra Sink",
        "description" : "Send data to an Apache Cassandra cluster.\n\nThis Kamelet expects JSON Array formatted data. The content of the JSON Array is used as input for the CQL Prepared Statement set in the query parameter.",
        "required" : [ "connectionHost", "connectionPort", "keyspace", "query" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname(s) for the Cassandra server(s). Use a comma to separate multiple hostnames.",
            "type" : "string",
            "example" : "localhost"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port number(s) of the cassandra server(s). Use a comma to separate multiple port numbers.",
            "type" : "string",
            "example" : 9042
          },
          "keyspace" : {
            "title" : "Keyspace",
            "description" : "The keyspace to use.",
            "type" : "string",
            "example" : "customers"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username for accessing a secured Cassandra cluster.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password for accessing a secured Cassandra cluster.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "consistencyLevel" : {
            "title" : "Consistency Level",
            "description" : "The consistency level to use.",
            "type" : "string",
            "default" : "ANY",
            "enum" : [ "ANY", "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_QUORUM", "EACH_QUORUM", "LOCAL_ONE" ]
          },
          "prepareStatements" : {
            "title" : "Prepare Statements",
            "description" : "If true, specifies to use PreparedStatements as the query. If false, specifies to use regular Statements as the query.",
            "type" : "boolean",
            "default" : true
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the Cassandra cluster table.",
            "type" : "string"
          },
          "extraTypeCodecs" : {
            "title" : "Extra Type Codecs",
            "description" : "To use a specific comma separated list of Extra Type codecs.",
            "type" : "string",
            "enum" : [ "BLOB_TO_ARRAY", "BOOLEAN_LIST_TO_ARRAY", "BYTE_LIST_TO_ARRAY", "SHORT_LIST_TO_ARRAY", "INT_LIST_TO_ARRAY", "LONG_LIST_TO_ARRAY", "FLOAT_LIST_TO_ARRAY", "DOUBLE_LIST_TO_ARRAY", "TIMESTAMP_UTC", "TIMESTAMP_MILLIS_SYSTEM", "TIMESTAMP_MILLIS_UTC", "ZONED_TIMESTAMP_SYSTEM", "ZONED_TIMESTAMP_UTC", "ZONED_TIMESTAMP_PERSISTED", "LOCAL_TIMESTAMP_SYSTEM", "LOCAL_TIMESTAMP_UTC" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:cassandraql" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson",
                "useList" : true
              }
            }
          }, {
            "to" : {
              "uri" : "cql://{{connectionHost}}:{{connectionPort}}/{{keyspace}}",
              "parameters" : {
                "username" : "{{?username}}",
                "password" : "{{?password}}",
                "prepareStatements" : "{{prepareStatements}}",
                "consistencyLevel" : "{{consistencyLevel}}",
                "cql" : "{{query}}",
                "extraTypeCodecs" : "{{?extraTypeCodecs}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Cassandra Sink",
      "description" : "Send data to an Apache Cassandra cluster.\n\nThis Kamelet expects JSON Array formatted data. The content of the JSON Array is used as input for the CQL Prepared Statement set in the query parameter.",
      "required" : [ "connectionHost", "connectionPort", "keyspace", "query" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname(s) for the Cassandra server(s). Use a comma to separate multiple hostnames."
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port number(s) of the cassandra server(s). Use a comma to separate multiple port numbers."
        },
        "keyspace" : {
          "type" : "string",
          "title" : "Keyspace",
          "description" : "The keyspace to use."
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username for accessing a secured Cassandra cluster."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password for accessing a secured Cassandra cluster.",
          "format" : "password"
        },
        "consistencyLevel" : {
          "type" : "string",
          "title" : "Consistency Level",
          "description" : "The consistency level to use.",
          "enum" : [ "ANY", "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_QUORUM", "EACH_QUORUM", "LOCAL_ONE" ],
          "default" : "ANY"
        },
        "prepareStatements" : {
          "type" : "boolean",
          "title" : "Prepare Statements",
          "description" : "If true, specifies to use PreparedStatements as the query. If false, specifies to use regular Statements as the query.",
          "default" : true
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the Cassandra cluster table."
        },
        "extraTypeCodecs" : {
          "type" : "string",
          "title" : "Extra Type Codecs",
          "description" : "To use a specific comma separated list of Extra Type codecs.",
          "enum" : [ "BLOB_TO_ARRAY", "BOOLEAN_LIST_TO_ARRAY", "BYTE_LIST_TO_ARRAY", "SHORT_LIST_TO_ARRAY", "INT_LIST_TO_ARRAY", "LONG_LIST_TO_ARRAY", "FLOAT_LIST_TO_ARRAY", "DOUBLE_LIST_TO_ARRAY", "TIMESTAMP_UTC", "TIMESTAMP_MILLIS_SYSTEM", "TIMESTAMP_MILLIS_UTC", "ZONED_TIMESTAMP_SYSTEM", "ZONED_TIMESTAMP_UTC", "ZONED_TIMESTAMP_PERSISTED", "LOCAL_TIMESTAMP_SYSTEM", "LOCAL_TIMESTAMP_UTC" ]
        }
      }
    }
  },
  "cassandra-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "cassandra-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIgMzI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHRpdGxlPmNhc3NhbmRyYTwvdGl0bGU+CjxwYXRoIGQ9Ik0yMy4zLDguN2MwLDAtMC4zLDAuMy0wLjUsMC41Yy0wLjUsMC41LTEuMiwxLjMtMS43LDEuNWgwYy0wLjEsMC0wLjEsMC0wLjItMC4xbDAuOS0xLjlsMCwwYzAsMC4xLTEsMS45LTIuMiwxLjZsMCwwCgljMCwwLDAsMC0wLjEsMGMwLjYtMC44LDAuOC0xLjUsMC44LTEuNXMtMSwxLjYtMi4zLDEuMmMwLDAtMC4xLDAtMC4xLTAuMWMwLDAsMC0wLjEsMC0wLjFjMC0wLjEsMC4xLTAuMSwwLjEtMC4yCgljMC4xLTAuMiwwLjMtMC41LDAuMy0wLjVTMTguMyw5LjUsMTgsOS43bDAsMGMtMC4yLDAuMS0wLjUsMC4zLTAuNywwLjNjLTAuMSwwLTAuMSwwLTAuMiwwYy0wLjMtMC4xLTAuMy0wLjMtMC4yLTAuNgoJYzAuMS0wLjMsMC4yLTAuNSwwLjItMC41cy0wLjMsMC40LTAuNSwwLjhjLTAuMiwwLjMtMC40LDAuNS0wLjYsMC42bC0wLjIsMGMtMC4xLTAuMiwwLjEtMSwwLjEtMWMtMC4xLDAuMi0wLjMsMC40LTAuNCwwLjYKCWMtMC4xLDAuMi0wLjMsMC4zLTAuNSwwLjRoMGMtMC4xLDAtMC4yLDAtMC4zLDBjMCwwLTAuMS0wLjEtMC4xLTAuMmMtMC4xLTAuNCwwLjItMSwwLjItMWMwLDAtMC4xLDAuMy0wLjMsMC43djAKCWMwLDAuMS0wLjEsMC4yLTAuMSwwLjJjLTAuMSwwLjItMC4yLDAuMy0wLjMsMC4zYy0wLjItMC4xLTAuMy0wLjMtMC4zLTAuNWMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjRzMCwwLjMtMC4yLDAuNwoJYzAsMC4xLTAuMSwwLjItMC4yLDAuM2MwLDAtMC4xLDAuMS0wLjEsMC4xYy0xLjIsMC4yLTIuNCwwLjYtMy41LDFjLTAuMywwLjEtMC42LDAuMi0wLjksMC4zYy0xLDAuNC0yLDEtMy4xLDEuNwoJYy0xLjIsMC44LTIuMywxLjYtMy40LDIuNmMtMC42LDAuNS0xLjIsMS4xLTEuOCwxLjdjNC43LTIuNiw2LjYtNi4zLDE1LjUtNi43YzYuNy0wLjMsOS45LDIuOCwxMC45LDIuOWMyLjYsMC4xLDQuMy0xLjksNC45LTIuNgoJYzAuMS0wLjIsMC4yLTAuMywwLjItMC4zYzAsMC0wLjQsMC41LTEsMWwwLDBjLTAuNiwwLjUtMS40LDAuOS0yLjEsMC44aDBjLTAuMSwwLTAuMiwwLTAuMywwYzEtMC42LDEuNi0xLjYsMi0yLjEKCWMwLjEtMC4yLDAuMy0wLjUsMC4zLTAuNXMtMi4zLDIuNC00LjEsMi4yYy0wLjEsMC0wLjEsMC0wLjIsMGMwLjgtMC42LDEuMy0xLjQsMS43LTIuMXYwaDBjMC40LTAuNywwLjYtMS4zLDAuNi0xLjMKCWMwLDAtMC40LDAuNy0xLDEuNGwwLDBjLTAuNiwwLjctMS4zLDEuNS0yLDEuN2MtMC4xLDAtMC4yLDAuMS0wLjMsMC4xYzEuNC0xLjMsMi4xLTMuMSwyLjEtMy4xcy0xLjUsMi4xLTIuNywyLjUKCWMtMC4xLDAtMC4yLDAuMS0wLjIsMC4xYzAuOC0wLjcsMS4yLTEuMiwxLjQtMS43YzAuMy0wLjUsMC40LTAuOSwwLjQtMC45bDAsMGMtMC4xLDAuMi0wLjIsMC4zLTAuNCwwLjRsMCwwYy0wLjMsMC40LTAuOSwxLTEuNCwxLjQKCWwwLDBjLTAuMSwwLjEtMC4zLDAuMi0wLjQsMC4zYzAsMC0wLjEsMC4xLTAuMSwwLjFjLTAuMSwwLjEtMC4yLDAuMS0wLjQsMC4yYzAsMC0wLjEsMC0wLjEsMGMtMC4xLTAuMS0wLjItMC4xLTAuMy0wLjIKCWMtMC4xLDAuMS0wLjEsMC4yLTAuMiwwLjJoMGMwLDAtMC4xLDAtMC4xLDBjMS4xLTEuMiwxLjktMi44LDEuOS0yLjhsMCwwYzAsMC0xLjYsMi4xLTIuMywyLjNjLTAuMSwwLTAuMi0wLjEtMC4zLTAuMQoJYzAtMC4xLDAtMC4xLDAuMS0wLjJjMC4yLTAuNCwwLjYtMSwwLjYtMXMtMC4xLDAuMS0wLjIsMC4xYy0wLjEsMC4xLTAuMywwLjItMC40LDAuM2MtMC4xLDAuMS0wLjIsMC4xLTAuMiwwLjEKCWMtMC4xLDAuMS0wLjIsMC4xLTAuMywwLjFjLTAuMSwwLjEtMC4yLDAuMS0wLjMsMC4xYy0wLjEsMC0wLjEsMC0wLjEsMEMyMi4zLDEwLjUsMjMuMyw4LjcsMjMuMyw4LjdMMjMuMyw4Ljd6IE0xNywxMS42CgljLTAuNCwwLTAuOCwwLTEuMiwwYy0wLjQsMC0wLjcsMC0xLjEsMC4xYy0wLjQsMC4yLTAuNywwLjQtMSwwLjZjMCwwLjEsMCwwLjEsMCwwLjJjMCwwLjEsMCwwLjItMC4xLDAuMmwxLjIsMC45bDAsMGwtMC41LTEuNwoJbDAuOCwxLjVjMCwwLDAuMSwwLDAuMSwwbDAtMS42bDAuNSwxLjZsMC42LTEuNWwwLDEuN2MwLDAsMCwwLDAsMGwwLjktMS4zbC0wLjUsMS42bDAsMGwxLjQtMC45bC0xLDEuNHYwbDEuMy0wLjVjMCwwLDAsMCwwLjEtMC4xCgljLTAuMy0wLjQsMC0wLjksMC41LTAuOGMwLjItMC4zLDAuMy0wLjcsMC40LTFDMTguNiwxMS43LDE3LjgsMTEuNiwxNywxMS42TDE3LDExLjZ6IE0xMy42LDExLjhMMTMuNiwxMS44Yy0wLjQsMC0wLjgsMC4xLTEuMiwwLjIKCXMtMC44LDAuMS0xLjEsMC4yaDBjMC4yLDAuNSwwLjQsMSwwLjcsMS40YzAuMS0wLjMsMC4zLTAuNiwwLjUtMC45Yy0wLjItMC41LDAuMy0wLjksMC44LTAuN0MxMy40LDExLjksMTMuNSwxMS44LDEzLjYsMTEuOAoJTDEzLjYsMTEuOHogTTE5LjYsMTEuOWMwLDAuNC0wLjEsMC43LTAuMiwxLjFjMC40LDAuMywwLjEsMS0wLjQsMC45Yy0wLjIsMC4zLTAuNSwwLjYtMC43LDAuOGwwLjksMGwtMS4zLDAuM2MwLDAtMC4xLDAuMS0wLjEsMC4xCgljMC44LDAuMSwxLjUsMC40LDIuMSwwLjljMC40LTAuOCwwLjctMS42LDAuNy0yLjZDMjAuNCwxMi44LDIwLDEyLjMsMTkuNiwxMS45TDE5LjYsMTEuOXogTTExLjEsMTIuMmMtMC40LDAuMS0wLjgsMC4yLTEuMSwwLjMKCWMtMC4yLDAuMy0wLjMsMC43LTAuMywxYzAsMi4yLDEuMyw0LDMuMSw0LjlsMCwwYy0wLjMtMC4zLTAuNi0wLjctMC44LTEuMWMtMC45LDAuMS0xLjItMS4xLTAuNC0xLjRjLTAuMS0wLjYsMC0xLjMsMC4yLTEuOQoJQzExLjUsMTMuNSwxMS4yLDEyLjksMTEuMSwxMi4yTDExLjEsMTIuMnogTTIxLjMsMTIuMmMwLjIsMC41LDAuMywxLjEsMC4zLDEuN2MwLDMuMy0yLjksNS45LTYuNiw1LjljLTMuNiwwLTYuNi0yLjYtNi42LTUuOQoJYzAtMC4zLDAtMC42LDAuMS0wLjljLTEsMC40LTEuOSwwLjktMi44LDEuNWMtMC4zLDAuNS0wLjQsMS4xLTAuNCwxLjZjMC4xLDEuMywxLjMsMi40LDMsMy4ybC0wLjMtMC4xYy0zLjEtMC45LTUuNSwwLjctOC4xLTAuNwoJYzAuNiwwLjUsMS4zLDEsMy4zLDFjMC43LDAsMi45LTAuMSwzLjMsMC4yYzAuNCwwLjMtMS40LDItMS40LDJzMy0yLjUsMy4zLTEuN2MwLjIsMC41LTAuOSwyLTAuOSwyczEtMS40LDEuOC0xLjcKCWMwLjUtMC4yLDEtMC4yLDEuNCwwLjRjMC4yLDAuMy0xLjIsMi4xLTEuMiwyLjFzMi0xLjksMi4zLTEuOGMwLjQsMC4xLDAsMS44LDAsMS44czAuNy0xLjcsMS4xLTEuOWMwLjUtMC4yLTEuMiw0LTEuMiw0CglzMi4xLTMuOSwyLjUtNGMwLjctMC4yLDEuMSwyLjcsMS4xLDIuN3MtMC4zLTIuNSwwLTIuN2MyLjMtMSwxLDQuMywxLDQuM3MxLjUtMy42LDAuNi00LjRjMi40LDEuNiwyLjEsNC40LDIuMSw0LjRzMC42LTEuNC0xLjEtNC43CgljMSwwLDIuNCwyLjUsMi40LDIuNXMtMS42LTIuOC0wLjUtMi44YzIuMS0wLjEsMi4zLDMuNywyLjMsMy43czAuNi0wLjUtMS4xLTQuMmMxLjEtMC43LDMuNywzLjQsMy43LDMuNHMtMi40LTQtMi00LjMKCWMwLjQtMC4zLDEuOCwxLjMsMS44LDEuM3MtMS4xLTEuNS0wLjgtMS42YzAuMy0wLjIsMy4yLDIuOSwzLjIsMi45cy0yLjUtMy0yLjEtMy40YzAuNC0wLjQsMi4zLDEsMi4zLDFzLTIuOC0xLjktMi4zLTIuMgoJYzAuOC0wLjQsMywxLDMsMXMtMS4zLTEuMS0xLjEtMS40YzAuMi0wLjMsMi44LDEuNywyLjgsMS43cy0yLjMtMS44LTIuNC0yLjNjLTAuMS0wLjUsMS44LDAuMiwxLjgsMC4ycy0yLjEtMS0yLjItMS4zCgljMC0wLjMsMS40LDAuMywxLjQsMC4zcy0yLTEuNi0yLjUtMC4zYy0wLjEsMC4yLTAuMiwwLjQtMC40LDAuNmMwLjEtMC40LDAuMi0wLjcsMC4xLTEuMWMwLTAuMSwwLTAuMi0wLjEtMC40CglDMjQuNiwxMy41LDIzLjIsMTIuOCwyMS4zLDEyLjJMMjEuMywxMi4yeiBNMTMuNSwxMi44Yy0wLjEsMC4yLTAuNCwwLjMtMC43LDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAuMiwwLjNsMS43LDAuNmMwLDAsMCwwLDAtMC4xCglMMTMuNSwxMi44eiBNMTIuNywxMy40Yy0wLjEsMC4yLTAuMiwwLjQtMC4zLDAuN2MwLjIsMC4yLDAuMywwLjMsMC41LDAuNWwxLjIsMGwwLDBMMTIuNywxMy40eiBNMTguMiwxNC4xbC0wLjgsMC42bDAuMSwwCglDMTcuOCwxNC41LDE4LDE0LjMsMTguMiwxNC4xeiBNMTIuMiwxNC41QzEyLjIsMTQuNSwxMi4yLDE0LjUsMTIuMiwxNC41Yy0wLjEsMC41LTAuMSwwLjktMC4xLDEuM2MwLjMsMC4xLDAuNiwwLjMsMC42LDAuNmwxLjItMC44CgljLTAuMSwwLTAuMi0wLjEtMC4zLTAuMWwtMS40LTAuMWwwLjgtMC4yQzEyLjgsMTUsMTIuNSwxNC44LDEyLjIsMTQuNUwxMi4yLDE0LjV6IE0xMy4zLDE0LjhjMC4yLDAuMSwwLjQsMC4yLDAuNiwwLjNsMC4yLDAKCWMwLDAsMCwwLDAtMC4xTDEzLjMsMTQuOHogTTE3LjQsMTUuN2wxLjIsMS4yTDE3LDE2LjJsMC45LDEuNGwtMS40LTEuMWwwLDBsMC41LDEuN2wtMC44LTEuNWwtMC4xLDEuOGwtMC41LTEuOGwtMC42LDEuN2wwLjItMS44CglsMCwwTDE0LDE4LjJsMC40LTEuNWMtMC41LDAuNC0wLjgsMS0xLjEsMS42YzAuMSwwLjEsMC4zLDAuMywwLjQsMC40YzIuMiwwLjYsNC42LTAuMyw1LjgtMi4zYy0wLjUtMC4zLTEuMS0wLjYtMS43LTAuN0wxNy40LDE1Ljd6CgkgTTE0LjIsMTZsLTEuNCwwLjVjMCwwLDAsMCwwLDAuMWMwLDAuMi0wLjEsMC40LTAuMiwwLjZjMC4xLDAuMywwLjMsMC42LDAuNSwwLjhjMC4xLTAuMywwLjMtMC42LDAuNC0wLjhMMTMsMTcuNEwxNC4yLDE2egoJIE0xOSwxOS43Yy0wLjIsMC4xLTAuNSwwLjEtMC44LDAuMkMxOC41LDE5LjgsMTguOCwxOS43LDE5LDE5Ljd6IE0xNy42LDIwYy0wLjIsMC0wLjMsMC4xLTAuNSwwLjFjLTAuMywwLTAuNSwwLjEtMC44LDAuMQoJQzE2LjgsMjAuMSwxNy4yLDIwLjEsMTcuNiwyMEwxNy42LDIweiBNMTUuOCwyMC4yYy0wLjEsMC0wLjMsMC0wLjQsMEMxNS41LDIwLjIsMTUuNiwyMC4yLDE1LjgsMjAuMnoiLz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Cassandra",
        "camel.apache.org/kamelet.namespace" : "Nosql"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Cassandra Source",
        "description" : "Send a query to an Apache Cassandra cluster table.",
        "required" : [ "connectionHost", "connectionPort", "keyspace", "query" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname(s) for the Cassandra server(s). Use a comma to separate multiple hostnames.",
            "type" : "string",
            "example" : "localhost"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port number(s) of the cassandra server(s). Use a comma to separate multiple port numbers.",
            "type" : "string",
            "example" : 9042
          },
          "keyspace" : {
            "title" : "Keyspace",
            "description" : "The keyspace to use.",
            "type" : "string",
            "example" : "customers"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username for accessing a secured Cassandra cluster.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password for accessing a secured Cassandra cluster.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "resultStrategy" : {
            "title" : "Result Strategy",
            "description" : "The strategy to convert the result set of the query.",
            "type" : "string",
            "default" : "ALL",
            "enum" : [ "ALL", "ONE", "LIMIT_10", "LIMIT_100" ]
          },
          "consistencyLevel" : {
            "title" : "Consistency Level",
            "description" : "The consistency level to use.",
            "type" : "string",
            "default" : "QUORUM",
            "enum" : [ "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_QUORUM", "EACH_QUORUM", "SERIAL", "LOCAL_SERIAL", "LOCAL_ONE" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the Cassandra cluster table.",
            "type" : "string"
          },
          "extraTypeCodecs" : {
            "title" : "Extra Type Codecs",
            "description" : "To use a specific comma separated list of Extra Type codecs.",
            "type" : "string",
            "enum" : [ "BLOB_TO_ARRAY", "BOOLEAN_LIST_TO_ARRAY", "BYTE_LIST_TO_ARRAY", "SHORT_LIST_TO_ARRAY", "INT_LIST_TO_ARRAY", "LONG_LIST_TO_ARRAY", "FLOAT_LIST_TO_ARRAY", "DOUBLE_LIST_TO_ARRAY", "TIMESTAMP_UTC", "TIMESTAMP_MILLIS_SYSTEM", "TIMESTAMP_MILLIS_UTC", "ZONED_TIMESTAMP_SYSTEM", "ZONED_TIMESTAMP_UTC", "ZONED_TIMESTAMP_PERSISTED", "LOCAL_TIMESTAMP_SYSTEM", "LOCAL_TIMESTAMP_UTC" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:cassandraql" ],
      "template" : {
        "from" : {
          "uri" : "cql://{{connectionHost}}:{{connectionPort}}/{{keyspace}}",
          "parameters" : {
            "username" : "{{?username}}",
            "password" : "{{?password}}",
            "cql" : "{{query}}",
            "consistencyLevel" : "{{consistencyLevel}}",
            "resultSetConversionStrategy" : "{{resultStrategy}}",
            "extraTypeCodecs" : "{{?extraTypeCodecs}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Cassandra Source",
      "description" : "Send a query to an Apache Cassandra cluster table.",
      "required" : [ "connectionHost", "connectionPort", "keyspace", "query" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname(s) for the Cassandra server(s). Use a comma to separate multiple hostnames."
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port number(s) of the cassandra server(s). Use a comma to separate multiple port numbers."
        },
        "keyspace" : {
          "type" : "string",
          "title" : "Keyspace",
          "description" : "The keyspace to use."
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username for accessing a secured Cassandra cluster."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password for accessing a secured Cassandra cluster.",
          "format" : "password"
        },
        "resultStrategy" : {
          "type" : "string",
          "title" : "Result Strategy",
          "description" : "The strategy to convert the result set of the query.",
          "enum" : [ "ALL", "ONE", "LIMIT_10", "LIMIT_100" ],
          "default" : "ALL"
        },
        "consistencyLevel" : {
          "type" : "string",
          "title" : "Consistency Level",
          "description" : "The consistency level to use.",
          "enum" : [ "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_QUORUM", "EACH_QUORUM", "SERIAL", "LOCAL_SERIAL", "LOCAL_ONE" ],
          "default" : "QUORUM"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the Cassandra cluster table."
        },
        "extraTypeCodecs" : {
          "type" : "string",
          "title" : "Extra Type Codecs",
          "description" : "To use a specific comma separated list of Extra Type codecs.",
          "enum" : [ "BLOB_TO_ARRAY", "BOOLEAN_LIST_TO_ARRAY", "BYTE_LIST_TO_ARRAY", "SHORT_LIST_TO_ARRAY", "INT_LIST_TO_ARRAY", "LONG_LIST_TO_ARRAY", "FLOAT_LIST_TO_ARRAY", "DOUBLE_LIST_TO_ARRAY", "TIMESTAMP_UTC", "TIMESTAMP_MILLIS_SYSTEM", "TIMESTAMP_MILLIS_UTC", "ZONED_TIMESTAMP_SYSTEM", "ZONED_TIMESTAMP_UTC", "ZONED_TIMESTAMP_PERSISTED", "LOCAL_TIMESTAMP_SYSTEM", "LOCAL_TIMESTAMP_UTC" ]
        }
      }
    }
  },
  "ceph-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ceph-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iMTU3IiB2aWV3Qm94PSIwIDAgMTYwIDE1NyIgZmlsbD0ibm9uZSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZD0iTTc5LjgxNTIgOTYuMDczOUM4OC42ODM2IDk2LjA3MzkgOTUuNzA0NCA4OS4wNTMxIDk1LjcwNDQgODAuMTg0OEM5NS43MDQ0IDcxLjMxNjQgODguNjgzNiA2NC4yOTU2IDc5LjgxNTIgNjQuMjk1NkM3MC45NDY5IDY0LjI5NTYgNjMuOTI2MSA3MS4zMTY0IDYzLjkyNjEgODAuMTg0OEM2My45MjYxIDg4LjY4MzYgNzEuMzE2NCA5Ni4wNzM5IDc5LjgxNTIgOTYuMDczOVpNMTAxLjI0NyAxNTYuMzA1TDEwNS42ODEgMTU0LjgyN0MxMTAuMTE1IDE1My4zNDkgMTE0LjkxOSAxNTEuNTAxIDExOC45ODQgMTQ4LjkxNUMxMTEuNTk0IDE0NC44NSAxMDcuMTU5IDEzNy40NiAxMDcuMTU5IDEyOC45NjFDMTA3LjE1OSAxMjMuNDE4IDEwOS4zNzYgMTE4LjI0NSAxMTMuNDQxIDExMy4wNzJDMTEzLjQ0MSAxMTMuMDcyIDExMy40NDEgMTEzLjA3MiAxMTMuODExIDExMi43MDJMMTE0LjkxOSAxMTEuMjI0QzExNi4wMjggMTA5Ljc0NiAxMTcuMTM2IDEwOC42MzcgMTE4LjI0NSAxMDcuMTU5QzEyMS45NCAxMDEuOTg2IDEyNC44OTYgOTYuMDczOSAxMjYuMzc0IDg5Ljc5MjJDMTI3Ljg1MiA4Mi43NzE0IDEyOC4yMjIgNzUuNzUwNiAxMjYuNzQ0IDY4LjcyOThDMTI1LjI2NiA2Mi40NDggMTIyLjY3OSA1Ni4xNjYzIDExOC45ODQgNTAuOTkzMUMxMTUuMjg5IDQ1LjgxOTkgMTEwLjg1NSA0MS4zODU3IDEwNS4zMTIgMzguMDZDOTkuNzY5MSAzNC43MzQ0IDkzLjQ4NzMgMzIuMTQ3OCA4Ni44MzYgMzEuNDA4OEM4NC42MTg5IDMxLjAzOTMgODIuNDAxOSAzMS4wMzkzIDgwLjE4NDggMzEuMDM5M0g3OS40NDU3Qzc3LjIyODYgMzEuMDM5MyA3NS4wMTE2IDMxLjAzOTMgNzIuNzk0NSAzMS40MDg4QzY2LjE0MzIgMzIuNTE3MyA1OS44NjE0IDM0LjczNDQgNTQuMzE4NyAzOC4wNkM0OS4xNDU1IDQxLjM4NTcgNDQuMzQxOCA0NS44MTk5IDQwLjY0NjcgNTAuOTkzMUMzNi45NTE1IDU2LjE2NjMgMzMuOTk1NCA2Mi40NDggMzIuODg2OCA2OC43Mjk4QzMxLjQwODggNzUuNzUwNiAzMS40MDg4IDgyLjc3MTQgMzMuMjU2NCA4OS40MjI2QzM0LjczNDQgOTUuNzA0NCAzNy42OTA1IDEwMS42MTcgNDEuMzg1NyAxMDYuNzlMNDQuNzExMyAxMTAuODU1TDQ1LjgxOTkgMTEyLjMzM0M0OS44ODQ1IDExNy4xMzYgNTIuMTAxNiAxMjIuNjc5IDUyLjEwMTYgMTI4LjIyMkM1Mi4xMDE2IDEzNi43MjEgNDcuMjk3OSAxNDQuMTExIDQwLjI3NzEgMTQ4LjE3NkM0NC4zNDE4IDE1MC4zOTMgNDkuMTQ1NSAxNTIuNjEgNTMuNTc5NyAxNTQuMDg4TDU4LjM4MzQgMTU1LjU2NkM1OS4xMjI0IDE1NC44MjcgNjIuNDQ4IDE1Mi42MSA2NS40MDQyIDE0OC4xNzZDNjguMzYwMyAxNDQuMTExIDcxLjY4NTkgMTM3LjQ2IDcxLjY4NTkgMTI4LjIyMkM3MS42ODU5IDEyMi42NzkgNzAuNTc3NCAxMTcuNTA2IDY4LjM2MDMgMTEyLjMzM0M2Ni4xNDMyIDEwNy4xNTkgNjMuMTg3MSAxMDIuNzI1IDU5LjQ5MTkgOTguNjYwNUw1OC43NTI5IDk3LjU1MkM1Ny4yNzQ4IDk2LjA3MzkgNTUuNzk2OCA5NC4yMjYzIDU0LjY4ODIgOTIuMzc4OEM1My4yMTAyIDg5Ljc5MjIgNTIuMTAxNiA4Ny41NzUxIDUxLjczMjEgODQuNjE4OUM1MC42MjM2IDgwLjU1NDMgNTAuNjIzNiA3Ni40ODk2IDUxLjczMjEgNzIuNDI0OUM1Mi40NzExIDY4LjcyOTggNTMuOTQ5MiA2NS4wMzQ2IDU2LjE2NjMgNjIuMDc4NUM1OC4zODM0IDU5LjEyMjQgNjAuOTcgNTYuNTM1OCA2NC4yOTU2IDU0LjMxODdDNjcuNjIxMiA1Mi4xMDE2IDcxLjMxNjQgNTAuOTkzMSA3NS4wMTE1IDUwLjI1NEM3Ni40ODk2IDQ5Ljg4NDUgNzcuNTk4MiA0OS44ODQ1IDc5LjA3NjIgNDkuODg0NUg3OS44MTUyQzgxLjI5MzMgNDkuODg0NSA4Mi40MDE5IDQ5Ljg4NDUgODMuODc5OSA1MC4yNTRDODcuNTc1MSA1MC42MjM2IDkxLjI3MDIgNTIuMTAxNiA5NC41OTU4IDU0LjMxODdDOTcuOTIxNSA1Ni4xNjYzIDEwMC41MDggNTguNzUyOSAxMDIuNzI1IDYyLjA3ODVDMTA0Ljk0MiA2NS4wMzQ2IDEwNi40MiA2OC43Mjk4IDEwNy4xNTkgNzIuNDI0OUMxMDcuODk4IDc2LjQ4OTYgMTA3Ljg5OCA4MC41NTQzIDEwNy4xNTkgODQuNjE4OUMxMDYuNDIgODcuMjA1NSAxMDUuNjgxIDg5Ljc5MjIgMTA0LjIwMyA5Mi4zNzg4QzEwMy4wOTUgOTQuMjI2MyAxMDEuNjE3IDk2LjA3MzkgMTAwLjEzOSA5Ny41NTJMOTkuMzk5NSA5OC42NjA1Qzk1LjcwNDQgMTAyLjcyNSA5Mi43NDgzIDEwNy4xNTkgOTAuNTMxMiAxMTIuMzMzQzg4LjMxNDEgMTE3LjUwNiA4Ny4yMDU1IDEyMi42NzkgODcuMjA1NSAxMjguMjIyQzg3LjIwNTUgMTM3LjQ2IDkwLjUzMTIgMTQ0LjExMSA5My40ODczIDE0OC4xNzZDOTYuODEyOSAxNTMuMzQ5IDEwMC4xMzkgMTU1LjkzNSAxMDEuMjQ3IDE1Ni4zMDVaTTEzMC40MzkgMTQxLjUyNEMxMzkuMzA3IDEzNC4xMzQgMTQ3LjA2NyAxMjQuNTI3IDE1MS44NzEgMTE0LjU1QzE1NC40NTcgMTA5LjM3NiAxNTYuMzA1IDEwMy40NjQgMTU3Ljc4MyA5Ny45MjE1QzE1OS4yNjEgOTIuMDA5MiAxNjAgODUuNzI3NSAxNjAgNzkuODE1MkMxNjAgNjkuMDk5MyAxNTcuNzgzIDU4LjM4MzQgMTUzLjcxOCA0OC43NzZDMTQ5LjY1NCAzOS4xNjg2IDE0My43NDEgMzAuNjY5NyAxMzYuNzIxIDIzLjI3OTRDMTI5LjMzIDE1Ljg4OTEgMTIwLjgzMSAxMC4zNDY0IDExMS4yMjQgNi4yODE3NkMxMDEuMjQ3IDIuMjE3MDkgOTAuOTAwNyAwIDgwLjE4NDggMEg3OS44MTUyQzY5LjA5OTMgMCA1OC4zODM0IDIuMjE3MDkgNDguNzc2IDYuMjgxNzZDMzkuMTY4NiAxMC4zNDY0IDMwLjY2OTcgMTYuMjU4NyAyMy4yNzk0IDIzLjI3OTRDMTUuODg5MSAzMC42Njk3IDEwLjM0NjQgMzkuMTY4NiA2LjI4MTc2IDQ4Ljc3NkMyLjIxNzA5IDU4Ljc1MjkgMCA2OS4wOTkzIDAgNzkuODE1MkMwIDg2LjA5NyAwLjczOTAzIDkyLjAwOTIgMi4yMTcwOSA5Ny45MjE1QzMuNjk1MTUgMTAzLjgzNCA1LjU0MjczIDEwOS4zNzYgOC4xMjkzMyAxMTQuNTVDMTIuOTMzIDEyNC41MjcgMjAuNjkyOCAxMzQuMTM0IDI5LjU2MTIgMTQxLjUyNEMzNS40NzM0IDEzOC4xOTkgMzguNDI5NiAxMzQuODczIDM5LjE2ODYgMTMxLjE3OEMzOS45MDc2IDEyNy40ODMgMzguNDI5NiAxMjMuNzg4IDM0LjM2NDkgMTE4Ljk4NEMyNC43NTc1IDEwNy44OTggMTkuNTg0MyA5My44NTY4IDE5LjU4NDMgNzkuNDQ1N0MxOS41ODQzIDQ2LjE4OTQgNDYuNTU4OSAxOS4yMTQ4IDc5LjgxNTIgMTguODQ1M0g4MC4xODQ4SDgwLjU1NDNDMTEzLjgxMSAxOC44NDUzIDE0MC43ODUgNDUuODE5OSAxNDAuNzg1IDc5LjQ0NTdDMTQwLjc4NSA5My44NTY4IDEzNS42MTIgMTA4LjI2OCAxMjYuMDA1IDExOC45ODRDMTIxLjk0IDEyMy43ODggMTIwLjQ2MiAxMjcuNDgzIDEyMS4yMDEgMTMxLjE3OEMxMjEuNTcgMTM0Ljg3MyAxMjQuODk2IDEzOC41NjggMTMwLjQzOSAxNDEuNTI0WiIgZmlsbD0iI0VGNDI0RCI+PC9wYXRoPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cmVjdCB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE1Ni4zMDUiIGZpbGw9IndoaXRlIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+IA==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Ceph",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Ceph Sink",
        "description" : "Upload data to an Ceph Bucket managed by a Object Storage Gateway.\n\nIn the header, you can optionally set the `file` / `ce-file` property to specify the name of the file to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the file name.",
        "required" : [ "cephUrl", "accessKey", "secretKey", "bucketName", "zoneGroup" ],
        "type" : "object",
        "properties" : {
          "bucketName" : {
            "title" : "Bucket Name",
            "description" : "The Ceph Bucket name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "zoneGroup" : {
            "title" : "Bucket Zone Group",
            "description" : "The bucket zone group.",
            "type" : "string"
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specifies to automatically create the bucket.",
            "type" : "boolean",
            "default" : false
          },
          "cephUrl" : {
            "title" : "Ceph Url Address",
            "description" : "Set the Ceph Object Storage Address Url.",
            "type" : "string",
            "example" : "http://ceph-storage-address.com"
          },
          "keyName" : {
            "title" : "Key Name",
            "description" : "The key name for saving an element in the bucket.",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:aws2-s3", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsS3Key",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsS3Key",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              }, {
                "simple" : "'{{?keyName}}' == ''",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelAwsS3Key",
                    "simple" : "${exchangeId}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "aws2-s3:{{bucketName}}",
              "parameters" : {
                "secretKey" : "{{?secretKey}}",
                "accessKey" : "{{?accessKey}}",
                "region" : "{{zoneGroup}}",
                "autoCreateBucket" : "{{autoCreateBucket}}",
                "uriEndpointOverride" : "{{?cephUrl}}",
                "overrideEndpoint" : "true",
                "keyName" : "{{?keyName}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Ceph Sink",
      "description" : "Upload data to an Ceph Bucket managed by a Object Storage Gateway.\n\nIn the header, you can optionally set the `file` / `ce-file` property to specify the name of the file to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the file name.",
      "required" : [ "cephUrl", "accessKey", "secretKey", "bucketName", "zoneGroup" ],
      "properties" : {
        "bucketName" : {
          "type" : "string",
          "title" : "Bucket Name",
          "description" : "The Ceph Bucket name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key.",
          "format" : "password"
        },
        "zoneGroup" : {
          "type" : "string",
          "title" : "Bucket Zone Group",
          "description" : "The bucket zone group."
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specifies to automatically create the bucket.",
          "default" : false
        },
        "cephUrl" : {
          "type" : "string",
          "title" : "Ceph Url Address",
          "description" : "Set the Ceph Object Storage Address Url."
        },
        "keyName" : {
          "type" : "string",
          "title" : "Key Name",
          "description" : "The key name for saving an element in the bucket."
        }
      }
    }
  },
  "ceph-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ceph-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iMTU3IiB2aWV3Qm94PSIwIDAgMTYwIDE1NyIgZmlsbD0ibm9uZSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZD0iTTc5LjgxNTIgOTYuMDczOUM4OC42ODM2IDk2LjA3MzkgOTUuNzA0NCA4OS4wNTMxIDk1LjcwNDQgODAuMTg0OEM5NS43MDQ0IDcxLjMxNjQgODguNjgzNiA2NC4yOTU2IDc5LjgxNTIgNjQuMjk1NkM3MC45NDY5IDY0LjI5NTYgNjMuOTI2MSA3MS4zMTY0IDYzLjkyNjEgODAuMTg0OEM2My45MjYxIDg4LjY4MzYgNzEuMzE2NCA5Ni4wNzM5IDc5LjgxNTIgOTYuMDczOVpNMTAxLjI0NyAxNTYuMzA1TDEwNS42ODEgMTU0LjgyN0MxMTAuMTE1IDE1My4zNDkgMTE0LjkxOSAxNTEuNTAxIDExOC45ODQgMTQ4LjkxNUMxMTEuNTk0IDE0NC44NSAxMDcuMTU5IDEzNy40NiAxMDcuMTU5IDEyOC45NjFDMTA3LjE1OSAxMjMuNDE4IDEwOS4zNzYgMTE4LjI0NSAxMTMuNDQxIDExMy4wNzJDMTEzLjQ0MSAxMTMuMDcyIDExMy40NDEgMTEzLjA3MiAxMTMuODExIDExMi43MDJMMTE0LjkxOSAxMTEuMjI0QzExNi4wMjggMTA5Ljc0NiAxMTcuMTM2IDEwOC42MzcgMTE4LjI0NSAxMDcuMTU5QzEyMS45NCAxMDEuOTg2IDEyNC44OTYgOTYuMDczOSAxMjYuMzc0IDg5Ljc5MjJDMTI3Ljg1MiA4Mi43NzE0IDEyOC4yMjIgNzUuNzUwNiAxMjYuNzQ0IDY4LjcyOThDMTI1LjI2NiA2Mi40NDggMTIyLjY3OSA1Ni4xNjYzIDExOC45ODQgNTAuOTkzMUMxMTUuMjg5IDQ1LjgxOTkgMTEwLjg1NSA0MS4zODU3IDEwNS4zMTIgMzguMDZDOTkuNzY5MSAzNC43MzQ0IDkzLjQ4NzMgMzIuMTQ3OCA4Ni44MzYgMzEuNDA4OEM4NC42MTg5IDMxLjAzOTMgODIuNDAxOSAzMS4wMzkzIDgwLjE4NDggMzEuMDM5M0g3OS40NDU3Qzc3LjIyODYgMzEuMDM5MyA3NS4wMTE2IDMxLjAzOTMgNzIuNzk0NSAzMS40MDg4QzY2LjE0MzIgMzIuNTE3MyA1OS44NjE0IDM0LjczNDQgNTQuMzE4NyAzOC4wNkM0OS4xNDU1IDQxLjM4NTcgNDQuMzQxOCA0NS44MTk5IDQwLjY0NjcgNTAuOTkzMUMzNi45NTE1IDU2LjE2NjMgMzMuOTk1NCA2Mi40NDggMzIuODg2OCA2OC43Mjk4QzMxLjQwODggNzUuNzUwNiAzMS40MDg4IDgyLjc3MTQgMzMuMjU2NCA4OS40MjI2QzM0LjczNDQgOTUuNzA0NCAzNy42OTA1IDEwMS42MTcgNDEuMzg1NyAxMDYuNzlMNDQuNzExMyAxMTAuODU1TDQ1LjgxOTkgMTEyLjMzM0M0OS44ODQ1IDExNy4xMzYgNTIuMTAxNiAxMjIuNjc5IDUyLjEwMTYgMTI4LjIyMkM1Mi4xMDE2IDEzNi43MjEgNDcuMjk3OSAxNDQuMTExIDQwLjI3NzEgMTQ4LjE3NkM0NC4zNDE4IDE1MC4zOTMgNDkuMTQ1NSAxNTIuNjEgNTMuNTc5NyAxNTQuMDg4TDU4LjM4MzQgMTU1LjU2NkM1OS4xMjI0IDE1NC44MjcgNjIuNDQ4IDE1Mi42MSA2NS40MDQyIDE0OC4xNzZDNjguMzYwMyAxNDQuMTExIDcxLjY4NTkgMTM3LjQ2IDcxLjY4NTkgMTI4LjIyMkM3MS42ODU5IDEyMi42NzkgNzAuNTc3NCAxMTcuNTA2IDY4LjM2MDMgMTEyLjMzM0M2Ni4xNDMyIDEwNy4xNTkgNjMuMTg3MSAxMDIuNzI1IDU5LjQ5MTkgOTguNjYwNUw1OC43NTI5IDk3LjU1MkM1Ny4yNzQ4IDk2LjA3MzkgNTUuNzk2OCA5NC4yMjYzIDU0LjY4ODIgOTIuMzc4OEM1My4yMTAyIDg5Ljc5MjIgNTIuMTAxNiA4Ny41NzUxIDUxLjczMjEgODQuNjE4OUM1MC42MjM2IDgwLjU1NDMgNTAuNjIzNiA3Ni40ODk2IDUxLjczMjEgNzIuNDI0OUM1Mi40NzExIDY4LjcyOTggNTMuOTQ5MiA2NS4wMzQ2IDU2LjE2NjMgNjIuMDc4NUM1OC4zODM0IDU5LjEyMjQgNjAuOTcgNTYuNTM1OCA2NC4yOTU2IDU0LjMxODdDNjcuNjIxMiA1Mi4xMDE2IDcxLjMxNjQgNTAuOTkzMSA3NS4wMTE1IDUwLjI1NEM3Ni40ODk2IDQ5Ljg4NDUgNzcuNTk4MiA0OS44ODQ1IDc5LjA3NjIgNDkuODg0NUg3OS44MTUyQzgxLjI5MzMgNDkuODg0NSA4Mi40MDE5IDQ5Ljg4NDUgODMuODc5OSA1MC4yNTRDODcuNTc1MSA1MC42MjM2IDkxLjI3MDIgNTIuMTAxNiA5NC41OTU4IDU0LjMxODdDOTcuOTIxNSA1Ni4xNjYzIDEwMC41MDggNTguNzUyOSAxMDIuNzI1IDYyLjA3ODVDMTA0Ljk0MiA2NS4wMzQ2IDEwNi40MiA2OC43Mjk4IDEwNy4xNTkgNzIuNDI0OUMxMDcuODk4IDc2LjQ4OTYgMTA3Ljg5OCA4MC41NTQzIDEwNy4xNTkgODQuNjE4OUMxMDYuNDIgODcuMjA1NSAxMDUuNjgxIDg5Ljc5MjIgMTA0LjIwMyA5Mi4zNzg4QzEwMy4wOTUgOTQuMjI2MyAxMDEuNjE3IDk2LjA3MzkgMTAwLjEzOSA5Ny41NTJMOTkuMzk5NSA5OC42NjA1Qzk1LjcwNDQgMTAyLjcyNSA5Mi43NDgzIDEwNy4xNTkgOTAuNTMxMiAxMTIuMzMzQzg4LjMxNDEgMTE3LjUwNiA4Ny4yMDU1IDEyMi42NzkgODcuMjA1NSAxMjguMjIyQzg3LjIwNTUgMTM3LjQ2IDkwLjUzMTIgMTQ0LjExMSA5My40ODczIDE0OC4xNzZDOTYuODEyOSAxNTMuMzQ5IDEwMC4xMzkgMTU1LjkzNSAxMDEuMjQ3IDE1Ni4zMDVaTTEzMC40MzkgMTQxLjUyNEMxMzkuMzA3IDEzNC4xMzQgMTQ3LjA2NyAxMjQuNTI3IDE1MS44NzEgMTE0LjU1QzE1NC40NTcgMTA5LjM3NiAxNTYuMzA1IDEwMy40NjQgMTU3Ljc4MyA5Ny45MjE1QzE1OS4yNjEgOTIuMDA5MiAxNjAgODUuNzI3NSAxNjAgNzkuODE1MkMxNjAgNjkuMDk5MyAxNTcuNzgzIDU4LjM4MzQgMTUzLjcxOCA0OC43NzZDMTQ5LjY1NCAzOS4xNjg2IDE0My43NDEgMzAuNjY5NyAxMzYuNzIxIDIzLjI3OTRDMTI5LjMzIDE1Ljg4OTEgMTIwLjgzMSAxMC4zNDY0IDExMS4yMjQgNi4yODE3NkMxMDEuMjQ3IDIuMjE3MDkgOTAuOTAwNyAwIDgwLjE4NDggMEg3OS44MTUyQzY5LjA5OTMgMCA1OC4zODM0IDIuMjE3MDkgNDguNzc2IDYuMjgxNzZDMzkuMTY4NiAxMC4zNDY0IDMwLjY2OTcgMTYuMjU4NyAyMy4yNzk0IDIzLjI3OTRDMTUuODg5MSAzMC42Njk3IDEwLjM0NjQgMzkuMTY4NiA2LjI4MTc2IDQ4Ljc3NkMyLjIxNzA5IDU4Ljc1MjkgMCA2OS4wOTkzIDAgNzkuODE1MkMwIDg2LjA5NyAwLjczOTAzIDkyLjAwOTIgMi4yMTcwOSA5Ny45MjE1QzMuNjk1MTUgMTAzLjgzNCA1LjU0MjczIDEwOS4zNzYgOC4xMjkzMyAxMTQuNTVDMTIuOTMzIDEyNC41MjcgMjAuNjkyOCAxMzQuMTM0IDI5LjU2MTIgMTQxLjUyNEMzNS40NzM0IDEzOC4xOTkgMzguNDI5NiAxMzQuODczIDM5LjE2ODYgMTMxLjE3OEMzOS45MDc2IDEyNy40ODMgMzguNDI5NiAxMjMuNzg4IDM0LjM2NDkgMTE4Ljk4NEMyNC43NTc1IDEwNy44OTggMTkuNTg0MyA5My44NTY4IDE5LjU4NDMgNzkuNDQ1N0MxOS41ODQzIDQ2LjE4OTQgNDYuNTU4OSAxOS4yMTQ4IDc5LjgxNTIgMTguODQ1M0g4MC4xODQ4SDgwLjU1NDNDMTEzLjgxMSAxOC44NDUzIDE0MC43ODUgNDUuODE5OSAxNDAuNzg1IDc5LjQ0NTdDMTQwLjc4NSA5My44NTY4IDEzNS42MTIgMTA4LjI2OCAxMjYuMDA1IDExOC45ODRDMTIxLjk0IDEyMy43ODggMTIwLjQ2MiAxMjcuNDgzIDEyMS4yMDEgMTMxLjE3OEMxMjEuNTcgMTM0Ljg3MyAxMjQuODk2IDEzOC41NjggMTMwLjQzOSAxNDEuNTI0WiIgZmlsbD0iI0VGNDI0RCI+PC9wYXRoPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cmVjdCB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE1Ni4zMDUiIGZpbGw9IndoaXRlIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+IA==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Ceph",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Ceph Source",
        "description" : "Receive data from an Ceph Bucket, managed by a Object Storage Gateway.",
        "required" : [ "cephUrl", "accessKey", "secretKey", "bucketName", "zoneGroup" ],
        "type" : "object",
        "properties" : {
          "bucketName" : {
            "title" : "Bucket Name",
            "description" : "The Ceph Bucket name.",
            "type" : "string"
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Objects",
            "description" : "Specifies to delete objects after consuming them.",
            "type" : "boolean",
            "default" : true
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "zoneGroup" : {
            "title" : "Bucket Zone Group",
            "description" : "The bucket zone group.",
            "type" : "string"
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specifies to automatically create the bucket.",
            "type" : "boolean",
            "default" : false
          },
          "includeBody" : {
            "title" : "Include Body",
            "description" : "If true, the exchange is consumed and put into the body and closed. If false, the Object stream is put raw into the body and the headers are set with the object metadata.",
            "type" : "boolean",
            "default" : true
          },
          "prefix" : {
            "title" : "Prefix",
            "description" : "The bucket prefix to consider while searching.",
            "type" : "string",
            "example" : "folder/"
          },
          "ignoreBody" : {
            "title" : "Ignore Body",
            "description" : "If true, the Object body is ignored. Setting this to true overrides any behavior defined by the `includeBody` option. If false, the object is put in the body.",
            "type" : "boolean",
            "default" : false
          },
          "cephUrl" : {
            "title" : "Ceph Url Address",
            "description" : "Set the Ceph Object Storage Address Url.",
            "type" : "string",
            "example" : "http://ceph-storage-address.com"
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll of the selected bucket.",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "dependencies" : [ "camel:aws2-s3", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "aws2-s3:{{bucketName}}",
          "parameters" : {
            "autoCreateBucket" : "{{autoCreateBucket}}",
            "secretKey" : "{{?secretKey}}",
            "accessKey" : "{{?accessKey}}",
            "region" : "{{zoneGroup}}",
            "includeBody" : "{{includeBody}}",
            "ignoreBody" : "{{ignoreBody}}",
            "deleteAfterRead" : "{{deleteAfterRead}}",
            "prefix" : "{{?prefix}}",
            "uriEndpointOverride" : "{{cephUrl}}",
            "overrideEndpoint" : "true",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Ceph Source",
      "description" : "Receive data from an Ceph Bucket, managed by a Object Storage Gateway.",
      "required" : [ "cephUrl", "accessKey", "secretKey", "bucketName", "zoneGroup" ],
      "properties" : {
        "bucketName" : {
          "type" : "string",
          "title" : "Bucket Name",
          "description" : "The Ceph Bucket name."
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Objects",
          "description" : "Specifies to delete objects after consuming them.",
          "default" : true
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key.",
          "format" : "password"
        },
        "zoneGroup" : {
          "type" : "string",
          "title" : "Bucket Zone Group",
          "description" : "The bucket zone group."
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specifies to automatically create the bucket.",
          "default" : false
        },
        "includeBody" : {
          "type" : "boolean",
          "title" : "Include Body",
          "description" : "If true, the exchange is consumed and put into the body and closed. If false, the Object stream is put raw into the body and the headers are set with the object metadata.",
          "default" : true
        },
        "prefix" : {
          "type" : "string",
          "title" : "Prefix",
          "description" : "The bucket prefix to consider while searching."
        },
        "ignoreBody" : {
          "type" : "boolean",
          "title" : "Ignore Body",
          "description" : "If true, the Object body is ignored. Setting this to true overrides any behavior defined by the `includeBody` option. If false, the object is put in the body.",
          "default" : false
        },
        "cephUrl" : {
          "type" : "string",
          "title" : "Ceph Url Address",
          "description" : "Set the Ceph Object Storage Address Url."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll of the selected bucket.",
          "default" : 500
        }
      }
    }
  },
  "chuck-norris-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "chuck-norris-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHJlY3QgeD0iMTY1LjQ3IiB5PSIyNDMuOCIgc3R5bGU9ImZpbGw6I0YwRjBGQTsiIHdpZHRoPSIxMjkuNjUiIGhlaWdodD0iNDEuMiIvPg0KPGc+DQoJPHJlY3QgeD0iNDAzLjEyIiB5PSIxOTkuNjciIHN0eWxlPSJmaWxsOiNGRkI0ODc7IiB3aWR0aD0iMzIiIGhlaWdodD0iNDIiLz4NCgk8cmVjdCB4PSIyMTAuMTIiIHk9IjIwMy45NiIgc3R5bGU9ImZpbGw6I0ZGQjQ4NzsiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0MiIvPg0KPC9nPg0KPGc+DQoJPHBhdGggc3R5bGU9ImZpbGw6I0YwRjBGQTsiIGQ9Ik0yNDIuOTU2LDE5NmwtNTcuODMzLTkwaC0yMS4xNzdjLTE5LjQzNSwwLTM2LjUyMywxMi44NjctNDEuODk0LDMxLjU0NWwtMjMuMDk1LDgwLjMxOQ0KCQlDOTMuNDY1LDIzNi45NjIsMTA3LjgsMjU2LDEyNy42NzIsMjU2aDgyLjQ1MXYtNjBoLTUyIi8+DQoJPHBhdGggc3R5bGU9ImZpbGw6I0YwRjBGQTsiIGQ9Ik0yMjYuNTA0LDE3MC4zOThMMjYwLjEyMywxMDZoMTcuMTI5YzE2LjQ4NCwwLDMxLjU1OCw5LjI5OCwzOC45NTYsMjQuMDI5bDIyLjA5NCw0My45OTcNCgkJYzMuNjg2LDcuMzQsMTEuMTk3LDExLjk3MywxOS40MTEsMTEuOTczaDQ1LjQxMXY3MC4xMjdIMjgyLjExIi8+DQo8L2c+DQo8cG9seWdvbiBzdHlsZT0iZmlsbDojQkVCRUJFOyIgcG9pbnRzPSIyMjYuNTA0LDE3MC4zOTggMTg1LjEyMywxMDYgMjU4Ljg0NSwxMDYgIi8+DQo8Zz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojRDdEN0U2OyIgZD0iTTE2NS40NzQsMjg1bC01NS42OTUsMzIuMzQ3Yy0yMy41MDEsMTMuNjQ5LTQxLjIsMzUuNDItNDkuNzY1LDYxLjIxMkwzMi4zMDYsNDYyaDkzbDM1LTc4DQoJCUwxNjUuNDc0LDI4NXoiLz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojRDdEN0U2OyIgZD0iTTI5NS4xMjMsMjg1bDU1LjY5NSwzMi4zNDdjMjMuNTAxLDEzLjY0OSw0MS4yLDM1LjQyLDQ5Ljc2NSw2MS4yMTJMNDI4LjI5MSw0NjJoLTkzbC0zNS03OA0KCQlMMjk1LjEyMywyODV6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojQkVCRUJFOyIgZD0iTTIyLjg3Nyw1MDJoNzcuOTg3YzguMjg0LDAsMTUtNi43MTYsMTUtMTV2LTI1SDYyLjg3N0M0MC43ODYsNDYyLDIyLjg3Nyw0NzkuOTA5LDIyLjg3Nyw1MDINCgkJTDIyLjg3Nyw1MDJ6Ii8+DQoJPHBhdGggc3R5bGU9ImZpbGw6I0JFQkVCRTsiIGQ9Ik00MzcuNzE5LDUwMmgtNzcuOTg3Yy04LjI4NCwwLTE1LTYuNzE2LTE1LTE1di0yNWg1Mi45ODdDNDE5LjgxLDQ2Miw0MzcuNzE5LDQ3OS45MDksNDM3LjcxOSw1MDINCgkJTDQzNy43MTksNTAyeiIvPg0KPC9nPg0KPGc+DQoJPHBhdGggc3R5bGU9ImZpbGw6I0ZGQ0RBQzsiIGQ9Ik0yMjYuNTA0LDEwNkwyMjYuNTA0LDEwNmMtMjQuMzAxLDAtNDQtMTkuNjk5LTQ0LTQ0di04YzAtMjQuMzAxLDE5LjY5OS00NCw0NC00NGwwLDANCgkJYzI0LjMwMSwwLDQ0LDE5LjY5OSw0NCw0NHY4QzI3MC41MDQsODYuMzAxLDI1MC44MDUsMTA2LDIyNi41MDQsMTA2eiIvPg0KCTxwYXRoIHN0eWxlPSJmaWxsOiNGRkNEQUM7IiBkPSJNNDcwLjEyMywyNTEuODMzaC0xNmMtMTAuNDkzLDAtMTktOC41MDctMTktMTlWMjA4LjVjMC0xMC40OTMsOC41MDctMTksMTktMTloMTYNCgkJYzEwLjQ5MywwLDE5LDguNTA3LDE5LDE5djI0LjMzM0M0ODkuMTIzLDI0My4zMjcsNDgwLjYxNiwyNTEuODMzLDQ3MC4xMjMsMjUxLjgzM3oiLz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojRkZDREFDOyIgZD0iTTI3Ny4xMjMsMjU2LjEyN2gtMTZjLTEwLjQ5MywwLTE5LTguNTA3LTE5LTE5di0yNC4zMzNjMC0xMC40OTMsOC41MDctMTksMTktMTloMTYNCgkJYzEwLjQ5MywwLDE5LDguNTA3LDE5LDE5djI0LjMzM0MyOTYuMTIzLDI0Ny42MiwyODcuNjE2LDI1Ni4xMjcsMjc3LjEyMywyNTYuMTI3eiIvPg0KPC9nPg0KPHBvbHlnb24gc3R5bGU9ImZpbGw6I0YwRjBGQTsiIHBvaW50cz0iMTM0LjQ3NCwzODQgMTY1LjQ3NCwyODUgMjk1LjEyMywyODUgMzI2LjEyMywzODQgIi8+DQo8cGF0aCBkPSJNMjUxLjcsMzM0Yy0yLjYzLDAtNS4yMSwxLjA3LTcuMDcsMi45M2MtMS44NiwxLjg2LTIuOTMsNC40NC0yLjkzLDcuMDdzMS4wNyw1LjIxLDIuOTMsNy4wN3M0LjQ0LDIuOTMsNy4wNywyLjkzDQoJczUuMjEtMS4wNyw3LjA3LTIuOTNzMi45My00LjQ0LDIuOTMtNy4wN3MtMS4wNi01LjIxLTIuOTMtNy4wN0MyNTYuOTEsMzM1LjA3LDI1NC4zMywzMzQsMjUxLjcsMzM0eiIvPg0KPHBhdGggZD0iTTM5Ny40MzksMzY5LjA2NmMtNS4yNDMsMS43MzYtOC4wODUsNy4zOTQtNi4zNSwxMi42MzdsMC4xNDgsMC40NDdjMS4zOTEsNC4yLDUuMjk3LDYuODU5LDkuNDkyLDYuODU5DQoJYzEuMDQyLDAsMi4xMDItMC4xNjUsMy4xNDUtMC41MWM1LjI0My0xLjczNiw4LjA4NS03LjM5NCw2LjM1LTEyLjYzN2wtMC4xNDgtMC40NDdDNDA4LjM0LDM3MC4xNzIsNDAyLjY4MiwzNjcuMzMxLDM5Ny40MzksMzY5LjA2Ng0KCXoiLz4NCjxwYXRoIGQ9Ik00NzAuMTIzLDE3OS41aC0xNmMtOC44MDYsMC0xNi43MDIsMy45NTEtMjIuMDI1LDEwLjE2N2gtMTguOTc1VjE4NmMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwaC00NS40MTENCgljLTQuNDU5LDAtOC40NzMtMi40NzYtMTAuNDc1LTYuNDYxbC0yMi4wOTQtNDMuOTk3QzMxNS45OTMsMTA3LjMyLDI5Ny42NDIsOTYsMjc3LjI1MSw5NmgtOC44MzUNCgljNy41NTEtOS4yOSwxMi4wODctMjEuMTIzLDEyLjA4Ny0zNHYtOGMwLTI5Ljc3Ni0yNC4yMjQtNTQtNTQtNTRzLTU0LDI0LjIyNC01NCw1NHY4YzAsMTIuODc3LDQuNTM3LDI0LjcxLDEyLjA4OCwzNGgtMjAuNjQ2DQoJYy0yMy43NTksMC00NC45MzgsMTUuOTQ4LTUxLjUwNCwzOC43ODFMODkuMzQ2LDIxNS4xYy0zLjQ5NCwxMi4xNDktMS4xMzYsMjQuOTEsNi40NjgsMzUuMDA4DQoJYzcuNjA1LDEwLjEsMTkuMjE3LDE1Ljg5MiwzMS44NTgsMTUuODkyaDI3LjgwMXYxMy4yNDNMMTA0Ljc1NiwzMDguN2MtMjUuNjMxLDE0Ljg4Ny00NC44OTIsMzguNTc4LTU0LjIzMiw2Ni43MDhsLTI3LjcwOCw4My40NDENCgljLTEuMDEzLDMuMDQ5LTAuNDk5LDYuMzk4LDEuMzgxLDkuMDAzYzAuMzI1LDAuNDUxLDAuNjk1LDAuODU3LDEuMDgzLDEuMjQxYy03LjcxMiw4LjgwMS0xMi40MDMsMjAuMzEzLTEyLjQwMywzMi45MDcNCgljMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg3Ny45ODdjMTMuNzg1LDAsMjUtMTEuMjE1LDI1LTI1di0xNS4wNDFjMy43MTMtMC4yMDksNy4wMjktMi40NDQsOC41NjQtNS44NjVMMTY2Ljc3OSwzOTRoMTI3LjAzOA0KCWwzMi4zNSw3Mi4wOTRjMS41MzUsMy40MjEsNC44NTEsNS42NTYsOC41NjQsNS44NjVWNDg3YzAsMS43MTIsMC4xNzQsMy4zODQsMC41MDMsNWgtODMuNTMzYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwDQoJczQuNDc3LDEwLDEwLDEwaDE4Ni4wMThjNS41MjMsMCwxMC00LjQ3NywxMC0xMGMwLTEyLjU5NC00LjY5LTI0LjEwNy0xMi40MDMtMzIuOTA3YzAuMzg4LTAuMzg1LDAuNzU4LTAuNzkxLDEuMDgzLTEuMjQxDQoJYzEuODgtMi42MDUsMi4zOTQtNS45NTQsMS4zODEtOS4wMDNsLTE2LjgwNS01MC42MDZjLTEuNzQtNS4yNDEtNy4zOTctOC4wOC0xMi42NDItNi4zMzljLTUuMjQyLDEuNzQtOC4wOCw3LjQtNi4zMzksMTIuNjQyDQoJTDQxNC40MzMsNDUyaC0xNi43MTRoLTUyLjk4OGgtMi45NjdsLTI2LjAyNi01OGgxMC4zODVjMy4xODIsMCw2LjE3NC0xLjUxNSw4LjA1OS00LjA3OXMyLjQzNi01Ljg3MywxLjQ4NC04LjkwOWwtMjMuMzA5LTc0LjQzOA0KCWwzMy40MzksMTkuNDIxYzEyLjc0MSw3LjQsMjMuOTE5LDE3LjcwNiwzMi4zMjgsMjkuODAyYzEuOTQzLDIuNzk1LDUuMDU2LDQuMjkzLDguMjIsNC4yOTNjMS45NjksMCwzLjk1OS0wLjU4MSw1LjY5OS0xLjc5DQoJYzQuNTM1LTMuMTUyLDUuNjU2LTkuMzg0LDIuNTA0LTEzLjkxOWMtMTAuMDY3LTE0LjQ4My0yMy40NTItMjYuODIyLTM4LjcwNi0zNS42ODJsLTUwLjcxOC0yOS40NTZ2LTEzLjExNmg5OA0KCWM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi00LjQ2aDE4Ljk3NGM1LjMyMyw2LjIxNiwxMy4yMTksMTAuMTY3LDIyLjAyNiwxMC4xNjdoMTZjMTUuOTkxLDAsMjktMTMuMDA5LDI5LTI5VjIwOC41DQoJQzQ5OS4xMjMsMTkyLjUwOSw0ODYuMTEzLDE3OS41LDQ3MC4xMjMsMTc5LjV6IE0zOTcuNzE5LDQ3MmMxMy4wMzgsMCwyNC4xNTksOC4zNTksMjguMjg3LDIwaC02Ni4yNzRjLTIuNzU3LDAtNS0yLjI0My01LTV2LTE1DQoJSDM5Ny43MTl6IE0yODYuMTIzLDIzNy4xMjdjMCw0Ljk2Mi00LjAzOCw5LTksOWgtMTZjLTQuOTYyLDAtOS00LjAzOC05LTl2LTI0LjMzM2MwLTQuOTYyLDQuMDM4LTksOS05aDE2YzQuOTYyLDAsOSw0LjAzOCw5LDkNCglWMjM3LjEyN3ogTTIyMC4xMjMsMjEzLjk2aDEydjIyaC0xMlYyMTMuOTZ6IE0xOTguMzIsMTA4LjA0YzguMjEsNS4wNDUsMTcuODYyLDcuOTYsMjguMTg1LDcuOTZjNi42NDgsMCwxMy4wMTctMS4yMTUsMTguOTA0LTMuNDIzDQoJbC0xOS44LDM3LjkyOEwxOTguMzIsMTA4LjA0eiBNMTkyLjUwNCw1NGMwLTE4Ljc0OCwxNS4yNTItMzQsMzQtMzRjMTguNzQ4LDAsMzQsMTUuMjUyLDM0LDM0djhjMCwxOC43NDgtMTUuMjUyLDM0LTM0LDM0bDAsMA0KCWMtMTguNzQ4LDAtMzQtMTUuMjUyLTM0LTM0VjU0eiBNMTExLjc5MiwyMzguMDc5Yy0zLjc5MS01LjAzNC00Ljk2Ni0xMS4zOTUtMy4yMjUtMTcuNDUxbDIzLjA5Ni04MC4zMg0KCWM0LjExNS0xNC4zMTIsMTcuMzktMjQuMzA4LDMyLjI4My0yNC4zMDhoMTUuNzE2bDUwLjA5Nyw3Ny45NmgtOS44NDZjLTAuOTQyLTQuNTQ1LTQuOTY3LTcuOTYtOS43OTEtNy45NmgtNTINCgljLTUuNTIzLDAtMTAsNC40NzctMTAsMTBzNC40NzcsMTAsMTAsMTBoNDJ2MzkuOTZWMjQ2aC03Mi40NUMxMjEuMzcxLDI0NiwxMTUuNTgzLDI0My4xMTMsMTExLjc5MiwyMzguMDc5eiBNMTA1Ljg2NSw0ODcNCgljMCwyLjc1Ny0yLjI0Myw1LTUsNUgzNC41OTFjNC4xMjctMTEuNjQxLDE1LjI0OS0yMCwyOC4yODctMjBoNDIuOTg3VjQ4N3ogTTExOC44MzIsNDUyaC0yLjk2N0g2Mi44NzdINDYuMTYzbDIzLjM0MS03MC4yOQ0KCWM3LjgwMi0yMy40OTUsMjMuODg5LTQzLjI4Miw0NS4yOTctNTUuNzE2bDMzLjQzOS0xOS40MjFsLTIzLjMwOSw3NC40MzhjLTAuOTUxLDMuMDM3LTAuNCw2LjM0NSwxLjQ4NCw4LjkwOQ0KCWMxLjg4NCwyLjU2NCw0Ljg3Niw0LjA3OSw4LjA1OSw0LjA3OWgxMC4zODRMMTE4LjgzMiw0NTJ6IE0xNDguMDg0LDM3NGw2LjI2My0yMGg1OC4xYzUuNTIzLDAsMTAtNC40NzcsMTAtMTBzLTQuNDc3LTEwLTEwLTEwDQoJaC01MS44MzhsMTIuMjEyLTM5aDExNC45NTRsMjQuNzM4LDc5SDE0OC4wODR6IE0yODUuMTIzLDI3NUgxNzUuNDc0di05aDM0LjY0OWM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi0wLjA0aDE4Ljk3NQ0KCWM1LjMyMyw2LjIxNiwxMy4yMTksMTAuMTY3LDIyLjAyNSwxMC4xNjdoMTZjMS4wNjcsMCwyLjEyLTAuMDYyLDMuMTU3LTAuMTc1YzAuNTk0LDAuMTEsMS4yMDUsMC4xNzUsMS44MzEsMC4xNzVoMy4wMTJMMjg1LjEyMywyNzUNCglMMjg1LjEyMywyNzV6IE0zOTMuMTIzLDI0Ni4xMjdoLTg4LjQzN2MwLjkyOC0yLjgzNSwxLjQzNy01Ljg1OSwxLjQzNy05di0yNC4zMzNjMC0xNS45OTEtMTMuMDA5LTI5LTI5LTI5aC0xNg0KCWMtNC40MTQsMC04LjU5OCwwLjk5NS0xMi4zNDYsMi43NjdsLTEwLjcyLTE2LjY4M0wyNjYuMTgzLDExNmgxMS4wNjljMTIuNzgxLDAsMjQuMjgzLDcuMDk1LDMwLjAxOSwxOC41MTdsMjIuMDk0LDQzLjk5Nw0KCUMzMzQuNzgsMTg5LjMsMzQ1LjY0MywxOTYsMzU3LjcxMiwxOTZoMzUuNDExdjMuNjY3djQyTDM5My4xMjMsMjQ2LjEyN0wzOTMuMTIzLDI0Ni4xMjd6IE00MTMuMTIzLDIwOS42NjdoMTJ2MjJoLTEyVjIwOS42Njd6DQoJIE00NzkuMTIzLDIzMi44MzNjMCw0Ljk2Mi00LjAzOCw5LTksOWgtMTZjLTQuOTYyLDAtOS00LjAzOC05LTlWMjA4LjVjMC00Ljk2Miw0LjAzOC05LDktOWgxNmM0Ljk2MiwwLDksNC4wMzgsOSw5VjIzMi44MzN6Ii8+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Chuck Norris",
        "camel.apache.org/kamelet.namespace" : "Dataset"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Chuck Norris Source",
        "description" : "Gets periodically Chuck Norris jokes",
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period",
            "description" : "The interval (msec) to wait before getting the next joke",
            "type" : "integer",
            "default" : 10000
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "text/plain"
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:timer", "camel:http", "camel:jsonpath" ],
      "template" : {
        "from" : {
          "uri" : "timer:chuck",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "to" : "https://api.chucknorris.io/jokes/random"
          }, {
            "removeHeaders" : {
              "pattern" : "*"
            }
          }, {
            "setBody" : {
              "jsonpath" : "$.value"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Chuck Norris Source",
      "description" : "Gets periodically Chuck Norris jokes",
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period",
          "description" : "The interval (msec) to wait before getting the next joke",
          "default" : 10000
        }
      }
    }
  },
  "chunk-template-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "chunk-template-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Chunk Template Action",
        "description" : "Apply a Chunk Template.\n\nThe template property needs to be encoded in base64, so when you pass it as parameter, don't forget to encode it.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "binary"
          }
        }
      },
      "dependencies" : [ "camel:chunk", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "chunk:",
              "parameters" : {
                "resourceUri" : "base64:{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Chunk Template Action",
      "description" : "Apply a Chunk Template.\n\nThe template property needs to be encoded in base64, so when you pass it as parameter, don't forget to encode it.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "coffee-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "coffee-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iOTJwdCIgd2lkdGg9IjkycHQiIHZlcnNpb249IjEuMCIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+Cgk8ZGVmcz4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImEiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjZmZmZmZmIiBzdG9wLW9wYWNpdHk9Ii41IiBvZmZzZXQ9IjAiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIuMSIgb2Zmc2V0PSIxIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImQiIHkyPSI2Mi4yOTkiIHhsaW5rOmhyZWY9IiNhIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9IjMzLjYxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC43ODQ3OSAwIDAgMS4yNzQyIC0yNS42OTEgLTguNTYzNSkiIHgyPSI5NS42ODkiIHgxPSI1OS4wOTkiLz4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImMiIHkyPSIyNDEuMDkiIHhsaW5rOmhyZWY9IiNhIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9IjIwOC4wNCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjk3NzcgMCAwIC41MDU2MyAtMjUuNjkxIC04LjU2MzUpIiB4Mj0iMjguMTc5IiB4MT0iMTcuNDAyIi8+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJiIiB5Mj0iODAuOTA5IiB4bGluazpocmVmPSIjYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHkxPSI1NS45ODgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS41NDY5IDAgMCAuNjQ2NDcgLTI1LjY5MSAtOC41NjM1KSIgeDI9Ijg3LjA3NCIgeDE9IjcwLjA2MyIvPgoJPC9kZWZzPgoJPHBhdGggc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0ibTEyLjQ2MyAyNC44ODZjMi4zNTIgMS4yMjYgMjIuMzY4IDUuNDg4IDMzLjk3MiA1LjIyNiAxNi41MjcgMC4yNjIgMzAuMzEzLTYuMDQ5IDMyLjkyNy03LjA1NSAwIDEuNDMzLTIuMzA3IDEwLjI3My0yLjYxNCAxNS42NzkgMCA1LjQ0OCAxLjgzIDI4LjQxNSAyLjA5MSAzMy43MTEgMC44NjggNi4xNzggMi43MDQgMTMuODYxIDQuNDQzIDE5LjA3NyAxLjgyOSAzLjU1My0yMy41NjMgOS44NTYtMzQuNzU3IDEwLjQ1Ni0xMi42MDIgMC43OC0zOC45MzctNC4zNzUtMzcuMzY5LTguMzY2IDAtMy45NjggMy42NTktMTMuMzgzIDMuNjU5LTE5LjU5OSAwLjUyMi02LjAyNS0wLjI2Mi0yMy4yNzMtMC4yNjItMzAuODM2LTAuMjYxLTYuNzgtMS4wNTMtMTIuNTYxLTIuMDktMTguMjkzeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjZmJkOTAwIi8+Cgk8cGF0aCBkPSJtMTAuNjMzIDk0LjY1OWMtNS41ODUxLTEuMzMxLTcuODc4NiAxMC4xMTEtMS44Mjg4IDEyLjAyMSA2LjM2NzggMy43NSAyOS43MDMgNy4wNiAzOS4xOTkgNi4yNyAxMS4xMDEtMC4yNiAzMS4xOTItNC40NCAzNS44MDEtOC4zNiA2LjEzNC0zLjkyIDUuNDY2LTEzLjA2NiAwLTEyLjAyMS0zLjI3OCAzLjY1OC0yNi42OTkgOC44ODEtMzYuNTg1IDkuNDExLTkuMjIzIDAuNzgtMzAuNzQ5LTIuNTMtMzYuNTg2LTcuMzIxeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjZmJmM2JmIi8+Cgk8cGF0aCBzdHJva2UtbGluZWpvaW49ImJldmVsIiBkPSJtNzcuMzgyIDM0LjA0NmMxLjI0NS0zLjIxMiA5LjYzOS02Ljk3MiAxMi4zNjQtNy41MTYgNC42ODYtMS4wNSAxMi4zODQtMS4zODggMTYuNzY0IDQuMjggNy45NCAxMC4zMjMgNi43NiAyOC42MjYgMi44NiAzNC42MzgtMi43OCA1LjEwNC05LjM3MSAxMC4yODItMTQuNjM1IDExLjg3OC01LjE1MSAxLjUzMy0xMi43MDcgMi42NjEtMTQuMzMzIDMuNzExLTAuMzUtMS4yOTYtMS4zMjctNy4zODgtMS4zOC05LjA3MSAxLjk1IDAuMTI4IDcuNDg5LTAuODkzIDExLjY5NS0xLjg2OCAzLjkwMi0wLjg5OSA2LjQ1LTMuMjc0IDkuMzMzLTYuMjIyIDUtNC43IDQuMzUtMjEuMTYgMC41NC0yNS4wNTctMi4yMzMtMi4yNjItNi44NDktMy45MDQtOS45MTUtMy4zMjMtNC45OTIgMS4wMzItMTMuNjc3IDcuMzY2LTEzLjY3NyA2Ljk4LTAuNTA4LTIuMDgtMC4yNS02LjE1OSAwLjM4NC04LjQzeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMS4yNSIgZmlsbD0iI2ZiZjNiZiIvPgoJPHBhdGggc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0ibTMyLjAyMiAzOC4zNjhjMS42NTUgMS4yMDYtMS4zNTUgMTYuOTU1LTAuOTQyIDI4LjEzMSAwLjQxNCAxNC4yOTUgMS40NDQgMjMuNTI4LTAuNTIxIDI0LjYzNS0zLjEwOCAxLjY3NS05LjkwMS0wLjEzNS0xMi4wNDYtMi40Mi0xLjI3My0xLjUwNyAxLjgwNi0xMC4yNCAyLjAxMy0xNi40MjktMC40MTQtOC43MTEtMS43MDMtMzMuMzAzLTAuNDYxLTM0Ljc3OCAyLjI1Mi0yLjA1MyA5LjY4MS0xLjE1MiAxMS45NTcgMC44NjF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxLjI1IiBmaWxsPSIjZmJlNjAwIi8+Cgk8cGF0aCBkPSJtNDAuNjEyIDM5LjAzN2MtMS40NzggMS40MjQtMC4wNjMgMTkuNjI1LTAuMDYzIDIyLjU1OSAwLjMwNSAzLjgwOC0xLjEwMSAyNy40NTItMC4xNzggMjguOTU0IDEuODQ4IDIuMTIyIDEwLjIxNiAyLjQ0MiAxMy4wMDEtMC4zNTYgMS41MDUtMS44NzUtMC40NzgtMjIuNTQ0LTAuNDc4LTI3LjY4IDAtNS41MSAxLjQwNy0yMi4wNTItMC40NC0yMy41OC0yLjAzMy0yLjE0OS04LjQ0LTMuMTgtMTEuODQyIDAuMTAzeiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjZmJlNjAwIi8+Cgk8cGF0aCBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJtNjAuMzAxIDM3LjU5M2MtMS42NTggMS4yNTYgMS4xNzkgMTUuOCAxLjE5NCAyNi45ODIgMC4xMzcgMTQuMjk5LTEuMjQ1IDI0LjY2MiAwLjgyNCAyNS43MDkgMy4yNjggMS41NzggMTAuODgxLTEuNTQyIDEzLTMuODkxIDEuMjUzLTEuNTQ1LTEuNDExLTEwLjE3OS0yLjA4Mi0xNi4zNTgtMC45ODQtOC4xNjQgMC4xNDgtMzMuMTI4LTEuMTg5LTM0LjU2NC0yLjQwMi0xLjk4NC05LjQ4MiAwLjA0LTExLjc0NyAyLjEyMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjEuMjUiIGZpbGw9IiNmYmU2MDAiLz4KCTxwYXRoIGQ9Im01My41ODIgMzEuMTJjLTQuOTg5IDEuMTA5LTM2LjU4OC0zLjE0MS0zOS43MjktNC44MDQgMC45MjQgNC42MiAzLjE0MSA0NS4yNzIgMS42NjMgNDkuODkyIDAuMTg1IDIuMDMyLTMuODggMTUuMTUyLTMuNjk1IDE3LjkyNCAxNy4xODQtNjguMzcgMzkuNzI4LTQ4Ljk2OCA0MS43NjEtNjMuMDEyeiIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSJ1cmwoI2QpIi8+Cgk8cGF0aCBkPSJtMTAuMDI3IDk1LjMwOWMtMy4wNTE1LTAuODk3LTUuMjA1MyA2LjgyMS0yLjg3MiA5LjE1MSA1Ljc0MyAyLjY5IDEzLjI4Mi0yLjMzIDM4LjIzLTEuNjEtMTIuNzQzLTAuMzYtMzEuNTg5LTIuODc0LTM1LjM1OC03LjU0MXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNjKSIvPgoJPHBhdGggZD0ibTc4LjU5IDMzLjU2N2M0LjQ4Ny00LjQ4OCA4Ljc5NC01LjU2NCAxMy45OTktNi40NjIgOC43OTEtMi4zMzMgMTQuOTAxIDMuNzY5IDE2Ljg3MSAxMS44NDYtNC40OS03LjE3OS0xMC4yMy04LjI1Ni0xNC4xNzgtOC40MzYtNC4xMjggMC43MTgtMTUuNzk1IDcuODk4LTE2Ljg3MiA5LjE1NHMtMC43MTgtNC4xMjggMC4xOC02LjEwMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNiKSIvPgoJPHBhdGggc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0ibTExLjQwOCA3Ny4zNGMyLjM4MzIgMS4xNTkgNC4yODExLTEuNTY5MyAzLjQ2NDktMy4wMzAzIDAuOTE1MDMgMC4wODY1OCAxLjc5NDgtMC4zMjU0IDEuNzk0OC0xLjc5NDggMC43MjA0NC0wLjcyMDQ0LTAuMzY0NjEtMS44NTQ0LTAuMzY0NjEtMi43MzU3LTAuOTkzNTQtMC45OTM1NCAwLjAwNTYtMi4xNjUgMC4wMDU2LTMuNzI1NyAwLTEuNTUzNSAwLjg5NzQyLTIuNTAyNCAwLjg5NzQyLTQuMTI4MSAwLTIuMzYxMSAyLjA1OTQtMS4xODA3IDAuODk3NDItNC42NjY2IDEuMDg4Mi0wLjQyNDU1IDIuMjc0MS0xLjQ4NDUgMC44OTc0Mi0yLjY5MjMgMi4xNjAxLTAuMjM5NTIgMy4yMTg2LTIuMzU0MiAwLjUzODQ1LTQuNjY2NiA0LjA3MzQgMC00LjIzMDItOC43MzA1IDIuNjkyMy02Ljk5OTkgMi4yMjItMC41NTU1MSAxLjc5NDgtMi4yMTUxIDEuNzk0OC00LjMwNzYgMi44NzE3IDMuOTQ4NyA2Ljg5NTQgMi42MjEzIDcuNTM4MyAwIDEuMzQ4NiA0LjM5OTggMTAuNTkgMi41ODY5IDEwLjU5LTIuODcxNyAwLjE3OTQ4IDYuNzUwMiA3LjExNzcgMy40MDQ2IDguNDM1OCAzLjk0ODYtMS42MTU0IDEuODY2MiAxLjU4NDEgOS4wNzk2IDQuMzA3NiA5LjE1MzctNi4zMDk3IDQuNzMyMy01LjE3MjkgMTMuMDAxIDIuNTEyOCAxNC41MzggMy44OTM4IDAgNS4zODQ1LTMuMjc4NSA1LjM4NDUtNy44OTczIDEuMjU2NCAyLjY0NDcgNi45NzIgNC4yNzk3IDYuOTk5OS0wLjE3OTQ4IDIuODcxNyA1LjU0NDYgNi40OTU5LTEuNDcwNCA0LjMwNzYtMi4xNTM4IDUuMDI1NiAxLjkwNTcgMy4yMTI4LTYuOTgxMSAxLjM3ODUtOS4wNTYgMi44NzE4LTAuOTE0NDggMS44MzQ2LTcuNjE4NCAwLjA1NzQtOS43ODk4IDIuNjIxMiAyLjY2NTIgNi43Mzg1LTAuODMxMTIgNi4yODItNS45MjMgMS4yMjggMy40NjcxIDkuMTQ3NS0wLjM2ODI4IDMuNzY5Mi04LjQzNTggMC0xLjU0NTEtNC40ODcxLTEuNzQ4OC01LjU2NC0wLjUzODQ1LTAuMDE1NDEtNS40NDYxLTQuMDk5Ny05LjY5MjEtNi45OTk5LTguNjE1MiAxLjc5OS0yLjY5MzItOS4wNDgtNC44OTk5LTExLjMwOC0wLjUzOSAxLjM1MS01LjcwMTItMTMuODEtOS4zMzM2LTE0LjE3OS02LjEwMjktMS43NDgtMi41MTI4LTExLjc3MS0yLjU1ODYtMTQuNzE4IDYuMjgxOSAwLTQuODYwNi0xNi4zMDktNi45OTk5LTE1Ljk3NCAwLjM1ODk3LTMuNDg5OS0yLjQzMzEtOS4yMjc0IDAuMzU4OTctOC43OTQ3IDMuMjMwNy01LjM4NDUtMi43MDM0LTcuODQyIDkuNTYxMS0zLjQxMDIgMTAuMjMxLTIuNTEyOCAyLjI2MjQtMi42OTIzIDExLjMxMSAwLjUzODQ1IDExLjEyOC0xLjk3NDMgMi4xMjk3LTAuODk3NDIgOC40MzY2IDEuMjU2NCA4LjYxNTItMS42Nzk0IDIuMzIwNiAwLjI0NTcgMTMuNjc0IDcuMTc5NCAxMS44NDYgMCAyLjUyMzQgMC43MDg3NyA0LjY5NDEtMC4xNzk0OCA3LjM1ODggMCAxLjU0NTUtMC44OTc0MiAyLjg1MjgtMC44OTc0MiA0LjQ4NzEgMC4zNzIwNiAwLjc0NDEyLTEuMjU5NyAyLjcyNDQgMC41Mzg0NSAzLjk0ODYtNC4yMTY3IDEuNzU5My0zLjMwMjQgNC40NjQyLTEuNjcwMSA1LjcyMjZ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9IiNmZmZmZmYiLz4KCTxwYXRoIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Im0xMS4zMTcgMzIuNTc0Yy0xLjUwOTgtMS42NSAxLjIyMS03LjA0IDQuMjQyLTYuNzYzIDAuNjg5LTIuNDc0IDIuNTg2LTIuODkyIDQuNjg4LTIuMTg3LTEuMDQ4LTIuMDQ1IDEuNTAzLTMuOTkyIDMuNzUtMS42ODIgMS41MTctMi42MjIgNC42NzctNC42NDUgNi4zNTYtMy4yMzEtMC4xMzItMy4zNzMgNi4wNjMtNi43OTQgOC4zMzEtMy44MzcgMCAwLjYwNi0wLjM2MiAxLjg3NSAwIDEuODc1IiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9Im5vbmUiLz4KCTxwYXRoIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Im00OC4zNzIgMjIuMzc0Yy0wLjEwNC00LjcyMSAxNC4wMDktOC41OTEgMTEuMjUtMC4zMTMgMS4yNjktMC42MzQgNi44NzUtMS4yOTkgNS44NDQgMi4zMTQgNC4xMjMtMC40NjYgMTAuMzkgMS4xMDQgNi42NjIgNi42ODggMi4zOTYgMS44MDYgMS4zMzEgNi42OTYtMC4zMTkgNS4wNjEiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjFwdCIgZmlsbD0ibm9uZSIvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Coffees",
        "camel.apache.org/kamelet.namespace" : "Dataset"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Coffee Source",
        "description" : "Produces periodic events about coffees!",
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period",
            "description" : "The time interval between two events",
            "type" : "integer",
            "default" : 5000
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:timer", "camel:http", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "timer:coffee",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "to" : "https://random-data-api.com/api/coffee/random_coffee"
          }, {
            "removeHeaders" : {
              "pattern" : "*"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Coffee Source",
      "description" : "Produces periodic events about coffees!",
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period",
          "description" : "The time interval between two events",
          "default" : 5000
        }
      }
    }
  },
  "couchbase-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "couchbase-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNjguMzQzIDY4LjM0MyIgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHVzZSB4bGluazpocmVmPSIjQSIgeD0iMi4xNzEiIHk9IjIuMTcxIi8+PHN5bWJvbCBpZD0iQSIgb3ZlcmZsb3c9InZpc2libGUiPjxwYXRoIGQ9Ik0zMi4wMDIgMEMxNC4zMzEuMDAyLjAwNSAxNC4zMjYgMCAzMS45OThjLjAwNSAxNy42NyAxNC4zMjggMzEuOTkzIDMxLjk5OCAzMS45OTggMTcuNjctLjAwNSAzMS45OTMtMTQuMzI4IDMxLjk5OC0zMS45OThDNjMuOTkxIDE0LjMzIDQ5LjY3LjAwNyAzMi4wMDIgMHptMjEuNjA2IDM3LjYwOWMwIDEuOTMzLTEuMTEyIDMuNjI2LTMuMjg4IDQuMDEzLTMuNzcuNjc4LTExLjcgMS4wNjQtMTguMzE4IDEuMDY0cy0xNC41NDgtLjQzNC0xOC4zMTgtMS4wNjRjLTEuOTY0LS4yOTQtMy4zODUtMi4wMjktMy4yODgtNC4wMTNWMjUuMTM2YzAtMS45MzMgMS40OTgtMy43MjIgMy4yODgtNC4wMTMgMS4xMTItLjE5NSAzLjcyMi0uNDM0IDUuNzU0LS40MzQuNzczIDAgMS40MDMuNTgyIDEuNDAzIDEuNDk4djguNzUxbDExLjIxMy0uMjQzIDExLjIxMy4yNDN2LTguNzAzYzAtLjg2OS42My0xLjQ5OCAxLjQwMy0xLjQ5OCAyLjAyOCAwIDQuNjQ3LjE5NiA1Ljc1NC40MzQgMS44MzcuMjkxIDMuMjg4IDIuMDg1IDMuMjg4IDQuMDEzbC0uMDk2IDEyLjQ3M3oiIHN0cm9rZT0ibm9uZSIgZmlsbD0iI2VkMjIyNiIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Couchbase",
        "camel.apache.org/kamelet.namespace" : "Nosql"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Couchbase Sink",
        "description" : "Send documents to Couchbase.",
        "required" : [ "protocol", "couchbaseHostname", "bucket" ],
        "type" : "object",
        "properties" : {
          "protocol" : {
            "title" : "Protocol",
            "description" : "The protocol to use",
            "type" : "string"
          },
          "couchbaseHostname" : {
            "title" : "Hostname",
            "description" : "The hostname to use",
            "type" : "string"
          },
          "couchbasePort" : {
            "title" : "Port",
            "description" : "The port to use",
            "type" : "integer",
            "default" : 8091
          },
          "bucket" : {
            "title" : "Bucket",
            "description" : "The bucket to use",
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to connect to Couchbase.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to connect to Couchbase.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "startingId" : {
            "title" : "Starting Id",
            "description" : "The starting id",
            "type" : "integer",
            "default" : 1
          },
          "autoStartId" : {
            "title" : "Auto Start Id",
            "description" : "Auto Start Id or not",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:couchbase", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "couchbase:{{protocol}}://{{couchbaseHostname}}:{{couchbasePort}}",
              "parameters" : {
                "bucket" : "{{bucket}}",
                "autoStartIdForInserts" : "{{autoStartId}}",
                "startingIdForInsertsFrom" : "{{startingId}}",
                "username" : "{{username}}",
                "password" : "{{password}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Couchbase Sink",
      "description" : "Send documents to Couchbase.",
      "required" : [ "protocol", "couchbaseHostname", "bucket" ],
      "properties" : {
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "The protocol to use"
        },
        "couchbaseHostname" : {
          "type" : "string",
          "title" : "Hostname",
          "description" : "The hostname to use"
        },
        "couchbasePort" : {
          "type" : "integer",
          "title" : "Port",
          "description" : "The port to use",
          "default" : 8091
        },
        "bucket" : {
          "type" : "string",
          "title" : "Bucket",
          "description" : "The bucket to use"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to connect to Couchbase."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to connect to Couchbase.",
          "format" : "password"
        },
        "startingId" : {
          "type" : "integer",
          "title" : "Starting Id",
          "description" : "The starting id",
          "default" : 1
        },
        "autoStartId" : {
          "type" : "boolean",
          "title" : "Auto Start Id",
          "description" : "Auto Start Id or not",
          "default" : true
        }
      }
    }
  },
  "cron-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "cron-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAwIiBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjAgMCAxOTIuNzU2IDE5Mi43NTYiPjxnIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDE5Mi43NTZ2MTkyLjc1NkgwVjB6Ii8+PHBhdGggZD0iTTQyLjE2IDEwMy4wNzJsNS45MDEgMS40OTZjLTEuMjQyIDQuODY1LTMuNDc2IDguNTc0LTYuNzAxIDExLjEyOXMtNy4xNjcgMy44MzItMTEuODI2IDMuODMyYy00LjgyMyAwLTguNzQ2LS45ODItMTEuNzY3LTIuOTQ3LTMuMDIxLTEuOTY1LTUuMzIyLTQuODExLTYuODk4LTguNTM3LTEuNTc2LTMuNzI1LTIuMzY1LTcuNzI3LTIuMzY1LTEyLjAwMiAwLTQuNjYzLjg5LTguNzMgMi42NjktMTIuMjAyIDEuNzc5LTMuNDcyIDQuMzEyLTYuMTA4IDcuNTk3LTcuOTEgMy4yODUtMS44MDIgNi45LTIuNzA0IDEwLjg0Ny0yLjcwNCA0LjQ3NCAwIDguMjM2IDEuMTQgMTEuMjg4IDMuNDE4IDMuMDUxIDIuMjggNS4xNzcgNS40ODUgNi4zNzcgOS42MTZsLTUuODM2IDEuMzc2Yy0xLjAzOC0zLjI1OS0yLjU0My01LjYzMy00LjUxNi03LjEyMS0xLjk3My0xLjQ4Ny00LjQ1NS0yLjIzMS03LjQ0My0yLjIzMS0zLjQzNyAwLTYuMzEuODI2LTguNjE5IDIuNDc3LTIuMzA4IDEuNjUtMy45MyAzLjg2Ni00Ljg2NSA2LjY0N2EyNi43NiAyNi43NiAwIDAgMC0xLjQwMyA4LjYwM2MwIDMuODExLjU1NCA3LjEzNyAxLjY2NSA5Ljk3OXMyLjgzNyA0Ljk2NyA1LjE4IDYuMzcxYTE0LjUyIDE0LjUyIDAgMCAwIDcuNjA3IDIuMTA5YzMuMzIgMCA2LjEzMS0uOTU3IDguNDMzLTIuODczIDIuMzAyLTEuOTE0IDMuODYtNC43NTYgNC42NzUtOC41MjZ6TTYxLjM0NSA3OC45MzRoMTQuMTUyYzMuMzE1IDAgNS43NDIuNjg0IDcuMjc4IDIuMDUyIDEuNTM2IDEuMzY4IDIuMzA0IDMuMTEyIDIuMzA0IDUuMjM1IDAgMS40NS0uMzk3IDIuNzkzLTEuMTkgNC4wMjctLjc5NCAxLjIzNS0xLjk1NCAyLjEzMy0zLjQ3OSAyLjY5NC0xLjUyNi41NjItMy42NDIuODQyLTYuMzQ1Ljg0MmgtMTIuNzJ2LTE0Ljg1em0wIDM5LjgxNlY5OC45MDZoNi44NjNjMS41MjQgMCAyLjYyMy4wNzIgMy4yOTMuMjExLjkxNi4yMjEgMS44MTUuNjEzIDIuNyAxLjE3Ni44ODQuNTYyIDEuODg2IDEuNTU1IDMuMDA0IDIuOTggMS4xMTkgMS40MjQgMi41NDIgMy40OCA0LjI3MSA2LjE2Nmw1LjkxNyA5LjMxMWg3LjRsLTcuNzQzLTEyLjE4Yy0xLjUzOC0yLjM4My0zLjE3Mi00LjM2OS00LjkwMS01Ljk1NS0uODEzLS43My0yLjAwMy0xLjQ3NS0zLjU2OS0yLjIyNyA0LjI5LS41OSA3LjQ2MS0xLjk3MyA5LjUxNS00LjE1MSAyLjA1NC0yLjE3NiAzLjA4Mi00Ljg1MiAzLjA4Mi04LjAyNSAwLTIuNDYxLS42Mi00LjcxLTEuODYtNi43NDQtMS4yNC0yLjAzNS0yLjg5OC0zLjQ1My00Ljk3Mi00LjI1Ny0yLjA3NC0uODA0LTUuMTA0LTEuMjA2LTkuMDg4LTEuMjA2aC0xOS44MXY0NC43NDVoNS44OTh6TTEwOS4zMTggODIuNjY3YzMuMDIzLTIuODc3IDYuNjM1LTQuMzE3IDEwLjgyOC00LjMxNyAyLjk1MyAwIDUuNjE1Ljc0OCA3Ljk4OCAyLjI0MiAyLjM3MyAxLjQ5NiA0LjE3NiAzLjYgNS40MDYgNi4zMTYgMS4yMzIgMi43MTUgMS44NSA1Ljg5MyAxLjg1IDkuNTMzIDAgNS43NTYtMS40NDEgMTAuMTk5LTQuMzIyIDEzLjMzMi0yLjg4MyAzLjEzMS02LjU1MyA0LjY5Ny0xMS4wMTIgNC42OTctNC4zODEgMC04LjAyLTEuNTUxLTEwLjkyMi00LjY1Mi0yLjktMy4xLTQuMzUyLTcuMzQ2LTQuMzUyLTEyLjczNi4wMDEtNi43MzIgMS41MTMtMTEuNTM3IDQuNTM2LTE0LjQxNXptLTguMDY4IDI1LjQ3OGMxLjcxMSAzLjUyIDQuMjI1IDYuMjk3IDcuNTQxIDguMzMyczcuMDgyIDMuMDUzIDExLjI5NSAzLjA1M2MzLjg4NyAwIDcuNTEtLjkyMiAxMC44NjctMi43NjQgMy4zNTctMS44NCA1Ljk1My00LjU1MSA3Ljc4NS04LjEzMyAxLjgzMi0zLjU4IDIuNzQ4LTcuNjQxIDIuNzQ4LTEyLjE3OCAwLTQuNDc3LS44NzEtOC40OC0yLjYxMS0xMi4wMXMtNC4yNjgtNi4yODMtNy41ODYtOC4yNTZjLTMuMzE2LTEuOTc0LTcuMDQxLTIuOTYxLTExLjE3Mi0yLjk2MS02LjMxMSAwLTExLjQ1OSAyLjEwMi0xNS40NDcgNi4zMDMtMy45ODggNC4yMDItNS45ODIgMTAuMDE2LTUuOTgyIDE3LjQ0NCAwIDMuOTI1Ljg1MyA3LjY1IDIuNTYyIDExLjE3ek0xNDguOTc1IDExOC43NVY3NC4wMDVoNi4xMDNsMjMuNDY3IDM1LjEydi0zNS4xMmg1LjcwN3Y0NC43NDVoLTYuMTA0bC0yMy40NjYtMzUuMTE5djM1LjExOWgtNS43MDd6IiBmaWxsPSIjY2MyMjI5Ii8+PC9nPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Cron",
        "camel.apache.org/kamelet.namespace" : "Scheduling"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Cron Source",
        "description" : "Send events at specific time.",
        "required" : [ "schedule", "message" ],
        "type" : "object",
        "properties" : {
          "schedule" : {
            "title" : "Cron Schedule",
            "description" : "A cron expression that will be used to trigger events generation.",
            "type" : "string",
            "example" : "0/3 10 * * * ?"
          },
          "message" : {
            "title" : "Message",
            "description" : "The message to generate",
            "type" : "string",
            "example" : "hello world"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "text/plain"
        }
      },
      "dependencies" : [ "camel:quartz", "camel:core", "camel:cron", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "cron:tick",
          "parameters" : {
            "schedule" : "{{schedule}}"
          },
          "steps" : [ {
            "setBody" : {
              "constant" : "{{message}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Cron Source",
      "description" : "Send events at specific time.",
      "required" : [ "schedule", "message" ],
      "properties" : {
        "schedule" : {
          "type" : "string",
          "title" : "Cron Schedule",
          "description" : "A cron expression that will be used to trigger events generation."
        },
        "message" : {
          "type" : "string",
          "title" : "Message",
          "description" : "The message to generate"
        }
      }
    }
  },
  "data-type-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "data-type-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Data Type Action",
        "description" : "Applies a given data type with respective data transformation.",
        "required" : [ "format" ],
        "type" : "object",
        "properties" : {
          "scheme" : {
            "title" : "Component Scheme",
            "description" : "The data type component scheme enables users to apply Camel component specific data type conversions.",
            "type" : "string"
          },
          "format" : {
            "title" : "Data Type Format",
            "description" : "Defines the data type that will be applied by this action. Apache Camel and the Kamelet catalog support different data types and performs automatic message conversion according to the given type.",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:core" ],
      "template" : {
        "beans" : [ {
          "name" : "dataTypeProcessor",
          "type" : "#class:org.apache.camel.processor.transformer.DataTypeProcessor"
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "'{{?scheme}}' != ''",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelDataType",
                    "simple" : "{{?scheme}}:{{format}}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setProperty" : {
                    "name" : "CamelDataType",
                    "simple" : "{{format}}"
                  }
                } ]
              }
            }
          }, {
            "bean" : {
              "ref" : "{{dataTypeProcessor}}",
              "method" : "process"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Data Type Action",
      "description" : "Applies a given data type with respective data transformation.",
      "required" : [ "format" ],
      "properties" : {
        "scheme" : {
          "type" : "string",
          "title" : "Component Scheme",
          "description" : "The data type component scheme enables users to apply Camel component specific data type conversions."
        },
        "format" : {
          "type" : "string",
          "title" : "Data Type Format",
          "description" : "Defines the data type that will be applied by this action. Apache Camel and the Kamelet catalog support different data types and performs automatic message conversion according to the given type."
        }
      }
    }
  },
  "delay-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "delay-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTIyLjg4IDEwMC42IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMjIuODggMTAwLjYiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsOiMyNzI3Mjc7fSAuc3Qxe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0Q4NDUzRTt9PC9zdHlsZT48Zz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzIuNTgsMGM2LjgsMCwxMy4zLDEuMzYsMTkuMjMsMy44MWM2LjE2LDIuNTUsMTEuNyw2LjI5LDE2LjMzLDEwLjkybDAsMGM0LjYzLDQuNjMsOC4zNywxMC4xNywxMC45MiwxNi4zNCBjMi40Niw1LjkzLDMuODEsMTIuNDMsMy44MSwxOS4yM2MwLDYuOC0xLjM2LDEzLjMtMy44MSwxOS4yM2MtMi41NSw2LjE2LTYuMjksMTEuNy0xMC45MiwxNi4zM2wwLDAgYy00LjYzLDQuNjMtMTAuMTcsOC4zNy0xNi4zNCwxMC45MmMtNS45MywyLjQ2LTEyLjQzLDMuODEtMTkuMjMsMy44MWMtNi44LDAtMTMuMy0xLjM2LTE5LjIzLTMuODEgYy02LjE1LTIuNTUtMTEuNjktNi4yOC0xNi4zMy0xMC45MmwtMC4wMS0wLjAxYy00LjY0LTQuNjQtOC4zNy0xMC4xNy0xMC45Mi0xNi4zM2MtMC43OS0xLjkxLTEuNDctMy44Ny0yLjAyLTUuODkgYzEuMDUsMC4xLDIuMTIsMC4xNSwzLjIsMC4xNWMyLjA1LDAsNC4wNS0wLjE5LDYtMC41NGMwLjMyLDAuOTcsMC42NywxLjkzLDEuMDYsMi44N2MyLjA5LDUuMDUsNS4xNyw5LjYsOC45OSwxMy40MyBjMy44MiwzLjgyLDguMzgsNi45LDEzLjQzLDguOTljNC44NywyLjAyLDEwLjIxLDMuMTMsMTUuODMsMy4xM2M1LjYyLDAsMTAuOTYtMS4xMSwxNS44My0zLjEzYzUuMDUtMi4wOSw5LjYtNS4xNywxMy40My04Ljk5IGMzLjgyLTMuODIsNi45LTguMzgsOC45OS0xMy40M2MyLjAyLTQuODcsMy4xMy0xMC4yMSwzLjEzLTE1LjgzYzAtNS42Mi0xLjExLTEwLjk2LTMuMTMtMTUuODNjLTIuMDktNS4wNS01LjE3LTkuNi04Ljk5LTEzLjQzIGMtMy44Mi0zLjgyLTguMzgtNi45LTEzLjQzLTguOTljLTQuODctMi4wMi0xMC4yMS0zLjEzLTE1LjgzLTMuMTNjLTUuNjIsMC0xMC45NiwxLjExLTE1LjgzLDMuMTNjLTAuNDQsMC4xOC0wLjg3LDAuMzctMS4zLDAuNTYgYy0xLjY1LTIuNjEtMy42Ni00Ljk3LTUuOTUtNy4wMmMxLjI1LTAuNjUsMi41My0xLjI0LDMuODQtMS43OUM1OS4yOCwxLjM2LDY1Ljc4LDAsNzIuNTgsMEw3Mi41OCwweiBNNjYuOCwyNi4zOSBjMC0xLjIzLDAuNS0yLjM1LDEuMzEtMy4xNmMwLjgxLTAuODEsMS45My0xLjMxLDMuMTYtMS4zMWMxLjIzLDAsMi4zNSwwLjUsMy4xNiwxLjMxYzAuODEsMC44MSwxLjMxLDEuOTMsMS4zMSwzLjE2djIzLjQ3IGwxNy41NCwxMC40YzEuMDUsMC42MiwxLjc2LDEuNjIsMi4wNSwyLjczYzAuMjgsMS4xLDAuMTUsMi4zMS0wLjQ3LDMuMzdsMCwwLjAxbDAsMGMtMC42MiwxLjA1LTEuNjIsMS43Ni0yLjczLDIuMDUgYy0xLjEsMC4yOC0yLjMxLDAuMTUtMy4zNy0wLjQ3bC0wLjAxLDBsMCwwTDY5LjEsNTYuMjljLTAuNjctMC4zOC0xLjI0LTAuOTItMS42NC0xLjU3Yy0wLjQyLTAuNjgtMC42Ni0xLjQ4LTAuNjYtMi4zMlYyNi4zOSBMNjYuOCwyNi4zOXoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjcuMjcsMy4xOGMxNS4wNiwwLDI3LjI3LDEyLjIxLDI3LjI3LDI3LjI3YzAsMTUuMDYtMTIuMjEsMjcuMjctMjcuMjcsMjcuMjdDMTIuMjEsNTcuNzMsMCw0NS41MiwwLDMwLjQ1IEMwLDE1LjM5LDEyLjIxLDMuMTgsMjcuMjcsMy4xOEwyNy4yNywzLjE4eiBNMjQuMzUsNDEuMzRoNS44MnY1LjE2aC01LjgyVjQxLjM0TDI0LjM1LDQxLjM0TDI0LjM1LDQxLjM0eiBNMzAuMTcsMzcuNzdoLTUuODIgYy0wLjU4LTcuMDctMS44LTExLjU2LTEuOC0xOC42M2MwLTIuNjEsMi4xMi00LjcyLDQuNzItNC43MmMyLjYxLDAsNC43MiwyLjEyLDQuNzIsNC43MkMzMiwyNi4yLDMwLjc2LDMwLjcsMzAuMTcsMzcuNzcgTDMwLjE3LDM3Ljc3TDMwLjE3LDM3Ljc3TDMwLjE3LDM3Ljc3eiIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Delay",
        "camel.apache.org/kamelet.namespace" : "EIP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Delay Action",
        "description" : "Delay the processing using a specific amount of time",
        "required" : [ "milliseconds" ],
        "type" : "object",
        "properties" : {
          "milliseconds" : {
            "title" : "Milliseconds",
            "description" : "The number of milliseconds of delay",
            "type" : "integer",
            "example" : 1000
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "delay" : {
              "constant" : "{{milliseconds}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Delay Action",
      "description" : "Delay the processing using a specific amount of time",
      "required" : [ "milliseconds" ],
      "properties" : {
        "milliseconds" : {
          "type" : "integer",
          "title" : "Milliseconds",
          "description" : "The number of milliseconds of delay"
        }
      }
    }
  },
  "dns-dig-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "dns-dig-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTIyLjg3OSAxMjIuODgxIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMjIuODc5IDEyMi44ODEiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGQ9Ik0xMDkuNDY3LDg5LjUwNWMwLjE4MiwwLDAuMzU5LDAuMDE5LDAuNTMxLDAuMDUzYzEuMTQ2LTEuOTk4LDIuMTkxLTQuMDk1LDMuMTM3LTYuMjg3IGMwLjAxOC0wLjA0MywwLjAzNy0wLjA4NSwwLjA1OS0wLjEyN2MxLjQxOC0zLjM0NiwyLjQ4OC02LjgxOSwzLjIwOS0xMC40MmMwLjE5My0wLjk2MSwwLjM1OS0xLjkzMSwwLjUtMi45MDggYzAuNjM5LTMuOTUzLDAuODAzLTcuOTcsMC40ODItMTIuMDUyYy0wLjE2LTIuNTkxLTAuNDg4LTUuMTI2LTAuOTgyLTcuNjA1Yy0wLjczLTMuNjQ2LTEuODE4LTcuMTY1LTMuMjY2LTEwLjU0OWwtMC4wMDIsMC4wMDIgbC0zLjEwNy02LjIzM2wwLDBsLTAuMjgzLTAuMzM2SDEzLjA0N2wtMC4xOTUsMC4zMzZjLTEuMTM2LDEuOTgyLTIuMTcsNC4wNjEtMy4xMDUsNi4yMzRjLTAuMDE5LDAuMDQzLTAuMDM5LDAuMDg2LTAuMDU5LDAuMTI3IGMtMC44NzgsMi4wNzEtMS42MjIsNC4xOS0yLjIzMyw2LjM1OGMtMi41NzIsOC40NDgtMi45NzIsMTYuODk1LTEuMjE3LDI1LjM0MmMwLjA3NiwwLjQzLDAuMTU1LDAuODU4LDAuMjQxLDEuMjg1IGMwLjcyOSwzLjY0NiwxLjgxOCw3LjE2NCwzLjI2NCwxMC41NDlsMC4wMDQtMC4wMDFjMC45MzUsMi4xNzIsMS45NjksNC4yNTEsMy4xMDUsNi4yMzNsMCwwIEM0NS4wODgsODkuNTA1LDc3LjI3Nyw4OS41MDUsMTA5LjQ2Nyw4OS41MDVMMTA5LjQ2Nyw4OS41MDVMMTA5LjQ2Nyw4OS41MDV6IE0zMi4yNjksNDUuODE2YzQuNTQ4LDAsOC4wMzksMS4yMzMsMTAuNDcyLDMuNjk3IGMyLjQzMiwyLjQ2NCwzLjY0OSw2LjAxOSwzLjY0OSwxMC42NjNjMCw1LjUwMi0xLjQxNiw5LjczMi00LjI0NiwxMi42OWMtMi44MzEsMi45NTctNi44ODUsNC40MzctMTIuMTY2LDQuNDM3IGMtMy4zMDgsMC03LjE4OC0wLjE0NC0xMS42NC0wLjQzbDAuNDc3LTkuMDY0bC0wLjQ3Ny0yMS44MDNMMzIuMjY5LDQ1LjgxNkwzMi4yNjksNDUuODE2eiBNMzEuNzkxLDcwLjE5NSBjMS40OTYsMCwyLjYzMy0wLjU5OCwzLjQxMi0xLjc4OWMwLjc3OS0xLjE5MywxLjE2OS0zLjE1NywxLjE2OS01Ljg5M2MwLTIuMzIxLTAuMTYtNC4xNS0wLjQ3Ny01LjQ4NiBjLTAuMzE5LTEuMzM2LTAuODI5LTIuMjk3LTEuNTI3LTIuODg1Yy0wLjctMC41ODktMS42Ny0wLjg4My0yLjkxLTAuODgzYy0xLjIwOSwwLTIuNDAyLDAuMDYzLTMuNTc5LDAuMTlsLTAuMzMzLDEzLjQwNiBsMC4wOTUsMi45NThDMjkuNTQ5LDcwLjA2OCwzMC45MzMsNzAuMTk1LDMxLjc5MSw3MC4xOTVMMzEuNzkxLDcwLjE5NXogTTc2LjgwNyw2Ni44MDhsMC4zODEsMTAuMDY2aC0xMC40bC04LjY4Mi0xNi41MDZoLTAuNTczIGwtMC4wNDcsNS4zNDJsMC4zODIsMTEuMTY0aC04LjY4M2wwLjQ3Ny05LjA2NGwtMC40NzctMjEuODAzaDEwLjRsOC42ODIsMTYuNTA3aDAuNTcybC0wLjI4NS0xNi4xNzJsOC43NzctMC41MjVMNzYuODA3LDY2LjgwOCBMNzYuODA3LDY2LjgwOHogTTk1LDQ1LjQzNWMzLjAyLDAsNi4wMTIsMC41NTYsOC45NjksMS42N2wtMS41MjcsNy43NzZsLTEuMzM2LDAuNTczYy0xLjMzNi0wLjgyOC0yLjY1Ni0xLjQ4LTMuOTU5LTEuOTU3IGMtMS4zMDMtMC40NzYtMi4zNTUtMC43MTYtMy4xNDgtMC43MTZjLTAuNzMyLDAtMS4zMTMsMC4xNDQtMS43NDIsMC40M3MtMC42NDUsMC42NjgtMC42NDUsMS4xNDZjMCwwLjYwNCwwLjMyOCwxLjEyMiwwLjk3OSwxLjU1IGMwLjY1LDAuNDI5LDEuNzM4LDEuMDAzLDMuMjY4LDEuNjkzYzEuNzc3LDAuODAzLDMuMjQ0LDEuNTM1LDQuMzkxLDIuMjE4YzEuMTQzLDAuNjgzLDIuMTQ2LDEuNjI0LDMuMDA0LDIuODE0IGMwLjg1NywxLjE5MiwxLjI4OSwyLjY2NCwxLjI4OSw0LjQxM2MwLDEuOTQtMC41MzMsMy42OTctMS42LDUuMjcyYy0xLjA2NCwxLjU3NC0yLjU4NCwyLjgyNC00LjU1NSwzLjc0NSBzLTQuMjYyLDEuMzgzLTYuODcxLDEuMzgzYy0zLjI0MiwwLTYuNjQ2LTAuNjA0LTEwLjIwOS0xLjgxM2wxLjM4NS04LjMwMmwwLjk1My0wLjU3MmMxLjQ2MywxLjExMywzLjAyOSwxLjk5Niw0LjY5OSwyLjY0NyBjMS42NywwLjY1MiwzLjA2MSwwLjk3OSw0LjE3NCwwLjk3OWMwLjg5MSwwLDEuNTM3LTAuMTUyLDEuOTM0LTAuNDUzYzAuMzk1LTAuMzAyLDAuNTk2LTAuNjc2LDAuNTk2LTEuMTIgYzAtMC42NjktMC4zNDItMS4yMzUtMS4wMjUtMS42OTRjLTAuNjg0LTAuNDYxLTEuNzkxLTEuMDI3LTMuMzE2LTEuNjkzYy0xLjc0OC0wLjc2NC0zLjE4OC0xLjQ4OC00LjMxNi0yLjE3MiBjLTEuMTMxLTAuNjgzLTIuMTA5LTEuNjIzLTIuOTM0LTIuODE0Yy0wLjgyNi0xLjE5Mi0xLjI0Mi0yLjY2NC0xLjI0Mi00LjQxM2MwLTIuMDA0LDAuNTQzLTMuODEsMS42MjMtNS40MTUgYzEuMDgtMS42MDUsMi41OTItMi44NzIsNC41MzEtMy43OTJDOTAuMzA3LDQ1Ljg5Nyw5Mi41MTgsNDUuNDM1LDk1LDQ1LjQzNUw5NSw0NS40MzV6IE0xMDYuNTIxLDk0Ljg5MUg4OS41MDggYy01LjE2Niw3LjQ4MS0xMi4xMjMsMTQuODctMjAuODQsMjIuMTY3YzEuMzY3LTAuMTY5LDIuNzE5LTAuMzg4LDQuMDU3LTAuNjU0YzMuNjQ2LTAuNzI5LDcuMTY0LTEuODE3LDEwLjU0OS0zLjI2NWwtMC4wMDItMC4wMDQgYzMuNDQxLTEuNDgsNi42NDYtMy4yMTIsOS42MDktNS4xOTljMi45NjktMS45OTIsNS43MjEtNC4yNTUsOC4yNS02Ljc5NWwwLjAxLTAuMDFsMCwwIEMxMDMuMDk4LDk5LjE4MiwxMDQuODkxLDk3LjEwMSwxMDYuNTIxLDk0Ljg5MUwxMDYuNTIxLDk0Ljg5MUwxMDYuNTIxLDk0Ljg5MXogTTU0LjIxLDExNy4wNTggYy04LjcxNi03LjI5Ny0xNS42NzMtMTQuNjg2LTIwLjgzOC0yMi4xNjdIMTYuMzYxYzEuNjMxLDIuMjEsMy40MjMsNC4yOTEsNS4zNzksNi4yNGwwLjAxLDAuMDExdi0wLjAwMSBjMi41MywyLjU0LDUuMjgyLDQuODA0LDguMjUsNi43OTVjMi45NjIsMS45ODcsNi4xNjcsMy43MTksOS42MSw1LjE5OWMwLjA0MiwwLjAxOSwwLjA4NSwwLjAzOSwwLjEyNywwLjA1OSBjMy4zNDUsMS40Miw2LjgxOSwyLjQ4OCwxMC40MiwzLjIwOUM1MS40OTMsMTE2LjY3LDUyLjg0MywxMTYuODg5LDU0LjIxLDExNy4wNThMNTQuMjEsMTE3LjA1OEw1NC4yMSwxMTcuMDU4eiBNMTYuMzYxLDI3Ljk5MSBoMTcuOTM4YzUuMTA4LTcuMzYxLDExLjg2Mi0xNC43NjUsMjAuMjktMjIuMjEyYy0xLjQ5NSwwLjE3NS0yLjk3MywwLjQwOS00LjQzMSwwLjdjLTMuNjQ3LDAuNzI5LTcuMTY0LDEuODE4LTEwLjU0OSwzLjI2NSBsMCwwLjAwM2MtMy40NDIsMS40ODEtNi42NDcsMy4yMTEtOS42MDksNS4yYy0yLjk2OSwxLjk5Mi01LjcyLDQuMjU1LTguMjUsNi43OTRMMjEuNzQsMjEuNzVsMCwwIEMxOS43ODQsMjMuNzAxLDE3Ljk5MiwyNS43OCwxNi4zNjEsMjcuOTkxTDE2LjM2MSwyNy45OTFMMTYuMzYxLDI3Ljk5MXogTTY4LjI5MSw1Ljc3OGM4LjQyOCw3LjQ0NywxNS4xODIsMTQuODUxLDIwLjI5MSwyMi4yMTIgaDE3LjkzOWMtMS42MzMtMi4yMS0zLjQyNi00LjI5Mi01LjM4My02LjI0MWwtMC4wMS0wLjAwOWwwLDBjLTIuNTI3LTIuNTQtNS4yNzktNC44MDItOC4yNS02Ljc5NCBjLTIuOTYzLTEuOTg4LTYuMTY4LTMuNzE5LTkuNjA5LTUuMmMtMC4wNDMtMC4wMTktMC4wODYtMC4wMzktMC4xMjctMC4wNTljLTMuMzQ2LTEuNDE4LTYuODItMi40ODgtMTAuNDItMy4yMDggQzcxLjI2Niw2LjE4Nyw2OS43ODUsNS45NTQsNjguMjkxLDUuNzc4TDY4LjI5MSw1Ljc3OEw2OC4yOTEsNS43Nzh6IE00OS4xMDcsMS4xOThDNTMuMDk5LDAuMzk5LDU3LjIxMSwwLDYxLjQ0LDAgczguMzQxLDAuMzk5LDEyLjMzMywxLjE5OGMzLjkzNiwwLjc4OCw3Ljc1OCwxLjk2OSwxMS40NzUsMy41NDdjMC4wNDksMC4wMTgsMC4xLDAuMDM4LDAuMTQ2LDAuMDU4IGMzLjcwMywxLjU5NCw3LjE5NywzLjQ4NSwxMC40NzMsNS42ODVjMy4yNjgsMi4xOTIsNi4yOTEsNC42NzcsOS4wNjQsNy40NjFjMi43ODUsMi43NzUsNS4yNzEsNS43OTksNy40NjMsOS4wNjUgYzIuMTk3LDMuMjc1LDQuMDksNi43NjksNS42ODQsMTAuNDc0bC0wLjAwNCwwLjAwMWwwLjAwNCwwLjAwOWMxLjYwNywzLjc1OCwyLjgwOSw3LjYyNywzLjYwNSwxMS42MDkgYzAuNzk5LDMuOTkyLDEuMTk1LDguMTA0LDEuMTk1LDEyLjMzNGMwLDQuMjI5LTAuMzk2LDguMzQzLTEuMTk1LDEyLjMzNWMtMC43ODcsMy45MzItMS45NzMsNy43NTgtMy41NDcsMTEuNDcyIGMtMC4wMiwwLjA1LTAuMDM3LDAuMDk5LTAuMDYxLDAuMTQ3Yy0xLjU5NCwzLjcwNS0zLjQ4NCw3LjE5Ni01LjY4NCwxMC40NzJjLTIuMTkxLDMuMjY4LTQuNjc2LDYuMjktNy40NjEsOS4wNjUgYy0yLjc3NSwyLjc4NS01Ljc5OSw1LjI3MS05LjA2Niw3LjQ2MmMtMy4yNzMsMi4xOTgtNi43NjgsNC4wOTEtMTAuNDcxLDUuNjg0bC0wLjAwMi0wLjAwNGwtMC4wMSwwLjAwNCBjLTMuNzU4LDEuNjA2LTcuNjI5LDIuODA5LTExLjYwOSwzLjYwNGMtMy45OTIsMC44LTguMTA1LDEuMTk4LTEyLjMzMywxLjE5OGMtNC4yMjksMC04LjM0My0wLjM5OC0xMi4zMzQtMS4xOTggYy0zLjkzMy0wLjc4Ny03Ljc1OC0xLjk3LTExLjQ3NC0zLjU0NmMtMC4wNDktMC4wMTktMC4wOTgtMC4wMzctMC4xNDctMC4wNmMtMy43MDUtMS41OTMtNy4xOTctMy40ODQtMTAuNDcyLTUuNjg0IGMtMy4yNjYtMi4xOS02LjI5MS00LjY3Ny05LjA2NS03LjQ2MmMtMi43ODUtMi43NzUtNS4yNy01Ljc5OS03LjQ2MS05LjA2NGMtMi4xOTgtMy4yNzQtNC4wOS02Ljc2OC01LjY4NC0xMC40NzNsMC4wMDQtMC4wMDIgbC0wLjAwNC0wLjAwOWMtMS42MDYtMy43NTgtMi44MDgtNy42MjgtMy42MDQtMTEuNjA5QzAuNCw2OS43ODMsMCw2NS42NzEsMCw2MS40NGMwLTQuMjI5LDAuNC04LjM0MiwxLjE5OC0xMi4zMzQgYzAuNzg3LTMuOTMzLDEuOTctNy43NTcsMy41NDYtMTEuNDczYzAuMDE5LTAuMDQ5LDAuMDM4LTAuMSwwLjA1OC0wLjE0N2MxLjU5NC0zLjcwNSwzLjQ4NS03LjE5OCw1LjY4NC0xMC40NzQgYzIuMTkyLTMuMjY2LDQuNjc3LTYuMjksNy40NjEtOS4wNjVjMi43NzQtMi43ODUsNS43OTktNS4yNyw5LjA2NS03LjQ2MWMzLjI3NS0yLjE5OSw2Ljc2OS00LjA5LDEwLjQ3Mi01LjY4NWwwLjAwMSwwLjAwNCBsMC4wMDktMC4wMDRDNDEuMjU1LDMuMTk3LDQ1LjEyNiwxLjk5NSw0OS4xMDcsMS4xOThMNDkuMTA3LDEuMTk4TDQ5LjEwNywxLjE5OHogTTY0LjEzNSw5LjI2OHYxOC43MjNoMTcuODI2IEM3Ny4yNzUsMjEuODE1LDcxLjM0LDE1LjU3NSw2NC4xMzUsOS4yNjhMNjQuMTM1LDkuMjY4TDY0LjEzNSw5LjI2OHogTTY0LjEzNSw5NC44OTF2MTguOTUyIGM3LjY0NS02LjI4MywxMy45LTEyLjYwMSwxOC43NDYtMTguOTUySDY0LjEzNUw2NC4xMzUsOTQuODkxTDY0LjEzNSw5NC44OTF6IE01OC43NDgsMTEzLjg0NVY5NC44OTFINDAgQzQ0Ljg0MywxMDEuMjQxLDUxLjEwMSwxMDcuNTYyLDU4Ljc0OCwxMTMuODQ1TDU4Ljc0OCwxMTMuODQ1TDU4Ljc0OCwxMTMuODQ1eiBNNTguNzQ4LDI3Ljk5MVY5LjI2NiBjLTcuMjA3LDYuMzA3LTEzLjE0MywxMi41NDktMTcuODI3LDE4LjcyNUg1OC43NDhMNTguNzQ4LDI3Ljk5MUw1OC43NDgsMjcuOTkxeiIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "DNS",
        "camel.apache.org/kamelet.namespace" : "Networking"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "DNS DIG Action",
        "description" : "Query a DNS through Dig\n\nThe Kamelet expects the following headers to be set:\n\n- `domain-name` / `ce-domainname`: as the domain for which we are querying the DNS\n\n- `dns-type` / `ce-dnstype`: as the DNS type\n\nIf the domain-name header won't be set the body will be used as domain name.\n\nIf the dns-type header won't be set, the DNS Type A will be used.",
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:dns", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[domain-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.name",
                    "simple" : "${header[domain-name]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-domainname]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.name",
                    "simple" : "${header[ce-domainname]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.name",
                    "simple" : "${body}"
                  }
                } ]
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[dns-type]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.type",
                    "simple" : "${header[dns-type]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-dnstype]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.type",
                    "simple" : "${header[ce-dnstype]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.type",
                    "constant" : "A"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "dns:dig"
            }
          }, {
            "convertBodyTo" : {
              "type" : "java.lang.String"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "DNS DIG Action",
      "description" : "Query a DNS through Dig\n\nThe Kamelet expects the following headers to be set:\n\n- `domain-name` / `ce-domainname`: as the domain for which we are querying the DNS\n\n- `dns-type` / `ce-dnstype`: as the DNS type\n\nIf the domain-name header won't be set the body will be used as domain name.\n\nIf the dns-type header won't be set, the DNS Type A will be used."
    }
  },
  "dns-ip-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "dns-ip-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTIyLjg3OSAxMjIuODgxIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMjIuODc5IDEyMi44ODEiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGQ9Ik0xMDkuNDY3LDg5LjUwNWMwLjE4MiwwLDAuMzU5LDAuMDE5LDAuNTMxLDAuMDUzYzEuMTQ2LTEuOTk4LDIuMTkxLTQuMDk1LDMuMTM3LTYuMjg3IGMwLjAxOC0wLjA0MywwLjAzNy0wLjA4NSwwLjA1OS0wLjEyN2MxLjQxOC0zLjM0NiwyLjQ4OC02LjgxOSwzLjIwOS0xMC40MmMwLjE5My0wLjk2MSwwLjM1OS0xLjkzMSwwLjUtMi45MDggYzAuNjM5LTMuOTUzLDAuODAzLTcuOTcsMC40ODItMTIuMDUyYy0wLjE2LTIuNTkxLTAuNDg4LTUuMTI2LTAuOTgyLTcuNjA1Yy0wLjczLTMuNjQ2LTEuODE4LTcuMTY1LTMuMjY2LTEwLjU0OWwtMC4wMDIsMC4wMDIgbC0zLjEwNy02LjIzM2wwLDBsLTAuMjgzLTAuMzM2SDEzLjA0N2wtMC4xOTUsMC4zMzZjLTEuMTM2LDEuOTgyLTIuMTcsNC4wNjEtMy4xMDUsNi4yMzRjLTAuMDE5LDAuMDQzLTAuMDM5LDAuMDg2LTAuMDU5LDAuMTI3IGMtMC44NzgsMi4wNzEtMS42MjIsNC4xOS0yLjIzMyw2LjM1OGMtMi41NzIsOC40NDgtMi45NzIsMTYuODk1LTEuMjE3LDI1LjM0MmMwLjA3NiwwLjQzLDAuMTU1LDAuODU4LDAuMjQxLDEuMjg1IGMwLjcyOSwzLjY0NiwxLjgxOCw3LjE2NCwzLjI2NCwxMC41NDlsMC4wMDQtMC4wMDFjMC45MzUsMi4xNzIsMS45NjksNC4yNTEsMy4xMDUsNi4yMzNsMCwwIEM0NS4wODgsODkuNTA1LDc3LjI3Nyw4OS41MDUsMTA5LjQ2Nyw4OS41MDVMMTA5LjQ2Nyw4OS41MDVMMTA5LjQ2Nyw4OS41MDV6IE0zMi4yNjksNDUuODE2YzQuNTQ4LDAsOC4wMzksMS4yMzMsMTAuNDcyLDMuNjk3IGMyLjQzMiwyLjQ2NCwzLjY0OSw2LjAxOSwzLjY0OSwxMC42NjNjMCw1LjUwMi0xLjQxNiw5LjczMi00LjI0NiwxMi42OWMtMi44MzEsMi45NTctNi44ODUsNC40MzctMTIuMTY2LDQuNDM3IGMtMy4zMDgsMC03LjE4OC0wLjE0NC0xMS42NC0wLjQzbDAuNDc3LTkuMDY0bC0wLjQ3Ny0yMS44MDNMMzIuMjY5LDQ1LjgxNkwzMi4yNjksNDUuODE2eiBNMzEuNzkxLDcwLjE5NSBjMS40OTYsMCwyLjYzMy0wLjU5OCwzLjQxMi0xLjc4OWMwLjc3OS0xLjE5MywxLjE2OS0zLjE1NywxLjE2OS01Ljg5M2MwLTIuMzIxLTAuMTYtNC4xNS0wLjQ3Ny01LjQ4NiBjLTAuMzE5LTEuMzM2LTAuODI5LTIuMjk3LTEuNTI3LTIuODg1Yy0wLjctMC41ODktMS42Ny0wLjg4My0yLjkxLTAuODgzYy0xLjIwOSwwLTIuNDAyLDAuMDYzLTMuNTc5LDAuMTlsLTAuMzMzLDEzLjQwNiBsMC4wOTUsMi45NThDMjkuNTQ5LDcwLjA2OCwzMC45MzMsNzAuMTk1LDMxLjc5MSw3MC4xOTVMMzEuNzkxLDcwLjE5NXogTTc2LjgwNyw2Ni44MDhsMC4zODEsMTAuMDY2aC0xMC40bC04LjY4Mi0xNi41MDZoLTAuNTczIGwtMC4wNDcsNS4zNDJsMC4zODIsMTEuMTY0aC04LjY4M2wwLjQ3Ny05LjA2NGwtMC40NzctMjEuODAzaDEwLjRsOC42ODIsMTYuNTA3aDAuNTcybC0wLjI4NS0xNi4xNzJsOC43NzctMC41MjVMNzYuODA3LDY2LjgwOCBMNzYuODA3LDY2LjgwOHogTTk1LDQ1LjQzNWMzLjAyLDAsNi4wMTIsMC41NTYsOC45NjksMS42N2wtMS41MjcsNy43NzZsLTEuMzM2LDAuNTczYy0xLjMzNi0wLjgyOC0yLjY1Ni0xLjQ4LTMuOTU5LTEuOTU3IGMtMS4zMDMtMC40NzYtMi4zNTUtMC43MTYtMy4xNDgtMC43MTZjLTAuNzMyLDAtMS4zMTMsMC4xNDQtMS43NDIsMC40M3MtMC42NDUsMC42NjgtMC42NDUsMS4xNDZjMCwwLjYwNCwwLjMyOCwxLjEyMiwwLjk3OSwxLjU1IGMwLjY1LDAuNDI5LDEuNzM4LDEuMDAzLDMuMjY4LDEuNjkzYzEuNzc3LDAuODAzLDMuMjQ0LDEuNTM1LDQuMzkxLDIuMjE4YzEuMTQzLDAuNjgzLDIuMTQ2LDEuNjI0LDMuMDA0LDIuODE0IGMwLjg1NywxLjE5MiwxLjI4OSwyLjY2NCwxLjI4OSw0LjQxM2MwLDEuOTQtMC41MzMsMy42OTctMS42LDUuMjcyYy0xLjA2NCwxLjU3NC0yLjU4NCwyLjgyNC00LjU1NSwzLjc0NSBzLTQuMjYyLDEuMzgzLTYuODcxLDEuMzgzYy0zLjI0MiwwLTYuNjQ2LTAuNjA0LTEwLjIwOS0xLjgxM2wxLjM4NS04LjMwMmwwLjk1My0wLjU3MmMxLjQ2MywxLjExMywzLjAyOSwxLjk5Niw0LjY5OSwyLjY0NyBjMS42NywwLjY1MiwzLjA2MSwwLjk3OSw0LjE3NCwwLjk3OWMwLjg5MSwwLDEuNTM3LTAuMTUyLDEuOTM0LTAuNDUzYzAuMzk1LTAuMzAyLDAuNTk2LTAuNjc2LDAuNTk2LTEuMTIgYzAtMC42NjktMC4zNDItMS4yMzUtMS4wMjUtMS42OTRjLTAuNjg0LTAuNDYxLTEuNzkxLTEuMDI3LTMuMzE2LTEuNjkzYy0xLjc0OC0wLjc2NC0zLjE4OC0xLjQ4OC00LjMxNi0yLjE3MiBjLTEuMTMxLTAuNjgzLTIuMTA5LTEuNjIzLTIuOTM0LTIuODE0Yy0wLjgyNi0xLjE5Mi0xLjI0Mi0yLjY2NC0xLjI0Mi00LjQxM2MwLTIuMDA0LDAuNTQzLTMuODEsMS42MjMtNS40MTUgYzEuMDgtMS42MDUsMi41OTItMi44NzIsNC41MzEtMy43OTJDOTAuMzA3LDQ1Ljg5Nyw5Mi41MTgsNDUuNDM1LDk1LDQ1LjQzNUw5NSw0NS40MzV6IE0xMDYuNTIxLDk0Ljg5MUg4OS41MDggYy01LjE2Niw3LjQ4MS0xMi4xMjMsMTQuODctMjAuODQsMjIuMTY3YzEuMzY3LTAuMTY5LDIuNzE5LTAuMzg4LDQuMDU3LTAuNjU0YzMuNjQ2LTAuNzI5LDcuMTY0LTEuODE3LDEwLjU0OS0zLjI2NWwtMC4wMDItMC4wMDQgYzMuNDQxLTEuNDgsNi42NDYtMy4yMTIsOS42MDktNS4xOTljMi45NjktMS45OTIsNS43MjEtNC4yNTUsOC4yNS02Ljc5NWwwLjAxLTAuMDFsMCwwIEMxMDMuMDk4LDk5LjE4MiwxMDQuODkxLDk3LjEwMSwxMDYuNTIxLDk0Ljg5MUwxMDYuNTIxLDk0Ljg5MUwxMDYuNTIxLDk0Ljg5MXogTTU0LjIxLDExNy4wNTggYy04LjcxNi03LjI5Ny0xNS42NzMtMTQuNjg2LTIwLjgzOC0yMi4xNjdIMTYuMzYxYzEuNjMxLDIuMjEsMy40MjMsNC4yOTEsNS4zNzksNi4yNGwwLjAxLDAuMDExdi0wLjAwMSBjMi41MywyLjU0LDUuMjgyLDQuODA0LDguMjUsNi43OTVjMi45NjIsMS45ODcsNi4xNjcsMy43MTksOS42MSw1LjE5OWMwLjA0MiwwLjAxOSwwLjA4NSwwLjAzOSwwLjEyNywwLjA1OSBjMy4zNDUsMS40Miw2LjgxOSwyLjQ4OCwxMC40MiwzLjIwOUM1MS40OTMsMTE2LjY3LDUyLjg0MywxMTYuODg5LDU0LjIxLDExNy4wNThMNTQuMjEsMTE3LjA1OEw1NC4yMSwxMTcuMDU4eiBNMTYuMzYxLDI3Ljk5MSBoMTcuOTM4YzUuMTA4LTcuMzYxLDExLjg2Mi0xNC43NjUsMjAuMjktMjIuMjEyYy0xLjQ5NSwwLjE3NS0yLjk3MywwLjQwOS00LjQzMSwwLjdjLTMuNjQ3LDAuNzI5LTcuMTY0LDEuODE4LTEwLjU0OSwzLjI2NSBsMCwwLjAwM2MtMy40NDIsMS40ODEtNi42NDcsMy4yMTEtOS42MDksNS4yYy0yLjk2OSwxLjk5Mi01LjcyLDQuMjU1LTguMjUsNi43OTRMMjEuNzQsMjEuNzVsMCwwIEMxOS43ODQsMjMuNzAxLDE3Ljk5MiwyNS43OCwxNi4zNjEsMjcuOTkxTDE2LjM2MSwyNy45OTFMMTYuMzYxLDI3Ljk5MXogTTY4LjI5MSw1Ljc3OGM4LjQyOCw3LjQ0NywxNS4xODIsMTQuODUxLDIwLjI5MSwyMi4yMTIgaDE3LjkzOWMtMS42MzMtMi4yMS0zLjQyNi00LjI5Mi01LjM4My02LjI0MWwtMC4wMS0wLjAwOWwwLDBjLTIuNTI3LTIuNTQtNS4yNzktNC44MDItOC4yNS02Ljc5NCBjLTIuOTYzLTEuOTg4LTYuMTY4LTMuNzE5LTkuNjA5LTUuMmMtMC4wNDMtMC4wMTktMC4wODYtMC4wMzktMC4xMjctMC4wNTljLTMuMzQ2LTEuNDE4LTYuODItMi40ODgtMTAuNDItMy4yMDggQzcxLjI2Niw2LjE4Nyw2OS43ODUsNS45NTQsNjguMjkxLDUuNzc4TDY4LjI5MSw1Ljc3OEw2OC4yOTEsNS43Nzh6IE00OS4xMDcsMS4xOThDNTMuMDk5LDAuMzk5LDU3LjIxMSwwLDYxLjQ0LDAgczguMzQxLDAuMzk5LDEyLjMzMywxLjE5OGMzLjkzNiwwLjc4OCw3Ljc1OCwxLjk2OSwxMS40NzUsMy41NDdjMC4wNDksMC4wMTgsMC4xLDAuMDM4LDAuMTQ2LDAuMDU4IGMzLjcwMywxLjU5NCw3LjE5NywzLjQ4NSwxMC40NzMsNS42ODVjMy4yNjgsMi4xOTIsNi4yOTEsNC42NzcsOS4wNjQsNy40NjFjMi43ODUsMi43NzUsNS4yNzEsNS43OTksNy40NjMsOS4wNjUgYzIuMTk3LDMuMjc1LDQuMDksNi43NjksNS42ODQsMTAuNDc0bC0wLjAwNCwwLjAwMWwwLjAwNCwwLjAwOWMxLjYwNywzLjc1OCwyLjgwOSw3LjYyNywzLjYwNSwxMS42MDkgYzAuNzk5LDMuOTkyLDEuMTk1LDguMTA0LDEuMTk1LDEyLjMzNGMwLDQuMjI5LTAuMzk2LDguMzQzLTEuMTk1LDEyLjMzNWMtMC43ODcsMy45MzItMS45NzMsNy43NTgtMy41NDcsMTEuNDcyIGMtMC4wMiwwLjA1LTAuMDM3LDAuMDk5LTAuMDYxLDAuMTQ3Yy0xLjU5NCwzLjcwNS0zLjQ4NCw3LjE5Ni01LjY4NCwxMC40NzJjLTIuMTkxLDMuMjY4LTQuNjc2LDYuMjktNy40NjEsOS4wNjUgYy0yLjc3NSwyLjc4NS01Ljc5OSw1LjI3MS05LjA2Niw3LjQ2MmMtMy4yNzMsMi4xOTgtNi43NjgsNC4wOTEtMTAuNDcxLDUuNjg0bC0wLjAwMi0wLjAwNGwtMC4wMSwwLjAwNCBjLTMuNzU4LDEuNjA2LTcuNjI5LDIuODA5LTExLjYwOSwzLjYwNGMtMy45OTIsMC44LTguMTA1LDEuMTk4LTEyLjMzMywxLjE5OGMtNC4yMjksMC04LjM0My0wLjM5OC0xMi4zMzQtMS4xOTggYy0zLjkzMy0wLjc4Ny03Ljc1OC0xLjk3LTExLjQ3NC0zLjU0NmMtMC4wNDktMC4wMTktMC4wOTgtMC4wMzctMC4xNDctMC4wNmMtMy43MDUtMS41OTMtNy4xOTctMy40ODQtMTAuNDcyLTUuNjg0IGMtMy4yNjYtMi4xOS02LjI5MS00LjY3Ny05LjA2NS03LjQ2MmMtMi43ODUtMi43NzUtNS4yNy01Ljc5OS03LjQ2MS05LjA2NGMtMi4xOTgtMy4yNzQtNC4wOS02Ljc2OC01LjY4NC0xMC40NzNsMC4wMDQtMC4wMDIgbC0wLjAwNC0wLjAwOWMtMS42MDYtMy43NTgtMi44MDgtNy42MjgtMy42MDQtMTEuNjA5QzAuNCw2OS43ODMsMCw2NS42NzEsMCw2MS40NGMwLTQuMjI5LDAuNC04LjM0MiwxLjE5OC0xMi4zMzQgYzAuNzg3LTMuOTMzLDEuOTctNy43NTcsMy41NDYtMTEuNDczYzAuMDE5LTAuMDQ5LDAuMDM4LTAuMSwwLjA1OC0wLjE0N2MxLjU5NC0zLjcwNSwzLjQ4NS03LjE5OCw1LjY4NC0xMC40NzQgYzIuMTkyLTMuMjY2LDQuNjc3LTYuMjksNy40NjEtOS4wNjVjMi43NzQtMi43ODUsNS43OTktNS4yNyw5LjA2NS03LjQ2MWMzLjI3NS0yLjE5OSw2Ljc2OS00LjA5LDEwLjQ3Mi01LjY4NWwwLjAwMSwwLjAwNCBsMC4wMDktMC4wMDRDNDEuMjU1LDMuMTk3LDQ1LjEyNiwxLjk5NSw0OS4xMDcsMS4xOThMNDkuMTA3LDEuMTk4TDQ5LjEwNywxLjE5OHogTTY0LjEzNSw5LjI2OHYxOC43MjNoMTcuODI2IEM3Ny4yNzUsMjEuODE1LDcxLjM0LDE1LjU3NSw2NC4xMzUsOS4yNjhMNjQuMTM1LDkuMjY4TDY0LjEzNSw5LjI2OHogTTY0LjEzNSw5NC44OTF2MTguOTUyIGM3LjY0NS02LjI4MywxMy45LTEyLjYwMSwxOC43NDYtMTguOTUySDY0LjEzNUw2NC4xMzUsOTQuODkxTDY0LjEzNSw5NC44OTF6IE01OC43NDgsMTEzLjg0NVY5NC44OTFINDAgQzQ0Ljg0MywxMDEuMjQxLDUxLjEwMSwxMDcuNTYyLDU4Ljc0OCwxMTMuODQ1TDU4Ljc0OCwxMTMuODQ1TDU4Ljc0OCwxMTMuODQ1eiBNNTguNzQ4LDI3Ljk5MVY5LjI2NiBjLTcuMjA3LDYuMzA3LTEzLjE0MywxMi41NDktMTcuODI3LDE4LjcyNUg1OC43NDhMNTguNzQ4LDI3Ljk5MUw1OC43NDgsMjcuOTkxeiIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "DNS",
        "camel.apache.org/kamelet.namespace" : "Networking"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "DNS IP Action",
        "description" : "Get an IP from a DNS\n\nThe Kamelet expects the following headers to be set:\n\n- `domain` / `ce-domain`: as the domain for which we are looking for the IP\n\nIf the header won't be set the body will be used as domain to look for.",
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:dns", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[domain]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.domain",
                    "simple" : "${header[domain]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-domain]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.domain",
                    "simple" : "${header[ce-domain]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.domain",
                    "simple" : "${body}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "dns:ip"
            }
          }, {
            "convertBodyTo" : {
              "type" : "java.lang.String"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "DNS IP Action",
      "description" : "Get an IP from a DNS\n\nThe Kamelet expects the following headers to be set:\n\n- `domain` / `ce-domain`: as the domain for which we are looking for the IP\n\nIf the header won't be set the body will be used as domain to look for."
    }
  },
  "dns-lookup-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "dns-lookup-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTIyLjg3OSAxMjIuODgxIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMjIuODc5IDEyMi44ODEiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGQ9Ik0xMDkuNDY3LDg5LjUwNWMwLjE4MiwwLDAuMzU5LDAuMDE5LDAuNTMxLDAuMDUzYzEuMTQ2LTEuOTk4LDIuMTkxLTQuMDk1LDMuMTM3LTYuMjg3IGMwLjAxOC0wLjA0MywwLjAzNy0wLjA4NSwwLjA1OS0wLjEyN2MxLjQxOC0zLjM0NiwyLjQ4OC02LjgxOSwzLjIwOS0xMC40MmMwLjE5My0wLjk2MSwwLjM1OS0xLjkzMSwwLjUtMi45MDggYzAuNjM5LTMuOTUzLDAuODAzLTcuOTcsMC40ODItMTIuMDUyYy0wLjE2LTIuNTkxLTAuNDg4LTUuMTI2LTAuOTgyLTcuNjA1Yy0wLjczLTMuNjQ2LTEuODE4LTcuMTY1LTMuMjY2LTEwLjU0OWwtMC4wMDIsMC4wMDIgbC0zLjEwNy02LjIzM2wwLDBsLTAuMjgzLTAuMzM2SDEzLjA0N2wtMC4xOTUsMC4zMzZjLTEuMTM2LDEuOTgyLTIuMTcsNC4wNjEtMy4xMDUsNi4yMzRjLTAuMDE5LDAuMDQzLTAuMDM5LDAuMDg2LTAuMDU5LDAuMTI3IGMtMC44NzgsMi4wNzEtMS42MjIsNC4xOS0yLjIzMyw2LjM1OGMtMi41NzIsOC40NDgtMi45NzIsMTYuODk1LTEuMjE3LDI1LjM0MmMwLjA3NiwwLjQzLDAuMTU1LDAuODU4LDAuMjQxLDEuMjg1IGMwLjcyOSwzLjY0NiwxLjgxOCw3LjE2NCwzLjI2NCwxMC41NDlsMC4wMDQtMC4wMDFjMC45MzUsMi4xNzIsMS45NjksNC4yNTEsMy4xMDUsNi4yMzNsMCwwIEM0NS4wODgsODkuNTA1LDc3LjI3Nyw4OS41MDUsMTA5LjQ2Nyw4OS41MDVMMTA5LjQ2Nyw4OS41MDVMMTA5LjQ2Nyw4OS41MDV6IE0zMi4yNjksNDUuODE2YzQuNTQ4LDAsOC4wMzksMS4yMzMsMTAuNDcyLDMuNjk3IGMyLjQzMiwyLjQ2NCwzLjY0OSw2LjAxOSwzLjY0OSwxMC42NjNjMCw1LjUwMi0xLjQxNiw5LjczMi00LjI0NiwxMi42OWMtMi44MzEsMi45NTctNi44ODUsNC40MzctMTIuMTY2LDQuNDM3IGMtMy4zMDgsMC03LjE4OC0wLjE0NC0xMS42NC0wLjQzbDAuNDc3LTkuMDY0bC0wLjQ3Ny0yMS44MDNMMzIuMjY5LDQ1LjgxNkwzMi4yNjksNDUuODE2eiBNMzEuNzkxLDcwLjE5NSBjMS40OTYsMCwyLjYzMy0wLjU5OCwzLjQxMi0xLjc4OWMwLjc3OS0xLjE5MywxLjE2OS0zLjE1NywxLjE2OS01Ljg5M2MwLTIuMzIxLTAuMTYtNC4xNS0wLjQ3Ny01LjQ4NiBjLTAuMzE5LTEuMzM2LTAuODI5LTIuMjk3LTEuNTI3LTIuODg1Yy0wLjctMC41ODktMS42Ny0wLjg4My0yLjkxLTAuODgzYy0xLjIwOSwwLTIuNDAyLDAuMDYzLTMuNTc5LDAuMTlsLTAuMzMzLDEzLjQwNiBsMC4wOTUsMi45NThDMjkuNTQ5LDcwLjA2OCwzMC45MzMsNzAuMTk1LDMxLjc5MSw3MC4xOTVMMzEuNzkxLDcwLjE5NXogTTc2LjgwNyw2Ni44MDhsMC4zODEsMTAuMDY2aC0xMC40bC04LjY4Mi0xNi41MDZoLTAuNTczIGwtMC4wNDcsNS4zNDJsMC4zODIsMTEuMTY0aC04LjY4M2wwLjQ3Ny05LjA2NGwtMC40NzctMjEuODAzaDEwLjRsOC42ODIsMTYuNTA3aDAuNTcybC0wLjI4NS0xNi4xNzJsOC43NzctMC41MjVMNzYuODA3LDY2LjgwOCBMNzYuODA3LDY2LjgwOHogTTk1LDQ1LjQzNWMzLjAyLDAsNi4wMTIsMC41NTYsOC45NjksMS42N2wtMS41MjcsNy43NzZsLTEuMzM2LDAuNTczYy0xLjMzNi0wLjgyOC0yLjY1Ni0xLjQ4LTMuOTU5LTEuOTU3IGMtMS4zMDMtMC40NzYtMi4zNTUtMC43MTYtMy4xNDgtMC43MTZjLTAuNzMyLDAtMS4zMTMsMC4xNDQtMS43NDIsMC40M3MtMC42NDUsMC42NjgtMC42NDUsMS4xNDZjMCwwLjYwNCwwLjMyOCwxLjEyMiwwLjk3OSwxLjU1IGMwLjY1LDAuNDI5LDEuNzM4LDEuMDAzLDMuMjY4LDEuNjkzYzEuNzc3LDAuODAzLDMuMjQ0LDEuNTM1LDQuMzkxLDIuMjE4YzEuMTQzLDAuNjgzLDIuMTQ2LDEuNjI0LDMuMDA0LDIuODE0IGMwLjg1NywxLjE5MiwxLjI4OSwyLjY2NCwxLjI4OSw0LjQxM2MwLDEuOTQtMC41MzMsMy42OTctMS42LDUuMjcyYy0xLjA2NCwxLjU3NC0yLjU4NCwyLjgyNC00LjU1NSwzLjc0NSBzLTQuMjYyLDEuMzgzLTYuODcxLDEuMzgzYy0zLjI0MiwwLTYuNjQ2LTAuNjA0LTEwLjIwOS0xLjgxM2wxLjM4NS04LjMwMmwwLjk1My0wLjU3MmMxLjQ2MywxLjExMywzLjAyOSwxLjk5Niw0LjY5OSwyLjY0NyBjMS42NywwLjY1MiwzLjA2MSwwLjk3OSw0LjE3NCwwLjk3OWMwLjg5MSwwLDEuNTM3LTAuMTUyLDEuOTM0LTAuNDUzYzAuMzk1LTAuMzAyLDAuNTk2LTAuNjc2LDAuNTk2LTEuMTIgYzAtMC42NjktMC4zNDItMS4yMzUtMS4wMjUtMS42OTRjLTAuNjg0LTAuNDYxLTEuNzkxLTEuMDI3LTMuMzE2LTEuNjkzYy0xLjc0OC0wLjc2NC0zLjE4OC0xLjQ4OC00LjMxNi0yLjE3MiBjLTEuMTMxLTAuNjgzLTIuMTA5LTEuNjIzLTIuOTM0LTIuODE0Yy0wLjgyNi0xLjE5Mi0xLjI0Mi0yLjY2NC0xLjI0Mi00LjQxM2MwLTIuMDA0LDAuNTQzLTMuODEsMS42MjMtNS40MTUgYzEuMDgtMS42MDUsMi41OTItMi44NzIsNC41MzEtMy43OTJDOTAuMzA3LDQ1Ljg5Nyw5Mi41MTgsNDUuNDM1LDk1LDQ1LjQzNUw5NSw0NS40MzV6IE0xMDYuNTIxLDk0Ljg5MUg4OS41MDggYy01LjE2Niw3LjQ4MS0xMi4xMjMsMTQuODctMjAuODQsMjIuMTY3YzEuMzY3LTAuMTY5LDIuNzE5LTAuMzg4LDQuMDU3LTAuNjU0YzMuNjQ2LTAuNzI5LDcuMTY0LTEuODE3LDEwLjU0OS0zLjI2NWwtMC4wMDItMC4wMDQgYzMuNDQxLTEuNDgsNi42NDYtMy4yMTIsOS42MDktNS4xOTljMi45NjktMS45OTIsNS43MjEtNC4yNTUsOC4yNS02Ljc5NWwwLjAxLTAuMDFsMCwwIEMxMDMuMDk4LDk5LjE4MiwxMDQuODkxLDk3LjEwMSwxMDYuNTIxLDk0Ljg5MUwxMDYuNTIxLDk0Ljg5MUwxMDYuNTIxLDk0Ljg5MXogTTU0LjIxLDExNy4wNTggYy04LjcxNi03LjI5Ny0xNS42NzMtMTQuNjg2LTIwLjgzOC0yMi4xNjdIMTYuMzYxYzEuNjMxLDIuMjEsMy40MjMsNC4yOTEsNS4zNzksNi4yNGwwLjAxLDAuMDExdi0wLjAwMSBjMi41MywyLjU0LDUuMjgyLDQuODA0LDguMjUsNi43OTVjMi45NjIsMS45ODcsNi4xNjcsMy43MTksOS42MSw1LjE5OWMwLjA0MiwwLjAxOSwwLjA4NSwwLjAzOSwwLjEyNywwLjA1OSBjMy4zNDUsMS40Miw2LjgxOSwyLjQ4OCwxMC40MiwzLjIwOUM1MS40OTMsMTE2LjY3LDUyLjg0MywxMTYuODg5LDU0LjIxLDExNy4wNThMNTQuMjEsMTE3LjA1OEw1NC4yMSwxMTcuMDU4eiBNMTYuMzYxLDI3Ljk5MSBoMTcuOTM4YzUuMTA4LTcuMzYxLDExLjg2Mi0xNC43NjUsMjAuMjktMjIuMjEyYy0xLjQ5NSwwLjE3NS0yLjk3MywwLjQwOS00LjQzMSwwLjdjLTMuNjQ3LDAuNzI5LTcuMTY0LDEuODE4LTEwLjU0OSwzLjI2NSBsMCwwLjAwM2MtMy40NDIsMS40ODEtNi42NDcsMy4yMTEtOS42MDksNS4yYy0yLjk2OSwxLjk5Mi01LjcyLDQuMjU1LTguMjUsNi43OTRMMjEuNzQsMjEuNzVsMCwwIEMxOS43ODQsMjMuNzAxLDE3Ljk5MiwyNS43OCwxNi4zNjEsMjcuOTkxTDE2LjM2MSwyNy45OTFMMTYuMzYxLDI3Ljk5MXogTTY4LjI5MSw1Ljc3OGM4LjQyOCw3LjQ0NywxNS4xODIsMTQuODUxLDIwLjI5MSwyMi4yMTIgaDE3LjkzOWMtMS42MzMtMi4yMS0zLjQyNi00LjI5Mi01LjM4My02LjI0MWwtMC4wMS0wLjAwOWwwLDBjLTIuNTI3LTIuNTQtNS4yNzktNC44MDItOC4yNS02Ljc5NCBjLTIuOTYzLTEuOTg4LTYuMTY4LTMuNzE5LTkuNjA5LTUuMmMtMC4wNDMtMC4wMTktMC4wODYtMC4wMzktMC4xMjctMC4wNTljLTMuMzQ2LTEuNDE4LTYuODItMi40ODgtMTAuNDItMy4yMDggQzcxLjI2Niw2LjE4Nyw2OS43ODUsNS45NTQsNjguMjkxLDUuNzc4TDY4LjI5MSw1Ljc3OEw2OC4yOTEsNS43Nzh6IE00OS4xMDcsMS4xOThDNTMuMDk5LDAuMzk5LDU3LjIxMSwwLDYxLjQ0LDAgczguMzQxLDAuMzk5LDEyLjMzMywxLjE5OGMzLjkzNiwwLjc4OCw3Ljc1OCwxLjk2OSwxMS40NzUsMy41NDdjMC4wNDksMC4wMTgsMC4xLDAuMDM4LDAuMTQ2LDAuMDU4IGMzLjcwMywxLjU5NCw3LjE5NywzLjQ4NSwxMC40NzMsNS42ODVjMy4yNjgsMi4xOTIsNi4yOTEsNC42NzcsOS4wNjQsNy40NjFjMi43ODUsMi43NzUsNS4yNzEsNS43OTksNy40NjMsOS4wNjUgYzIuMTk3LDMuMjc1LDQuMDksNi43NjksNS42ODQsMTAuNDc0bC0wLjAwNCwwLjAwMWwwLjAwNCwwLjAwOWMxLjYwNywzLjc1OCwyLjgwOSw3LjYyNywzLjYwNSwxMS42MDkgYzAuNzk5LDMuOTkyLDEuMTk1LDguMTA0LDEuMTk1LDEyLjMzNGMwLDQuMjI5LTAuMzk2LDguMzQzLTEuMTk1LDEyLjMzNWMtMC43ODcsMy45MzItMS45NzMsNy43NTgtMy41NDcsMTEuNDcyIGMtMC4wMiwwLjA1LTAuMDM3LDAuMDk5LTAuMDYxLDAuMTQ3Yy0xLjU5NCwzLjcwNS0zLjQ4NCw3LjE5Ni01LjY4NCwxMC40NzJjLTIuMTkxLDMuMjY4LTQuNjc2LDYuMjktNy40NjEsOS4wNjUgYy0yLjc3NSwyLjc4NS01Ljc5OSw1LjI3MS05LjA2Niw3LjQ2MmMtMy4yNzMsMi4xOTgtNi43NjgsNC4wOTEtMTAuNDcxLDUuNjg0bC0wLjAwMi0wLjAwNGwtMC4wMSwwLjAwNCBjLTMuNzU4LDEuNjA2LTcuNjI5LDIuODA5LTExLjYwOSwzLjYwNGMtMy45OTIsMC44LTguMTA1LDEuMTk4LTEyLjMzMywxLjE5OGMtNC4yMjksMC04LjM0My0wLjM5OC0xMi4zMzQtMS4xOTggYy0zLjkzMy0wLjc4Ny03Ljc1OC0xLjk3LTExLjQ3NC0zLjU0NmMtMC4wNDktMC4wMTktMC4wOTgtMC4wMzctMC4xNDctMC4wNmMtMy43MDUtMS41OTMtNy4xOTctMy40ODQtMTAuNDcyLTUuNjg0IGMtMy4yNjYtMi4xOS02LjI5MS00LjY3Ny05LjA2NS03LjQ2MmMtMi43ODUtMi43NzUtNS4yNy01Ljc5OS03LjQ2MS05LjA2NGMtMi4xOTgtMy4yNzQtNC4wOS02Ljc2OC01LjY4NC0xMC40NzNsMC4wMDQtMC4wMDIgbC0wLjAwNC0wLjAwOWMtMS42MDYtMy43NTgtMi44MDgtNy42MjgtMy42MDQtMTEuNjA5QzAuNCw2OS43ODMsMCw2NS42NzEsMCw2MS40NGMwLTQuMjI5LDAuNC04LjM0MiwxLjE5OC0xMi4zMzQgYzAuNzg3LTMuOTMzLDEuOTctNy43NTcsMy41NDYtMTEuNDczYzAuMDE5LTAuMDQ5LDAuMDM4LTAuMSwwLjA1OC0wLjE0N2MxLjU5NC0zLjcwNSwzLjQ4NS03LjE5OCw1LjY4NC0xMC40NzQgYzIuMTkyLTMuMjY2LDQuNjc3LTYuMjksNy40NjEtOS4wNjVjMi43NzQtMi43ODUsNS43OTktNS4yNyw5LjA2NS03LjQ2MWMzLjI3NS0yLjE5OSw2Ljc2OS00LjA5LDEwLjQ3Mi01LjY4NWwwLjAwMSwwLjAwNCBsMC4wMDktMC4wMDRDNDEuMjU1LDMuMTk3LDQ1LjEyNiwxLjk5NSw0OS4xMDcsMS4xOThMNDkuMTA3LDEuMTk4TDQ5LjEwNywxLjE5OHogTTY0LjEzNSw5LjI2OHYxOC43MjNoMTcuODI2IEM3Ny4yNzUsMjEuODE1LDcxLjM0LDE1LjU3NSw2NC4xMzUsOS4yNjhMNjQuMTM1LDkuMjY4TDY0LjEzNSw5LjI2OHogTTY0LjEzNSw5NC44OTF2MTguOTUyIGM3LjY0NS02LjI4MywxMy45LTEyLjYwMSwxOC43NDYtMTguOTUySDY0LjEzNUw2NC4xMzUsOTQuODkxTDY0LjEzNSw5NC44OTF6IE01OC43NDgsMTEzLjg0NVY5NC44OTFINDAgQzQ0Ljg0MywxMDEuMjQxLDUxLjEwMSwxMDcuNTYyLDU4Ljc0OCwxMTMuODQ1TDU4Ljc0OCwxMTMuODQ1TDU4Ljc0OCwxMTMuODQ1eiBNNTguNzQ4LDI3Ljk5MVY5LjI2NiBjLTcuMjA3LDYuMzA3LTEzLjE0MywxMi41NDktMTcuODI3LDE4LjcyNUg1OC43NDhMNTguNzQ4LDI3Ljk5MUw1OC43NDgsMjcuOTkxeiIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "DNS",
        "camel.apache.org/kamelet.namespace" : "Networking"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "DNS Lookup Action",
        "description" : "Lookup for a domain\n\nThe Kamelet expects the following headers to be set:\n\n- `domain-name` / `ce-domainname`: as the domain for which we are looking up\n\nIf the domain-name header won't be set the body will be used as domain name.",
        "type" : "object"
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:dns", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[domain-name]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.domain",
                    "simple" : "${header[domain-name]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-domainname]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.domain",
                    "simple" : "${header[ce-domainname]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "dns.domain",
                    "simple" : "${body}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "dns:lookup"
            }
          }, {
            "marshal" : {
              "json" : { }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "DNS Lookup Action",
      "description" : "Lookup for a domain\n\nThe Kamelet expects the following headers to be set:\n\n- `domain-name` / `ce-domainname`: as the domain for which we are looking up\n\nIf the domain-name header won't be set the body will be used as domain name."
    }
  },
  "drop-field-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "drop-field-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Drop Field Action",
        "description" : "Removes a custom field by given name from the message in transit.\n\nThe drop field action expects an application/json content type.\n\nIf for example you have an object like '{ \"foo\":\"John\", \"bar\":30, \"element\":\"hello\" }' and your action has been configured with field as 'element', you'll get '{ \"foo\":\"John\", \"bar\":30 }' as a result because the field 'element' has been removed.",
        "required" : [ "field" ],
        "properties" : {
          "field" : {
            "title" : "Field",
            "description" : "The name of the field to be removed",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:jackson", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "dropField",
          "type" : "#class:org.apache.camel.kamelets.utils.transform.DropField",
          "properties" : {
            "field" : "{{field}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "deserialized",
                    "constant" : "true"
                  }
                }, {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "process" : {
              "ref" : "{{dropField}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty[deserialized]} == 'true'",
                "steps" : [ {
                  "marshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                }, {
                  "setHeader" : {
                    "name" : "Content-Type",
                    "constant" : "application/json"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Drop Field Action",
      "description" : "Removes a custom field by given name from the message in transit.\n\nThe drop field action expects an application/json content type.\n\nIf for example you have an object like '{ \"foo\":\"John\", \"bar\":30, \"element\":\"hello\" }' and your action has been configured with field as 'element', you'll get '{ \"foo\":\"John\", \"bar\":30 }' as a result because the field 'element' has been removed.",
      "required" : [ "field" ],
      "properties" : {
        "field" : {
          "type" : "string",
          "title" : "Field",
          "description" : "The name of the field to be removed"
        }
      }
    }
  },
  "drop-header-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "drop-header-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "EIP"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Drop Header Action",
        "description" : "Remove an header from the message in transit",
        "required" : [ "name" ],
        "properties" : {
          "name" : {
            "title" : "Name",
            "description" : "The name of the header to be removed",
            "type" : "string",
            "example" : "headername"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "removeHeader" : {
              "name" : "{{name}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Drop Header Action",
      "description" : "Remove an header from the message in transit",
      "required" : [ "name" ],
      "properties" : {
        "name" : {
          "type" : "string",
          "title" : "Name",
          "description" : "The name of the header to be removed"
        }
      }
    }
  },
  "drop-headers-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "drop-headers-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "EIP"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Drop Headers Action",
        "description" : "Remove headers from the message in transit based on a pattern",
        "required" : [ "pattern" ],
        "properties" : {
          "pattern" : {
            "title" : "Pattern",
            "description" : "Name or pattern of headers to remove. The pattern is matched in the following order, 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive).",
            "type" : "string",
            "example" : "Camel*"
          },
          "excludePattern" : {
            "title" : "Exclusion Pattern",
            "description" : "Name or pattern of headers to not remove. The pattern is matched in the following order, 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive).",
            "type" : "string",
            "example" : "Camel*"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "removeHeaders" : {
              "pattern" : "{{pattern}}",
              "excludePattern" : "{{?excludePattern}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Drop Headers Action",
      "description" : "Remove headers from the message in transit based on a pattern",
      "required" : [ "pattern" ],
      "properties" : {
        "pattern" : {
          "type" : "string",
          "title" : "Pattern",
          "description" : "Name or pattern of headers to remove. The pattern is matched in the following order, 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive)."
        },
        "excludePattern" : {
          "type" : "string",
          "title" : "Exclusion Pattern",
          "description" : "Name or pattern of headers to not remove. The pattern is matched in the following order, 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive)."
        }
      }
    }
  },
  "dropbox-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "dropbox-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjQzcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQzIDQwIiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iNDBweCI+CiA8cGF0aCBkPSJtMTIuNSAwbC0xMi41IDguMSA4LjcgNyAxMi41LTcuOC04LjctNy4zem0tMTIuNSAyMS45bDEyLjUgOC4yIDguNy03LjMtMTIuNS03LjctOC43IDYuOHptMjEuMiAwLjlsOC44IDcuMyAxMi40LTguMS04LjYtNi45LTEyLjYgNy43em0yMS4yLTE0LjdsLTEyLjQtOC4xLTguOCA3LjMgMTIuNiA3LjggOC42LTd6bS0yMS4xIDE2LjNsLTguOCA3LjMtMy43LTIuNXYyLjhsMTIuNSA3LjUgMTIuNS03LjV2LTIuOGwtMy44IDIuNS04LjctNy4zeiIgZmlsbD0iIzAwN0VFNSIvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Dropbox",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Dropbox Sink",
        "description" : "Upload Files to Dropbox.\n\nThe Kamelet expects the following headers to be set:\n\n- `file` / `ce-file`: as the file name to upload\n\nIf the header won't be set the exchange ID will be used as file name.",
        "required" : [ "accessToken", "clientIdentifier", "remotePath", "uploadMode" ],
        "type" : "object",
        "properties" : {
          "accessToken" : {
            "title" : "Dropbox Access Token",
            "description" : "The access Token to use to access Dropbox",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientIdentifier" : {
            "title" : "Client Identifier",
            "description" : "Dropbox App client Identifier",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "remotePath" : {
            "title" : "Remote Path",
            "description" : "Original file or folder to work with",
            "type" : "string"
          },
          "uploadMode" : {
            "title" : "Upload Mode",
            "description" : "Which mode to upload. in case of add the new file will be renamed if a file with the same name already exists on dropbox. in case of force if a file with the same name already exists on dropbox, this will be overwritten. The value can be one of add, force.",
            "type" : "string",
            "default" : "add"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:dropbox", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelDropboxPutFileName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelDropboxPutFileName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "dropbox:put",
              "parameters" : {
                "accessToken" : "{{accessToken}}",
                "remotePath" : "{{remotePath}}",
                "clientIdentifier" : "{{clientIdentifier}}",
                "uploadMode" : "{{uploadMode}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Dropbox Sink",
      "description" : "Upload Files to Dropbox.\n\nThe Kamelet expects the following headers to be set:\n\n- `file` / `ce-file`: as the file name to upload\n\nIf the header won't be set the exchange ID will be used as file name.",
      "required" : [ "accessToken", "clientIdentifier", "remotePath", "uploadMode" ],
      "properties" : {
        "accessToken" : {
          "type" : "string",
          "title" : "Dropbox Access Token",
          "description" : "The access Token to use to access Dropbox",
          "format" : "password"
        },
        "clientIdentifier" : {
          "type" : "string",
          "title" : "Client Identifier",
          "description" : "Dropbox App client Identifier"
        },
        "remotePath" : {
          "type" : "string",
          "title" : "Remote Path",
          "description" : "Original file or folder to work with"
        },
        "uploadMode" : {
          "type" : "string",
          "title" : "Upload Mode",
          "description" : "Which mode to upload. in case of add the new file will be renamed if a file with the same name already exists on dropbox. in case of force if a file with the same name already exists on dropbox, this will be overwritten. The value can be one of add, force.",
          "default" : "add"
        }
      }
    }
  },
  "dropbox-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "dropbox-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjQzcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQzIDQwIiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iNDBweCI+CiA8cGF0aCBkPSJtMTIuNSAwbC0xMi41IDguMSA4LjcgNyAxMi41LTcuOC04LjctNy4zem0tMTIuNSAyMS45bDEyLjUgOC4yIDguNy03LjMtMTIuNS03LjctOC43IDYuOHptMjEuMiAwLjlsOC44IDcuMyAxMi40LTguMS04LjYtNi45LTEyLjYgNy43em0yMS4yLTE0LjdsLTEyLjQtOC4xLTguOCA3LjMgMTIuNiA3LjggOC42LTd6bS0yMS4xIDE2LjNsLTguOCA3LjMtMy43LTIuNXYyLjhsMTIuNSA3LjUgMTIuNS03LjV2LTIuOGwtMy44IDIuNS04LjctNy4zeiIgZmlsbD0iIzAwN0VFNSIvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Dropbox",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Dropbox Source",
        "description" : "Consume Files from Dropbox.",
        "required" : [ "period", "accessToken", "clientIdentifier", "remotePath", "query" ],
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period between Polls",
            "description" : "The interval between fetches to the Dropbox remote path in milliseconds",
            "type" : "integer",
            "default" : 10000
          },
          "accessToken" : {
            "title" : "Dropbox Access Token",
            "description" : "The access Token to use to access Dropbox",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientIdentifier" : {
            "title" : "Client Identifier",
            "description" : "Dropbox App client Identifier",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "remotePath" : {
            "title" : "Remote Path",
            "description" : "Original file or folder to work with",
            "type" : "string"
          },
          "query" : {
            "title" : "Queries",
            "description" : "A space-separated list of sub-strings to search for. A file matches only if it contains all the sub-strings. If this option is not set, all files will be matched.",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:dropbox", "camel:kamelet", "camel:core", "camel:jsonpath", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "timer:dropbox-stream",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "to" : {
              "uri" : "dropbox:search",
              "parameters" : {
                "accessToken" : "{{accessToken}}",
                "remotePath" : "{{remotePath}}",
                "clientIdentifier" : "{{clientIdentifier}}",
                "query" : "{{query}}"
              }
            }
          }, {
            "split" : {
              "jsonpath" : "$.*",
              "steps" : [ {
                "setProperty" : {
                  "name" : "dropboxFileName",
                  "simple" : "${body.metadata.pathDisplay}"
                }
              }, {
                "toD" : "dropbox:get?accessToken={{accessToken}}&clientIdentifier={{clientIdentifier}}&remotePath=${exchangeProperty.dropboxFileName}"
              }, {
                "to" : "kamelet:sink"
              }, {
                "toD" : "dropbox:del?accessToken={{accessToken}}&clientIdentifier={{clientIdentifier}}&remotePath=${exchangeProperty.dropboxFileName}"
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Dropbox Source",
      "description" : "Consume Files from Dropbox.",
      "required" : [ "period", "accessToken", "clientIdentifier", "remotePath", "query" ],
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period between Polls",
          "description" : "The interval between fetches to the Dropbox remote path in milliseconds",
          "default" : 10000
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Dropbox Access Token",
          "description" : "The access Token to use to access Dropbox",
          "format" : "password"
        },
        "clientIdentifier" : {
          "type" : "string",
          "title" : "Client Identifier",
          "description" : "Dropbox App client Identifier"
        },
        "remotePath" : {
          "type" : "string",
          "title" : "Remote Path",
          "description" : "Original file or folder to work with"
        },
        "query" : {
          "type" : "string",
          "title" : "Queries",
          "description" : "A space-separated list of sub-strings to search for. A file matches only if it contains all the sub-strings. If this option is not set, all files will be matched."
        }
      }
    }
  },
  "earthquake-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "earthquake-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzEwMHB4JyB3aWR0aD0nMTAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwLjAwMyA3OS45OTciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMC4wMDMgNzkuOTk3IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNODEuNjUzLDQyLjk0Yy0xLjM4NywwLTIuNjY2LDAuNzY3LTMuMzE1LDEuOTkyTDcyLjk0Miw1NS4xbC02LjY0OS0xOS40NzljLTAuNTA4LTEuNDcyLTEuODY1LTIuNDgtMy40MjMtMi41MzQgIGMtMS42MDItMC4wNDYtMi45ODMsMC44NTktMy41ODksMi4yOTJsLTQuNTYxLDEwLjgzNGwtNy4yLTQzLjEyOGMtMC4zMy0xLjgxMi0yLjAyOS0zLjE4OC0zLjc3LTMuMDc5ICBjLTEuODQzLDAuMDQyLTMuMzg0LDEuMjUyLTMuNjM1LDMuMDc5bC02LjM1Nyw1MC4wNTJsLTUuMTU2LTI2Ljg2NGMtMC4zMDMtMS41ODktMS41OTQtMi44MDMtMy4yMDEtMy4wMSAgYy0xLjU3Ny0wLjIxLTMuMTYyLDAuNjM1LTMuODYyLDIuMDk3bC04LjQzNSwxNy41OEgwdjcuNDk3aDE1LjQ2NmMxLjQ0MywwLDIuNzU2LTAuODI1LDMuMzgxLTIuMTI5bDQuNTM2LTkuNDVsNy4zMTIsMzguMDk4ICBjMC4zMzksMS43NzEsMS44ODcsMy4wNDEsMy42ODIsMy4wNDFjMC4wMzIsMCwwLjA2NiwwLDAuMSwwYzEuODM2LTAuMDQ5LDMuMzY3LTEuNDIxLDMuNjE2LTMuMjQxbDYuMjU5LTQ5LjE4Mmw1LjI0NywzMi4zODUgIGMwLjI5NSwxLjYzMSwxLjYzMSwyLjg3NiwzLjI3NiwzLjA1N2MxLjY3LDAuMTYxLDMuMjIzLTAuNzQyLDMuODY3LTIuMjc1bDUuNjM1LTEzLjM3NGw2LjI3LDE4LjM1OSAgYzAuNDgzLDEuNDExLDEuNzYzLDIuNDA3LDMuMjUxLDIuNTI0YzEuNDk0LDAuMDgzLDIuOTEtMC42NTksMy42MTMtMS45ODJsOC4zOTgtMTUuODNoMTYuMDk0VjQyLjk0SDgxLjY1M3oiPjwvcGF0aD48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Earthquake",
        "camel.apache.org/kamelet.namespace" : "Dataset"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source",
        "camel.apache.org/kamelet.verified" : "true"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Earthquake Source",
        "description" : "Get data about current earthquake events happening in the world using the USGS API",
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period between Polls",
            "description" : "The interval between fetches to the earthquake API in milliseconds",
            "type" : "integer",
            "default" : 60000
          },
          "lookAhead" : {
            "title" : "Look-ahead Minutes",
            "description" : "The amount of minutes to look ahead when starting the integration afresh",
            "type" : "integer",
            "default" : 120
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:caffeine", "camel:http", "camel:kamelet", "camel:core", "camel:jackson", "camel:jsonpath", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "timer:earthquake",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "CamelCaffeineAction",
              "constant" : "GET"
            }
          }, {
            "toD" : "caffeine-cache:cache-${routeId}?key=lastUpdate"
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header.CamelCaffeineActionHasResult}",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "lastUpdate",
                    "simple" : "${body}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setProperty" : {
                    "name" : "lastUpdate",
                    "simple" : "${date-with-timezone:now-{{lookAhead}}m:UTC:yyyy-MM-dd'T'HH:mm:ss.SSS}"
                  }
                } ]
              }
            }
          }, {
            "setHeader" : {
              "name" : "CamelHttpMethod",
              "constant" : "GET"
            }
          }, {
            "toD" : "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&updatedafter=${exchangeProperty.lastUpdate}&orderby=time-asc"
          }, {
            "removeHeader" : {
              "name" : "CamelHttpMethod"
            }
          }, {
            "unmarshal" : {
              "json" : { }
            }
          }, {
            "setProperty" : {
              "name" : "generated",
              "simple" : "${body[metadata][generated]}"
            }
          }, {
            "setProperty" : {
              "name" : "lastUpdate",
              "simple" : "${date-with-timezone:exchangeProperty.generated:UTC:yyyy-MM-dd'T'HH:mm:ss.SSS}"
            }
          }, {
            "claimCheck" : {
              "operation" : "Push"
            }
          }, {
            "setBody" : {
              "exchange-property" : "lastUpdate"
            }
          }, {
            "setHeader" : {
              "name" : "CamelCaffeineAction",
              "constant" : "PUT"
            }
          }, {
            "toD" : "caffeine-cache:cache-${routeId}?key=lastUpdate"
          }, {
            "claimCheck" : {
              "operation" : "Pop"
            }
          }, {
            "split" : {
              "jsonpath" : "$.features[*]",
              "steps" : [ {
                "marshal" : {
                  "json" : { }
                }
              }, {
                "to" : "kamelet:sink"
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Earthquake Source",
      "description" : "Get data about current earthquake events happening in the world using the USGS API",
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period between Polls",
          "description" : "The interval between fetches to the earthquake API in milliseconds",
          "default" : 60000
        },
        "lookAhead" : {
          "type" : "integer",
          "title" : "Look-ahead Minutes",
          "description" : "The amount of minutes to look ahead when starting the integration afresh",
          "default" : 120
        }
      }
    }
  },
  "elasticsearch-index-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "elasticsearch-index-sink",
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "ElasticSearch",
        "camel.apache.org/kamelet.namespace" : "Search",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1NTAgMjUwIiB2aWV3Qm94PSI3Nyw4Myw0MTAsOTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8cGF0aCBkPSJtMTc4IDEwMi41aDMxM3Y0MWgtMzEzeiIgZmlsbD0ibm9uZSIvPgogPGcgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyI+CiAgPHBhdGggZD0ibTE5My4zIDEzOS40Yy00IDAtNy4yLTEuMi05LjUtMy41cy0zLjQtNS42LTMuNC05LjdjMC00LjIgMS4xLTcuNiAzLjItMTBzNS0zLjYgOC43LTMuNmMzLjQgMCA2LjEgMSA4LjEgMy4xczMgNC45IDMgOC42djNoLTE3LjNjLjEgMi41LjggNC40IDIgNS44czMuMSAyIDUuNCAyYzEuNSAwIDMtLjEgNC4zLS40czIuNy0uOCA0LjMtMS40djQuNWMtMS4zLjYtMi43IDEuMS00LjEgMS40cy0zIC4yLTQuNy4yem0tMS4xLTIyLjZjLTEuOCAwLTMuMi42LTQuMiAxLjdzLTEuNyAyLjctMS45IDQuOWgxMS44YzAtMi4xLS41LTMuOC0xLjUtNC45cy0yLjQtMS43LTQuMi0xLjd6Ii8+CiAgPHBhdGggZD0ibTIxNS4xIDEzOWgtNS41di0zNi41aDUuNXoiLz4KICA8cGF0aCBkPSJtMjM5LjIgMTM5LTEuMS0zLjZoLS4yYy0xLjIgMS42LTIuNSAyLjctMy44IDMuMnMtMi45LjktNC45LjljLTIuNSAwLTQuNS0uNy02LTIuMXMtMi4xLTMuMy0yLjEtNS44YzAtMi43IDEtNC43IDMtNnM1LTIuMSA5LjEtMi4ybDQuNS0uMXYtMS40YzAtMS43LS40LTIuOS0xLjItMy43cy0yLTEuMi0zLjYtMS4yYy0xLjMgMC0yLjYuMi0zLjguNnMtMi40LjktMy41IDEuNGwtMS44LTMuOWMxLjQtLjcgMi45LTEuMyA0LjYtMS43czMuMi0uNiA0LjctLjZjMy4zIDAgNS44LjcgNy41IDIuMnMyLjUgMy43IDIuNSA2Ljh2MTcuMnptLTguMi0zLjhjMiAwIDMuNi0uNiA0LjgtMS43czEuOC0yLjcgMS44LTQuN3YtMi4ybC0zLjMuMWMtMi42LjEtNC41LjUtNS43IDEuM3MtMS44IDItMS44IDMuNmMwIDEuMi4zIDIuMSAxIDIuN3MxLjguOSAzLjIuOXoiLz4KICA8cGF0aCBkPSJtMjY4LjIgMTMxLjZjMCAyLjUtLjkgNC41LTIuOCA1LjhzLTQuNSAyLTcuOSAyYy0zLjUgMC02LjItLjUtOC4zLTEuNnYtNC44YzMgMS40IDUuOSAyLjEgOC41IDIuMSAzLjQgMCA1LjEtMSA1LjEtMy4xIDAtLjctLjItMS4yLS42LTEuNnMtMS0uOS0xLjktMS40LTIuMS0xLTMuNi0xLjZjLTMtMS4yLTUtMi4zLTYuMS0zLjVzLTEuNi0yLjctMS42LTQuNWMwLTIuMi45LTMuOSAyLjctNS4yczQuMi0xLjggNy4zLTEuOGMzIDAgNS45LjYgOC42IDEuOWwtMS44IDQuMWMtMi44LTEuMi01LjEtMS43LTcuMS0xLjctMi45IDAtNC40LjgtNC40IDIuNSAwIC44LjQgMS41IDEuMSAyLjFzMi40IDEuMyA1IDIuM2MyLjEuOCAzLjcgMS42IDQuNyAyLjNzMS43IDEuNSAyLjIgMi40Yy43IDEgLjkgMiAuOSAzLjN6Ii8+CiAgPHBhdGggZD0ibTI4My44IDEzNWMxLjMgMCAyLjctLjIgNC0uNnY0LjFjLS42LjMtMS40LjUtMi40LjdzLTIgLjMtMyAuM2MtNS4yIDAtNy44LTIuOC03LjgtOC4ydi0xNGgtMy41di0yLjRsMy44LTIgMS45LTUuNWgzLjR2NS44aDcuNHY0LjJoLTcuNHYxMy45YzAgMS4zLjMgMi4zIDEgMi45czEuNi44IDIuNi44eiIvPgogIDxwYXRoIGQ9Im0yOTIuNyAxMDYuMmMwLTEgLjMtMS43LjgtMi4zczEuMy0uOCAyLjMtLjggMS43LjMgMi4zLjguOCAxLjMuOCAyLjNjMCAuOS0uMyAxLjctLjggMi4ycy0xLjMuOC0yLjMuOC0xLjgtLjMtMi4zLS44LS44LTEuMy0uOC0yLjJ6bTUuOSAzMi44aC01LjV2LTI1LjloNS41eiIvPgogIDxwYXRoIGQ9Im0zMTYuOSAxMzkuNGMtMy45IDAtNi45LTEuMS04LjktMy40cy0zLjEtNS42LTMuMS05LjljMC00LjQgMS4xLTcuNyAzLjItMTAuMXM1LjItMy41IDkuMi0zLjVjMi43IDAgNS4yLjUgNy40IDEuNWwtMS43IDQuNGMtMi4zLS45LTQuMi0xLjQtNS44LTEuNC00LjUgMC02LjcgMy02LjcgOC45IDAgMi45LjYgNS4xIDEuNyA2LjZzMi44IDIuMiA0LjkgMi4yYzIuNSAwIDQuOC0uNiA3LTEuOHY0LjhjLTEgLjYtMiAxLTMuMiAxLjJzLTIuNC41LTQgLjV6Ii8+CiAgPHBhdGggZD0ibTM0Ny42IDEzMS42YzAgMi41LS45IDQuNS0yLjggNS44cy00LjUgMi03LjkgMmMtMy41IDAtNi4yLS41LTguMy0xLjZ2LTQuOGMzIDEuNCA1LjkgMi4xIDguNSAyLjEgMy40IDAgNS4xLTEgNS4xLTMuMSAwLS43LS4yLTEuMi0uNi0xLjZzLTEtLjktMS45LTEuNC0yLjEtMS0zLjYtMS42Yy0zLTEuMi01LTIuMy02LjEtMy41cy0xLjYtMi43LTEuNi00LjVjMC0yLjIuOS0zLjkgMi43LTUuMnM0LjItMS44IDcuMy0xLjhjMyAwIDUuOS42IDguNiAxLjlsLTEuOCA0LjFjLTIuOC0xLjItNS4xLTEuNy03LjEtMS43LTIuOSAwLTQuNC44LTQuNCAyLjUgMCAuOC40IDEuNSAxLjEgMi4xczIuNCAxLjMgNSAyLjNjMi4xLjggMy43IDEuNiA0LjcgMi4zczEuNyAxLjUgMi4yIDIuNGMuNyAxIC45IDIgLjkgMy4zeiIvPgogIDxwYXRoIGQ9Im0zNjQuOSAxMzkuNGMtNCAwLTcuMi0xLjItOS41LTMuNXMtMy40LTUuNi0zLjQtOS43YzAtNC4yIDEuMS03LjYgMy4yLTEwczUtMy42IDguNy0zLjZjMy40IDAgNi4xIDEgOC4xIDMuMXMzIDQuOSAzIDguNnYzaC0xNy4zYy4xIDIuNS44IDQuNCAyIDUuOHMzLjEgMiA1LjQgMmMxLjUgMCAzLS4xIDQuMy0uNHMyLjctLjggNC4zLTEuNHY0LjVjLTEuMy42LTIuNyAxLjEtNC4xIDEuNHMtMi45LjItNC43LjJ6bS0xLTIyLjZjLTEuOCAwLTMuMi42LTQuMiAxLjdzLTEuNyAyLjctMS45IDQuOWgxMS44YzAtMi4xLS41LTMuOC0xLjUtNC45cy0yLjUtMS43LTQuMi0xLjd6Ii8+CiAgPHBhdGggZD0ibTM5Ny40IDEzOS0xLjEtMy42aC0uMmMtMS4yIDEuNi0yLjUgMi43LTMuOCAzLjJzLTIuOS45LTQuOS45Yy0yLjUgMC00LjUtLjctNi0yLjFzLTIuMS0zLjMtMi4xLTUuOGMwLTIuNyAxLTQuNyAzLTZzNS0yLjEgOS4xLTIuMmw0LjUtLjF2LTEuNGMwLTEuNy0uNC0yLjktMS4yLTMuN3MtMi0xLjItMy42LTEuMmMtMS4zIDAtMi42LjItMy44LjZzLTIuNC45LTMuNSAxLjRsLTEuOC0zLjljMS40LS43IDIuOS0xLjMgNC42LTEuN3MzLjItLjYgNC43LS42YzMuMyAwIDUuOC43IDcuNSAyLjJzMi41IDMuNyAyLjUgNi44djE3LjJ6bS04LjItMy44YzIgMCAzLjYtLjYgNC44LTEuN3MxLjgtMi43IDEuOC00Ljd2LTIuMmwtMy4zLjFjLTIuNi4xLTQuNS41LTUuNyAxLjNzLTEuOCAyLTEuOCAzLjZjMCAxLjIuMyAyLjEgMSAyLjdzMS45LjkgMy4yLjl6Ii8+CiAgPHBhdGggZD0ibTQyMi4yIDExMi42YzEuMSAwIDIgLjEgMi43LjJsLS41IDUuMWMtLjgtLjItMS42LS4zLTIuNC0uMy0yLjIgMC00IC43LTUuNCAyLjJzLTIuMSAzLjMtMi4xIDUuNnYxMy42aC01LjV2LTI1LjloNC4zbC43IDQuNmguM2MuOS0xLjUgMi0yLjggMy40LTMuN3MyLjktMS40IDQuNS0xLjR6Ii8+CiAgPHBhdGggZD0ibTQ0MC4yIDEzOS40Yy0zLjkgMC02LjktMS4xLTguOS0zLjRzLTMuMS01LjYtMy4xLTkuOWMwLTQuNCAxLjEtNy43IDMuMi0xMC4xczUuMi0zLjUgOS4yLTMuNWMyLjcgMCA1LjIuNSA3LjQgMS41bC0xLjcgNC40Yy0yLjMtLjktNC4yLTEuNC01LjgtMS40LTQuNSAwLTYuNyAzLTYuNyA4LjkgMCAyLjkuNiA1LjEgMS43IDYuNnMyLjggMi4yIDQuOSAyLjJjMi41IDAgNC44LS42IDctMS44djQuOGMtMSAuNi0yIDEtMy4yIDEuMnMtMi40LjUtNCAuNXoiLz4KICA8cGF0aCBkPSJtNDc2LjMgMTM5aC01LjV2LTE2YzAtMi0uNC0zLjUtMS4yLTQuNXMtMi4xLTEuNS0zLjgtMS41Yy0yLjMgMC00IC43LTUuMSAyLjFzLTEuNiAzLjctMS42IDYuOXYxM2gtNS41di0zNi41aDUuNXY5LjNjMCAxLjUtLjEgMy4xLS4zIDQuOGguNGMuOC0xLjIgMS44LTIuMiAzLjEtMi45czIuOS0xIDQuNy0xYzYuMyAwIDkuNCAzLjIgOS40IDkuNXYxNi44eiIvPgogPC9nPgogPHBhdGggZD0ibTE0MS44IDExNS41aC0yMC45Yy4xLjUuMyAxIC40IDEuNC43IDIuNCAxLjEgNC45IDEuMyA3LjUuMSAxIC4xIDIuMS4xIDMuMXMwIDIuMS0uMSAzLjFjLS4yIDIuNi0uNiA1LjEtMS4zIDcuNS0uMS41LS4zIDEtLjQgMS40aDIwLjljNi42IDAgMTEuOS01LjQgMTEuOS0xMnMtNS4zLTEyLTExLjktMTJ6IiBmaWxsPSIjMDBhOWU1Ii8+CiA8cGF0aCBkPSJtMTIyLjYgMTMwLjZjLjEtMSAuMS0yLjEuMS0zLjFzMC0yLjEtLjEtMy4xYy0uMi0yLjYtLjYtNS4xLTEuMy03LjUtLjEtLjUtLjMtMS0uNC0xLjRoLTMyLjNjLTEuMiAzLjgtMS44IDcuOC0xLjggMTJzLjYgOC4yIDEuOCAxMmgzMi4zYy4xLS41LjMtMSAuNC0xLjQuNy0yLjQgMS4xLTQuOSAxLjMtNy41eiIgZmlsbD0iIzM1MzUzNSIvPgogPHBhdGggZD0ibTE0NS40IDE0My41aC0yNmMtLjggMS44LTEuNyAzLjUtMi43IDUuMS0xLjUgMi41LTMuMyA0LjctNS4zIDYuOC0uNy43LTEuNCAxLjMtMi4xIDItMS40IDEuMy0zIDIuNC00LjYgMy41IDYuMyA0LjIgMTMuOSA2LjYgMjIgNi42IDEzLjkgMCAyNi4xLTcuMSAzMy4zLTE3LjgtMy43LTMuOC04LjktNi4yLTE0LjYtNi4yeiIgZmlsbD0iIzAwYmZiMyIvPgogPHBhdGggZD0ibTExNi43IDE0OC42YzEtMS42IDEuOS0zLjMgMi43LTUuMWgtMjkuM2MzLjEgNy4xIDguMiAxMy4yIDE0LjcgMTcuNCAxLjYtMS4xIDMuMS0yLjIgNC42LTMuNS43LS42IDEuNC0xLjMgMi4xLTIgMS45LTIgMy43LTQuMyA1LjItNi44eiIgZmlsbD0iIzAxOWI4ZiIvPgogPHBhdGggZD0ibTExMS40IDk5LjZjLS43LS43LTEuNC0xLjMtMi4xLTItMS40LTEuMy0zLTIuNC00LjYtMy41LTYuNCA0LjItMTEuNSAxMC4zLTE0LjcgMTcuNGgyOS4zYy0uOC0xLjgtMS43LTMuNS0yLjctNS4xLTEuNC0yLjUtMy4yLTQuOC01LjItNi44eiIgZmlsbD0iI2Y5YjExMCIvPgogPHBhdGggZD0ibTEyNi43IDg3LjVjLTguMSAwLTE1LjcgMi40LTIyIDYuNiAxLjYgMS4xIDMuMSAyLjIgNC42IDMuNS43LjYgMS40IDEuMyAyLjEgMiAyIDIuMSAzLjggNC4zIDUuMyA2LjggMSAxLjYgMS45IDMuMyAyLjcgNS4xaDI2YzUuNyAwIDEwLjktMi40IDE0LjYtNi4yLTcuMi0xMC43LTE5LjQtMTcuOC0zMy4zLTE3Ljh6IiBmaWxsPSIjZmVkMTBhIi8+Cjwvc3ZnPg=="
      }
    },
    "spec" : {
      "definition" : {
        "title" : "ElasticSearch Index Sink",
        "description" : "Stores JSON-formatted data into ElasticSearch.\n\nThe input data must be formatted in JSON according to the requirements of the index. \n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.\n\nIn the header, you can set the following properties:\n\n- `indexId` / `ce-indexid`: The index ID for ElasticSearch.\n\n- `indexName` / `ce-indexname`: The index name for ElasticSearch.\n\nIf you do not set a property in the header, the Kamelet uses the exchange ID for the index setting.",
        "required" : [ "clusterName", "hostAddresses" ],
        "type" : "object",
        "properties" : {
          "user" : {
            "title" : "Username",
            "description" : "The username to connect to ElasticSearch.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to connect to ElasticSearch.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "enableSSL" : {
            "title" : "Enable SSL",
            "description" : "Specifies to connect by using SSL.",
            "type" : "boolean",
            "default" : true
          },
          "hostAddresses" : {
            "title" : "Host Addresses",
            "description" : "A comma-separated list of remote transport addresses in `ip:port format`.",
            "type" : "string",
            "example" : "quickstart-es-http:9200"
          },
          "clusterName" : {
            "title" : "ElasticSearch Cluster Name",
            "description" : "The name of the ElasticSearch cluster.",
            "type" : "string",
            "example" : "quickstart"
          },
          "indexName" : {
            "title" : "Index in ElasticSearch",
            "description" : "The name of the ElasticSearch index.",
            "type" : "string",
            "example" : "data"
          },
          "certificate" : {
            "title" : "Certificate",
            "description" : "The Certificate for accessing the Elasticsearch cluster. You must encode this value in base64.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "text/plain"
        },
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:kamelet", "camel:elasticsearch", "camel:gson", "camel:bean" ],
      "template" : {
        "beans" : [ {
          "name" : "local-es",
          "type" : "#class:org.apache.camel.component.es.ElasticsearchComponent",
          "properties" : {
            "user" : "{{?user}}",
            "password" : "{{?password}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[indexId]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexId",
                    "simple" : "${header[indexId]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-indexid]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexId",
                    "simple" : "${header[ce-indexid]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[indexName]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexName",
                    "simple" : "${header[indexName]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-indexname]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexName",
                    "simple" : "${header[ce-indexname]}"
                  }
                } ]
              } ]
            }
          }, {
            "unmarshal" : {
              "json" : { }
            }
          }, {
            "to" : {
              "uri" : "{{local-es}}:{{clusterName}}",
              "parameters" : {
                "operation" : "INDEX",
                "hostAddresses" : "{{hostAddresses}}",
                "enableSSL" : "{{enableSSL}}",
                "indexName" : "{{?indexName}}",
                "certificatePath" : "base64:{{?certificate}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "ElasticSearch Index Sink",
      "description" : "Stores JSON-formatted data into ElasticSearch.\n\nThe input data must be formatted in JSON according to the requirements of the index. \n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.\n\nIn the header, you can set the following properties:\n\n- `indexId` / `ce-indexid`: The index ID for ElasticSearch.\n\n- `indexName` / `ce-indexname`: The index name for ElasticSearch.\n\nIf you do not set a property in the header, the Kamelet uses the exchange ID for the index setting.",
      "required" : [ "clusterName", "hostAddresses" ],
      "properties" : {
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to connect to ElasticSearch."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to connect to ElasticSearch.",
          "format" : "password"
        },
        "enableSSL" : {
          "type" : "boolean",
          "title" : "Enable SSL",
          "description" : "Specifies to connect by using SSL.",
          "default" : true
        },
        "hostAddresses" : {
          "type" : "string",
          "title" : "Host Addresses",
          "description" : "A comma-separated list of remote transport addresses in `ip:port format`."
        },
        "clusterName" : {
          "type" : "string",
          "title" : "ElasticSearch Cluster Name",
          "description" : "The name of the ElasticSearch cluster."
        },
        "indexName" : {
          "type" : "string",
          "title" : "Index in ElasticSearch",
          "description" : "The name of the ElasticSearch index."
        },
        "certificate" : {
          "type" : "string",
          "title" : "Certificate",
          "description" : "The Certificate for accessing the Elasticsearch cluster. You must encode this value in base64."
        }
      }
    }
  },
  "elasticsearch-search-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "elasticsearch-search-source",
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "ElasticSearch",
        "camel.apache.org/kamelet.namespace" : "Search",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1NTAgMjUwIiB2aWV3Qm94PSI3Nyw4Myw0MTAsOTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8cGF0aCBkPSJtMTc4IDEwMi41aDMxM3Y0MWgtMzEzeiIgZmlsbD0ibm9uZSIvPgogPGcgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyI+CiAgPHBhdGggZD0ibTE5My4zIDEzOS40Yy00IDAtNy4yLTEuMi05LjUtMy41cy0zLjQtNS42LTMuNC05LjdjMC00LjIgMS4xLTcuNiAzLjItMTBzNS0zLjYgOC43LTMuNmMzLjQgMCA2LjEgMSA4LjEgMy4xczMgNC45IDMgOC42djNoLTE3LjNjLjEgMi41LjggNC40IDIgNS44czMuMSAyIDUuNCAyYzEuNSAwIDMtLjEgNC4zLS40czIuNy0uOCA0LjMtMS40djQuNWMtMS4zLjYtMi43IDEuMS00LjEgMS40cy0zIC4yLTQuNy4yem0tMS4xLTIyLjZjLTEuOCAwLTMuMi42LTQuMiAxLjdzLTEuNyAyLjctMS45IDQuOWgxMS44YzAtMi4xLS41LTMuOC0xLjUtNC45cy0yLjQtMS43LTQuMi0xLjd6Ii8+CiAgPHBhdGggZD0ibTIxNS4xIDEzOWgtNS41di0zNi41aDUuNXoiLz4KICA8cGF0aCBkPSJtMjM5LjIgMTM5LTEuMS0zLjZoLS4yYy0xLjIgMS42LTIuNSAyLjctMy44IDMuMnMtMi45LjktNC45LjljLTIuNSAwLTQuNS0uNy02LTIuMXMtMi4xLTMuMy0yLjEtNS44YzAtMi43IDEtNC43IDMtNnM1LTIuMSA5LjEtMi4ybDQuNS0uMXYtMS40YzAtMS43LS40LTIuOS0xLjItMy43cy0yLTEuMi0zLjYtMS4yYy0xLjMgMC0yLjYuMi0zLjguNnMtMi40LjktMy41IDEuNGwtMS44LTMuOWMxLjQtLjcgMi45LTEuMyA0LjYtMS43czMuMi0uNiA0LjctLjZjMy4zIDAgNS44LjcgNy41IDIuMnMyLjUgMy43IDIuNSA2Ljh2MTcuMnptLTguMi0zLjhjMiAwIDMuNi0uNiA0LjgtMS43czEuOC0yLjcgMS44LTQuN3YtMi4ybC0zLjMuMWMtMi42LjEtNC41LjUtNS43IDEuM3MtMS44IDItMS44IDMuNmMwIDEuMi4zIDIuMSAxIDIuN3MxLjguOSAzLjIuOXoiLz4KICA8cGF0aCBkPSJtMjY4LjIgMTMxLjZjMCAyLjUtLjkgNC41LTIuOCA1LjhzLTQuNSAyLTcuOSAyYy0zLjUgMC02LjItLjUtOC4zLTEuNnYtNC44YzMgMS40IDUuOSAyLjEgOC41IDIuMSAzLjQgMCA1LjEtMSA1LjEtMy4xIDAtLjctLjItMS4yLS42LTEuNnMtMS0uOS0xLjktMS40LTIuMS0xLTMuNi0xLjZjLTMtMS4yLTUtMi4zLTYuMS0zLjVzLTEuNi0yLjctMS42LTQuNWMwLTIuMi45LTMuOSAyLjctNS4yczQuMi0xLjggNy4zLTEuOGMzIDAgNS45LjYgOC42IDEuOWwtMS44IDQuMWMtMi44LTEuMi01LjEtMS43LTcuMS0xLjctMi45IDAtNC40LjgtNC40IDIuNSAwIC44LjQgMS41IDEuMSAyLjFzMi40IDEuMyA1IDIuM2MyLjEuOCAzLjcgMS42IDQuNyAyLjNzMS43IDEuNSAyLjIgMi40Yy43IDEgLjkgMiAuOSAzLjN6Ii8+CiAgPHBhdGggZD0ibTI4My44IDEzNWMxLjMgMCAyLjctLjIgNC0uNnY0LjFjLS42LjMtMS40LjUtMi40LjdzLTIgLjMtMyAuM2MtNS4yIDAtNy44LTIuOC03LjgtOC4ydi0xNGgtMy41di0yLjRsMy44LTIgMS45LTUuNWgzLjR2NS44aDcuNHY0LjJoLTcuNHYxMy45YzAgMS4zLjMgMi4zIDEgMi45czEuNi44IDIuNi44eiIvPgogIDxwYXRoIGQ9Im0yOTIuNyAxMDYuMmMwLTEgLjMtMS43LjgtMi4zczEuMy0uOCAyLjMtLjggMS43LjMgMi4zLjguOCAxLjMuOCAyLjNjMCAuOS0uMyAxLjctLjggMi4ycy0xLjMuOC0yLjMuOC0xLjgtLjMtMi4zLS44LS44LTEuMy0uOC0yLjJ6bTUuOSAzMi44aC01LjV2LTI1LjloNS41eiIvPgogIDxwYXRoIGQ9Im0zMTYuOSAxMzkuNGMtMy45IDAtNi45LTEuMS04LjktMy40cy0zLjEtNS42LTMuMS05LjljMC00LjQgMS4xLTcuNyAzLjItMTAuMXM1LjItMy41IDkuMi0zLjVjMi43IDAgNS4yLjUgNy40IDEuNWwtMS43IDQuNGMtMi4zLS45LTQuMi0xLjQtNS44LTEuNC00LjUgMC02LjcgMy02LjcgOC45IDAgMi45LjYgNS4xIDEuNyA2LjZzMi44IDIuMiA0LjkgMi4yYzIuNSAwIDQuOC0uNiA3LTEuOHY0LjhjLTEgLjYtMiAxLTMuMiAxLjJzLTIuNC41LTQgLjV6Ii8+CiAgPHBhdGggZD0ibTM0Ny42IDEzMS42YzAgMi41LS45IDQuNS0yLjggNS44cy00LjUgMi03LjkgMmMtMy41IDAtNi4yLS41LTguMy0xLjZ2LTQuOGMzIDEuNCA1LjkgMi4xIDguNSAyLjEgMy40IDAgNS4xLTEgNS4xLTMuMSAwLS43LS4yLTEuMi0uNi0xLjZzLTEtLjktMS45LTEuNC0yLjEtMS0zLjYtMS42Yy0zLTEuMi01LTIuMy02LjEtMy41cy0xLjYtMi43LTEuNi00LjVjMC0yLjIuOS0zLjkgMi43LTUuMnM0LjItMS44IDcuMy0xLjhjMyAwIDUuOS42IDguNiAxLjlsLTEuOCA0LjFjLTIuOC0xLjItNS4xLTEuNy03LjEtMS43LTIuOSAwLTQuNC44LTQuNCAyLjUgMCAuOC40IDEuNSAxLjEgMi4xczIuNCAxLjMgNSAyLjNjMi4xLjggMy43IDEuNiA0LjcgMi4zczEuNyAxLjUgMi4yIDIuNGMuNyAxIC45IDIgLjkgMy4zeiIvPgogIDxwYXRoIGQ9Im0zNjQuOSAxMzkuNGMtNCAwLTcuMi0xLjItOS41LTMuNXMtMy40LTUuNi0zLjQtOS43YzAtNC4yIDEuMS03LjYgMy4yLTEwczUtMy42IDguNy0zLjZjMy40IDAgNi4xIDEgOC4xIDMuMXMzIDQuOSAzIDguNnYzaC0xNy4zYy4xIDIuNS44IDQuNCAyIDUuOHMzLjEgMiA1LjQgMmMxLjUgMCAzLS4xIDQuMy0uNHMyLjctLjggNC4zLTEuNHY0LjVjLTEuMy42LTIuNyAxLjEtNC4xIDEuNHMtMi45LjItNC43LjJ6bS0xLTIyLjZjLTEuOCAwLTMuMi42LTQuMiAxLjdzLTEuNyAyLjctMS45IDQuOWgxMS44YzAtMi4xLS41LTMuOC0xLjUtNC45cy0yLjUtMS43LTQuMi0xLjd6Ii8+CiAgPHBhdGggZD0ibTM5Ny40IDEzOS0xLjEtMy42aC0uMmMtMS4yIDEuNi0yLjUgMi43LTMuOCAzLjJzLTIuOS45LTQuOS45Yy0yLjUgMC00LjUtLjctNi0yLjFzLTIuMS0zLjMtMi4xLTUuOGMwLTIuNyAxLTQuNyAzLTZzNS0yLjEgOS4xLTIuMmw0LjUtLjF2LTEuNGMwLTEuNy0uNC0yLjktMS4yLTMuN3MtMi0xLjItMy42LTEuMmMtMS4zIDAtMi42LjItMy44LjZzLTIuNC45LTMuNSAxLjRsLTEuOC0zLjljMS40LS43IDIuOS0xLjMgNC42LTEuN3MzLjItLjYgNC43LS42YzMuMyAwIDUuOC43IDcuNSAyLjJzMi41IDMuNyAyLjUgNi44djE3LjJ6bS04LjItMy44YzIgMCAzLjYtLjYgNC44LTEuN3MxLjgtMi43IDEuOC00Ljd2LTIuMmwtMy4zLjFjLTIuNi4xLTQuNS41LTUuNyAxLjNzLTEuOCAyLTEuOCAzLjZjMCAxLjIuMyAyLjEgMSAyLjdzMS45LjkgMy4yLjl6Ii8+CiAgPHBhdGggZD0ibTQyMi4yIDExMi42YzEuMSAwIDIgLjEgMi43LjJsLS41IDUuMWMtLjgtLjItMS42LS4zLTIuNC0uMy0yLjIgMC00IC43LTUuNCAyLjJzLTIuMSAzLjMtMi4xIDUuNnYxMy42aC01LjV2LTI1LjloNC4zbC43IDQuNmguM2MuOS0xLjUgMi0yLjggMy40LTMuN3MyLjktMS40IDQuNS0xLjR6Ii8+CiAgPHBhdGggZD0ibTQ0MC4yIDEzOS40Yy0zLjkgMC02LjktMS4xLTguOS0zLjRzLTMuMS01LjYtMy4xLTkuOWMwLTQuNCAxLjEtNy43IDMuMi0xMC4xczUuMi0zLjUgOS4yLTMuNWMyLjcgMCA1LjIuNSA3LjQgMS41bC0xLjcgNC40Yy0yLjMtLjktNC4yLTEuNC01LjgtMS40LTQuNSAwLTYuNyAzLTYuNyA4LjkgMCAyLjkuNiA1LjEgMS43IDYuNnMyLjggMi4yIDQuOSAyLjJjMi41IDAgNC44LS42IDctMS44djQuOGMtMSAuNi0yIDEtMy4yIDEuMnMtMi40LjUtNCAuNXoiLz4KICA8cGF0aCBkPSJtNDc2LjMgMTM5aC01LjV2LTE2YzAtMi0uNC0zLjUtMS4yLTQuNXMtMi4xLTEuNS0zLjgtMS41Yy0yLjMgMC00IC43LTUuMSAyLjFzLTEuNiAzLjctMS42IDYuOXYxM2gtNS41di0zNi41aDUuNXY5LjNjMCAxLjUtLjEgMy4xLS4zIDQuOGguNGMuOC0xLjIgMS44LTIuMiAzLjEtMi45czIuOS0xIDQuNy0xYzYuMyAwIDkuNCAzLjIgOS40IDkuNXYxNi44eiIvPgogPC9nPgogPHBhdGggZD0ibTE0MS44IDExNS41aC0yMC45Yy4xLjUuMyAxIC40IDEuNC43IDIuNCAxLjEgNC45IDEuMyA3LjUuMSAxIC4xIDIuMS4xIDMuMXMwIDIuMS0uMSAzLjFjLS4yIDIuNi0uNiA1LjEtMS4zIDcuNS0uMS41LS4zIDEtLjQgMS40aDIwLjljNi42IDAgMTEuOS01LjQgMTEuOS0xMnMtNS4zLTEyLTExLjktMTJ6IiBmaWxsPSIjMDBhOWU1Ii8+CiA8cGF0aCBkPSJtMTIyLjYgMTMwLjZjLjEtMSAuMS0yLjEuMS0zLjFzMC0yLjEtLjEtMy4xYy0uMi0yLjYtLjYtNS4xLTEuMy03LjUtLjEtLjUtLjMtMS0uNC0xLjRoLTMyLjNjLTEuMiAzLjgtMS44IDcuOC0xLjggMTJzLjYgOC4yIDEuOCAxMmgzMi4zYy4xLS41LjMtMSAuNC0xLjQuNy0yLjQgMS4xLTQuOSAxLjMtNy41eiIgZmlsbD0iIzM1MzUzNSIvPgogPHBhdGggZD0ibTE0NS40IDE0My41aC0yNmMtLjggMS44LTEuNyAzLjUtMi43IDUuMS0xLjUgMi41LTMuMyA0LjctNS4zIDYuOC0uNy43LTEuNCAxLjMtMi4xIDItMS40IDEuMy0zIDIuNC00LjYgMy41IDYuMyA0LjIgMTMuOSA2LjYgMjIgNi42IDEzLjkgMCAyNi4xLTcuMSAzMy4zLTE3LjgtMy43LTMuOC04LjktNi4yLTE0LjYtNi4yeiIgZmlsbD0iIzAwYmZiMyIvPgogPHBhdGggZD0ibTExNi43IDE0OC42YzEtMS42IDEuOS0zLjMgMi43LTUuMWgtMjkuM2MzLjEgNy4xIDguMiAxMy4yIDE0LjcgMTcuNCAxLjYtMS4xIDMuMS0yLjIgNC42LTMuNS43LS42IDEuNC0xLjMgMi4xLTIgMS45LTIgMy43LTQuMyA1LjItNi44eiIgZmlsbD0iIzAxOWI4ZiIvPgogPHBhdGggZD0ibTExMS40IDk5LjZjLS43LS43LTEuNC0xLjMtMi4xLTItMS40LTEuMy0zLTIuNC00LjYtMy41LTYuNCA0LjItMTEuNSAxMC4zLTE0LjcgMTcuNGgyOS4zYy0uOC0xLjgtMS43LTMuNS0yLjctNS4xLTEuNC0yLjUtMy4yLTQuOC01LjItNi44eiIgZmlsbD0iI2Y5YjExMCIvPgogPHBhdGggZD0ibTEyNi43IDg3LjVjLTguMSAwLTE1LjcgMi40LTIyIDYuNiAxLjYgMS4xIDMuMSAyLjIgNC42IDMuNS43LjYgMS40IDEuMyAyLjEgMiAyIDIuMSAzLjggNC4zIDUuMyA2LjggMSAxLjYgMS45IDMuMyAyLjcgNS4xaDI2YzUuNyAwIDEwLjktMi40IDE0LjYtNi4yLTcuMi0xMC43LTE5LjQtMTcuOC0zMy4zLTE3Ljh6IiBmaWxsPSIjZmVkMTBhIi8+Cjwvc3ZnPg=="
      }
    },
    "spec" : {
      "definition" : {
        "title" : "ElasticSearch Search Source",
        "description" : "Search data on ElasticSearch\n\nThe `query` parameter must be formatted in JSON.\n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.",
        "required" : [ "query", "clusterName", "indexName", "hostAddresses" ],
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period",
            "description" : "The time interval between two searches",
            "type" : "integer",
            "default" : 1000
          },
          "query" : {
            "title" : "Query",
            "description" : "The query we want to use to search on ElasticSearch.",
            "type" : "string"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to connect to ElasticSearch.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to connect to ElasticSearch.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "enableSSL" : {
            "title" : "Enable SSL",
            "description" : "Do we want to connect using SSL?",
            "type" : "boolean",
            "default" : true
          },
          "hostAddresses" : {
            "title" : "Host Addresses",
            "description" : "Comma separated list with ip:port formatted remote transport addresses to use.",
            "type" : "string"
          },
          "indexName" : {
            "title" : "Index in ElasticSearch",
            "description" : "The name of the index to act against.",
            "type" : "string"
          },
          "clusterName" : {
            "title" : "ElasticSearch Cluster Name",
            "description" : "The name of the cluster.",
            "type" : "string"
          },
          "certificate" : {
            "title" : "Certificate",
            "description" : "The Certificate for accessing the Elasticsearch cluster. You must encode this value in base64.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:timer", "camel:elasticsearch", "camel:gson" ],
      "template" : {
        "beans" : [ {
          "name" : "local-es",
          "type" : "#class:org.apache.camel.component.es.ElasticsearchComponent",
          "properties" : {
            "user" : "{{?user}}",
            "password" : "{{?password}}"
          }
        } ],
        "from" : {
          "uri" : "timer:tick",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "setBody" : {
              "constant" : "{{query?nested=false}}"
            }
          }, {
            "to" : {
              "uri" : "{{local-es}}:{{clusterName}}",
              "parameters" : {
                "operation" : "SEARCH",
                "indexName" : "{{indexName}}",
                "hostAddresses" : "{{hostAddresses}}",
                "enableSSL" : "{{enableSSL}}",
                "certificatePath" : "base64:{{?certificate}}"
              }
            }
          }, {
            "marshal" : {
              "json" : {
                "library" : "Gson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "ElasticSearch Search Source",
      "description" : "Search data on ElasticSearch\n\nThe `query` parameter must be formatted in JSON.\n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.",
      "required" : [ "query", "clusterName", "indexName", "hostAddresses" ],
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period",
          "description" : "The time interval between two searches",
          "default" : 1000
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query we want to use to search on ElasticSearch."
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to connect to ElasticSearch."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to connect to ElasticSearch.",
          "format" : "password"
        },
        "enableSSL" : {
          "type" : "boolean",
          "title" : "Enable SSL",
          "description" : "Do we want to connect using SSL?",
          "default" : true
        },
        "hostAddresses" : {
          "type" : "string",
          "title" : "Host Addresses",
          "description" : "Comma separated list with ip:port formatted remote transport addresses to use."
        },
        "indexName" : {
          "type" : "string",
          "title" : "Index in ElasticSearch",
          "description" : "The name of the index to act against."
        },
        "clusterName" : {
          "type" : "string",
          "title" : "ElasticSearch Cluster Name",
          "description" : "The name of the cluster."
        },
        "certificate" : {
          "type" : "string",
          "title" : "Certificate",
          "description" : "The Certificate for accessing the Elasticsearch cluster. You must encode this value in base64."
        }
      }
    }
  },
  "exec-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "exec-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMTI4MC4wMDAwMDBwdCIgaGVpZ2h0PSIxMDEyLjAwMDAwMHB0IiB2aWV3Qm94PSIwIDAgMTI4MC4wMDAwMDAgMTAxMi4wMDAwMDAiCiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KPG1ldGFkYXRhPgpDcmVhdGVkIGJ5IHBvdHJhY2UgMS4xNSwgd3JpdHRlbiBieSBQZXRlciBTZWxpbmdlciAyMDAxLTIwMTcKPC9tZXRhZGF0YT4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMTAxMi4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCmZpbGw9IiMwMDAwMDAiIHN0cm9rZT0ibm9uZSI+CjxwYXRoIGQ9Ik04NTg1IDEwMTE0IGMtMTYgLTMgLTIyMSAtMzQgLTQ1NSAtNzAgLTg5MCAtMTM2IC0xNDg3IC0yMjcgLTIxMjUKLTMyNCAtMzYzIC01NSAtODk0IC0xMzYgLTExODAgLTE4MCAtMjg2IC00NCAtODE3IC0xMjUgLTExODAgLTE4MCAtMzYzIC01NQotODk2IC0xMzcgLTExODUgLTE4MSAtNTQ4IC04MyAtNjE5IC05NiAtNzExIC0xMzUgLTIwOCAtODYgLTM2NSAtMjM3IC00NjkKLTQ0OSAtOTEgLTE4NyAtMTA3IC0zMjUgLTcxIC02MTYgMTIgLTk2IDU3IC00NzggMTAxIC04NDkgNDQgLTM3MSAxMjMgLTEwMzMKMTc1IC0xNDcwIDUyIC00MzcgMTgwIC0xNTE1IDI4NSAtMjM5NSAxMDQgLTg4MCAxOTQgLTE2MjggMjAwIC0xNjYzIDI4IC0xNjQKMTI5IC0zNTEgMjU2IC00NzMgMzggLTM2IDc4IC03MiA4OSAtODAgMjcgLTE4IDc3IC0xMDQgNjcgLTExNCAtNCAtNSAtMSAtNSA3CjAgOSA1IDEyIDMgOCAtNiAtMiAtOCA5IC0zOSAyNSAtNjkgODAgLTE0NCAyMTEgLTI2NiAzNzEgLTM0NSAxMDYgLTUyIDE3NQotNzEgMzA1IC04NiAxMzMgLTE1IDIyMyAtNiA3NjAgNzYgMTYwIDI1IDQyNiA2NSA1OTAgOTAgMzc4IDU4IDgwNyAxMjQgMTE4MAoxODAgMTYwIDI1IDQyNCA2NSA1ODUgOTAgMTYwIDI0IDQyNiA2NSA1OTAgOTAgMTYzIDI1IDQzMCA2NSA1OTIgOTAgMTYyIDI1CjQyOCA2NSA1OTAgOTAgMTYyIDI1IDQyNyA2NSA1ODggOTAgMTYwIDI0IDQyNyA2NSA1OTIgOTAgMTE0NyAxNzUgMTE1NiAxNzYKMTMyMCAyNTQgMjY0IDEyNSA0NDIgMzY1IDQ4NSA2NDkgNiAzNyA4IDE2NiA2IDI4NyBsLTMgMjIwIC05MSA0MzAgYy04NyA0MTIKLTE5MyA5MTkgLTM0MiAxNjMwIC0zOCAxODIgLTE0MSA2NzQgLTIyOSAxMDk1IC04OCA0MjEgLTI2NCAxMjYyIC0zOTEgMTg2OQotMTI3IDYwNyAtMjU1IDEyMjIgLTI4NSAxMzY1IC0zMSAxNDQgLTY3IDMwMSAtODEgMzUwIC04OSAzMTAgLTMzMCA1NDYgLTY0Mgo2MjcgLTc2IDIwIC0yNjQgMzMgLTMyNyAyM3ogbTIzODIgLTc3MTYgYy0zIC03IC01IC0yIC01IDEyIDAgMTQgMiAxOSA1IDEzIDIKLTcgMiAtMTkgMCAtMjV6IG0tODU0MiAtMTQ5OCBjMTAgLTExIDE2IC0yMCAxMyAtMjAgLTMgMCAtMTMgOSAtMjMgMjAgLTEwIDExCi0xNiAyMCAtMTMgMjAgMyAwIDEzIC05IDIzIC0yMHoiLz4KPC9nPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Exec",
        "camel.apache.org/kamelet.namespace" : "System"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Exec Sink",
        "description" : "Execute system commands\n\nThe Kamelet expects the following headers to be set:\n\n- `args` / `ce-args`: as the args to be set on the executable.\n\nIf the header won't be set the executable will be run without arguments.",
        "required" : [ "executable" ],
        "type" : "object",
        "properties" : {
          "executable" : {
            "title" : "Executable Command",
            "description" : "The command to execute",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:exec", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[args]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelExecCommandArgs",
                    "simple" : "${header[args]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-args]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelExecCommandArgs",
                    "simple" : "${header[ce-args]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "exec:{{executable}}"
            }
          }, {
            "setBody" : {
              "simple" : "${body.stdout}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Exec Sink",
      "description" : "Execute system commands\n\nThe Kamelet expects the following headers to be set:\n\n- `args` / `ce-args`: as the args to be set on the executable.\n\nIf the header won't be set the executable will be run without arguments.",
      "required" : [ "executable" ],
      "properties" : {
        "executable" : {
          "type" : "string",
          "title" : "Executable Command",
          "description" : "The command to execute"
        }
      }
    }
  },
  "extract-field-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "extract-field-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Extract Field Action",
        "description" : "Extract a field from the message body.\n\nThe extract field action expects an application/json content type.\n\nThe field parameter allows you to specify which field of the json the user wants to extract. By default the message body will be overriden with the extracted field.\n\nThe optional parameter headerOutput allows the user to specify wheter the extracted field should be stored in a message header named 'CamelKameletsExtractFieldName', leaving the message body untouched.\n\nThe optional parameter headerOutputName allows the user to specify a custom header name instead of the default 'CamelKameletsExtractFieldName'. This parameter must be used in conjunction with headerOutput.\nIf no headerOutputName parameter will be provided, the default 'CamelKameletsExtractFieldName' will be used.\n\nThe optional parameter strictHeaderCheck allows to user to enable a strict header name check. If enabled the action will check if the header output name (custom or default) has been used already in the     exchange. If so, the extracted field will be stored in the message body, if not, the extracted field will be stored in the selected header (custom or default).\n\nThe headerOutput/headerOutputName/strictHeaderCheck parameters are particulary useful in case you would like to reuse an extracted field as parameter for another header, for example.",
        "required" : [ "field" ],
        "properties" : {
          "field" : {
            "title" : "Field",
            "description" : "The name of the field to extract",
            "type" : "string"
          },
          "headerOutput" : {
            "title" : "Header Output",
            "description" : "If enable the action will store the extracted field in an header named CamelKameletsExtractFieldName",
            "type" : "boolean",
            "default" : false
          },
          "headerOutputName" : {
            "title" : "Header Output Name",
            "description" : "A custom name for the header containing the extracted field",
            "default" : "none",
            "type" : "string"
          },
          "strictHeaderCheck" : {
            "title" : "Strict Header Check",
            "description" : "If enabled the action will check if the header output name (custom or default) has been used already in the exchange. If so, the extracted field will be stored in the message body, if not, the extracted field will be stored in the selected header (custom or default).",
            "type" : "boolean",
            "default" : false
          },
          "trimField" : {
            "title" : "Trim Field",
            "description" : "If enabled we return the Raw extracted field",
            "type" : "boolean",
            "default" : false
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core", "camel:jackson" ],
      "template" : {
        "beans" : [ {
          "name" : "extractField",
          "type" : "#class:org.apache.camel.kamelets.utils.transform.ExtractField",
          "properties" : {
            "field" : "{{field}}",
            "headerOutput" : "{{headerOutput}}",
            "headerOutputName" : "{{headerOutputName}}",
            "strictHeaderCheck" : "{{strictHeaderCheck}}",
            "trimField" : "{{trimField}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "deserialized",
                    "constant" : "true"
                  }
                }, {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "process" : {
              "ref" : "{{extractField}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty[trimField]} == 'false'",
                "steps" : [ {
                  "choice" : {
                    "when" : [ {
                      "simple" : "${exchangeProperty[deserialized]} == 'true'",
                      "steps" : [ {
                        "marshal" : {
                          "json" : {
                            "library" : "Jackson",
                            "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                          }
                        }
                      }, {
                        "setHeader" : {
                          "name" : "Content-Type",
                          "constant" : "application/json"
                        }
                      } ]
                    } ]
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Extract Field Action",
      "description" : "Extract a field from the message body.\n\nThe extract field action expects an application/json content type.\n\nThe field parameter allows you to specify which field of the json the user wants to extract. By default the message body will be overriden with the extracted field.\n\nThe optional parameter headerOutput allows the user to specify wheter the extracted field should be stored in a message header named 'CamelKameletsExtractFieldName', leaving the message body untouched.\n\nThe optional parameter headerOutputName allows the user to specify a custom header name instead of the default 'CamelKameletsExtractFieldName'. This parameter must be used in conjunction with headerOutput.\nIf no headerOutputName parameter will be provided, the default 'CamelKameletsExtractFieldName' will be used.\n\nThe optional parameter strictHeaderCheck allows to user to enable a strict header name check. If enabled the action will check if the header output name (custom or default) has been used already in the     exchange. If so, the extracted field will be stored in the message body, if not, the extracted field will be stored in the selected header (custom or default).\n\nThe headerOutput/headerOutputName/strictHeaderCheck parameters are particulary useful in case you would like to reuse an extracted field as parameter for another header, for example.",
      "required" : [ "field" ],
      "properties" : {
        "field" : {
          "type" : "string",
          "title" : "Field",
          "description" : "The name of the field to extract"
        },
        "headerOutput" : {
          "type" : "boolean",
          "title" : "Header Output",
          "description" : "If enable the action will store the extracted field in an header named CamelKameletsExtractFieldName",
          "default" : false
        },
        "headerOutputName" : {
          "type" : "string",
          "title" : "Header Output Name",
          "description" : "A custom name for the header containing the extracted field",
          "default" : "none"
        },
        "strictHeaderCheck" : {
          "type" : "boolean",
          "title" : "Strict Header Check",
          "description" : "If enabled the action will check if the header output name (custom or default) has been used already in the exchange. If so, the extracted field will be stored in the message body, if not, the extracted field will be stored in the selected header (custom or default).",
          "default" : false
        },
        "trimField" : {
          "type" : "boolean",
          "title" : "Trim Field",
          "description" : "If enabled we return the Raw extracted field",
          "default" : false
        }
      }
    }
  },
  "fhir-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "fhir-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTUuMiAzMDAiPjxzdHlsZT48L3N0eWxlPjxnIGlkPSJMYXllcl8yIj48bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjYyLjY0NCIgeTE9IjI2OC4yMDEiIHgyPSIzMC43MjEiIHkyPSI4Ny4xNTUiPjxzdG9wIG9mZnNldD0iLjE1NCIgc3RvcC1jb2xvcj0iI2ZmZTQwZSIvPjxzdG9wIG9mZnNldD0iLjkxIiBzdG9wLWNvbG9yPSIjZTEwZTE5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNNzkuNiA3OC41bC00NCAzOC41Uy04IDE1MS43IDEuMyAyMDUuOWMwIDAgMi45IDI5LjIgNDMuMyA2NS41IDAgMC0zMy00MS4xLTI2LjYtOTAuMlM3OS4zIDgzLjcgNzkuNiA3OC41eiIgZmlsbD0idXJsKCNTVkdJRF8xXykiLz48bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijg0LjI3MiIgeTE9IjI5OC4xNjciIHgyPSI4NC4yNzIiIHkyPSIwIj48c3RvcCBvZmZzZXQ9Ii4xNTQiIHN0b3AtY29sb3I9IiNmZmU0MGUiLz48c3RvcCBvZmZzZXQ9Ii4xOTciIHN0b3AtY29sb3I9IiNmZWRiMGUiLz48c3RvcCBvZmZzZXQ9Ii4yNjciIHN0b3AtY29sb3I9IiNmYWMzMTAiLz48c3RvcCBvZmZzZXQ9Ii4zNTUiIHN0b3AtY29sb3I9IiNmNTliMTIiLz48c3RvcCBvZmZzZXQ9Ii40NTkiIHN0b3AtY29sb3I9IiNlZDY0MTUiLz48c3RvcCBvZmZzZXQ9Ii41NzQiIHN0b3AtY29sb3I9IiNlMzFmMTgiLz48c3RvcCBvZmZzZXQ9Ii42IiBzdG9wLWNvbG9yPSIjZTEwZTE5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNMTEzIDBzMTIuNSA0My44LTE4LjMgNzkuOS0xMzAuNCAxMzkuMy00LjYgMjE4LjNjMCAwLTM4LTQ0LjggNy4yLTExMS43QzEzOC41IDEyNS44IDE2MS43IDg0IDExMyAweiIgZmlsbD0idXJsKCNTVkdJRF8yXykiLz48bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzNfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE0MC41MzUiIHkxPSIzMDAiIHgyPSIxNDAuNTM1IiB5Mj0iODUuMjc2Ij48c3RvcCBvZmZzZXQ9Ii4xNTQiIHN0b3AtY29sb3I9IiNmZmU0MGUiLz48c3RvcCBvZmZzZXQ9Ii4yMSIgc3RvcC1jb2xvcj0iI2ZlZGIwZSIvPjxzdG9wIG9mZnNldD0iLjMiIHN0b3AtY29sb3I9IiNmYWMzMTAiLz48c3RvcCBvZmZzZXQ9Ii40MTUiIHN0b3AtY29sb3I9IiNmNTliMTIiLz48c3RvcCBvZmZzZXQ9Ii41NDkiIHN0b3AtY29sb3I9IiNlZDY0MTUiLz48c3RvcCBvZmZzZXQ9Ii42OTciIHN0b3AtY29sb3I9IiNlMzFmMTgiLz48c3RvcCBvZmZzZXQ9Ii43MzEiIHN0b3AtY29sb3I9IiNlMTBlMTkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Ik0xNDkuNyA4NS4zczYuMSAzMi43LTI1LjMgODQuMS01NC45IDYxLjktMjQuMSAxMzAuNmMwIDAgODMuMSA1LjggOTUtOTMuNCAwIDAtOS4zIDIxLjUtMzEuMSAzNC43LS4xLS4xIDQwLjctNjkuNC0xNC41LTE1NnoiIGZpbGw9InVybCgjU1ZHSURfM18pIi8+PGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF80XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMjMuNTE2IiB5MT0iMjkzLjg0MSIgeDI9IjEyMy41MTYiIHkyPSIxNzEuMjY5Ij48c3RvcCBvZmZzZXQ9Ii4wNzMiIHN0b3AtY29sb3I9IiNmZmY4ZGEiLz48c3RvcCBvZmZzZXQ9Ii41MzYiIHN0b3AtY29sb3I9IiNmZmVlNmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmU0MDAiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Ik0xMDMuMyAyOTMuOHMtMTguOS0zNS4zIDYuMS02Ny43IDI3LjMtMjUuNyAzOS44LTU0LjljMCAwIDEwLjMgNTAuNy0yMy4xIDEwMC4xIDAgMCAxMS4zLTEuNiAyNC42LTkuOS0uMSAwLTEzLjQgMjkuNi00Ny40IDMyLjR6IiBmaWxsPSJ1cmwoI1NWR0lEXzRfKSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfNV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODUuODI3IiB5MT0iMjg0LjIxNCIgeDI9Ijg1LjgyNyIgeTI9IjYwLjU2OSI+PHN0b3Agb2Zmc2V0PSIuMTI1IiBzdG9wLWNvbG9yPSIjZmZmOGRhIi8+PHN0b3Agb2Zmc2V0PSIuNTExIiBzdG9wLWNvbG9yPSIjZmZlNDAwIi8+PHN0b3Agb2Zmc2V0PSIuNTkzIiBzdG9wLWNvbG9yPSIjZmJjZTAzIi8+PHN0b3Agb2Zmc2V0PSIuNzY0IiBzdG9wLWNvbG9yPSIjZjI5NTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZTMzZTE5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNNzkuMyAyODQuMnMtMjEuOC0yMi4xLTkuMy03My44IDU2LjYtNDYuMiA1My4zLTE0OS44YzAgMC05IDQ2LjItMzcuNiA2OC4zLTI4LjUgMjIuMi02NC44IDk1LTYuNCAxNTUuM3oiIGZpbGw9InVybCgjU1ZHSURfNV8pIi8+PGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF82XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5My42OTMiIHkxPSIyNjkuMjI5IiB4Mj0iOTMuNjkzIiB5Mj0iMi45NDgiPjxzdG9wIG9mZnNldD0iLjA3MyIgc3RvcC1jb2xvcj0iI2ZmZjhkYSIvPjxzdG9wIG9mZnNldD0iLjI0OCIgc3RvcC1jb2xvcj0iI2ZmZjNhMCIvPjxzdG9wIG9mZnNldD0iLjQ0IiBzdG9wLWNvbG9yPSIjZmZlZDY3Ii8+PHN0b3Agb2Zmc2V0PSIuNjE5IiBzdG9wLWNvbG9yPSIjZmZlOTNiIi8+PHN0b3Agb2Zmc2V0PSIuNzc3IiBzdG9wLWNvbG9yPSIjZmZlNjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTA5IiBzdG9wLWNvbG9yPSIjZmZlNTA3Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZlNDAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNMTM3LjcgMi45czEzLjggMzguMi0yMS44IDkzLjEtODQgOTItNDguMSAxNzMuMmMwIDAtMzUuNC00NS41LTEzLjktOTcuNSAyNi43LTY0LjEgOTYuMi05Ny41IDgzLjgtMTY4Ljh6IiBmaWxsPSJ1cmwoI1NWR0lEXzZfKSIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FHIR",
        "camel.apache.org/kamelet.namespace" : "API"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "FHIR Sink",
        "description" : "Forward data to a Fhir endpoint.",
        "required" : [ "serverUrl", "methodName" ],
        "type" : "object",
        "properties" : {
          "apiName" : {
            "title" : "API Name",
            "description" : "What kind of operation to perform",
            "type" : "string",
            "enum" : [ "CAPABILITIES", "CREATE", "DELETE", "HISTORY", "LOAD_PAGE", "META", "OPERATION", "PATCH", "READ", "SEARCH", "TRANSACTION", "UPDATE", "VALIDATE" ]
          },
          "methodName" : {
            "title" : "Method Name",
            "description" : "What sub operation to use for the selected operation.",
            "type" : "string"
          },
          "encoding" : {
            "title" : "Encoding",
            "description" : "Encoding to use for all request. One of: [JSON] [XML].",
            "type" : "string",
            "default" : "JSON"
          },
          "fhirVersion" : {
            "title" : "Fhir Version",
            "description" : "The FHIR Version to use.",
            "type" : "string",
            "enum" : [ "DSTU2", "DSTU2_HL7ORG", "DSTU2_1", "DSTU3", "R4", "R5" ],
            "default" : "R4"
          },
          "log" : {
            "title" : "Log",
            "description" : "Will log every requests and responses.",
            "type" : "boolean",
            "default" : false
          },
          "prettyPrint" : {
            "title" : "Pretty Print",
            "description" : "Pretty print all request.",
            "type" : "boolean",
            "default" : false
          },
          "serverUrl" : {
            "title" : "Server URL",
            "description" : "The FHIR server base URL.",
            "type" : "string"
          },
          "lazyStartProducer" : {
            "title" : "Lazy Start Producer",
            "description" : "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
            "type" : "boolean",
            "default" : false
          },
          "proxyHost" : {
            "title" : "Proxy Host",
            "description" : "The proxy host.",
            "type" : "string"
          },
          "proxyPassword" : {
            "title" : "Proxy Password",
            "description" : "The proxy password.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "proxyPort" : {
            "title" : "Proxy Port",
            "description" : "The proxy port.",
            "type" : "integer"
          },
          "proxyUser" : {
            "title" : "Proxy User",
            "description" : "The proxy username.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "OAuth access token.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to use for basic authentication.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to use for basic authentication.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:fhir", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${properties:encoding} =~ 'JSON'",
                "steps" : [ {
                  "unmarshal" : {
                    "fhirJson" : {
                      "fhirVersion" : "{{fhirVersion}}",
                      "prettyPrint" : "{{prettyPrint}}"
                    }
                  }
                } ]
              }, {
                "simple" : "${properties:encoding} =~ 'XML'",
                "steps" : [ {
                  "unmarshal" : {
                    "fhirXml" : {
                      "fhirVersion" : "{{fhirVersion}}",
                      "prettyPrint" : "{{prettyPrint}}"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "fhir://{{apiName}}/{{methodName}}",
              "parameters" : {
                "serverUrl" : "{{serverUrl}}",
                "inBody" : "resource",
                "encoding" : "{{encoding}}",
                "fhirVersion" : "{{fhirVersion}}",
                "log" : "{{log}}",
                "prettyPrint" : "{{prettyPrint}}",
                "lazyStartProducer" : "{{lazyStartProducer}}",
                "proxyHost" : "{{?proxyHost}}",
                "proxyPassword" : "{{?proxyPassword}}",
                "proxyPort" : "{{?proxyPort}}",
                "proxyUser" : "{{?proxyUser}}",
                "accessToken" : "{{?accessToken}}",
                "username" : "{{?username}}",
                "password" : "{{?password}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "FHIR Sink",
      "description" : "Forward data to a Fhir endpoint.",
      "required" : [ "serverUrl", "methodName" ],
      "properties" : {
        "apiName" : {
          "type" : "string",
          "title" : "API Name",
          "description" : "What kind of operation to perform",
          "enum" : [ "CAPABILITIES", "CREATE", "DELETE", "HISTORY", "LOAD_PAGE", "META", "OPERATION", "PATCH", "READ", "SEARCH", "TRANSACTION", "UPDATE", "VALIDATE" ]
        },
        "methodName" : {
          "type" : "string",
          "title" : "Method Name",
          "description" : "What sub operation to use for the selected operation."
        },
        "encoding" : {
          "type" : "string",
          "title" : "Encoding",
          "description" : "Encoding to use for all request. One of: [JSON] [XML].",
          "default" : "JSON"
        },
        "fhirVersion" : {
          "type" : "string",
          "title" : "Fhir Version",
          "description" : "The FHIR Version to use.",
          "enum" : [ "DSTU2", "DSTU2_HL7ORG", "DSTU2_1", "DSTU3", "R4", "R5" ],
          "default" : "R4"
        },
        "log" : {
          "type" : "boolean",
          "title" : "Log",
          "description" : "Will log every requests and responses.",
          "default" : false
        },
        "prettyPrint" : {
          "type" : "boolean",
          "title" : "Pretty Print",
          "description" : "Pretty print all request.",
          "default" : false
        },
        "serverUrl" : {
          "type" : "string",
          "title" : "Server URL",
          "description" : "The FHIR server base URL."
        },
        "lazyStartProducer" : {
          "type" : "boolean",
          "title" : "Lazy Start Producer",
          "description" : "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
          "default" : false
        },
        "proxyHost" : {
          "type" : "string",
          "title" : "Proxy Host",
          "description" : "The proxy host."
        },
        "proxyPassword" : {
          "type" : "string",
          "title" : "Proxy Password",
          "description" : "The proxy password.",
          "format" : "password"
        },
        "proxyPort" : {
          "type" : "integer",
          "title" : "Proxy Port",
          "description" : "The proxy port."
        },
        "proxyUser" : {
          "type" : "string",
          "title" : "Proxy User",
          "description" : "The proxy username."
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "OAuth access token.",
          "format" : "password"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to use for basic authentication."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to use for basic authentication.",
          "format" : "password"
        }
      }
    }
  },
  "fhir-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "fhir-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTUuMiAzMDAiPjxzdHlsZT48L3N0eWxlPjxnIGlkPSJMYXllcl8yIj48bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjYyLjY0NCIgeTE9IjI2OC4yMDEiIHgyPSIzMC43MjEiIHkyPSI4Ny4xNTUiPjxzdG9wIG9mZnNldD0iLjE1NCIgc3RvcC1jb2xvcj0iI2ZmZTQwZSIvPjxzdG9wIG9mZnNldD0iLjkxIiBzdG9wLWNvbG9yPSIjZTEwZTE5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNNzkuNiA3OC41bC00NCAzOC41Uy04IDE1MS43IDEuMyAyMDUuOWMwIDAgMi45IDI5LjIgNDMuMyA2NS41IDAgMC0zMy00MS4xLTI2LjYtOTAuMlM3OS4zIDgzLjcgNzkuNiA3OC41eiIgZmlsbD0idXJsKCNTVkdJRF8xXykiLz48bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijg0LjI3MiIgeTE9IjI5OC4xNjciIHgyPSI4NC4yNzIiIHkyPSIwIj48c3RvcCBvZmZzZXQ9Ii4xNTQiIHN0b3AtY29sb3I9IiNmZmU0MGUiLz48c3RvcCBvZmZzZXQ9Ii4xOTciIHN0b3AtY29sb3I9IiNmZWRiMGUiLz48c3RvcCBvZmZzZXQ9Ii4yNjciIHN0b3AtY29sb3I9IiNmYWMzMTAiLz48c3RvcCBvZmZzZXQ9Ii4zNTUiIHN0b3AtY29sb3I9IiNmNTliMTIiLz48c3RvcCBvZmZzZXQ9Ii40NTkiIHN0b3AtY29sb3I9IiNlZDY0MTUiLz48c3RvcCBvZmZzZXQ9Ii41NzQiIHN0b3AtY29sb3I9IiNlMzFmMTgiLz48c3RvcCBvZmZzZXQ9Ii42IiBzdG9wLWNvbG9yPSIjZTEwZTE5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNMTEzIDBzMTIuNSA0My44LTE4LjMgNzkuOS0xMzAuNCAxMzkuMy00LjYgMjE4LjNjMCAwLTM4LTQ0LjggNy4yLTExMS43QzEzOC41IDEyNS44IDE2MS43IDg0IDExMyAweiIgZmlsbD0idXJsKCNTVkdJRF8yXykiLz48bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzNfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE0MC41MzUiIHkxPSIzMDAiIHgyPSIxNDAuNTM1IiB5Mj0iODUuMjc2Ij48c3RvcCBvZmZzZXQ9Ii4xNTQiIHN0b3AtY29sb3I9IiNmZmU0MGUiLz48c3RvcCBvZmZzZXQ9Ii4yMSIgc3RvcC1jb2xvcj0iI2ZlZGIwZSIvPjxzdG9wIG9mZnNldD0iLjMiIHN0b3AtY29sb3I9IiNmYWMzMTAiLz48c3RvcCBvZmZzZXQ9Ii40MTUiIHN0b3AtY29sb3I9IiNmNTliMTIiLz48c3RvcCBvZmZzZXQ9Ii41NDkiIHN0b3AtY29sb3I9IiNlZDY0MTUiLz48c3RvcCBvZmZzZXQ9Ii42OTciIHN0b3AtY29sb3I9IiNlMzFmMTgiLz48c3RvcCBvZmZzZXQ9Ii43MzEiIHN0b3AtY29sb3I9IiNlMTBlMTkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Ik0xNDkuNyA4NS4zczYuMSAzMi43LTI1LjMgODQuMS01NC45IDYxLjktMjQuMSAxMzAuNmMwIDAgODMuMSA1LjggOTUtOTMuNCAwIDAtOS4zIDIxLjUtMzEuMSAzNC43LS4xLS4xIDQwLjctNjkuNC0xNC41LTE1NnoiIGZpbGw9InVybCgjU1ZHSURfM18pIi8+PGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF80XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMjMuNTE2IiB5MT0iMjkzLjg0MSIgeDI9IjEyMy41MTYiIHkyPSIxNzEuMjY5Ij48c3RvcCBvZmZzZXQ9Ii4wNzMiIHN0b3AtY29sb3I9IiNmZmY4ZGEiLz48c3RvcCBvZmZzZXQ9Ii41MzYiIHN0b3AtY29sb3I9IiNmZmVlNmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmU0MDAiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Ik0xMDMuMyAyOTMuOHMtMTguOS0zNS4zIDYuMS02Ny43IDI3LjMtMjUuNyAzOS44LTU0LjljMCAwIDEwLjMgNTAuNy0yMy4xIDEwMC4xIDAgMCAxMS4zLTEuNiAyNC42LTkuOS0uMSAwLTEzLjQgMjkuNi00Ny40IDMyLjR6IiBmaWxsPSJ1cmwoI1NWR0lEXzRfKSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfNV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODUuODI3IiB5MT0iMjg0LjIxNCIgeDI9Ijg1LjgyNyIgeTI9IjYwLjU2OSI+PHN0b3Agb2Zmc2V0PSIuMTI1IiBzdG9wLWNvbG9yPSIjZmZmOGRhIi8+PHN0b3Agb2Zmc2V0PSIuNTExIiBzdG9wLWNvbG9yPSIjZmZlNDAwIi8+PHN0b3Agb2Zmc2V0PSIuNTkzIiBzdG9wLWNvbG9yPSIjZmJjZTAzIi8+PHN0b3Agb2Zmc2V0PSIuNzY0IiBzdG9wLWNvbG9yPSIjZjI5NTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZTMzZTE5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNNzkuMyAyODQuMnMtMjEuOC0yMi4xLTkuMy03My44IDU2LjYtNDYuMiA1My4zLTE0OS44YzAgMC05IDQ2LjItMzcuNiA2OC4zLTI4LjUgMjIuMi02NC44IDk1LTYuNCAxNTUuM3oiIGZpbGw9InVybCgjU1ZHSURfNV8pIi8+PGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF82XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5My42OTMiIHkxPSIyNjkuMjI5IiB4Mj0iOTMuNjkzIiB5Mj0iMi45NDgiPjxzdG9wIG9mZnNldD0iLjA3MyIgc3RvcC1jb2xvcj0iI2ZmZjhkYSIvPjxzdG9wIG9mZnNldD0iLjI0OCIgc3RvcC1jb2xvcj0iI2ZmZjNhMCIvPjxzdG9wIG9mZnNldD0iLjQ0IiBzdG9wLWNvbG9yPSIjZmZlZDY3Ii8+PHN0b3Agb2Zmc2V0PSIuNjE5IiBzdG9wLWNvbG9yPSIjZmZlOTNiIi8+PHN0b3Agb2Zmc2V0PSIuNzc3IiBzdG9wLWNvbG9yPSIjZmZlNjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTA5IiBzdG9wLWNvbG9yPSIjZmZlNTA3Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZlNDAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJNMTM3LjcgMi45czEzLjggMzguMi0yMS44IDkzLjEtODQgOTItNDguMSAxNzMuMmMwIDAtMzUuNC00NS41LTEzLjktOTcuNSAyNi43LTY0LjEgOTYuMi05Ny41IDgzLjgtMTY4Ljh6IiBmaWxsPSJ1cmwoI1NWR0lEXzZfKSIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FHIR",
        "camel.apache.org/kamelet.namespace" : "API"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Fhir Source",
        "description" : "Receive data from Fhir server.",
        "required" : [ "serverUrl", "username", "password" ],
        "type" : "object",
        "properties" : {
          "serverUrl" : {
            "title" : "Server URL",
            "description" : "The Fhir server url",
            "type" : "string"
          },
          "url" : {
            "title" : "URL",
            "description" : "The Fhir resource type url",
            "type" : "string",
            "default" : "/Patient"
          },
          "encoding" : {
            "title" : "Encoding",
            "description" : "Encoding to use for all request.",
            "type" : "string",
            "default" : "JSON",
            "enum" : [ "JSON", "XML" ]
          },
          "fhirVersion" : {
            "title" : "Fhir Version",
            "description" : "The FHIR Version to use.",
            "type" : "string",
            "default" : "R4",
            "enum" : [ "DSTU2", "DSTU2_HL7ORG", "DSTU2_1", "DSTU3", "R4", "R5" ]
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the Fhir server",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the Fhir server",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "prettyPrint" : {
            "title" : "Json Pretty Print",
            "description" : "Define if the Json must be pretty print or not",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:fhir", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "fhir://search/searchByUrl",
          "parameters" : {
            "serverUrl" : "{{serverUrl}}",
            "url" : "{{url}}",
            "encoding" : "{{encoding}}",
            "fhirVersion" : "{{fhirVersion}}",
            "prettyPrint" : "{{prettyPrint}}",
            "username" : "{{username}}",
            "password" : "{{password}}"
          },
          "steps" : [ {
            "marshal" : {
              "fhirJson" : {
                "fhirVersion" : "{{fhirVersion}}",
                "prettyPrint" : "{{prettyPrint}}"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Fhir Source",
      "description" : "Receive data from Fhir server.",
      "required" : [ "serverUrl", "username", "password" ],
      "properties" : {
        "serverUrl" : {
          "type" : "string",
          "title" : "Server URL",
          "description" : "The Fhir server url"
        },
        "url" : {
          "type" : "string",
          "title" : "URL",
          "description" : "The Fhir resource type url",
          "default" : "/Patient"
        },
        "encoding" : {
          "type" : "string",
          "title" : "Encoding",
          "description" : "Encoding to use for all request.",
          "enum" : [ "JSON", "XML" ],
          "default" : "JSON"
        },
        "fhirVersion" : {
          "type" : "string",
          "title" : "Fhir Version",
          "description" : "The FHIR Version to use.",
          "enum" : [ "DSTU2", "DSTU2_HL7ORG", "DSTU2_1", "DSTU3", "R4", "R5" ],
          "default" : "R4"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the Fhir server"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the Fhir server",
          "format" : "password"
        },
        "prettyPrint" : {
          "type" : "boolean",
          "title" : "Json Pretty Print",
          "description" : "Define if the Json must be pretty print or not",
          "default" : true
        }
      }
    }
  },
  "file-watch-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "file-watch-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzY4LjU1MyAzNjguNTUzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzNjguNTUzIDM2OC41NTM7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNMjM5LjY4LDBINDIuNjk1djM2OC41NTNoMjgzLjE2NFY4Ni44MTFMMjM5LjY4LDB6IE0yNDQuMDU3LDI1LjdsNTYuMjg4LDU2LjcwMWgtNTYuMjg4VjI1Ljd6IE01Ny42OTUsMzUzLjU1M1YxNQ0KCQkJaDE3MS4zNjJ2ODIuNDAxaDgxLjgwMnYyNTYuMTUxSDU3LjY5NVYzNTMuNTUzeiIvPg0KCQk8cmVjdCB4PSI4Ni40MzUiIHk9IjgyLjQwMSIgd2lkdGg9IjEyMS44NzUiIGhlaWdodD0iMTUiLz4NCgkJPHJlY3QgeD0iODYuNDM1IiB5PSIxNTEuMTIyIiB3aWR0aD0iMTk1LjY4NSIgaGVpZ2h0PSIxNSIvPg0KCQk8cmVjdCB4PSI4Ni40MzUiIHk9IjIxOS44NDMiIHdpZHRoPSIxOTUuNjg1IiBoZWlnaHQ9IjE1Ii8+DQoJCTxyZWN0IHg9Ijg2LjQzNSIgeT0iMjg4LjU2MyIgd2lkdGg9IjE5NS42ODUiIGhlaWdodD0iMTUiLz4NCgk8L2c+DQoJPGc+DQoJPC9nPg0KCTxnPg0KCTwvZz4NCgk8Zz4NCgk8L2c+DQoJPGc+DQoJPC9nPg0KCTxnPg0KCTwvZz4NCgk8Zz4NCgk8L2c+DQoJPGc+DQoJPC9nPg0KCTxnPg0KCTwvZz4NCgk8Zz4NCgk8L2c+DQoJPGc+DQoJPC9nPg0KCTxnPg0KCTwvZz4NCgk8Zz4NCgk8L2c+DQoJPGc+DQoJPC9nPg0KCTxnPg0KCTwvZz4NCgk8Zz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "File Watch",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "File Watch Source",
        "description" : "Receive events related to a file or folder. It may require a volume mounting on Kubernetes.",
        "required" : [ "filePath", "events" ],
        "type" : "object",
        "properties" : {
          "filePath" : {
            "title" : "Path to Watch",
            "description" : "Path of file or folder to watch",
            "type" : "string"
          },
          "events" : {
            "title" : "Events",
            "description" : "The type of events to consume",
            "type" : "string",
            "default" : "CREATE,MODIFY,DELETE"
          }
        }
      },
      "dependencies" : [ "camel:file-watch", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "file-watch:{{filePath}}",
          "parameters" : {
            "events" : "{{events}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "File Watch Source",
      "description" : "Receive events related to a file or folder. It may require a volume mounting on Kubernetes.",
      "required" : [ "filePath", "events" ],
      "properties" : {
        "filePath" : {
          "type" : "string",
          "title" : "Path to Watch",
          "description" : "Path of file or folder to watch"
        },
        "events" : {
          "type" : "string",
          "title" : "Events",
          "description" : "The type of events to consume",
          "default" : "CREATE,MODIFY,DELETE"
        }
      }
    }
  },
  "freemarker-template-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "freemarker-template-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Freemarker Template Action",
        "description" : "Apply a Freemarker Template.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.ftl",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:freemarker", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "freemarker:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Freemarker Template Action",
      "description" : "Apply a Freemarker Template.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "ftp-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ftp-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FTP",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "FTP Sink",
        "description" : "Send data to an FTP server.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
        "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname of the FTP server.",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port of the FTP server.",
            "type" : "string",
            "default" : 21
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the FTP server.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the FTP server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The starting directory.",
            "type" : "string"
          },
          "passiveMode" : {
            "title" : "Passive Mode",
            "description" : "Specifies to use passive mode connection.",
            "type" : "boolean",
            "default" : false
          },
          "fileExist" : {
            "title" : "File Existence",
            "description" : "How to behave in case of file already existent.",
            "type" : "string",
            "default" : "Override",
            "enum" : [ "Override", "Append", "Fail", "Ignore" ]
          },
          "binary" : {
            "title" : "Binary",
            "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
            "type" : "boolean",
            "default" : false
          },
          "autoCreate" : {
            "title" : "Autocreate Missing Directories",
            "description" : "Automatically create the directory the files should be written to.",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:ftp", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "ftp:{{username}}@{{connectionHost}}:{{connectionPort}}/{{directoryName}}",
              "parameters" : {
                "password" : "{{password}}",
                "passiveMode" : "{{passiveMode}}",
                "fileExist" : "{{fileExist}}",
                "binary" : "{{binary}}",
                "autoCreate" : "{{autoCreate}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "FTP Sink",
      "description" : "Send data to an FTP server.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
      "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname of the FTP server."
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port of the FTP server.",
          "default" : 21
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the FTP server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the FTP server.",
          "format" : "password"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The starting directory."
        },
        "passiveMode" : {
          "type" : "boolean",
          "title" : "Passive Mode",
          "description" : "Specifies to use passive mode connection.",
          "default" : false
        },
        "fileExist" : {
          "type" : "string",
          "title" : "File Existence",
          "description" : "How to behave in case of file already existent.",
          "enum" : [ "Override", "Append", "Fail", "Ignore" ],
          "default" : "Override"
        },
        "binary" : {
          "type" : "boolean",
          "title" : "Binary",
          "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
          "default" : false
        },
        "autoCreate" : {
          "type" : "boolean",
          "title" : "Autocreate Missing Directories",
          "description" : "Automatically create the directory the files should be written to.",
          "default" : true
        }
      }
    }
  },
  "ftp-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ftp-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FTP",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "FTP Source",
        "description" : "Receive data from an FTP server.",
        "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname of the FTP server.",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port of the FTP server.",
            "type" : "string",
            "default" : 21
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the FTP server.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the FTP server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The starting directory",
            "type" : "string"
          },
          "passiveMode" : {
            "title" : "Passive Mode",
            "description" : "Specifes to use passive mode connection.",
            "type" : "boolean",
            "default" : false
          },
          "recursive" : {
            "title" : "Recursive",
            "description" : "If a directory, look for files in all the sub-directories as well.",
            "type" : "boolean",
            "default" : false
          },
          "idempotent" : {
            "title" : "Idempotency",
            "description" : "Skip already-processed files.",
            "type" : "boolean",
            "default" : true
          },
          "binary" : {
            "title" : "Binary",
            "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
            "type" : "boolean",
            "default" : false
          },
          "autoCreate" : {
            "title" : "Autocreate Missing Directories",
            "description" : "Automatically create starting directory.",
            "type" : "boolean",
            "default" : true
          },
          "delete" : {
            "title" : "Delete",
            "description" : "If true, the file will be deleted after it is processed successfully.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:ftp", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "ftp:{{username}}@{{connectionHost}}:{{connectionPort}}/{{directoryName}}",
          "parameters" : {
            "password" : "{{password}}",
            "passiveMode" : "{{passiveMode}}",
            "recursive" : "{{recursive}}",
            "idempotent" : "{{idempotent}}",
            "binary" : "{{binary}}",
            "autoCreate" : "{{autoCreate}}",
            "delete" : "{{delete}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "file",
              "simple" : "${header[CamelFileName]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-file",
              "simple" : "${header[CamelFileName]}"
            }
          }, {
            "convertBodyTo" : {
              "type" : "java.io.InputStream"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "FTP Source",
      "description" : "Receive data from an FTP server.",
      "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname of the FTP server."
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port of the FTP server.",
          "default" : 21
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the FTP server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the FTP server.",
          "format" : "password"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The starting directory"
        },
        "passiveMode" : {
          "type" : "boolean",
          "title" : "Passive Mode",
          "description" : "Specifes to use passive mode connection.",
          "default" : false
        },
        "recursive" : {
          "type" : "boolean",
          "title" : "Recursive",
          "description" : "If a directory, look for files in all the sub-directories as well.",
          "default" : false
        },
        "idempotent" : {
          "type" : "boolean",
          "title" : "Idempotency",
          "description" : "Skip already-processed files.",
          "default" : true
        },
        "binary" : {
          "type" : "boolean",
          "title" : "Binary",
          "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
          "default" : false
        },
        "autoCreate" : {
          "type" : "boolean",
          "title" : "Autocreate Missing Directories",
          "description" : "Automatically create starting directory.",
          "default" : true
        },
        "delete" : {
          "type" : "boolean",
          "title" : "Delete",
          "description" : "If true, the file will be deleted after it is processed successfully.",
          "default" : false
        }
      }
    }
  },
  "ftps-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ftps-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FTP",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "FTPS Sink",
        "description" : "Send data to an FTPS server.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
        "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname of the FTP server.",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port of the FTP server.",
            "type" : "string",
            "default" : 21
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the FTP server.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the FTP server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The starting directory.",
            "type" : "string"
          },
          "passiveMode" : {
            "title" : "Passive Mode",
            "description" : "Set the passive mode connection.",
            "type" : "boolean",
            "default" : false
          },
          "fileExist" : {
            "title" : "File Existence",
            "description" : "Specifies how the Kamelet behaves if the file already exists.",
            "type" : "string",
            "default" : "Override",
            "enum" : [ "Override", "Append", "Fail", "Ignore" ]
          },
          "binary" : {
            "title" : "Binary",
            "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
            "type" : "boolean",
            "default" : false
          },
          "autoCreate" : {
            "title" : "Autocreate Missing Directories",
            "description" : "Automatically create the directory the files should be written to.",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:ftp", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "ftps:{{username}}@{{connectionHost}}:{{connectionPort}}/{{directoryName}}",
              "parameters" : {
                "password" : "{{password}}",
                "passiveMode" : "{{passiveMode}}",
                "fileExist" : "{{fileExist}}",
                "binary" : "{{binary}}",
                "autoCreate" : "{{autoCreate}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "FTPS Sink",
      "description" : "Send data to an FTPS server.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
      "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname of the FTP server."
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port of the FTP server.",
          "default" : 21
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the FTP server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the FTP server.",
          "format" : "password"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The starting directory."
        },
        "passiveMode" : {
          "type" : "boolean",
          "title" : "Passive Mode",
          "description" : "Set the passive mode connection.",
          "default" : false
        },
        "fileExist" : {
          "type" : "string",
          "title" : "File Existence",
          "description" : "Specifies how the Kamelet behaves if the file already exists.",
          "enum" : [ "Override", "Append", "Fail", "Ignore" ],
          "default" : "Override"
        },
        "binary" : {
          "type" : "boolean",
          "title" : "Binary",
          "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
          "default" : false
        },
        "autoCreate" : {
          "type" : "boolean",
          "title" : "Autocreate Missing Directories",
          "description" : "Automatically create the directory the files should be written to.",
          "default" : true
        }
      }
    }
  },
  "ftps-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ftps-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FTP",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "FTPS Source",
        "description" : "Receive data from an FTPS server.",
        "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname of the FTPS server.",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port of the FTPS server.",
            "type" : "string",
            "default" : 21
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the FTPS server.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the FTPS server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The starting directory.",
            "type" : "string"
          },
          "passiveMode" : {
            "title" : "Passive Mode",
            "description" : "Specifies to use passive mode connection.",
            "type" : "boolean",
            "default" : false
          },
          "recursive" : {
            "title" : "Recursive",
            "description" : "If a directory, look for files in all sub-directories as well.",
            "type" : "boolean",
            "default" : false
          },
          "idempotent" : {
            "title" : "Idempotency",
            "description" : "Skip already-processed files.",
            "type" : "boolean",
            "default" : true
          },
          "binary" : {
            "title" : "Binary",
            "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
            "type" : "boolean",
            "default" : false
          },
          "autoCreate" : {
            "title" : "Autocreate Missing Directories",
            "description" : "Automatically create starting directory.",
            "type" : "boolean",
            "default" : true
          },
          "delete" : {
            "title" : "Delete",
            "description" : "If true, the file will be deleted after it is processed successfully.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:ftp", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "ftps:{{username}}@{{connectionHost}}:{{connectionPort}}/{{directoryName}}",
          "parameters" : {
            "password" : "{{password}}",
            "passiveMode" : "{{passiveMode}}",
            "recursive" : "{{recursive}}",
            "idempotent" : "{{idempotent}}",
            "binary" : "{{binary}}",
            "autoCreate" : "{{autoCreate}}",
            "delete" : "{{delete}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "file",
              "simple" : "${header[CamelFileName]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-file",
              "simple" : "${header[CamelFileName]}"
            }
          }, {
            "convertBodyTo" : {
              "type" : "java.io.InputStream"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "FTPS Source",
      "description" : "Receive data from an FTPS server.",
      "required" : [ "connectionHost", "connectionPort", "username", "password", "directoryName" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname of the FTPS server."
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port of the FTPS server.",
          "default" : 21
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the FTPS server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the FTPS server.",
          "format" : "password"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The starting directory."
        },
        "passiveMode" : {
          "type" : "boolean",
          "title" : "Passive Mode",
          "description" : "Specifies to use passive mode connection.",
          "default" : false
        },
        "recursive" : {
          "type" : "boolean",
          "title" : "Recursive",
          "description" : "If a directory, look for files in all sub-directories as well.",
          "default" : false
        },
        "idempotent" : {
          "type" : "boolean",
          "title" : "Idempotency",
          "description" : "Skip already-processed files.",
          "default" : true
        },
        "binary" : {
          "type" : "boolean",
          "title" : "Binary",
          "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
          "default" : false
        },
        "autoCreate" : {
          "type" : "boolean",
          "title" : "Autocreate Missing Directories",
          "description" : "Automatically create starting directory.",
          "default" : true
        },
        "delete" : {
          "type" : "boolean",
          "title" : "Delete",
          "description" : "If true, the file will be deleted after it is processed successfully.",
          "default" : false
        }
      }
    }
  },
  "github-commit-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "github-commit-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOEMwIDExLjU0IDIuMjkgMTQuNTMgNS40NyAxNS41OUM1Ljg3IDE1LjY2IDYuMDIgMTUuNDIgNi4wMiAxNS4yMUM2LjAyIDE1LjAyIDYuMDEgMTQuMzkgNi4wMSAxMy43MkM0IDE0LjA5IDMuNDggMTMuMjMgMy4zMiAxMi43OEMzLjIzIDEyLjU1IDIuODQgMTEuODQgMi41IDExLjY1QzIuMjIgMTEuNSAxLjgyIDExLjEzIDIuNDkgMTEuMTJDMy4xMiAxMS4xMSAzLjU3IDExLjcgMy43MiAxMS45NEM0LjQ0IDEzLjE1IDUuNTkgMTIuODEgNi4wNSAxMi42QzYuMTIgMTIuMDggNi4zMyAxMS43MyA2LjU2IDExLjUzQzQuNzggMTEuMzMgMi45MiAxMC42NCAyLjkyIDcuNThDMi45MiA2LjcxIDMuMjMgNS45OSAzLjc0IDUuNDNDMy42NiA1LjIzIDMuMzggNC40MSAzLjgyIDMuMzFDMy44MiAzLjMxIDQuNDkgMy4xIDYuMDIgNC4xM0M2LjY2IDMuOTUgNy4zNCAzLjg2IDguMDIgMy44NkM4LjcgMy44NiA5LjM4IDMuOTUgMTAuMDIgNC4xM0MxMS41NSAzLjA5IDEyLjIyIDMuMzEgMTIuMjIgMy4zMUMxMi42NiA0LjQxIDEyLjM4IDUuMjMgMTIuMyA1LjQzQzEyLjgxIDUuOTkgMTMuMTIgNi43IDEzLjEyIDcuNThDMTMuMTIgMTAuNjUgMTEuMjUgMTEuMzMgOS40NyAxMS41M0M5Ljc2IDExLjc4IDEwLjAxIDEyLjI2IDEwLjAxIDEzLjAxQzEwLjAxIDE0LjA4IDEwIDE0Ljk0IDEwIDE1LjIxQzEwIDE1LjQyIDEwLjE1IDE1LjY3IDEwLjU1IDE1LjU5QzEzLjcxIDE0LjUzIDE2IDExLjUzIDE2IDhDMTYgMy41OCAxMi40MiAwIDggMFoiIHRyYW5zZm9ybT0ic2NhbGUoNjQpIiBmaWxsPSIjMUIxRjIzIi8+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "GitHub",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "GitHub Commit Source",
        "description" : "Receive commit From GitHub.",
        "required" : [ "repoName", "repoOwner", "oauthToken", "startingSha", "branch" ],
        "type" : "object",
        "properties" : {
          "repoName" : {
            "title" : "Repository Name",
            "description" : "The GitHub Repository name",
            "type" : "string"
          },
          "repoOwner" : {
            "title" : "Repository Owner",
            "description" : "The repository owner",
            "type" : "string"
          },
          "oauthToken" : {
            "title" : "OAuth Token",
            "description" : "OAuth token",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "startingSha" : {
            "title" : "Starting SHA",
            "description" : "The SHA from which we want to consume, possible values beginning, last or a specific SHA",
            "type" : "string",
            "default" : "last"
          },
          "branch" : {
            "title" : "Branch",
            "description" : "The branch we want to consume commit from",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:github", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "github://commit/{{branch}}",
          "parameters" : {
            "repoName" : "{{repoName}}",
            "repoOwner" : "{{repoOwner}}",
            "oauthToken" : "{{oauthToken}}",
            "startingSha" : "{{startingSha}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "GitHub Commit Source",
      "description" : "Receive commit From GitHub.",
      "required" : [ "repoName", "repoOwner", "oauthToken", "startingSha", "branch" ],
      "properties" : {
        "repoName" : {
          "type" : "string",
          "title" : "Repository Name",
          "description" : "The GitHub Repository name"
        },
        "repoOwner" : {
          "type" : "string",
          "title" : "Repository Owner",
          "description" : "The repository owner"
        },
        "oauthToken" : {
          "type" : "string",
          "title" : "OAuth Token",
          "description" : "OAuth token",
          "format" : "password"
        },
        "startingSha" : {
          "type" : "string",
          "title" : "Starting SHA",
          "description" : "The SHA from which we want to consume, possible values beginning, last or a specific SHA",
          "default" : "last"
        },
        "branch" : {
          "type" : "string",
          "title" : "Branch",
          "description" : "The branch we want to consume commit from"
        }
      }
    }
  },
  "github-event-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "github-event-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOEMwIDExLjU0IDIuMjkgMTQuNTMgNS40NyAxNS41OUM1Ljg3IDE1LjY2IDYuMDIgMTUuNDIgNi4wMiAxNS4yMUM2LjAyIDE1LjAyIDYuMDEgMTQuMzkgNi4wMSAxMy43MkM0IDE0LjA5IDMuNDggMTMuMjMgMy4zMiAxMi43OEMzLjIzIDEyLjU1IDIuODQgMTEuODQgMi41IDExLjY1QzIuMjIgMTEuNSAxLjgyIDExLjEzIDIuNDkgMTEuMTJDMy4xMiAxMS4xMSAzLjU3IDExLjcgMy43MiAxMS45NEM0LjQ0IDEzLjE1IDUuNTkgMTIuODEgNi4wNSAxMi42QzYuMTIgMTIuMDggNi4zMyAxMS43MyA2LjU2IDExLjUzQzQuNzggMTEuMzMgMi45MiAxMC42NCAyLjkyIDcuNThDMi45MiA2LjcxIDMuMjMgNS45OSAzLjc0IDUuNDNDMy42NiA1LjIzIDMuMzggNC40MSAzLjgyIDMuMzFDMy44MiAzLjMxIDQuNDkgMy4xIDYuMDIgNC4xM0M2LjY2IDMuOTUgNy4zNCAzLjg2IDguMDIgMy44NkM4LjcgMy44NiA5LjM4IDMuOTUgMTAuMDIgNC4xM0MxMS41NSAzLjA5IDEyLjIyIDMuMzEgMTIuMjIgMy4zMUMxMi42NiA0LjQxIDEyLjM4IDUuMjMgMTIuMyA1LjQzQzEyLjgxIDUuOTkgMTMuMTIgNi43IDEzLjEyIDcuNThDMTMuMTIgMTAuNjUgMTEuMjUgMTEuMzMgOS40NyAxMS41M0M5Ljc2IDExLjc4IDEwLjAxIDEyLjI2IDEwLjAxIDEzLjAxQzEwLjAxIDE0LjA4IDEwIDE0Ljk0IDEwIDE1LjIxQzEwIDE1LjQyIDEwLjE1IDE1LjY3IDEwLjU1IDE1LjU5QzEzLjcxIDE0LjUzIDE2IDExLjUzIDE2IDhDMTYgMy41OCAxMi40MiAwIDggMFoiIHRyYW5zZm9ybT0ic2NhbGUoNjQpIiBmaWxsPSIjMUIxRjIzIi8+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "GitHub",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "GitHub Event Source",
        "description" : "Receive Events From a GitHub Repository.",
        "required" : [ "repoName", "repoOwner", "oauthToken" ],
        "type" : "object",
        "properties" : {
          "repoName" : {
            "title" : "Repository Name",
            "description" : "The GitHub Repository name",
            "type" : "string"
          },
          "repoOwner" : {
            "title" : "Repository Owner",
            "description" : "The repository owner",
            "type" : "string"
          },
          "oauthToken" : {
            "title" : "OAuth Token",
            "description" : "OAuth token",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:github", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "github://event",
          "parameters" : {
            "repoName" : "{{repoName}}",
            "repoOwner" : "{{repoOwner}}",
            "oauthToken" : "{{oauthToken}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "GitHub Event Source",
      "description" : "Receive Events From a GitHub Repository.",
      "required" : [ "repoName", "repoOwner", "oauthToken" ],
      "properties" : {
        "repoName" : {
          "type" : "string",
          "title" : "Repository Name",
          "description" : "The GitHub Repository name"
        },
        "repoOwner" : {
          "type" : "string",
          "title" : "Repository Owner",
          "description" : "The repository owner"
        },
        "oauthToken" : {
          "type" : "string",
          "title" : "OAuth Token",
          "description" : "OAuth token",
          "format" : "password"
        }
      }
    }
  },
  "github-pullrequest-comment-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "github-pullrequest-comment-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOEMwIDExLjU0IDIuMjkgMTQuNTMgNS40NyAxNS41OUM1Ljg3IDE1LjY2IDYuMDIgMTUuNDIgNi4wMiAxNS4yMUM2LjAyIDE1LjAyIDYuMDEgMTQuMzkgNi4wMSAxMy43MkM0IDE0LjA5IDMuNDggMTMuMjMgMy4zMiAxMi43OEMzLjIzIDEyLjU1IDIuODQgMTEuODQgMi41IDExLjY1QzIuMjIgMTEuNSAxLjgyIDExLjEzIDIuNDkgMTEuMTJDMy4xMiAxMS4xMSAzLjU3IDExLjcgMy43MiAxMS45NEM0LjQ0IDEzLjE1IDUuNTkgMTIuODEgNi4wNSAxMi42QzYuMTIgMTIuMDggNi4zMyAxMS43MyA2LjU2IDExLjUzQzQuNzggMTEuMzMgMi45MiAxMC42NCAyLjkyIDcuNThDMi45MiA2LjcxIDMuMjMgNS45OSAzLjc0IDUuNDNDMy42NiA1LjIzIDMuMzggNC40MSAzLjgyIDMuMzFDMy44MiAzLjMxIDQuNDkgMy4xIDYuMDIgNC4xM0M2LjY2IDMuOTUgNy4zNCAzLjg2IDguMDIgMy44NkM4LjcgMy44NiA5LjM4IDMuOTUgMTAuMDIgNC4xM0MxMS41NSAzLjA5IDEyLjIyIDMuMzEgMTIuMjIgMy4zMUMxMi42NiA0LjQxIDEyLjM4IDUuMjMgMTIuMyA1LjQzQzEyLjgxIDUuOTkgMTMuMTIgNi43IDEzLjEyIDcuNThDMTMuMTIgMTAuNjUgMTEuMjUgMTEuMzMgOS40NyAxMS41M0M5Ljc2IDExLjc4IDEwLjAxIDEyLjI2IDEwLjAxIDEzLjAxQzEwLjAxIDE0LjA4IDEwIDE0Ljk0IDEwIDE1LjIxQzEwIDE1LjQyIDEwLjE1IDE1LjY3IDEwLjU1IDE1LjU5QzEzLjcxIDE0LjUzIDE2IDExLjUzIDE2IDhDMTYgMy41OCAxMi40MiAwIDggMFoiIHRyYW5zZm9ybT0ic2NhbGUoNjQpIiBmaWxsPSIjMUIxRjIzIi8+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "GitHub",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "GitHub Pull Request Comments Source",
        "description" : "Receive pull request Comments From GitHub.",
        "required" : [ "repoName", "repoOwner", "oauthToken" ],
        "type" : "object",
        "properties" : {
          "repoName" : {
            "title" : "Repository Name",
            "description" : "The GitHub Repository name",
            "type" : "string"
          },
          "repoOwner" : {
            "title" : "Repository Owner",
            "description" : "The repository owner",
            "type" : "string"
          },
          "oauthToken" : {
            "title" : "OAuth Token",
            "description" : "OAuth token",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:github", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "github://pullRequestComment",
          "parameters" : {
            "repoName" : "{{repoName}}",
            "repoOwner" : "{{repoOwner}}",
            "oauthToken" : "{{oauthToken}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "GitHub Pull Request Comments Source",
      "description" : "Receive pull request Comments From GitHub.",
      "required" : [ "repoName", "repoOwner", "oauthToken" ],
      "properties" : {
        "repoName" : {
          "type" : "string",
          "title" : "Repository Name",
          "description" : "The GitHub Repository name"
        },
        "repoOwner" : {
          "type" : "string",
          "title" : "Repository Owner",
          "description" : "The repository owner"
        },
        "oauthToken" : {
          "type" : "string",
          "title" : "OAuth Token",
          "description" : "OAuth token",
          "format" : "password"
        }
      }
    }
  },
  "github-pullrequest-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "github-pullrequest-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOEMwIDExLjU0IDIuMjkgMTQuNTMgNS40NyAxNS41OUM1Ljg3IDE1LjY2IDYuMDIgMTUuNDIgNi4wMiAxNS4yMUM2LjAyIDE1LjAyIDYuMDEgMTQuMzkgNi4wMSAxMy43MkM0IDE0LjA5IDMuNDggMTMuMjMgMy4zMiAxMi43OEMzLjIzIDEyLjU1IDIuODQgMTEuODQgMi41IDExLjY1QzIuMjIgMTEuNSAxLjgyIDExLjEzIDIuNDkgMTEuMTJDMy4xMiAxMS4xMSAzLjU3IDExLjcgMy43MiAxMS45NEM0LjQ0IDEzLjE1IDUuNTkgMTIuODEgNi4wNSAxMi42QzYuMTIgMTIuMDggNi4zMyAxMS43MyA2LjU2IDExLjUzQzQuNzggMTEuMzMgMi45MiAxMC42NCAyLjkyIDcuNThDMi45MiA2LjcxIDMuMjMgNS45OSAzLjc0IDUuNDNDMy42NiA1LjIzIDMuMzggNC40MSAzLjgyIDMuMzFDMy44MiAzLjMxIDQuNDkgMy4xIDYuMDIgNC4xM0M2LjY2IDMuOTUgNy4zNCAzLjg2IDguMDIgMy44NkM4LjcgMy44NiA5LjM4IDMuOTUgMTAuMDIgNC4xM0MxMS41NSAzLjA5IDEyLjIyIDMuMzEgMTIuMjIgMy4zMUMxMi42NiA0LjQxIDEyLjM4IDUuMjMgMTIuMyA1LjQzQzEyLjgxIDUuOTkgMTMuMTIgNi43IDEzLjEyIDcuNThDMTMuMTIgMTAuNjUgMTEuMjUgMTEuMzMgOS40NyAxMS41M0M5Ljc2IDExLjc4IDEwLjAxIDEyLjI2IDEwLjAxIDEzLjAxQzEwLjAxIDE0LjA4IDEwIDE0Ljk0IDEwIDE1LjIxQzEwIDE1LjQyIDEwLjE1IDE1LjY3IDEwLjU1IDE1LjU5QzEzLjcxIDE0LjUzIDE2IDExLjUzIDE2IDhDMTYgMy41OCAxMi40MiAwIDggMFoiIHRyYW5zZm9ybT0ic2NhbGUoNjQpIiBmaWxsPSIjMUIxRjIzIi8+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "GitHub",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "GitHub Pull Request Source",
        "description" : "Receive pull request From GitHub.",
        "required" : [ "repoName", "repoOwner", "oauthToken" ],
        "type" : "object",
        "properties" : {
          "repoName" : {
            "title" : "Repository Name",
            "description" : "The GitHub Repository name",
            "type" : "string"
          },
          "repoOwner" : {
            "title" : "Repository Owner",
            "description" : "The repository owner",
            "type" : "string"
          },
          "oauthToken" : {
            "title" : "OAuth Token",
            "description" : "OAuth token",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:github", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "github://pullRequest",
          "parameters" : {
            "repoName" : "{{repoName}}",
            "repoOwner" : "{{repoOwner}}",
            "oauthToken" : "{{oauthToken}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "GitHub Pull Request Source",
      "description" : "Receive pull request From GitHub.",
      "required" : [ "repoName", "repoOwner", "oauthToken" ],
      "properties" : {
        "repoName" : {
          "type" : "string",
          "title" : "Repository Name",
          "description" : "The GitHub Repository name"
        },
        "repoOwner" : {
          "type" : "string",
          "title" : "Repository Owner",
          "description" : "The repository owner"
        },
        "oauthToken" : {
          "type" : "string",
          "title" : "OAuth Token",
          "description" : "OAuth token",
          "format" : "password"
        }
      }
    }
  },
  "github-tag-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "github-tag-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOEMwIDExLjU0IDIuMjkgMTQuNTMgNS40NyAxNS41OUM1Ljg3IDE1LjY2IDYuMDIgMTUuNDIgNi4wMiAxNS4yMUM2LjAyIDE1LjAyIDYuMDEgMTQuMzkgNi4wMSAxMy43MkM0IDE0LjA5IDMuNDggMTMuMjMgMy4zMiAxMi43OEMzLjIzIDEyLjU1IDIuODQgMTEuODQgMi41IDExLjY1QzIuMjIgMTEuNSAxLjgyIDExLjEzIDIuNDkgMTEuMTJDMy4xMiAxMS4xMSAzLjU3IDExLjcgMy43MiAxMS45NEM0LjQ0IDEzLjE1IDUuNTkgMTIuODEgNi4wNSAxMi42QzYuMTIgMTIuMDggNi4zMyAxMS43MyA2LjU2IDExLjUzQzQuNzggMTEuMzMgMi45MiAxMC42NCAyLjkyIDcuNThDMi45MiA2LjcxIDMuMjMgNS45OSAzLjc0IDUuNDNDMy42NiA1LjIzIDMuMzggNC40MSAzLjgyIDMuMzFDMy44MiAzLjMxIDQuNDkgMy4xIDYuMDIgNC4xM0M2LjY2IDMuOTUgNy4zNCAzLjg2IDguMDIgMy44NkM4LjcgMy44NiA5LjM4IDMuOTUgMTAuMDIgNC4xM0MxMS41NSAzLjA5IDEyLjIyIDMuMzEgMTIuMjIgMy4zMUMxMi42NiA0LjQxIDEyLjM4IDUuMjMgMTIuMyA1LjQzQzEyLjgxIDUuOTkgMTMuMTIgNi43IDEzLjEyIDcuNThDMTMuMTIgMTAuNjUgMTEuMjUgMTEuMzMgOS40NyAxMS41M0M5Ljc2IDExLjc4IDEwLjAxIDEyLjI2IDEwLjAxIDEzLjAxQzEwLjAxIDE0LjA4IDEwIDE0Ljk0IDEwIDE1LjIxQzEwIDE1LjQyIDEwLjE1IDE1LjY3IDEwLjU1IDE1LjU5QzEzLjcxIDE0LjUzIDE2IDExLjUzIDE2IDhDMTYgMy41OCAxMi40MiAwIDggMFoiIHRyYW5zZm9ybT0ic2NhbGUoNjQpIiBmaWxsPSIjMUIxRjIzIi8+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "GitHub",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "GitHub Tag Source",
        "description" : "Receive Tags From a GitHub Repository.",
        "required" : [ "repoName", "repoOwner", "oauthToken" ],
        "type" : "object",
        "properties" : {
          "repoName" : {
            "title" : "Repository Name",
            "description" : "The GitHub Repository name",
            "type" : "string"
          },
          "repoOwner" : {
            "title" : "Repository Owner",
            "description" : "The repository owner",
            "type" : "string"
          },
          "oauthToken" : {
            "title" : "OAuth Token",
            "description" : "OAuth token",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:github", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "github://tag",
          "parameters" : {
            "repoName" : "{{repoName}}",
            "repoOwner" : "{{repoOwner}}",
            "oauthToken" : "{{oauthToken}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "GitHub Tag Source",
      "description" : "Receive Tags From a GitHub Repository.",
      "required" : [ "repoName", "repoOwner", "oauthToken" ],
      "properties" : {
        "repoName" : {
          "type" : "string",
          "title" : "Repository Name",
          "description" : "The GitHub Repository name"
        },
        "repoOwner" : {
          "type" : "string",
          "title" : "Repository Owner",
          "description" : "The repository owner"
        },
        "oauthToken" : {
          "type" : "string",
          "title" : "OAuth Token",
          "description" : "OAuth token",
          "format" : "password"
        }
      }
    }
  },
  "google-bigquery-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-bigquery-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI1MDAiIHdpZHRoPSIyNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgdmlld0JveD0iLTEuNjMzMjM1NDMzMzI4MjU2IDcuMDMyNjA5MzMwMzE1NjU2NSAxMzEuMjY1NzQ2ODI0MTY4NzYgMTE0LjYzNDM5MDY2OTY4NDM1IiB2ZXJzaW9uPSIxLjAiPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJhIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjY0IiB4Mj0iNjQiIHkxPSI3LjAzNCIgeTI9IjEyMC43ODkiPgogICAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzQzODdmZCIvPgogICAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ2ODNlYSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxwYXRoIGQ9Ik0yNy43OSAxMTUuMjE3TDEuNTQgNjkuNzQ5YTExLjQ5OSAxMS40OTkgMCAwIDEgMC0xMS40OTlsMjYuMjUtNDUuNDY3YTExLjUgMTEuNSAwIDAgMSA5Ljk2LTUuNzVoNTIuNWExMS41IDExLjUgMCAwIDEgOS45NTkgNS43NWwyNi4yNSA0NS40NjdhMTEuNDk5IDExLjQ5OSAwIDAgMSAwIDExLjVsLTI2LjI1IDQ1LjQ2N2ExMS41IDExLjUgMCAwIDEtOS45NTkgNS43NDloLTUyLjVhMTEuNDk5IDExLjQ5OSAwIDAgMS05Ljk2LTUuNzV6IgogICAgICAgICAgZmlsbD0idXJsKCNhKSIvPgogICAgPHBhdGgKICAgICAgICAgIGQ9Ik0xMTkuMjI5IDg2LjQ4TDgwLjYyNSA0Ny44NzQgNjQgNDMuNDI1bC0xNC45MzMgNS41NUw0My4zIDY0bDQuNjM3IDE2LjcyOSA0MC45MzggNDAuOTM4IDguNjg3LS4zODZ6IgogICAgICAgICAgb3BhY2l0eT0iLjA3Ii8+CiAgICA8ZyBmaWxsPSIjZmZmIj4KICAgICAgICA8cGF0aCBkPSJNNjQgNDAuODA0Yy0xMi44MSAwLTIzLjE5NSAxMC4zODUtMjMuMTk1IDIzLjE5NiAwIDEyLjgxIDEwLjM4NSAyMy4xOTUgMjMuMTk1IDIzLjE5NVM4Ny4xOTQgNzYuODEgODcuMTk0IDY0YzAtMTIuODExLTEwLjM4NS0yMy4xOTYtMjMuMTk0LTIzLjE5Nm0wIDQwLjc5NWMtOS43MiAwLTE3LjYtNy44OC0xNy42LTE3LjZTNTQuMjggNDYuNCA2NCA0Ni40IDgxLjYgNTQuMjggODEuNiA2NCA3My43MiA4MS42IDY0IDgxLjYiLz4KICAgICAgICA8cGF0aCBkPSJNNTIuOTkgNjMuMTA0djcuMjFhMTIuNzk0IDEyLjc5NCAwIDAgMCA0LjM4IDQuNDc1VjYzLjEwNHpNNjEuNjc1IDU3LjAyNnYxOS40MTFjLjc0NS4xMzcgMS41MDcuMjIgMi4yOS4yMi43MTQgMCAxLjQxLS4wNzUgMi4wOTMtLjE4OVY1Ny4wMjZ6TTcwLjc2NiA2Ni4xdjguNTYyYTEyLjc4NiAxMi43ODYgMCAwIDAgNC4zODItNC43di0zLjg2MXpNODAuNjkxIDc4LjI4N2wtMi40MDMgMi40MDVhMS4wODggMS4wODggMCAwIDAgMCAxLjUzN2w5LjExNSA5LjExMmExLjA4OCAxLjA4OCAwIDAgMCAxLjUzNyAwbDIuNDAzLTIuNDAyYTEuMDkyIDEuMDkyIDAgMCAwIDAtMS41MzZsLTkuMTE2LTkuMTE2YTEuMDkgMS4wOSAwIDAgMC0xLjUzNiAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Big Query",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Big Query Sink",
        "description" : "Send data to a Google Big Query table.\n\nThe data must be JSON format to represent an object or an array of objects.",
        "required" : [ "projectId", "dataset", "table", "serviceAccountKey" ],
        "type" : "object",
        "properties" : {
          "projectId" : {
            "title" : "Google Cloud Project Id",
            "description" : "The Google Cloud Project ID.",
            "type" : "string"
          },
          "dataset" : {
            "title" : "Big Query Dataset Id",
            "description" : "The Big Query Dataset ID.",
            "type" : "string"
          },
          "table" : {
            "title" : "Big Query Table Id",
            "description" : "The Big Query Table ID.",
            "type" : "string"
          },
          "serviceAccountKey" : {
            "title" : "Service Account Key",
            "description" : "The service account key to use as credentials for the BigQuery Service. You must encode this value in base64.",
            "type" : "binary",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:google-bigquery", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "google-bigquery:{{projectId}}:{{dataset}}:{{table}}",
              "parameters" : {
                "serviceAccountKey" : "base64:{{serviceAccountKey}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Big Query Sink",
      "description" : "Send data to a Google Big Query table.\n\nThe data must be JSON format to represent an object or an array of objects.",
      "required" : [ "projectId", "dataset", "table", "serviceAccountKey" ],
      "properties" : {
        "projectId" : {
          "type" : "string",
          "title" : "Google Cloud Project Id",
          "description" : "The Google Cloud Project ID."
        },
        "dataset" : {
          "type" : "string",
          "title" : "Big Query Dataset Id",
          "description" : "The Big Query Dataset ID."
        },
        "table" : {
          "type" : "string",
          "title" : "Big Query Table Id",
          "description" : "The Big Query Table ID."
        },
        "serviceAccountKey" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Service Account Key",
          "description" : "The service account key to use as credentials for the BigQuery Service. You must encode this value in base64."
        }
      }
    }
  },
  "google-calendar-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-calendar-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE4NiAzOCA3NiA3NiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI0NCA1NmgtNDB2NDBoNDBWNTZ6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTI0NCAxMTRsMTgtMThoLTE4djE4eiIvPjxwYXRoIGZpbGw9IiNGQkJDMDQiIGQ9Ik0yNjIgNTZoLTE4djQwaDE4VjU2eiIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNDQgOTZoLTQwdjE4aDQwVjk2eiIvPjxwYXRoIGZpbGw9IiMxODgwMzgiIGQ9Ik0xODYgOTZ2MTJjMCAzLjMxNSAyLjY4NSA2IDYgNmgxMlY5NmgtMTh6Ii8+PHBhdGggZmlsbD0iIzE5NjdEMiIgZD0iTTI2MiA1NlY0NGMwLTMuMzE1LTIuNjg1LTYtNi02aC0xMnYxOGgxOHoiLz48cGF0aCBmaWxsPSIjNDI4NUY0IiBkPSJNMjQ0IDM4aC01MmMtMy4zMTUgMCAtNiAyLjY4NS02IDZ2NTJoMThWNTZoNDBWMzh6Ii8+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTIxMi4yMDUgODcuMDNjLTEuNDk1LTEuMDEtMi41My0yLjQ4NS0zLjA5NS00LjQzNWwzLjQ3LTEuNDNjLjMxNSAxLjIuODY1IDIuMTMgMS42NSAyLjc5Ljc4LjY2IDEuNzMuOTg1IDIuODQuOTg1IDEuMTM1IDAgMi4xMS0uMzQ1IDIuOTI1LTEuMDM1czEuMjI1LTEuNTcgMS4yMjUtMi42MzVjMC0xLjA5LS40My0xLjk4LTEuMjktMi42Ny0uODYtLjY5LTEuOTQtMS4wMzUtMy4yMy0xLjAzNWgtMi4wMDVWNzQuMTNoMS44YzEuMTEgMCAyLjA0NS0uMyAyLjgwNS0uOS43Ni0uNiAxLjE0LTEuNDIgMS4xNC0yLjQ2NSAwIC0uOTMtLjM0LTEuNjctMS4wMi0yLjIyNS0uNjgtLjU1NS0xLjU0LS44MzUtMi41ODUtLjgzNS0xLjAyIDAgLTEuODMuMjctMi40My44MTVhNC43ODQgNC43ODQgMCAwIDAgLTEuMzEgMi4wMDVsLTMuNDM1LTEuNDNjLjQ1NS0xLjI5IDEuMjktMi40MyAyLjUxNS0zLjQxNSAxLjIyNS0uOTg1IDIuNzktMS40OCA0LjY5LTEuNDggMS40MDUgMCAyLjY3LjI3IDMuNzkuODE1IDEuMTIuNTQ1IDIgMS4zIDIuNjM1IDIuMjYuNjM1Ljk2NS45NSAyLjA0NS45NSAzLjI0NSAwIDEuMjI1LS4yOTUgMi4yNi0uODg1IDMuMTEtLjU5Ljg1LTEuMzE1IDEuNS0yLjE3NSAxLjk1NXYuMjA1YTYuNjA1IDYuNjA1IDAgMCAxIDIuNzkgMi4xNzVjLjcyNS45NzUgMS4wOSAyLjE0IDEuMDkgMy41IDAgMS4zNi0uMzQ1IDIuNTc1LTEuMDM1IDMuNjRzLTEuNjQ1IDEuOTA1LTIuODU1IDIuNTE1Yy0xLjIxNS42MS0yLjU4LjkyLTQuMDk1LjkyLTEuNzU1LjAwNS0zLjM3NS0uNS00Ljg3LTEuNTF6TTIzMy41MiA2OS44MWwtMy44MSAyLjc1NS0xLjkwNS0yLjg5IDYuODM1LTQuOTNoMi42MlY4OGgtMy43NFY2OS44MXoiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Calendar",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Calendar Source",
        "description" : "Receive event data from Google Calendar.",
        "required" : [ "index", "calendarId", "clientId", "accessToken", "refreshToken", "clientSecret", "applicationName" ],
        "type" : "object",
        "properties" : {
          "index" : {
            "title" : "Index",
            "description" : "An index for the Google Calendar endpoint.",
            "type" : "string"
          },
          "calendarId" : {
            "title" : "Calendar ID",
            "description" : "The calendar ID to use as the source of event data.",
            "type" : "string"
          },
          "clientId" : {
            "title" : "Client Id",
            "description" : "The Client ID of the Google Calendar application.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Client Secret",
            "description" : "The Client secret of the Google Calendar application.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "The OAuth 2 access token for the Google Calendar application. This token typically expires after an hour. For long term usage, set the `refreshToken` property.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "refreshToken" : {
            "title" : "Refresh Token",
            "description" : "The OAuth 2 refresh token for the Google Calendar application. The Google Calendar component can obtain a new `accessToken` whenever the current one expires. Set this value for long term usage.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll.",
            "type" : "integer",
            "default" : 500
          },
          "applicationName" : {
            "title" : "Application name",
            "description" : "The Google Calendar application name.",
            "type" : "string"
          },
          "syncFlow" : {
            "title" : "Sync Flow",
            "description" : "Specifies to sync events for incremental synchronization.",
            "type" : "boolean",
            "default" : false
          },
          "consumeFromNow" : {
            "title" : "Consume from now",
            "description" : "Specfies to consume events in the calendar from now on.",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:google-calendar", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "google-calendar-stream://{{index}}",
          "parameters" : {
            "clientId" : "{{clientId}}",
            "calendarId" : "{{calendarId}}",
            "accessToken" : "{{accessToken}}",
            "refreshToken" : "{{refreshToken}}",
            "clientSecret" : "{{clientSecret}}",
            "delay" : "{{delay}}",
            "applicationName" : "{{applicationName}}",
            "syncFlow" : "{{syncFlow}}",
            "consumeFromNow" : "{{consumeFromNow}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Calendar Source",
      "description" : "Receive event data from Google Calendar.",
      "required" : [ "index", "calendarId", "clientId", "accessToken", "refreshToken", "clientSecret", "applicationName" ],
      "properties" : {
        "index" : {
          "type" : "string",
          "title" : "Index",
          "description" : "An index for the Google Calendar endpoint."
        },
        "calendarId" : {
          "type" : "string",
          "title" : "Calendar ID",
          "description" : "The calendar ID to use as the source of event data."
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client Id",
          "description" : "The Client ID of the Google Calendar application.",
          "format" : "password"
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Client Secret",
          "description" : "The Client secret of the Google Calendar application.",
          "format" : "password"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "The OAuth 2 access token for the Google Calendar application. This token typically expires after an hour. For long term usage, set the `refreshToken` property.",
          "format" : "password"
        },
        "refreshToken" : {
          "type" : "string",
          "title" : "Refresh Token",
          "description" : "The OAuth 2 refresh token for the Google Calendar application. The Google Calendar component can obtain a new `accessToken` whenever the current one expires. Set this value for long term usage.",
          "format" : "password"
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll.",
          "default" : 500
        },
        "applicationName" : {
          "type" : "string",
          "title" : "Application name",
          "description" : "The Google Calendar application name."
        },
        "syncFlow" : {
          "type" : "boolean",
          "title" : "Sync Flow",
          "description" : "Specifies to sync events for incremental synchronization.",
          "default" : false
        },
        "consumeFromNow" : {
          "type" : "boolean",
          "title" : "Consume from now",
          "description" : "Specfies to consume events in the calendar from now on.",
          "default" : true
        }
      }
    }
  },
  "google-functions-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-functions-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjMxcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjMxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0yNTIuOTI1ODU0LDEwMy4yMzcwNzcgTDIwMC4zMjczNDQsMTEuNzU5NjY3IEMxOTYuMzAyNTc5LDQuNjIyMjU3MDMgMTg4LjgwMDU0LDAuMTQ4NDI0NzI2IDE4MC42MDc5MDIsMCBMNzUuMzkwODgxNCwwIEM2Ny4xOTcwOTEyLDAuMTQ0Mzg1NDggNTkuNjkzMTk4NCw0LjYxOTMyMzYzIDU1LjY3MTQzOTgsMTEuNzU5NjY3IEwzLjA1MjkyOTg1LDEwMi45OTcwODMgQy0xLjAxNzY0MzI4LDExMC4wODAzNzMgLTEuMDE3NjQzMjgsMTE4Ljc5MzE0NiAzLjA1MjkyOTg1LDEyNS44NzY0MzYgTDU1LjY1MTQ0MDQsMjE3Ljg3MzgzIEM1OS42MzE5NzU1LDIyNS4xMTI3MDcgNjcuMTE1OTA1MiwyMjkuNzM1MTM0IDc1LjM3MDg4MiwyMzAuMDUzNDg2IEwxODAuNTg3OTAzLDIzMC4wNTM0ODYgQzE4OC44NDI0NDIsMjI5Ljc3MDE0NCAxOTYuMzM5ODA5LDIyNS4xNjY4OTYgMjAwLjMyNzM0NCwyMTcuOTMzODI5IEwyNTIuOTI1ODU0LDEyNi40NTY0MTkgQzI1Ny4wMjQ3MTUsMTE5LjI1OTMxMSAyNTcuMDI0NzE1LDExMC40MzQxODUgMjUyLjkyNTg1NCwxMDMuMjM3MDc3IFoiIGlkPSJwYXRoLTEiPjwvcGF0aD4KICAgIDwvZGVmcz4KCQk8Zz4KCQkJCTxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KCQkJCQkJPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KCQkJCTwvbWFzaz4KCQkJCTxnIGZpbGwtcnVsZT0ibm9uemVybyI+PC9nPgoJCQkJPHBhdGggZD0iTTI1Mi45MjU4NTQsMTAzLjIzNzA3NyBMMjAwLjMyNzM0NCwxMS43NTk2NjcgQzE5Ni4zMDI1NzksNC42MjIyNTcwMyAxODguODAwNTQsMC4xNDg0MjQ3MjYgMTgwLjYwNzkwMiwwIEw3NS4zOTA4ODE0LDAgQzY3LjE5NzA5MTIsMC4xNDQzODU0OCA1OS42OTMxOTg0LDQuNjE5MzIzNjMgNTUuNjcxNDM5OCwxMS43NTk2NjcgTDMuMDUyOTI5ODUsMTAyLjk5NzA4MyBDLTEuMDE3NjQzMjgsMTEwLjA4MDM3MyAtMS4wMTc2NDMyOCwxMTguNzkzMTQ2IDMuMDUyOTI5ODUsMTI1Ljg3NjQzNiBMNTUuNjUxNDQwNCwyMTcuODczODMgQzU5LjYzMTk3NTUsMjI1LjExMjcwNyA2Ny4xMTU5MDUyLDIyOS43MzUxMzQgNzUuMzcwODgyLDIzMC4wNTM0ODYgTDE4MC41ODc5MDMsMjMwLjA1MzQ4NiBDMTg4Ljg0MjQ0MiwyMjkuNzcwMTQ0IDE5Ni4zMzk4MDksMjI1LjE2Njg5NiAyMDAuMzI3MzQ0LDIxNy45MzM4MjkgTDI1Mi45MjU4NTQsMTI2LjQ1NjQxOSBDMjU3LjAyNDcxNSwxMTkuMjU5MzExIDI1Ny4wMjQ3MTUsMTEwLjQzNDE4NSAyNTIuOTI1ODU0LDEwMy4yMzcwNzcgWiIgZmlsbD0iIzQyODVGNCIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODcuMTY3NjA1LDg0LjczMTYwMyBMMTc5LjkxNTcxMSw5Mi42NDA5NDg1IEwxODEuNTQ5Mzc5LDEzOS42Mzg3OTcgTDE3NC42NzYwMTksMTQ5LjYwMDE5IEwxNzAuNjkxNDYyLDE0NS42MTU2MzMgTDE3NC4zNTcyNTQsMTQ1LjYxNTYzMyBMMTc0LjM1NzI1NCwxMjkuMzE4Nzk1IEwxNTYuNzY1NDM1LDExMS43MjY5NzYgTDE0My40Njg3NDYsMTE4LjM3MzA0NyBMOTkuMzY3ODkyOSw3NC4xNzI1MjcxIEw3OC4xMzAyMDQ1LDg1LjU0ODQzNzEgTDc1LjUwMDM5NywxMDcuNTgzMDM3IEw4Mi45NTE1MTg0LDE0Ny45MDY3NTMgTDkzLjc0OTY2NzcsMTU4LjQ4NTc1MiBMODguODI4NzM5OSwxNjUuNDc4NjQ5IEwxNTMuMDc2MDk4LDIzMS4yMzY4MTYgTDE3OS45MTU3MTEsMjMxLjIzNjgxNiBDMTg4LjEzODYxNCwyMzAuOTU0NTYgMTk3LjA0NDI3NiwyMjUuNTY1Njk4IDIwMS4wMTY1MjgsMjE4LjM2MDM1MiBMMjQ0Ljc5NTMzNiwxNDIuMzU2OTM0IEwxODcuMTY3NjA1LDg0LjczMTYwMyBaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjAuMDcwMDAwMDAwMyIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+CgkJCQk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgcG9pbnRzPSI4OC44Mjg3Mzk5IDE2NS40Nzg2NDkgOTkuMzY3ODkyOSAxNTQuOTM5NDk2IDgzLjU2OTEyNDcgMTM5LjE0MDcyOCA4My41NjkxMjQ3IDg5Ljk3MTI5NTMgOTkuMzY3ODkyOSA3NC4xNzI1MjcxIDg4LjgyODczOTkgNjMuNjMzMzc0MSA2Ny43MzA1MTEgODQuNzMxNjAzIDY3LjczMDUxMSAxNDQuMzgwNDIiPjwvcG9seWdvbj4KCQkJCTxjaXJjbGUgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiIGN4PSIxMDUuMTQ1NSIgY3k9IjExNC41NTYwMTIiIHI9IjcuNDcxMDQ0MjMiPjwvY2lyY2xlPgoJCQkJPGNpcmNsZSBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgY3g9IjEyNy40OTg4NjUiIGN5PSIxMTQuNTU2MDEyIiByPSI3LjQ3MTA0NDIzIj48L2NpcmNsZT4KCQkJCTxjaXJjbGUgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiIGN4PSIxNDkuODUyMjI5IiBjeT0iMTE0LjU1NjAxMiIgcj0iNy40NzEwNDQyMyI+PC9jaXJjbGU+CgkJCQk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgcG9pbnRzPSIxNjYuMDY5Mzc2IDYzLjYzMzM3NDEgMTU1LjUzMDIyMyA3NC4xNzI1MjcxIDE3MS4zMjg5OTEgODkuOTcxMjk1MyAxNzEuMzI4OTkxIDEzOS4xNDA3MjggMTU1LjUzMDIyMyAxNTQuOTM5NDk2IDE2Ni4wNjkzNzYgMTY1LjQ3ODY0OSAxODcuMTY3NjA1IDE0NC4zODA0MiAxODcuMTY3NjA1IDg0LjczMTYwMyI+PC9wb2x5Z29uPgoJCTwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Functions",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Functions Sink",
        "description" : "Send data to Google Functions.",
        "required" : [ "projectId", "functionName", "region", "serviceAccountKey" ],
        "type" : "object",
        "properties" : {
          "projectId" : {
            "title" : "Project Id",
            "description" : "The Google Cloud Functions Project ID.",
            "type" : "string"
          },
          "region" : {
            "title" : "Region",
            "description" : "The region where Google Cloud Functions has been deployed.",
            "type" : "string"
          },
          "functionName" : {
            "title" : "Function Name",
            "description" : "The Function name.",
            "type" : "string"
          },
          "serviceAccountKey" : {
            "title" : "Service Account Key",
            "description" : "The path to the service account key file that provides credentials for the Google Cloud Functions platform. You must encode this value in base64.",
            "type" : "binary",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:google-functions", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "google-functions://{{functionName}}",
              "parameters" : {
                "serviceAccountKey" : "base64:{{serviceAccountKey}}",
                "project" : "{{projectId}}",
                "location" : "{{region}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Functions Sink",
      "description" : "Send data to Google Functions.",
      "required" : [ "projectId", "functionName", "region", "serviceAccountKey" ],
      "properties" : {
        "projectId" : {
          "type" : "string",
          "title" : "Project Id",
          "description" : "The Google Cloud Functions Project ID."
        },
        "region" : {
          "type" : "string",
          "title" : "Region",
          "description" : "The region where Google Cloud Functions has been deployed."
        },
        "functionName" : {
          "type" : "string",
          "title" : "Function Name",
          "description" : "The Function name."
        },
        "serviceAccountKey" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Service Account Key",
          "description" : "The path to the service account key file that provides credentials for the Google Cloud Functions platform. You must encode this value in base64."
        }
      }
    }
  },
  "google-mail-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-mail-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjUyIDQyIDg4IDY2Ij4KPHBhdGggZmlsbD0iIzQyODVmNCIgZD0iTTU4IDEwOGgxNFY3NEw1MiA1OXY0M2MwIDMuMzIgMi42OSA2IDYgNiIvPgo8cGF0aCBmaWxsPSIjMzRhODUzIiBkPSJNMTIwIDEwOGgxNGMzLjMyIDAgNi0yLjY5IDYtNlY1OWwtMjAgMTUiLz4KPHBhdGggZmlsbD0iI2ZiYmMwNCIgZD0iTTEyMCA0OHYyNmwyMC0xNXYtOGMwLTcuNDItOC40Ny0xMS42NS0xNC40LTcuMiIvPgo8cGF0aCBmaWxsPSIjZWE0MzM1IiBkPSJNNzIgNzRWNDhsMjQgMTggMjQtMTh2MjZMOTYgOTIiLz4KPHBhdGggZmlsbD0iI2M1MjIxZiIgZD0iTTUyIDUxdjhsMjAgMTVWNDhsLTUuNi00LjJjLTUuOTQtNC40NS0xNC40LS4yMi0xNC40IDcuMiIvPgo8L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Mail",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Mail Source",
        "description" : "Receive data from Google Mail.",
        "required" : [ "index", "clientId", "accessToken", "refreshToken", "clientSecret", "applicationName" ],
        "type" : "object",
        "properties" : {
          "index" : {
            "title" : "Index",
            "description" : "An index for the google mail endpoint",
            "type" : "string"
          },
          "clientId" : {
            "title" : "Client ID",
            "description" : "Client ID of the gmail application",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Client Secret",
            "description" : "Client Secret of the gmail application",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "OAuth 2 access token for google mail application. This typically expires after an hour so refreshToken is recommended for long term usage.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "refreshToken" : {
            "title" : "Refresh Token",
            "description" : "OAuth 2 refresh token for google mail application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          },
          "applicationName" : {
            "title" : "Application name",
            "description" : "Google Mail application name",
            "type" : "string"
          },
          "markAsRead" : {
            "title" : "Mark as Read",
            "description" : "Mark the message as read once it has been consumed",
            "type" : "boolean",
            "default" : true
          },
          "labels" : {
            "title" : "Gmail Labels",
            "description" : "Comma separated list of labels to take into account",
            "type" : "string",
            "example" : "inbox"
          },
          "query" : {
            "title" : "Gmail Query",
            "description" : "The query to execute on gmail box",
            "type" : "string",
            "example" : "is:unread -category:(promotions OR social)",
            "default" : "is:unread"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:google-mail" ],
      "template" : {
        "from" : {
          "uri" : "google-mail-stream://{{index}}",
          "parameters" : {
            "clientId" : "{{clientId}}",
            "accessToken" : "{{accessToken}}",
            "refreshToken" : "{{refreshToken}}",
            "clientSecret" : "{{clientSecret}}",
            "delay" : "{{delay}}",
            "applicationName" : "{{applicationName}}",
            "markAsRead" : "{{markAsRead}}",
            "labels" : "{{labels}}",
            "query" : "{{query}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Mail Source",
      "description" : "Receive data from Google Mail.",
      "required" : [ "index", "clientId", "accessToken", "refreshToken", "clientSecret", "applicationName" ],
      "properties" : {
        "index" : {
          "type" : "string",
          "title" : "Index",
          "description" : "An index for the google mail endpoint"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client ID",
          "description" : "Client ID of the gmail application",
          "format" : "password"
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Client Secret",
          "description" : "Client Secret of the gmail application",
          "format" : "password"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "OAuth 2 access token for google mail application. This typically expires after an hour so refreshToken is recommended for long term usage.",
          "format" : "password"
        },
        "refreshToken" : {
          "type" : "string",
          "title" : "Refresh Token",
          "description" : "OAuth 2 refresh token for google mail application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
          "format" : "password"
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        },
        "applicationName" : {
          "type" : "string",
          "title" : "Application name",
          "description" : "Google Mail application name"
        },
        "markAsRead" : {
          "type" : "boolean",
          "title" : "Mark as Read",
          "description" : "Mark the message as read once it has been consumed",
          "default" : true
        },
        "labels" : {
          "type" : "string",
          "title" : "Gmail Labels",
          "description" : "Comma separated list of labels to take into account"
        },
        "query" : {
          "type" : "string",
          "title" : "Gmail Query",
          "description" : "The query to execute on gmail box",
          "default" : "is:unread"
        }
      }
    }
  },
  "google-pubsub-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-pubsub-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9Ii0xLjYzMzIzNTQzIDcuMDMyNjA5MzMgMTMxLjI2NTc0NjgyIDExNC40MzkzOTA2NyIgd2lkdGg9IjI1MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2NCIgeDI9IjY0IiB5MT0iNy4wMzQiIHkyPSIxMjAuNzg5Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0Mzg3ZmQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0NjgzZWEiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Im0yNy43OSAxMTUuMjE3LTI2LjI1LTQ1LjQ2OGExMS40OTkgMTEuNDk5IDAgMCAxIDAtMTEuNDk5bDI2LjI1LTQ1LjQ2N2ExMS41IDExLjUgMCAwIDEgOS45Ni01Ljc1aDUyLjVhMTEuNSAxMS41IDAgMCAxIDkuOTU5IDUuNzVsMjYuMjUgNDUuNDY3YTExLjQ5OSAxMS40OTkgMCAwIDEgMCAxMS41bC0yNi4yNSA0NS40NjdhMTEuNSAxMS41IDAgMCAxIC05Ljk1OSA1Ljc0OWgtNTIuNWExMS40OTkgMTEuNDk5IDAgMCAxIC05Ljk2LTUuNzV6IiBmaWxsPSJ1cmwoI2EpIi8+PHBhdGggZD0ibTEyMS4wNTQgNzkuNTgtMzEuODM2LTMxLjgzNC01Ljg1OCAxLjIxNC0xNC42MDMtMTQuNjAyLTQuNjczIDguNzM5LTIuNTM0IDEwLjEwOSA0LjI4OSA0LjI5LTguMjM4IDEuNjgyLTExLjI5Ni0xMS4yOTYtNy42NyA3LjM3MyAxNC4xMjMgMTQuMTI1LTE0Ljk3IDExLjkgNDAuMTkzIDQwLjE5MiAxOS41ODEtLjE5eiIgb3BhY2l0eT0iLjA3Ii8+PGcgZmlsbD0iI2ZmZiI+PGNpcmNsZSBjeD0iODUuNTE5IiBjeT0iNTEuNTc2IiByPSI1LjMyNCIvPjxjaXJjbGUgY3g9IjQyLjQ4IiBjeT0iNTEuNTc2IiByPSI1LjMyNCIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iODguODQ5IiByPSI1LjMyNSIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iNjQiIHI9IjguNjAyIi8+PGNpcmNsZSBjeD0iNDIuNDgiIGN5PSI3Ni40MjQiIHI9IjYuNzU4Ii8+PGNpcmNsZSBjeD0iODUuNTE5IiBjeT0iNzYuNDI0IiByPSI2Ljc1OCIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iMzkuMTUxIiByPSI2Ljc1OSIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Pubsub",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Pubsub Sink",
        "description" : "Send messages to Google Cloud Pub/Sub.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.",
        "required" : [ "projectId", "destinationName" ],
        "type" : "object",
        "properties" : {
          "projectId" : {
            "title" : "Project Id",
            "description" : "The Google Cloud Pub/Sub Project ID.",
            "type" : "string"
          },
          "destinationName" : {
            "title" : "Destination Name",
            "description" : "The destination name.",
            "type" : "string"
          },
          "serviceAccountKey" : {
            "title" : "Service Account Key",
            "description" : "The service account key to use as credentials for the Pub/Sub publisher/subscriber. You must encode this value in base64.",
            "type" : "binary",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:google-pubsub", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "google-pubsub://{{projectId}}:{{destinationName}}",
              "parameters" : {
                "serviceAccountKey" : "base64:{{?serviceAccountKey}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Pubsub Sink",
      "description" : "Send messages to Google Cloud Pub/Sub.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.",
      "required" : [ "projectId", "destinationName" ],
      "properties" : {
        "projectId" : {
          "type" : "string",
          "title" : "Project Id",
          "description" : "The Google Cloud Pub/Sub Project ID."
        },
        "destinationName" : {
          "type" : "string",
          "title" : "Destination Name",
          "description" : "The destination name."
        },
        "serviceAccountKey" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Service Account Key",
          "description" : "The service account key to use as credentials for the Pub/Sub publisher/subscriber. You must encode this value in base64."
        }
      }
    }
  },
  "google-pubsub-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-pubsub-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9Ii0xLjYzMzIzNTQzIDcuMDMyNjA5MzMgMTMxLjI2NTc0NjgyIDExNC40MzkzOTA2NyIgd2lkdGg9IjI1MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2NCIgeDI9IjY0IiB5MT0iNy4wMzQiIHkyPSIxMjAuNzg5Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0Mzg3ZmQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0NjgzZWEiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Im0yNy43OSAxMTUuMjE3LTI2LjI1LTQ1LjQ2OGExMS40OTkgMTEuNDk5IDAgMCAxIDAtMTEuNDk5bDI2LjI1LTQ1LjQ2N2ExMS41IDExLjUgMCAwIDEgOS45Ni01Ljc1aDUyLjVhMTEuNSAxMS41IDAgMCAxIDkuOTU5IDUuNzVsMjYuMjUgNDUuNDY3YTExLjQ5OSAxMS40OTkgMCAwIDEgMCAxMS41bC0yNi4yNSA0NS40NjdhMTEuNSAxMS41IDAgMCAxIC05Ljk1OSA1Ljc0OWgtNTIuNWExMS40OTkgMTEuNDk5IDAgMCAxIC05Ljk2LTUuNzV6IiBmaWxsPSJ1cmwoI2EpIi8+PHBhdGggZD0ibTEyMS4wNTQgNzkuNTgtMzEuODM2LTMxLjgzNC01Ljg1OCAxLjIxNC0xNC42MDMtMTQuNjAyLTQuNjczIDguNzM5LTIuNTM0IDEwLjEwOSA0LjI4OSA0LjI5LTguMjM4IDEuNjgyLTExLjI5Ni0xMS4yOTYtNy42NyA3LjM3MyAxNC4xMjMgMTQuMTI1LTE0Ljk3IDExLjkgNDAuMTkzIDQwLjE5MiAxOS41ODEtLjE5eiIgb3BhY2l0eT0iLjA3Ii8+PGcgZmlsbD0iI2ZmZiI+PGNpcmNsZSBjeD0iODUuNTE5IiBjeT0iNTEuNTc2IiByPSI1LjMyNCIvPjxjaXJjbGUgY3g9IjQyLjQ4IiBjeT0iNTEuNTc2IiByPSI1LjMyNCIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iODguODQ5IiByPSI1LjMyNSIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iNjQiIHI9IjguNjAyIi8+PGNpcmNsZSBjeD0iNDIuNDgiIGN5PSI3Ni40MjQiIHI9IjYuNzU4Ii8+PGNpcmNsZSBjeD0iODUuNTE5IiBjeT0iNzYuNDI0IiByPSI2Ljc1OCIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iMzkuMTUxIiByPSI2Ljc1OSIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Pubsub",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Pubsub Source",
        "description" : "Consume messages from Google Cloud Pub/Sub.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.",
        "required" : [ "projectId", "subscriptionName" ],
        "type" : "object",
        "properties" : {
          "projectId" : {
            "title" : "Project Id",
            "description" : "The Google Cloud Pub/Sub Project ID.",
            "type" : "string"
          },
          "subscriptionName" : {
            "title" : "Subscription Name",
            "description" : "The subscription name.",
            "type" : "string"
          },
          "serviceAccountKey" : {
            "title" : "Service Account Key",
            "description" : "The service account key to use as credentials for the Pub/Sub publisher/subscriber. You must encode this value in base64.",
            "type" : "binary",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "synchronousPull" : {
            "title" : "Synchronous Pull",
            "description" : "Specifies to synchronously pull batches of messages.",
            "type" : "boolean",
            "default" : false
          },
          "maxMessagesPerPoll" : {
            "title" : "Max Messages Per Poll",
            "description" : "The maximum number of messages to receive from the server in a single API call.",
            "type" : "integer",
            "default" : 1
          },
          "concurrentConsumers" : {
            "title" : "Concurrent Consumers",
            "description" : "The number of parallel streams to consume from the subscription.",
            "type" : "integer",
            "default" : 1
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:google-pubsub", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "google-pubsub://{{projectId}}:{{subscriptionName}}",
          "parameters" : {
            "serviceAccountKey" : "base64:{{?serviceAccountKey}}",
            "synchronousPull" : "{{synchronousPull}}",
            "maxMessagesPerPoll" : "{{maxMessagesPerPoll}}",
            "concurrentConsumers" : "{{concurrentConsumers}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Pubsub Source",
      "description" : "Consume messages from Google Cloud Pub/Sub.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.",
      "required" : [ "projectId", "subscriptionName" ],
      "properties" : {
        "projectId" : {
          "type" : "string",
          "title" : "Project Id",
          "description" : "The Google Cloud Pub/Sub Project ID."
        },
        "subscriptionName" : {
          "type" : "string",
          "title" : "Subscription Name",
          "description" : "The subscription name."
        },
        "serviceAccountKey" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Service Account Key",
          "description" : "The service account key to use as credentials for the Pub/Sub publisher/subscriber. You must encode this value in base64."
        },
        "synchronousPull" : {
          "type" : "boolean",
          "title" : "Synchronous Pull",
          "description" : "Specifies to synchronously pull batches of messages.",
          "default" : false
        },
        "maxMessagesPerPoll" : {
          "type" : "integer",
          "title" : "Max Messages Per Poll",
          "description" : "The maximum number of messages to receive from the server in a single API call.",
          "default" : 1
        },
        "concurrentConsumers" : {
          "type" : "integer",
          "title" : "Concurrent Consumers",
          "description" : "The number of parallel streams to consume from the subscription.",
          "default" : 1
        }
      }
    }
  },
  "google-sheets-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-sheets-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2NCA4OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjQgODg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMERDNTRDO30KCS5zdDF7ZmlsbDojMDg5NjJEO30KCS5zdDJ7ZmlsbDojRkRGRkZGO30KPC9zdHlsZT4KPGcgaWQ9IkxheWVyXzQiPgoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU4LDg4SDZjLTMuMywwLTYtMi43LTYtNlY2YzAtMy4zLDIuNy02LDYtNmgzNmwyMiwyMnY2MEM2NCw4NS4zLDYxLjMsODgsNTgsODh6Ii8+Cgk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDIsMGwyMiwyMkg0MlYweiIvPgoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyLDM0LjV2MjhoNDB2LTI4SDEyeiBNMTcsMzkuNWgxMi41VjQ2SDE3VjM5LjV6IE0xNyw1MWgxMi41djYuNUgxN1Y1MXogTTQ3LDU3LjVIMzQuNVY1MUg0N1Y1Ny41eiBNNDcsNDYKCQlIMzQuNXYtNi41SDQ3VjQ2eiIvPgo8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Sheets",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Sheets Sink",
        "description" : "Send data to Google Sheets and update/append values on a spreadsheet.",
        "required" : [ "spreadsheetId", "clientId", "accessToken", "refreshToken", "clientSecret" ],
        "type" : "object",
        "properties" : {
          "spreadsheetId" : {
            "title" : "Spreadsheet ID",
            "description" : "The Spreadsheet ID to be used as identifier",
            "type" : "string"
          },
          "clientId" : {
            "title" : "Client Id",
            "description" : "Client ID of the sheets application",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Client Secret",
            "description" : "Client Secret of the sheets application",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "OAuth 2 access token for google sheets application. This typically expires after an hour so refreshToken is recommended for long term usage.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "refreshToken" : {
            "title" : "Refresh Token",
            "description" : "OAuth 2 refresh token for google sheets application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "applicationName" : {
            "title" : "Application Name",
            "description" : "Google Sheets application name",
            "type" : "string"
          },
          "operation" : {
            "title" : "Operation Mode",
            "description" : "Operation to execute (update or append)",
            "type" : "string",
            "enum" : [ "update", "append" ],
            "default" : "append",
            "example" : "append"
          },
          "range" : {
            "title" : "Cells Range",
            "description" : "The cell range of rows and columns to write data to.",
            "type" : "string",
            "example" : "A1:B3"
          },
          "majorDimension" : {
            "title" : "Major Dimension",
            "description" : "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
            "type" : "string",
            "enum" : [ "COLUMNS", "ROWS" ],
            "default" : "ROWS",
            "example" : "ROWS"
          },
          "columnNames" : {
            "title" : "Column Names",
            "description" : "Optional custom column names that map to cell coordinates based on their position.",
            "type" : "string",
            "default" : "A"
          },
          "valueInputOption" : {
            "title" : "Value Input Option",
            "description" : "Controls how the entered values should be be interpreted when adding them.",
            "type" : "string",
            "enum" : [ "USER_ENTERED", "RAW" ],
            "default" : "USER_ENTERED",
            "example" : "USER_ENTERED"
          }
        }
      },
      "dataTypes" : {
        "in" : {
          "default" : "json-struct",
          "types" : {
            "json-struct" : {
              "format" : "google-sheets:application-x-struct",
              "description" : "Special Json representation of Google Sheets ValueRange object with just row and column values as a generic JsonNode.\nEach cell value is represented by a Json property named after the respective row (A-Z) or column (1-n) depending on the given majorDimension.\nCustom column names are supported in order to use custom property names instead of generic row (A-Z) or column (1-n) coordinates.\nThe given Json struct is ready to be transformed into a proper Google Sheets ValueRange object that can be used in the update/append values operation.\nThe data type uses a set of header entries to determine properties such as spreadsheetId, the target cell range, the majorDimension and so on.",
              "headers" : {
                "CamelGoogleSheets.range" : {
                  "title" : "Range",
                  "description" : "Cells range to write data to.",
                  "default" : "A:A",
                  "type" : "string"
                },
                "CamelGoogleSheets.spreadsheetId" : {
                  "title" : "Spreadsheet id",
                  "description" : "The Spreadsheet ID to be used as identifier.",
                  "type" : "string"
                },
                "CamelGoogleSheets.majorDimension" : {
                  "title" : "Major dimension",
                  "description" : "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
                  "default" : "ROWS",
                  "type" : "string"
                },
                "CamelGoogleSheets.columnNames" : {
                  "title" : "Column Names",
                  "description" : "Optional custom column names that map to cell coordinates based on their position.",
                  "default" : "A",
                  "type" : "string"
                },
                "CamelGoogleSheets.valueInputOption" : {
                  "title" : "Value Input Option",
                  "description" : "Controls how the entered values should be be interpreted when adding them.",
                  "default" : "USER_ENTERED",
                  "type" : "string"
                }
              },
              "mediaType" : "application/json"
            }
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:jackson", "camel:kamelet", "camel:google-sheets" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setHeader" : {
              "name" : "CamelGoogleSheets.spreadsheetId",
              "simple" : "{{spreadsheetId}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.range",
              "simple" : "{{?range}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.majorDimension",
              "simple" : "{{?majorDimension}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.columnNames",
              "simple" : "{{?columnNames}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.valueInputOption",
              "simple" : "{{?valueInputOption}}"
            }
          }, {
            "transform" : {
              "toType" : "google-sheets:application-x-struct"
            }
          }, {
            "to" : {
              "uri" : "google-sheets:data/{{operation}}",
              "parameters" : {
                "spreadsheetId" : "{{spreadsheetId}}",
                "clientId" : "{{clientId}}",
                "accessToken" : "{{accessToken}}",
                "refreshToken" : "{{refreshToken}}",
                "clientSecret" : "{{clientSecret}}",
                "applicationName" : "{{?applicationName}}",
                "range" : "{{?range}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Sheets Sink",
      "description" : "Send data to Google Sheets and update/append values on a spreadsheet.",
      "required" : [ "spreadsheetId", "clientId", "accessToken", "refreshToken", "clientSecret" ],
      "properties" : {
        "spreadsheetId" : {
          "type" : "string",
          "title" : "Spreadsheet ID",
          "description" : "The Spreadsheet ID to be used as identifier"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client Id",
          "description" : "Client ID of the sheets application",
          "format" : "password"
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Client Secret",
          "description" : "Client Secret of the sheets application",
          "format" : "password"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "OAuth 2 access token for google sheets application. This typically expires after an hour so refreshToken is recommended for long term usage.",
          "format" : "password"
        },
        "refreshToken" : {
          "type" : "string",
          "title" : "Refresh Token",
          "description" : "OAuth 2 refresh token for google sheets application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
          "format" : "password"
        },
        "applicationName" : {
          "type" : "string",
          "title" : "Application Name",
          "description" : "Google Sheets application name"
        },
        "operation" : {
          "type" : "string",
          "title" : "Operation Mode",
          "description" : "Operation to execute (update or append)",
          "enum" : [ "update", "append" ],
          "default" : "append"
        },
        "range" : {
          "type" : "string",
          "title" : "Cells Range",
          "description" : "The cell range of rows and columns to write data to."
        },
        "majorDimension" : {
          "type" : "string",
          "title" : "Major Dimension",
          "description" : "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
          "enum" : [ "COLUMNS", "ROWS" ],
          "default" : "ROWS"
        },
        "columnNames" : {
          "type" : "string",
          "title" : "Column Names",
          "description" : "Optional custom column names that map to cell coordinates based on their position.",
          "default" : "A"
        },
        "valueInputOption" : {
          "type" : "string",
          "title" : "Value Input Option",
          "description" : "Controls how the entered values should be be interpreted when adding them.",
          "enum" : [ "USER_ENTERED", "RAW" ],
          "default" : "USER_ENTERED"
        }
      }
    }
  },
  "google-sheets-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-sheets-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2NCA4OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjQgODg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMERDNTRDO30KCS5zdDF7ZmlsbDojMDg5NjJEO30KCS5zdDJ7ZmlsbDojRkRGRkZGO30KPC9zdHlsZT4KPGcgaWQ9IkxheWVyXzQiPgoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU4LDg4SDZjLTMuMywwLTYtMi43LTYtNlY2YzAtMy4zLDIuNy02LDYtNmgzNmwyMiwyMnY2MEM2NCw4NS4zLDYxLjMsODgsNTgsODh6Ii8+Cgk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDIsMGwyMiwyMkg0MlYweiIvPgoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyLDM0LjV2MjhoNDB2LTI4SDEyeiBNMTcsMzkuNWgxMi41VjQ2SDE3VjM5LjV6IE0xNyw1MWgxMi41djYuNUgxN1Y1MXogTTQ3LDU3LjVIMzQuNVY1MUg0N1Y1Ny41eiBNNDcsNDYKCQlIMzQuNXYtNi41SDQ3VjQ2eiIvPgo8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Sheets",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Sheets Source",
        "description" : "Receive data from Google Sheets.",
        "required" : [ "spreadsheetId", "clientId", "accessToken", "refreshToken", "clientSecret" ],
        "type" : "object",
        "properties" : {
          "spreadsheetId" : {
            "title" : "Spreadsheet ID",
            "description" : "The Spreadsheet ID to be used as events source",
            "type" : "string"
          },
          "clientId" : {
            "title" : "Client Id",
            "description" : "Client ID of the sheets application",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Client Secret",
            "description" : "Client Secret of the sheets application",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "OAuth 2 access token for google sheets application. This typically expires after an hour so refreshToken is recommended for long term usage.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "refreshToken" : {
            "title" : "Refresh Token",
            "description" : "OAuth 2 refresh token for google sheets application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          },
          "repeatCount" : {
            "title" : "Repeat Count",
            "description" : "Specifies a maximum limit of number of fires",
            "type" : "integer"
          },
          "applicationName" : {
            "title" : "Application name",
            "description" : "Google Sheets application name",
            "type" : "string"
          },
          "splitResults" : {
            "title" : "Split Results",
            "description" : "True if value range result should be split into rows or columns to process each of them individually.",
            "type" : "boolean",
            "default" : true
          },
          "range" : {
            "title" : "Cells Range",
            "description" : "The range of rows and columns in a sheet to get data from.",
            "type" : "string",
            "example" : "A1:B3"
          },
          "majorDimension" : {
            "title" : "Major Dimension",
            "description" : "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
            "type" : "string",
            "enum" : [ "COLUMNS", "ROWS" ],
            "default" : "ROWS",
            "example" : "ROWS"
          },
          "columnNames" : {
            "title" : "Column Names",
            "description" : "Optional custom column names that map to cell coordinates based on their position.",
            "type" : "string",
            "default" : "A"
          }
        }
      },
      "dataTypes" : {
        "out" : {
          "default" : "json",
          "headers" : {
            "CamelGoogleSheets.range" : {
              "title" : "Range",
              "description" : "Cells range to write data to.",
              "default" : "A:A",
              "type" : "string"
            },
            "CamelGoogleSheets.spreadsheetId" : {
              "title" : "Spreadsheet id",
              "description" : "The Spreadsheet ID to be used as identifier.",
              "type" : "string"
            },
            "CamelGoogleSheets.majorDimension" : {
              "title" : "Major dimension",
              "description" : "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
              "default" : "ROWS",
              "type" : "string"
            },
            "CamelGoogleSheets.columnNames" : {
              "title" : "Column Names",
              "description" : "Optional custom column names that map to cell coordinates based on their position.",
              "default" : "A",
              "type" : "string"
            },
            "CamelGoogleSheets.splitResults" : {
              "title" : "Split Results",
              "description" : "True if value range result should be split into rows or columns to process each of them individually.",
              "default" : "true",
              "type" : "boolean"
            }
          },
          "types" : {
            "json" : {
              "format" : "application-json",
              "description" : "Json representation of a GoogleSheets ValueRange object that holds all values for the given cell range.\nOr Json array of values for a single row/column in the range when 'splitResults' mode is enabled.",
              "mediaType" : "application/json"
            },
            "json-struct" : {
              "format" : "google-sheets:application-x-struct",
              "description" : "Special Json representation of Google Sheets ValueRange object with just row and column values as a generic JsonNode.\nEach cell value is represented by a Json property named after the respective row (A-Z) or column (1-n) depending on the given majorDimension.\nCustom column names are supported in order to use custom property names instead of generic row (A-Z) or column (1-n) coordinates.\nThe produced Json struct is ready to be transformed back into a proper Google Sheets ValueRange object that can be used in an update/append values operation.",
              "mediaType" : "application/json"
            }
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:kamelet", "camel:google-sheets" ],
      "template" : {
        "from" : {
          "uri" : "google-sheets-stream://{{spreadsheetId}}",
          "parameters" : {
            "clientId" : "{{clientId}}",
            "accessToken" : "{{accessToken}}",
            "refreshToken" : "{{refreshToken}}",
            "clientSecret" : "{{clientSecret}}",
            "delay" : "{{delay}}",
            "applicationName" : "{{?applicationName}}",
            "splitResults" : "{{splitResults}}",
            "range" : "{{?range}}",
            "repeatCount" : "{{?repeatCount}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.spreadsheetId",
              "simple" : "{{spreadsheetId}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.range",
              "simple" : "{{?range}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.majorDimension",
              "simple" : "{{?majorDimension}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.columnNames",
              "simple" : "{{?columnNames}}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelGoogleSheets.splitResults",
              "simple" : "{{?splitResults}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Sheets Source",
      "description" : "Receive data from Google Sheets.",
      "required" : [ "spreadsheetId", "clientId", "accessToken", "refreshToken", "clientSecret" ],
      "properties" : {
        "spreadsheetId" : {
          "type" : "string",
          "title" : "Spreadsheet ID",
          "description" : "The Spreadsheet ID to be used as events source"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client Id",
          "description" : "Client ID of the sheets application",
          "format" : "password"
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Client Secret",
          "description" : "Client Secret of the sheets application",
          "format" : "password"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "OAuth 2 access token for google sheets application. This typically expires after an hour so refreshToken is recommended for long term usage.",
          "format" : "password"
        },
        "refreshToken" : {
          "type" : "string",
          "title" : "Refresh Token",
          "description" : "OAuth 2 refresh token for google sheets application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
          "format" : "password"
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        },
        "repeatCount" : {
          "type" : "integer",
          "title" : "Repeat Count",
          "description" : "Specifies a maximum limit of number of fires"
        },
        "applicationName" : {
          "type" : "string",
          "title" : "Application name",
          "description" : "Google Sheets application name"
        },
        "splitResults" : {
          "type" : "boolean",
          "title" : "Split Results",
          "description" : "True if value range result should be split into rows or columns to process each of them individually.",
          "default" : true
        },
        "range" : {
          "type" : "string",
          "title" : "Cells Range",
          "description" : "The range of rows and columns in a sheet to get data from."
        },
        "majorDimension" : {
          "type" : "string",
          "title" : "Major Dimension",
          "description" : "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
          "enum" : [ "COLUMNS", "ROWS" ],
          "default" : "ROWS"
        },
        "columnNames" : {
          "type" : "string",
          "title" : "Column Names",
          "description" : "Optional custom column names that map to cell coordinates based on their position.",
          "default" : "A"
        }
      }
    }
  },
  "google-storage-cdc-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-storage-cdc-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9Ii0xLjYzMzIzNTQzIDcuMDMyNjA5MzMgMTMxLjI2NTc0NjgyIDExNC40MzkzOTA2NyIgd2lkdGg9IjI1MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2NCIgeDI9IjY0IiB5MT0iNy4wMzQiIHkyPSIxMjAuNzg5Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0Mzg3ZmQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0NjgzZWEiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Im0yNy43OSAxMTUuMjE3LTI2LjI1LTQ1LjQ2OGExMS40OTkgMTEuNDk5IDAgMCAxIDAtMTEuNDk5bDI2LjI1LTQ1LjQ2N2ExMS41IDExLjUgMCAwIDEgOS45Ni01Ljc1aDUyLjVhMTEuNSAxMS41IDAgMCAxIDkuOTU5IDUuNzVsMjYuMjUgNDUuNDY3YTExLjQ5OSAxMS40OTkgMCAwIDEgMCAxMS41bC0yNi4yNSA0NS40NjdhMTEuNSAxMS41IDAgMCAxIC05Ljk1OSA1Ljc0OWgtNTIuNWExMS40OTkgMTEuNDk5IDAgMCAxIC05Ljk2LTUuNzV6IiBmaWxsPSJ1cmwoI2EpIi8+PHBhdGggZD0ibTEyMS4wNTQgNzkuNTgtMzEuODM2LTMxLjgzNC01Ljg1OCAxLjIxNC0xNC42MDMtMTQuNjAyLTQuNjczIDguNzM5LTIuNTM0IDEwLjEwOSA0LjI4OSA0LjI5LTguMjM4IDEuNjgyLTExLjI5Ni0xMS4yOTYtNy42NyA3LjM3MyAxNC4xMjMgMTQuMTI1LTE0Ljk3IDExLjkgNDAuMTkzIDQwLjE5MiAxOS41ODEtLjE5eiIgb3BhY2l0eT0iLjA3Ii8+PGcgZmlsbD0iI2ZmZiI+PGNpcmNsZSBjeD0iODUuNTE5IiBjeT0iNTEuNTc2IiByPSI1LjMyNCIvPjxjaXJjbGUgY3g9IjQyLjQ4IiBjeT0iNTEuNTc2IiByPSI1LjMyNCIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iODguODQ5IiByPSI1LjMyNSIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iNjQiIHI9IjguNjAyIi8+PGNpcmNsZSBjeD0iNDIuNDgiIGN5PSI3Ni40MjQiIHI9IjYuNzU4Ii8+PGNpcmNsZSBjeD0iODUuNTE5IiBjeT0iNzYuNDI0IiByPSI2Ljc1OCIvPjxjaXJjbGUgY3g9IjY0IiBjeT0iMzkuMTUxIiByPSI2Ljc1OSIvPjwvZz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Storage",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Storage CDC Source",
        "description" : "Receive data from Google Pubsub reporting events related to a Google Storage bucket.\n\nService account key is the basic method for authenticating to the Google Pubsub and Google Storage.\n\nTo use this Kamelet you'll need to set up Events notification for your Google Storage Bucket.\n\nYou must encode the `serviceAccountKey` property before you pass it as a parameter.",
        "required" : [ "projectId", "subscriptionName", "serviceAccountKey", "bucketNameOrArn" ],
        "type" : "object",
        "properties" : {
          "projectId" : {
            "title" : "Project Id",
            "description" : "The Google Cloud Pub/Sub Project ID.",
            "type" : "string"
          },
          "subscriptionName" : {
            "title" : "Subscription Name",
            "description" : "The subscription name.",
            "type" : "string"
          },
          "serviceAccountKey" : {
            "title" : "Service Account Key",
            "description" : "The service account key to use as credentials for the Pub/Sub publisher/subscriber. You must encode this value in base64.",
            "type" : "binary",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "synchronousPull" : {
            "title" : "Synchronous Pull",
            "description" : "Specifies to synchronously pull batches of messages.",
            "type" : "boolean",
            "default" : false
          },
          "maxMessagesPerPoll" : {
            "title" : "Max Messages Per Poll",
            "description" : "The maximum number of messages to receive from the server in a single API call.",
            "type" : "integer",
            "default" : 1
          },
          "concurrentConsumers" : {
            "title" : "Concurrent Consumers",
            "description" : "The number of parallel streams to consume from the subscription.",
            "type" : "integer",
            "default" : 1
          },
          "bucketNameOrArn" : {
            "title" : "Bucket Name Or ARN",
            "description" : "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "getObject" : {
            "title" : "Get Object in Bucket",
            "description" : "If getObject is enabled, then the file created in the Bucket will be get and returned as body, if not only the event will be returned as body.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:google-pubsub", "camel:google-storage", "camel:jackson", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "google-pubsub://{{projectId}}:{{subscriptionName}}",
          "parameters" : {
            "serviceAccountKey" : "base64:{{serviceAccountKey}}",
            "synchronousPull" : "{{synchronousPull}}",
            "maxMessagesPerPoll" : "{{maxMessagesPerPoll}}",
            "concurrentConsumers" : "{{concurrentConsumers}}"
          },
          "steps" : [ {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${properties:getObject:true}",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "google-storage-event-type",
                    "simple" : "${headers.CamelGooglePubsubAttributes[eventType]}"
                  }
                }, {
                  "setProperty" : {
                    "name" : "google-storage-object-id",
                    "simple" : "${headers.CamelGooglePubsubAttributes[objectId]}"
                  }
                }, {
                  "setProperty" : {
                    "name" : "google-storage-bucket-id",
                    "simple" : "${headers.CamelGooglePubsubAttributes[bucketId]}"
                  }
                }, {
                  "choice" : {
                    "when" : [ {
                      "simple" : "${exchangeProperty.google-storage-event-type} == \"OBJECT_FINALIZE\" && ${exchangeProperty.google-storage-bucket-id} == \"{{bucketNameOrArn}}\"",
                      "steps" : [ {
                        "toD" : "google-storage:{{bucketNameOrArn}}?serviceAccountKey=base64:{{serviceAccountKey}}&operation=getObject&objectName=${exchangeProperty.google-storage-object-id}"
                      } ]
                    } ]
                  }
                } ]
              } ]
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Storage CDC Source",
      "description" : "Receive data from Google Pubsub reporting events related to a Google Storage bucket.\n\nService account key is the basic method for authenticating to the Google Pubsub and Google Storage.\n\nTo use this Kamelet you'll need to set up Events notification for your Google Storage Bucket.\n\nYou must encode the `serviceAccountKey` property before you pass it as a parameter.",
      "required" : [ "projectId", "subscriptionName", "serviceAccountKey", "bucketNameOrArn" ],
      "properties" : {
        "projectId" : {
          "type" : "string",
          "title" : "Project Id",
          "description" : "The Google Cloud Pub/Sub Project ID."
        },
        "subscriptionName" : {
          "type" : "string",
          "title" : "Subscription Name",
          "description" : "The subscription name."
        },
        "serviceAccountKey" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Service Account Key",
          "description" : "The service account key to use as credentials for the Pub/Sub publisher/subscriber. You must encode this value in base64."
        },
        "synchronousPull" : {
          "type" : "boolean",
          "title" : "Synchronous Pull",
          "description" : "Specifies to synchronously pull batches of messages.",
          "default" : false
        },
        "maxMessagesPerPoll" : {
          "type" : "integer",
          "title" : "Max Messages Per Poll",
          "description" : "The maximum number of messages to receive from the server in a single API call.",
          "default" : 1
        },
        "concurrentConsumers" : {
          "type" : "integer",
          "title" : "Concurrent Consumers",
          "description" : "The number of parallel streams to consume from the subscription.",
          "default" : 1
        },
        "bucketNameOrArn" : {
          "type" : "string",
          "title" : "Bucket Name Or ARN",
          "description" : "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN)."
        },
        "getObject" : {
          "type" : "boolean",
          "title" : "Get Object in Bucket",
          "description" : "If getObject is enabled, then the file created in the Bucket will be get and returned as body, if not only the event will be returned as body.",
          "default" : false
        }
      }
    }
  },
  "google-storage-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-storage-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBoZWlnaHQ9IjgwMCIgd2lkdGg9IjEyMDAiIHZpZXdCb3g9Ii0xOS4yMDAxNSAtMjguNDgzIDE2Ni40MDEzIDE3MC44OTgiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGxpbmVhckdyYWRpZW50IHkyPSIxMjAuNzg5IiB4Mj0iNjQiIHkxPSI3LjAzNCIgeDE9IjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzQzODdmZCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ2ODNlYSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0iTTI3Ljc5IDExNS4yMTdMMS41NCA2OS43NDlhMTEuNDk5IDExLjQ5OSAwIDAxMC0xMS40OTlsMjYuMjUtNDUuNDY3YTExLjUgMTEuNSAwIDAxOS45Ni01Ljc1aDUyLjVhMTEuNSAxMS41IDAgMDE5Ljk1OSA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS41IDExLjUgMCAwMS05Ljk1OSA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk2LTUuNzV6IiBmaWxsPSJ1cmwoI2EpIi8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGRlZnM+PHBhdGggZD0iTTI3Ljc5MSAxMTUuMjE3TDEuNTQxIDY5Ljc0OWExMS40OTkgMTEuNDk5IDAgMDEwLTExLjQ5OWwyNi4yNS00NS40NjdhMTEuNDk5IDExLjQ5OSAwIDAxOS45NTktNS43NWg1Mi41YTExLjUgMTEuNSAwIDAxOS45NiA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS40OTkgMTEuNDk5IDAgMDEtOS45NiA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk1OS01Ljc1eiIgaWQ9ImIiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJjIj48dXNlIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiIHhsaW5rOmhyZWY9IiNiIiBvdmVyZmxvdz0idmlzaWJsZSIvPjwvY2xpcFBhdGg+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2MpIiBvcGFjaXR5PSIuMDciIGQ9Ik00OS4zMTMgNTMuODc1bC03LjAxIDYuOTkgNS45NTcgNS45NTgtNS44OTggMTAuNDc2IDQ0LjYzNSA0NC42MzYgMTAuODE2LjAwMkwxMTguOTM2IDg0IDg1LjQ4OSA1MC41NXoiLz48L2c+PHBhdGggZD0iTTg0LjcgNDMuMjM2SDQzLjI2NGMtLjY2NyAwLTEuMjEyLjU0Ni0xLjIxMiAxLjIxNHY4LjU2NmMwIC42NjYuNTQ2IDEuMjEyIDEuMjEyIDEuMjEySDg0LjdjLjY2NyAwIDEuMjEzLS41NDYgMS4yMTMtMS4yMTJ2LTguNTY4YzAtLjY2Ni0uNTQ1LTEuMjEzLTEuMjEyLTEuMjEzbS02LjQxNiA3Ljk3NmEyLjQ4NCAyLjQ4NCAwIDAxLTIuNDc3LTIuNDggMi40NzUgMi40NzUgMCAwMTIuNDc3LTIuNDc3YzEuMzcgMCAyLjQ4IDEuMTAzIDIuNDggMi40NzdhMi40OCAyLjQ4IDAgMDEtMi40OCAyLjQ4bTYuNDE1IDguNDkxbC00MS40MzYuMDAyYy0uNjY3IDAtMS4yMTIuNTQ2LTEuMjEyIDEuMjE0djguNTY1YzAgLjY2Ni41NDYgMS4yMTMgMS4yMTIgMS4yMTNIODQuN2MuNjY3IDAgMS4yMTMtLjU0NyAxLjIxMy0xLjIxM3YtOC41NjdjMC0uNjY2LS41NDUtMS4yMTQtMS4yMTItMS4yMTRtLTYuNDE2IDcuOTc2YTIuNDgzIDIuNDgzIDAgMDEtMi40NzctMi40OCAyLjQ3NSAyLjQ3NSAwIDAxMi40NzctMi40NzcgMi40OCAyLjQ4IDAgMTEwIDQuOTU2IiBmaWxsPSIjZmZmIi8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Storage",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Storage Sink",
        "description" : "Upload objects to Google Cloud Storage.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
        "required" : [ "bucketNameOrArn" ],
        "type" : "object",
        "properties" : {
          "bucketNameOrArn" : {
            "title" : "Bucket Name Or ARN",
            "description" : "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "serviceAccountKey" : {
            "title" : "Service Account Key",
            "description" : "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64.",
            "type" : "binary",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specifies to automatically create the Google Cloud Storage bucket.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:google-storage", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelGoogleCloudStorageObjectName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelGoogleCloudStorageObjectName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelGoogleCloudStorageObjectName",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "to" : {
              "uri" : "google-storage://{{bucketNameOrArn}}",
              "parameters" : {
                "autoCreateBucket" : "{{autoCreateBucket}}",
                "serviceAccountKey" : "base64:{{?serviceAccountKey}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Storage Sink",
      "description" : "Upload objects to Google Cloud Storage.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload. If you do set property in the header, the Kamelet uses the exchange ID as filename.",
      "required" : [ "bucketNameOrArn" ],
      "properties" : {
        "bucketNameOrArn" : {
          "type" : "string",
          "title" : "Bucket Name Or ARN",
          "description" : "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN)."
        },
        "serviceAccountKey" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Service Account Key",
          "description" : "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64."
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specifies to automatically create the Google Cloud Storage bucket.",
          "default" : false
        }
      }
    }
  },
  "google-storage-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "google-storage-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBoZWlnaHQ9IjgwMCIgd2lkdGg9IjEyMDAiIHZpZXdCb3g9Ii0xOS4yMDAxNSAtMjguNDgzIDE2Ni40MDEzIDE3MC44OTgiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGxpbmVhckdyYWRpZW50IHkyPSIxMjAuNzg5IiB4Mj0iNjQiIHkxPSI3LjAzNCIgeDE9IjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzQzODdmZCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ2ODNlYSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0iTTI3Ljc5IDExNS4yMTdMMS41NCA2OS43NDlhMTEuNDk5IDExLjQ5OSAwIDAxMC0xMS40OTlsMjYuMjUtNDUuNDY3YTExLjUgMTEuNSAwIDAxOS45Ni01Ljc1aDUyLjVhMTEuNSAxMS41IDAgMDE5Ljk1OSA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS41IDExLjUgMCAwMS05Ljk1OSA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk2LTUuNzV6IiBmaWxsPSJ1cmwoI2EpIi8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGRlZnM+PHBhdGggZD0iTTI3Ljc5MSAxMTUuMjE3TDEuNTQxIDY5Ljc0OWExMS40OTkgMTEuNDk5IDAgMDEwLTExLjQ5OWwyNi4yNS00NS40NjdhMTEuNDk5IDExLjQ5OSAwIDAxOS45NTktNS43NWg1Mi41YTExLjUgMTEuNSAwIDAxOS45NiA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS40OTkgMTEuNDk5IDAgMDEtOS45NiA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk1OS01Ljc1eiIgaWQ9ImIiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJjIj48dXNlIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiIHhsaW5rOmhyZWY9IiNiIiBvdmVyZmxvdz0idmlzaWJsZSIvPjwvY2xpcFBhdGg+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2MpIiBvcGFjaXR5PSIuMDciIGQ9Ik00OS4zMTMgNTMuODc1bC03LjAxIDYuOTkgNS45NTcgNS45NTgtNS44OTggMTAuNDc2IDQ0LjYzNSA0NC42MzYgMTAuODE2LjAwMkwxMTguOTM2IDg0IDg1LjQ4OSA1MC41NXoiLz48L2c+PHBhdGggZD0iTTg0LjcgNDMuMjM2SDQzLjI2NGMtLjY2NyAwLTEuMjEyLjU0Ni0xLjIxMiAxLjIxNHY4LjU2NmMwIC42NjYuNTQ2IDEuMjEyIDEuMjEyIDEuMjEySDg0LjdjLjY2NyAwIDEuMjEzLS41NDYgMS4yMTMtMS4yMTJ2LTguNTY4YzAtLjY2Ni0uNTQ1LTEuMjEzLTEuMjEyLTEuMjEzbS02LjQxNiA3Ljk3NmEyLjQ4NCAyLjQ4NCAwIDAxLTIuNDc3LTIuNDggMi40NzUgMi40NzUgMCAwMTIuNDc3LTIuNDc3YzEuMzcgMCAyLjQ4IDEuMTAzIDIuNDggMi40NzdhMi40OCAyLjQ4IDAgMDEtMi40OCAyLjQ4bTYuNDE1IDguNDkxbC00MS40MzYuMDAyYy0uNjY3IDAtMS4yMTIuNTQ2LTEuMjEyIDEuMjE0djguNTY1YzAgLjY2Ni41NDYgMS4yMTMgMS4yMTIgMS4yMTNIODQuN2MuNjY3IDAgMS4yMTMtLjU0NyAxLjIxMy0xLjIxM3YtOC41NjdjMC0uNjY2LS41NDUtMS4yMTQtMS4yMTItMS4yMTRtLTYuNDE2IDcuOTc2YTIuNDgzIDIuNDgzIDAgMDEtMi40NzctMi40OCAyLjQ3NSAyLjQ3NSAwIDAxMi40NzctMi40NzcgMi40OCAyLjQ4IDAgMTEwIDQuOTU2IiBmaWxsPSIjZmZmIi8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Google Storage",
        "camel.apache.org/kamelet.namespace" : "GCP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Google Storage Source",
        "description" : "Consume objects from Google Cloud Storage.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.",
        "required" : [ "bucketNameOrArn" ],
        "type" : "object",
        "properties" : {
          "bucketNameOrArn" : {
            "title" : "Bucket Name Or ARN",
            "description" : "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN).",
            "type" : "string"
          },
          "serviceAccountKey" : {
            "title" : "Service Account Key",
            "description" : "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64.",
            "type" : "binary",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Objects",
            "description" : "Specifies to delete objects after consuming them.",
            "type" : "boolean",
            "default" : true
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specifies to automatically create the Google Cloud Storage bucket.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dataTypes" : {
        "out" : {
          "default" : "binary",
          "headers" : {
            "CamelGoogleCloudStorageBucketName" : {
              "title" : "Google Cloud Storage Bucket Name",
              "description" : "The bucket name which has been used to retrieve objects",
              "type" : "string"
            },
            "CamelGoogleCloudStorageObjectName" : {
              "title" : "Google Cloud Storage Object Name",
              "description" : "The object name under which the retrieved object is stored",
              "type" : "string"
            },
            "CamelGoogleCloudStorageContentType" : {
              "title" : "Content Type",
              "description" : "The content type of the retrieved object.",
              "default" : "application/octet-stream",
              "type" : "string"
            },
            "CamelGoogleCloudStorageETag" : {
              "title" : "ETag Value",
              "description" : "The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864.\nIs the generation number of the object for which you are retrieving information.",
              "type" : "string"
            }
          },
          "types" : {
            "binary" : {
              "format" : "application-octet-stream",
              "description" : "Default binary representation of the Google Storage Cloud object retrieved from the bucket.",
              "mediaType" : "application/octet-stream"
            },
            "cloudevents" : {
              "format" : "aws2-s3:application-cloudevents",
              "description" : "Output data type represents Google Storage download to response as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with\nrespective data from the S3 bucket and its derived object.",
              "headers" : {
                "CamelCloudEventID" : {
                  "title" : "CloudEvent ID",
                  "description" : "The Camel exchange id set as event id",
                  "type" : "string"
                },
                "CamelCloudEventType" : {
                  "title" : "CloudEvent Type",
                  "description" : "The event type",
                  "default" : "org.apache.camel.event.google.storage.downloadTo",
                  "type" : "string"
                },
                "CamelCloudEventSource" : {
                  "title" : "CloudEvent Source",
                  "description" : "The event source. By default, the Google Cloud Storage bucket name with prefix \"google.storage.bucket.\".",
                  "type" : "string"
                },
                "CamelCloudEventSubject" : {
                  "title" : "CloudEvent Subject",
                  "description" : "The event subject. Usually the Google Cloud Storage object name.",
                  "type" : "string"
                },
                "CamelCloudEventTime" : {
                  "title" : "CloudEvent Time",
                  "description" : "The exchange creation timestamp as event time.",
                  "type" : "string"
                }
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:google-storage", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "google-storage://{{bucketNameOrArn}}",
          "parameters" : {
            "autoCreateBucket" : "{{autoCreateBucket}}",
            "serviceAccountKey" : "base64:{{?serviceAccountKey}}",
            "deleteAfterRead" : "{{deleteAfterRead}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Google Storage Source",
      "description" : "Consume objects from Google Cloud Storage.\n\nIf you specify the `serviceAccountKey` property, you must base64 encode it before you pass it as a parameter.",
      "required" : [ "bucketNameOrArn" ],
      "properties" : {
        "bucketNameOrArn" : {
          "type" : "string",
          "title" : "Bucket Name Or ARN",
          "description" : "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN)."
        },
        "serviceAccountKey" : {
          "type" : "string",
          "$comment" : "type:binary",
          "title" : "Service Account Key",
          "description" : "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64."
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Objects",
          "description" : "Specifies to delete objects after consuming them.",
          "default" : true
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specifies to automatically create the Google Cloud Storage bucket.",
          "default" : false
        }
      }
    }
  },
  "graphql-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "graphql-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjAiCmhlaWdodD0iNDIwIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiPgo8cGF0aCBzdHJva2Utd2lkdGg9IjI2IgpkPSJNMjA5LDE1YTE5NSwxOTUgMCAxLDAgMiwweiIvPgo8cGF0aCBzdHJva2Utd2lkdGg9IjE4IgpkPSJtMjEwLDE1djM5MG0xOTUtMTk1SDE1TTU5LDkwYTI2MCwyNjAgMCAwLDAgMzAyLDAgbTAsMjQwIGEyNjAsMjYwIDAgMCwwLTMwMiwwTTE5NSwyMGEyNTAsMjUwIDAgMCwwIDAsMzgyIG0zMCwwIGEyNTAsMjUwIDAgMCwwIDAtMzgyIi8+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Graphql",
        "camel.apache.org/kamelet.namespace" : "Graphql"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "GraphQL Sink",
        "description" : "Forward data to a GraphQL endpoint.",
        "required" : [ "url" ],
        "type" : "object",
        "properties" : {
          "url" : {
            "title" : "GraphQL Server URL",
            "description" : "The URL to which you want to send data.",
            "type" : "string",
            "example" : "http://example.com/graphql",
            "pattern" : "^(http|https)://.*"
          },
          "accessToken" : {
            "title" : "GraphQL Access Token",
            "description" : "The access Token to use to access GraphQL server",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:graphql", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "graphql://{{url}}",
              "parameters" : {
                "accessToken" : "{{?accessToken}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "GraphQL Sink",
      "description" : "Forward data to a GraphQL endpoint.",
      "required" : [ "url" ],
      "properties" : {
        "url" : {
          "type" : "string",
          "title" : "GraphQL Server URL",
          "description" : "The URL to which you want to send data."
        },
        "accessToken" : {
          "type" : "string",
          "title" : "GraphQL Access Token",
          "description" : "The access Token to use to access GraphQL server",
          "format" : "password"
        }
      }
    }
  },
  "has-header-filter-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "has-header-filter-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "EIP"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Has Header Filter Action",
        "description" : "Filter message based on the presence of one header",
        "required" : [ "name" ],
        "properties" : {
          "name" : {
            "title" : "Header Name",
            "description" : "The header name to evaluate. The header name must be passed by the source Kamelet. For Knative only, the name of the header requires a CloudEvent (ce-) prefix.",
            "type" : "string",
            "example" : "headerName"
          },
          "value" : {
            "title" : "Header Value",
            "description" : "An optional header value to compare the header to",
            "type" : "string",
            "example" : "headerValue"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setProperty" : {
              "name" : "hasHeaderFilterActionValue",
              "constant" : "{{value:}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty[hasHeaderFilterActionValue]} != ''",
                "steps" : [ {
                  "filter" : {
                    "simple" : "${header[{{name}}]} != ${exchangeProperty[hasHeaderFilterActionValue]}",
                    "steps" : [ {
                      "stop" : { }
                    } ]
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "filter" : {
                    "simple" : "${header[{{name}}]} == null",
                    "steps" : [ {
                      "stop" : { }
                    } ]
                  }
                } ]
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Has Header Filter Action",
      "description" : "Filter message based on the presence of one header",
      "required" : [ "name" ],
      "properties" : {
        "name" : {
          "type" : "string",
          "title" : "Header Name",
          "description" : "The header name to evaluate. The header name must be passed by the source Kamelet. For Knative only, the name of the header requires a CloudEvent (ce-) prefix."
        },
        "value" : {
          "type" : "string",
          "title" : "Header Value",
          "description" : "An optional header value to compare the header to"
        }
      }
    }
  },
  "header-matches-filter-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "header-matches-filter-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "EIP"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Header Matches Filter Action",
        "description" : "Filter based on header value compared to regex",
        "required" : [ "regex" ],
        "properties" : {
          "regex" : {
            "title" : "Regex",
            "description" : "The Regex to Evaluate against the Kafka topic name",
            "type" : "string"
          },
          "headerName" : {
            "title" : "Header Name",
            "description" : "The header name to get the value to compare",
            "type" : "string",
            "example" : "headerName"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "filter" : {
              "simple" : "${header[{{headerName}}]} !regex '{{regex}}'",
              "steps" : [ {
                "stop" : { }
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Header Matches Filter Action",
      "description" : "Filter based on header value compared to regex",
      "required" : [ "regex" ],
      "properties" : {
        "regex" : {
          "type" : "string",
          "title" : "Regex",
          "description" : "The Regex to Evaluate against the Kafka topic name"
        },
        "headerName" : {
          "type" : "string",
          "title" : "Header Name",
          "description" : "The header name to get the value to compare"
        }
      }
    }
  },
  "hoist-field-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "hoist-field-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Hoist Field Action",
        "description" : "Wrap data in a single field",
        "required" : [ "field" ],
        "properties" : {
          "field" : {
            "title" : "Field",
            "description" : "The name of the field that will contain the event",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:jackson", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "setProperty" : {
              "name" : "field",
              "constant" : "{{field}}"
            }
          }, {
            "bean" : "org.apache.camel.kamelets.utils.transform.HoistField"
          }, {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
              }
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "application/json"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Hoist Field Action",
      "description" : "Wrap data in a single field",
      "required" : [ "field" ],
      "properties" : {
        "field" : {
          "type" : "string",
          "title" : "Field",
          "description" : "The name of the field that will contain the event"
        }
      }
    }
  },
  "http-secured-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "http-secured-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjAiCmhlaWdodD0iNDIwIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiPgo8cGF0aCBzdHJva2Utd2lkdGg9IjI2IgpkPSJNMjA5LDE1YTE5NSwxOTUgMCAxLDAgMiwweiIvPgo8cGF0aCBzdHJva2Utd2lkdGg9IjE4IgpkPSJtMjEwLDE1djM5MG0xOTUtMTk1SDE1TTU5LDkwYTI2MCwyNjAgMCAwLDAgMzAyLDAgbTAsMjQwIGEyNjAsMjYwIDAgMCwwLTMwMiwwTTE5NSwyMGEyNTAsMjUwIDAgMCwwIDAsMzgyIG0zMCwwIGEyNTAsMjUwIDAgMCwwIDAtMzgyIi8+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "HTTP",
        "camel.apache.org/kamelet.namespace" : "HTTP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Secured HTTP Sink",
        "description" : "Forwards an event to a secured HTTP endpoint",
        "required" : [ "url" ],
        "type" : "object",
        "properties" : {
          "url" : {
            "title" : "URL",
            "description" : "The URL to send data to",
            "type" : "string",
            "example" : "https://my-service/path",
            "pattern" : "^(http|https)://.*"
          },
          "method" : {
            "title" : "Method",
            "description" : "The HTTP method to use",
            "type" : "string",
            "default" : "POST",
            "enum" : [ "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "PATCH" ]
          },
          "authMethod" : {
            "title" : "Authentication Method",
            "description" : "Authentication methods allowed to use as a comma separated list of values Basic, Digest or NTLM.",
            "type" : "string",
            "default" : "Basic"
          },
          "authenticationPreemptive" : {
            "title" : "Authentication Preemptive",
            "description" : "If this option is true, camel-http sends preemptive basic authentication to the server.",
            "type" : "boolean",
            "default" : false
          },
          "authUsername" : {
            "title" : "Authentication Username",
            "description" : "Authentication username",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "authPassword" : {
            "title" : "Authentication Password",
            "description" : "Authentication password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:http", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "removeHeader" : {
              "name" : "CamelHttpUri"
            }
          }, {
            "setHeader" : {
              "name" : "CamelHttpMethod",
              "constant" : "{{method}}"
            }
          }, {
            "to" : {
              "uri" : "{{url}}",
              "parameters" : {
                "authMethod" : "{{authMethod}}",
                "authUsername" : "{{authUsername}}",
                "authPassword" : "{{authPassword}}",
                "authenticationPreemptive" : "{{authenticationPreemptive}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Secured HTTP Sink",
      "description" : "Forwards an event to a secured HTTP endpoint",
      "required" : [ "url" ],
      "properties" : {
        "url" : {
          "type" : "string",
          "title" : "URL",
          "description" : "The URL to send data to"
        },
        "method" : {
          "type" : "string",
          "title" : "Method",
          "description" : "The HTTP method to use",
          "enum" : [ "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "PATCH" ],
          "default" : "POST"
        },
        "authMethod" : {
          "type" : "string",
          "title" : "Authentication Method",
          "description" : "Authentication methods allowed to use as a comma separated list of values Basic, Digest or NTLM.",
          "default" : "Basic"
        },
        "authenticationPreemptive" : {
          "type" : "boolean",
          "title" : "Authentication Preemptive",
          "description" : "If this option is true, camel-http sends preemptive basic authentication to the server.",
          "default" : false
        },
        "authUsername" : {
          "type" : "string",
          "title" : "Authentication Username",
          "description" : "Authentication username"
        },
        "authPassword" : {
          "type" : "string",
          "title" : "Authentication Password",
          "description" : "Authentication password",
          "format" : "password"
        }
      }
    }
  },
  "http-secured-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "http-secured-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjAiCmhlaWdodD0iNDIwIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiPgo8cGF0aCBzdHJva2Utd2lkdGg9IjI2IgpkPSJNMjA5LDE1YTE5NSwxOTUgMCAxLDAgMiwweiIvPgo8cGF0aCBzdHJva2Utd2lkdGg9IjE4IgpkPSJtMjEwLDE1djM5MG0xOTUtMTk1SDE1TTU5LDkwYTI2MCwyNjAgMCAwLDAgMzAyLDAgbTAsMjQwIGEyNjAsMjYwIDAgMCwwLTMwMiwwTTE5NSwyMGEyNTAsMjUwIDAgMCwwIDAsMzgyIG0zMCwwIGEyNTAsMjUwIDAgMCwwIDAtMzgyIi8+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "HTTP",
        "camel.apache.org/kamelet.namespace" : "HTTP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "HTTP Secured Source",
        "description" : "Periodically fetches a secured HTTP resource and provides the content as output.",
        "required" : [ "url" ],
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period between Updates",
            "description" : "The interval between fetches in milliseconds",
            "type" : "integer",
            "default" : 10000
          },
          "contentType" : {
            "title" : "Content Type",
            "description" : "The content type accepted for the resource",
            "type" : "string",
            "default" : "application/json"
          },
          "url" : {
            "title" : "URL",
            "description" : "The URL to fetch for data",
            "type" : "string",
            "example" : "https://gist.githubusercontent.com/nicolaferraro/e3c72ace3c751f9f88273896611ce5fe/raw/3b6f54060bacb56b6719b7386a4645cb59ad6cc1/quote.json",
            "pattern" : "^(http|https)://.*"
          },
          "authMethod" : {
            "title" : "Authentication Method",
            "description" : "Authentication methods allowed to use as a comma separated list of values Basic, Digest or NTLM.",
            "type" : "string",
            "default" : "Basic"
          },
          "authenticationPreemptive" : {
            "title" : "Authentication Preemptive",
            "description" : "If this option is true, camel-http sends preemptive basic authentication to the server.",
            "type" : "boolean",
            "default" : false
          },
          "authUsername" : {
            "title" : "Authentication Username",
            "description" : "Authentication username",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "authPassword" : {
            "title" : "Authentication Password",
            "description" : "Authentication password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:http", "camel:kamelet", "camel:core", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "timer:fetch",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "Accept",
              "constant" : "{{contentType}}"
            }
          }, {
            "to" : {
              "uri" : "{{url}}",
              "parameters" : {
                "authMethod" : "{{authMethod}}",
                "authUsername" : "{{authUsername}}",
                "authPassword" : "{{authPassword}}",
                "authenticationPreemptive" : "{{authenticationPreemptive}}"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "HTTP Secured Source",
      "description" : "Periodically fetches a secured HTTP resource and provides the content as output.",
      "required" : [ "url" ],
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period between Updates",
          "description" : "The interval between fetches in milliseconds",
          "default" : 10000
        },
        "contentType" : {
          "type" : "string",
          "title" : "Content Type",
          "description" : "The content type accepted for the resource",
          "default" : "application/json"
        },
        "url" : {
          "type" : "string",
          "title" : "URL",
          "description" : "The URL to fetch for data"
        },
        "authMethod" : {
          "type" : "string",
          "title" : "Authentication Method",
          "description" : "Authentication methods allowed to use as a comma separated list of values Basic, Digest or NTLM.",
          "default" : "Basic"
        },
        "authenticationPreemptive" : {
          "type" : "boolean",
          "title" : "Authentication Preemptive",
          "description" : "If this option is true, camel-http sends preemptive basic authentication to the server.",
          "default" : false
        },
        "authUsername" : {
          "type" : "string",
          "title" : "Authentication Username",
          "description" : "Authentication username"
        },
        "authPassword" : {
          "type" : "string",
          "title" : "Authentication Password",
          "description" : "Authentication password",
          "format" : "password"
        }
      }
    }
  },
  "http-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "http-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjAiCmhlaWdodD0iNDIwIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiPgo8cGF0aCBzdHJva2Utd2lkdGg9IjI2IgpkPSJNMjA5LDE1YTE5NSwxOTUgMCAxLDAgMiwweiIvPgo8cGF0aCBzdHJva2Utd2lkdGg9IjE4IgpkPSJtMjEwLDE1djM5MG0xOTUtMTk1SDE1TTU5LDkwYTI2MCwyNjAgMCAwLDAgMzAyLDAgbTAsMjQwIGEyNjAsMjYwIDAgMCwwLTMwMiwwTTE5NSwyMGEyNTAsMjUwIDAgMCwwIDAsMzgyIG0zMCwwIGEyNTAsMjUwIDAgMCwwIDAtMzgyIi8+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "HTTP",
        "camel.apache.org/kamelet.namespace" : "HTTP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "HTTP Sink",
        "description" : "Forward data to a HTTP or HTTPS endpoint.",
        "required" : [ "url" ],
        "type" : "object",
        "properties" : {
          "url" : {
            "title" : "URL",
            "description" : "The URL to which you want to send data.",
            "type" : "string",
            "example" : "https://my-service/path",
            "pattern" : "^(http|https)://.*"
          },
          "method" : {
            "title" : "Method",
            "description" : "The HTTP method to use.",
            "type" : "string",
            "default" : "POST",
            "enum" : [ "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "PATCH" ]
          }
        }
      },
      "dependencies" : [ "camel:http", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "removeHeader" : {
              "name" : "CamelHttpUri"
            }
          }, {
            "setHeader" : {
              "name" : "CamelHttpMethod",
              "constant" : "{{method}}"
            }
          }, {
            "to" : "{{url}}"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "HTTP Sink",
      "description" : "Forward data to a HTTP or HTTPS endpoint.",
      "required" : [ "url" ],
      "properties" : {
        "url" : {
          "type" : "string",
          "title" : "URL",
          "description" : "The URL to which you want to send data."
        },
        "method" : {
          "type" : "string",
          "title" : "Method",
          "description" : "The HTTP method to use.",
          "enum" : [ "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "PATCH" ],
          "default" : "POST"
        }
      }
    }
  },
  "http-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "http-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjAiCmhlaWdodD0iNDIwIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiPgo8cGF0aCBzdHJva2Utd2lkdGg9IjI2IgpkPSJNMjA5LDE1YTE5NSwxOTUgMCAxLDAgMiwweiIvPgo8cGF0aCBzdHJva2Utd2lkdGg9IjE4IgpkPSJtMjEwLDE1djM5MG0xOTUtMTk1SDE1TTU5LDkwYTI2MCwyNjAgMCAwLDAgMzAyLDAgbTAsMjQwIGEyNjAsMjYwIDAgMCwwLTMwMiwwTTE5NSwyMGEyNTAsMjUwIDAgMCwwIDAsMzgyIG0zMCwwIGEyNTAsMjUwIDAgMCwwIDAtMzgyIi8+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "HTTP",
        "camel.apache.org/kamelet.namespace" : "HTTP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "HTTP Source",
        "description" : "Periodically fetches an HTTP resource and provides the content as output.",
        "required" : [ "url" ],
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period between Updates",
            "description" : "The interval between fetches in milliseconds",
            "type" : "integer",
            "default" : 10000
          },
          "contentType" : {
            "title" : "Content Type",
            "description" : "The content type accepted for the resource",
            "type" : "string",
            "default" : "application/json"
          },
          "url" : {
            "title" : "URL",
            "description" : "The URL to fetch for data",
            "type" : "string",
            "example" : "https://gist.githubusercontent.com/nicolaferraro/e3c72ace3c751f9f88273896611ce5fe/raw/3b6f54060bacb56b6719b7386a4645cb59ad6cc1/quote.json",
            "pattern" : "^(http|https)://.*"
          }
        }
      },
      "dependencies" : [ "camel:http", "camel:kamelet", "camel:core", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "timer:fetch",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "Accept",
              "constant" : "{{contentType}}"
            }
          }, {
            "to" : "{{url}}"
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "HTTP Source",
      "description" : "Periodically fetches an HTTP resource and provides the content as output.",
      "required" : [ "url" ],
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period between Updates",
          "description" : "The interval between fetches in milliseconds",
          "default" : 10000
        },
        "contentType" : {
          "type" : "string",
          "title" : "Content Type",
          "description" : "The content type accepted for the resource",
          "default" : "application/json"
        },
        "url" : {
          "type" : "string",
          "title" : "URL",
          "description" : "The URL to fetch for data"
        }
      }
    }
  },
  "infinispan-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "infinispan-sink",
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Infinispan",
        "camel.apache.org/kamelet.namespace" : "Cache",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iYXJ0d29yayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAyNCAyMTUiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMGIyNTQ1O30uY2xzLTJ7ZmlsbDojNTk5ZmM2O308L3N0eWxlPjwvZGVmcz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjI5Ny4yNCIgeT0iMS45OCIgd2lkdGg9IjExLjkiIGhlaWdodD0iMTU4LjEyIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzk1LjI1LDY0Ljg4Yy03LjgxLTkuNDUtMTguOS0xNC4yNC0zMy0xNC4yNC0xMy43NywwLTI0LjczLDQuNzUtMzIuNjQsMTQuMTFWNTIuMzlIMzE4LjI3djEwNy43aDExLjM3Vjk0LjE4YzAtMTAsMy0xOC4wOCw4LjgyLTI0LjA1czEzLjg3LTksMjMuODItOSwxOC4xLDMuNDYsMjQuMSwxMC4yOGM1Ljc0LDYuNTEsOC42NSwxNSw4LjY1LDI1LjE4djYzLjQ5aDExLjE0Vjk5LjQzQzQwNi4xNyw4NS4xNSw0MDIuNDksNzMuNTIsMzk1LjI1LDY0Ljg4WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQzMS43OSwyMC43YzQuMS01LjgzLDEwLTguNjcsMTcuOTMtOC42N2EzNS41LDM1LjUsMCwwLDEsNi41NC42M0w0NjguOSwxNS4xVjQuMzdMNDU4LjIzLDJhNDMuMTQsNDMuMTQsMCwwLDAtOS4xNy0xYy0xMC44MywwLTE5LjQsNC0yNS40NywxMS43NC01LjU4LDcuMDctOC40MSwxNi4yLTguNDEsMjcuMTRWMTYwLjA5aDExLjE1VjYzLjQyaDMzLjg2VjUyLjZINDI2LjMzVjQwLjg2QzQyNi4zMywzMi41Nyw0MjguMTcsMjUuNzksNDMxLjc5LDIwLjdaIi8+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI0NzMuODgiIHk9IjUyLjYiIHdpZHRoPSIxMS4zNyIgaGVpZ2h0PSIxMDcuNDkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00NzkuNDYsMTYuNTZjLTQuOTMsMC03LjUzLDIuNjEtNy41Myw3LjU0czIuNiw3Ljc1LDcuNTMsNy43NWM1LjE0LDAsNy44Ni0yLjY4LDcuODYtNy43NVM0ODQuNiwxNi41Niw0NzkuNDYsMTYuNTZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTczLjMxLDY0Ljg4Yy03LjgxLTkuNDUtMTguOTEtMTQuMjQtMzMtMTQuMjQtMTMuNzYsMC0yNC43Miw0Ljc1LTMyLjY0LDE0LjEyVjUyLjM5SDQ5Ni4zM3YxMDcuN2gxMS4zNlY5NC4xOGMwLTEwLDMtMTguMDgsOC44My0yNC4wNXMxMy44Ni05LDIzLjgxLTksMTguMTEsMy40NiwyNC4xLDEwLjI5YzUuNzUsNi41MSw4LjY2LDE1LDguNjYsMjUuMTh2NjMuNDloMTEuMTRWOTkuNDNDNTg0LjIzLDg1LjE1LDU4MC41NSw3My41Miw1NzMuMzEsNjQuODhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAxMi4wOCw2NC44OGMtNy44MS05LjQ1LTE4LjkxLTE0LjI0LTMzLTE0LjI0LTEzLjc2LDAtMjQuNzIsNC43NS0zMi42NCwxNC4xMlY1Mi4zOUg5MzUuMXYxMDcuN2gxMS4zNlY5NC4xOGMwLTEwLDMtMTguMDgsOC44My0yNC4wNXMxMy44Ny05LDIzLjgxLTksMTguMTEsMy40NiwyNC4xLDEwLjI5YzUuNzUsNi41MSw4LjY2LDE1LDguNjYsMjUuMTh2NjMuNDlIMTAyM1Y5OS40M0MxMDIzLDg1LjE1LDEwMTkuMzIsNzMuNTIsMTAxMi4wOCw2NC44OFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02MDAuNzcsMTYuNTZjLTQuOTIsMC03LjUzLDIuNjEtNy41Myw3LjU0czIuNjEsNy43NSw3LjUzLDcuNzVjNS4xNCwwLDcuODYtMi42OCw3Ljg2LTcuNzVTNjA1LjkxLDE2LjU2LDYwMC43NywxNi41NloiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjU5NS4yIiB5PSI1Mi42IiB3aWR0aD0iMTEuMzYiIGhlaWdodD0iMTA3LjQ5Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjcxLjUzLDEwMi4xOGwtMjEuMjMtNmMtMTMuNjItMy44Mi0yMC41My05LjY3LTIwLjUzLTE3LjQsMC0xMC4zNSw2LjQtMTUuMzksMTkuNTgtMTUuMzlINjY4YzkuMjQsMCwxNi4yMiwyLjM0LDIwLjc3LDdsLjYxLjYyLDEwLTYtLjgtMWMtNi4wOC03LjYtMTYtMTEuNDUtMjkuNjEtMTEuNDVINjUyLjcyYy0yMi43NywwLTM0LjMxLDguNjYtMzQuMzEsMjUuNzIsMCwxMy41Nyw5LjEsMjMsMjcsMjhsMjAuMzcsNS42NGMxNS40Myw0LjI2LDIzLjI1LDExLjI1LDIzLjI1LDIwLjc3LDAsMTEuMTYtNy45LDE2LjU4LTI0LjE2LDE2LjU4aC0xNy4zYy04LjQzLDAtMTUuMTItMi41Mi0xOS44OS03LjVsLS42MS0uNjQtMTAsNiwuNzgsMWM2LjMsNy45NCwxNi4zLDEyLDI5LjczLDEyaDEwLjY2YzI4LDAsNDIuMTYtOS40NSw0Mi4xNi0yOC4xMUM3MDAuNDMsMTE3LjY0LDY5MC43MSwxMDcuNjEsNjcxLjUzLDEwMi4xOFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04MTMsMTM4LjQ4QTU2LjY3LDU2LjY3LDAsMCwxLDc2Ni43LDE2Myw1NS4xLDU1LjEsMCwwLDEsNzIxLDEzOS4xMmwuMDYsNzFINzA5LjQ0VjUwLjA3bDExLjE2LS44NFY3NS4xNHMxNS4zLTI0LjIxLDQ2LjEtMjQuMjEsNTYuMSwyNS42Niw1Ni4xLDUzLjIxYzAsLjQyLDAsNS4yNCwwLDUuNjRhNDQuNjMsNDQuNjMsMCwxLDAsNS0yMy4yOGwtMS4zNCwyLjU1LS43Mi0yLjc5YTQ0LjMzLDQ0LjMzLDAsMCwwLTQuNDEtMTAuMDlsLS4zNy0uNjEuMy0uNDFhNTYsNTYsMCwwLDEsOTEuNDItLjg0VjUyLjYyaDExLjgxVjE2MC4yM2wtMTEuODUsMCwwLTIwLjMzYTU2LDU2LDAsMCwxLTkzLjA4LTMuMzZjLTEtMS42NS0zLjY2LTYuODYtMy42Ni02Ljg2YTU1LjM5LDU1LjM5LDAsMCwxLTQuOC0xOS40NnYtLjA4cy4xMy00LjUxLjEzLTQuNzRhNDQuNyw0NC43LDAsMSwwLTUuMDcsMjIuMTdMODA3LjUsMTI1bC43MiwyLjc5YzEuMjEsNC42OCw0Ljc4LDEwLjcsNC43OCwxMC43Ii8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxIiB5PSIxIiB3aWR0aD0iMjA5LjE3IiBoZWlnaHQ9IjIwOS4xNyIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTExNi44MSwxMDUuNThoMGE4Miw4MiwwLDAsMC04Mi04MlY0NmE1OS42NSw1OS42NSwwLDAsMSw1OS41OSw1OS41OWgwYTgyLDgyLDAsMCwwLDgyLDgyLjA1VjE2NS4xOEE1OS42Niw1OS42NiwwLDAsMSwxMTYuODEsMTA1LjU4WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTkwLjE5LDEyNy40NmE1OS42OSw1OS42OSwwLDAsMS01NS40MiwzNy43MnYyMi40NWE4MS45Miw4MS45MiwwLDAsMCw2Ni42Ny0zNC4yNkE4OC41Miw4OC41MiwwLDAsMSw5MC4xOSwxMjcuNDZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTIxLDgzLjcxQTU5LjY5LDU5LjY5LDAsMCwxLDE3Ni40LDQ2VjIzLjU0QTgxLjkyLDgxLjkyLDAsMCwwLDEwOS43Myw1Ny44LDg4LjUyLDg4LjUyLDAsMCwxLDEyMSw4My43MVoiLz48L3N2Zz4="
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Infinispan Sink",
        "description" : "Write object to an Infinispan cache.\n\nThe Kamelet expects the following headers to be set:\n\n- `key` / `ce-key`: as the key to use when put an object in the Infinispan cache.\n\nIf the header won't be set the exchange ID will be used as key.",
        "required" : [ "cacheName", "hosts", "username", "password" ],
        "type" : "object",
        "properties" : {
          "cacheName" : {
            "title" : "Cache Name",
            "description" : "The name of the Infinispan cache to use",
            "type" : "string"
          },
          "hosts" : {
            "title" : "Hosts",
            "description" : "Specifies the host of the cache on Infinispan instance",
            "type" : "string"
          },
          "secure" : {
            "title" : "Secure",
            "description" : "If the Infinispan instance is secured or not",
            "type" : "boolean",
            "default" : true
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to connect to Infinispan.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to connect to Infinispan.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The SASL Mechanism to use",
            "type" : "string",
            "default" : "DIGEST-MD5"
          },
          "securityRealm" : {
            "title" : "Security Realm",
            "description" : "Define the security realm to access the infinispan instance",
            "type" : "string",
            "default" : "default"
          },
          "securityServerName" : {
            "title" : "Security Server name",
            "description" : "Define the security server name to access the infinispan instance",
            "type" : "string",
            "default" : "infinispan"
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:core", "camel:infinispan" ],
      "template" : {
        "beans" : [ {
          "name" : "local-infinispan",
          "type" : "#class:org.apache.camel.component.infinispan.remote.InfinispanRemoteComponent"
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelInfinispanKey",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelInfinispanKey",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelInfinispanKey",
                    "simple" : "${exchangeId}"
                  }
                } ]
              }
            }
          }, {
            "setHeader" : {
              "name" : "CamelInfinispanValue",
              "simple" : "${body}"
            }
          }, {
            "to" : {
              "uri" : "{{local-infinispan}}:{{cacheName}}",
              "parameters" : {
                "hosts" : "{{hosts}}",
                "secure" : "{{secure}}",
                "username" : "{{username}}",
                "password" : "{{password}}",
                "saslMechanism" : "{{saslMechanism}}",
                "securityRealm" : "{{securityRealm}}",
                "securityServerName" : "{{securityServerName}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Infinispan Sink",
      "description" : "Write object to an Infinispan cache.\n\nThe Kamelet expects the following headers to be set:\n\n- `key` / `ce-key`: as the key to use when put an object in the Infinispan cache.\n\nIf the header won't be set the exchange ID will be used as key.",
      "required" : [ "cacheName", "hosts", "username", "password" ],
      "properties" : {
        "cacheName" : {
          "type" : "string",
          "title" : "Cache Name",
          "description" : "The name of the Infinispan cache to use"
        },
        "hosts" : {
          "type" : "string",
          "title" : "Hosts",
          "description" : "Specifies the host of the cache on Infinispan instance"
        },
        "secure" : {
          "type" : "boolean",
          "title" : "Secure",
          "description" : "If the Infinispan instance is secured or not",
          "default" : true
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to connect to Infinispan."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to connect to Infinispan.",
          "format" : "password"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The SASL Mechanism to use",
          "default" : "DIGEST-MD5"
        },
        "securityRealm" : {
          "type" : "string",
          "title" : "Security Realm",
          "description" : "Define the security realm to access the infinispan instance",
          "default" : "default"
        },
        "securityServerName" : {
          "type" : "string",
          "title" : "Security Server name",
          "description" : "Define the security server name to access the infinispan instance",
          "default" : "infinispan"
        }
      }
    }
  },
  "infinispan-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "infinispan-source",
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Infinispan",
        "camel.apache.org/kamelet.namespace" : "Cache",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iYXJ0d29yayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAyNCAyMTUiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMGIyNTQ1O30uY2xzLTJ7ZmlsbDojNTk5ZmM2O308L3N0eWxlPjwvZGVmcz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjI5Ny4yNCIgeT0iMS45OCIgd2lkdGg9IjExLjkiIGhlaWdodD0iMTU4LjEyIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzk1LjI1LDY0Ljg4Yy03LjgxLTkuNDUtMTguOS0xNC4yNC0zMy0xNC4yNC0xMy43NywwLTI0LjczLDQuNzUtMzIuNjQsMTQuMTFWNTIuMzlIMzE4LjI3djEwNy43aDExLjM3Vjk0LjE4YzAtMTAsMy0xOC4wOCw4LjgyLTI0LjA1czEzLjg3LTksMjMuODItOSwxOC4xLDMuNDYsMjQuMSwxMC4yOGM1Ljc0LDYuNTEsOC42NSwxNSw4LjY1LDI1LjE4djYzLjQ5aDExLjE0Vjk5LjQzQzQwNi4xNyw4NS4xNSw0MDIuNDksNzMuNTIsMzk1LjI1LDY0Ljg4WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQzMS43OSwyMC43YzQuMS01LjgzLDEwLTguNjcsMTcuOTMtOC42N2EzNS41LDM1LjUsMCwwLDEsNi41NC42M0w0NjguOSwxNS4xVjQuMzdMNDU4LjIzLDJhNDMuMTQsNDMuMTQsMCwwLDAtOS4xNy0xYy0xMC44MywwLTE5LjQsNC0yNS40NywxMS43NC01LjU4LDcuMDctOC40MSwxNi4yLTguNDEsMjcuMTRWMTYwLjA5aDExLjE1VjYzLjQyaDMzLjg2VjUyLjZINDI2LjMzVjQwLjg2QzQyNi4zMywzMi41Nyw0MjguMTcsMjUuNzksNDMxLjc5LDIwLjdaIi8+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI0NzMuODgiIHk9IjUyLjYiIHdpZHRoPSIxMS4zNyIgaGVpZ2h0PSIxMDcuNDkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00NzkuNDYsMTYuNTZjLTQuOTMsMC03LjUzLDIuNjEtNy41Myw3LjU0czIuNiw3Ljc1LDcuNTMsNy43NWM1LjE0LDAsNy44Ni0yLjY4LDcuODYtNy43NVM0ODQuNiwxNi41Niw0NzkuNDYsMTYuNTZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTczLjMxLDY0Ljg4Yy03LjgxLTkuNDUtMTguOTEtMTQuMjQtMzMtMTQuMjQtMTMuNzYsMC0yNC43Miw0Ljc1LTMyLjY0LDE0LjEyVjUyLjM5SDQ5Ni4zM3YxMDcuN2gxMS4zNlY5NC4xOGMwLTEwLDMtMTguMDgsOC44My0yNC4wNXMxMy44Ni05LDIzLjgxLTksMTguMTEsMy40NiwyNC4xLDEwLjI5YzUuNzUsNi41MSw4LjY2LDE1LDguNjYsMjUuMTh2NjMuNDloMTEuMTRWOTkuNDNDNTg0LjIzLDg1LjE1LDU4MC41NSw3My41Miw1NzMuMzEsNjQuODhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAxMi4wOCw2NC44OGMtNy44MS05LjQ1LTE4LjkxLTE0LjI0LTMzLTE0LjI0LTEzLjc2LDAtMjQuNzIsNC43NS0zMi42NCwxNC4xMlY1Mi4zOUg5MzUuMXYxMDcuN2gxMS4zNlY5NC4xOGMwLTEwLDMtMTguMDgsOC44My0yNC4wNXMxMy44Ny05LDIzLjgxLTksMTguMTEsMy40NiwyNC4xLDEwLjI5YzUuNzUsNi41MSw4LjY2LDE1LDguNjYsMjUuMTh2NjMuNDlIMTAyM1Y5OS40M0MxMDIzLDg1LjE1LDEwMTkuMzIsNzMuNTIsMTAxMi4wOCw2NC44OFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02MDAuNzcsMTYuNTZjLTQuOTIsMC03LjUzLDIuNjEtNy41Myw3LjU0czIuNjEsNy43NSw3LjUzLDcuNzVjNS4xNCwwLDcuODYtMi42OCw3Ljg2LTcuNzVTNjA1LjkxLDE2LjU2LDYwMC43NywxNi41NloiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjU5NS4yIiB5PSI1Mi42IiB3aWR0aD0iMTEuMzYiIGhlaWdodD0iMTA3LjQ5Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjcxLjUzLDEwMi4xOGwtMjEuMjMtNmMtMTMuNjItMy44Mi0yMC41My05LjY3LTIwLjUzLTE3LjQsMC0xMC4zNSw2LjQtMTUuMzksMTkuNTgtMTUuMzlINjY4YzkuMjQsMCwxNi4yMiwyLjM0LDIwLjc3LDdsLjYxLjYyLDEwLTYtLjgtMWMtNi4wOC03LjYtMTYtMTEuNDUtMjkuNjEtMTEuNDVINjUyLjcyYy0yMi43NywwLTM0LjMxLDguNjYtMzQuMzEsMjUuNzIsMCwxMy41Nyw5LjEsMjMsMjcsMjhsMjAuMzcsNS42NGMxNS40Myw0LjI2LDIzLjI1LDExLjI1LDIzLjI1LDIwLjc3LDAsMTEuMTYtNy45LDE2LjU4LTI0LjE2LDE2LjU4aC0xNy4zYy04LjQzLDAtMTUuMTItMi41Mi0xOS44OS03LjVsLS42MS0uNjQtMTAsNiwuNzgsMWM2LjMsNy45NCwxNi4zLDEyLDI5LjczLDEyaDEwLjY2YzI4LDAsNDIuMTYtOS40NSw0Mi4xNi0yOC4xMUM3MDAuNDMsMTE3LjY0LDY5MC43MSwxMDcuNjEsNjcxLjUzLDEwMi4xOFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04MTMsMTM4LjQ4QTU2LjY3LDU2LjY3LDAsMCwxLDc2Ni43LDE2Myw1NS4xLDU1LjEsMCwwLDEsNzIxLDEzOS4xMmwuMDYsNzFINzA5LjQ0VjUwLjA3bDExLjE2LS44NFY3NS4xNHMxNS4zLTI0LjIxLDQ2LjEtMjQuMjEsNTYuMSwyNS42Niw1Ni4xLDUzLjIxYzAsLjQyLDAsNS4yNCwwLDUuNjRhNDQuNjMsNDQuNjMsMCwxLDAsNS0yMy4yOGwtMS4zNCwyLjU1LS43Mi0yLjc5YTQ0LjMzLDQ0LjMzLDAsMCwwLTQuNDEtMTAuMDlsLS4zNy0uNjEuMy0uNDFhNTYsNTYsMCwwLDEsOTEuNDItLjg0VjUyLjYyaDExLjgxVjE2MC4yM2wtMTEuODUsMCwwLTIwLjMzYTU2LDU2LDAsMCwxLTkzLjA4LTMuMzZjLTEtMS42NS0zLjY2LTYuODYtMy42Ni02Ljg2YTU1LjM5LDU1LjM5LDAsMCwxLTQuOC0xOS40NnYtLjA4cy4xMy00LjUxLjEzLTQuNzRhNDQuNyw0NC43LDAsMSwwLTUuMDcsMjIuMTdMODA3LjUsMTI1bC43MiwyLjc5YzEuMjEsNC42OCw0Ljc4LDEwLjcsNC43OCwxMC43Ii8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxIiB5PSIxIiB3aWR0aD0iMjA5LjE3IiBoZWlnaHQ9IjIwOS4xNyIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTExNi44MSwxMDUuNThoMGE4Miw4MiwwLDAsMC04Mi04MlY0NmE1OS42NSw1OS42NSwwLDAsMSw1OS41OSw1OS41OWgwYTgyLDgyLDAsMCwwLDgyLDgyLjA1VjE2NS4xOEE1OS42Niw1OS42NiwwLDAsMSwxMTYuODEsMTA1LjU4WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTkwLjE5LDEyNy40NmE1OS42OSw1OS42OSwwLDAsMS01NS40MiwzNy43MnYyMi40NWE4MS45Miw4MS45MiwwLDAsMCw2Ni42Ny0zNC4yNkE4OC41Miw4OC41MiwwLDAsMSw5MC4xOSwxMjcuNDZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTIxLDgzLjcxQTU5LjY5LDU5LjY5LDAsMCwxLDE3Ni40LDQ2VjIzLjU0QTgxLjkyLDgxLjkyLDAsMCwwLDEwOS43Myw1Ny44LDg4LjUyLDg4LjUyLDAsMCwxLDEyMSw4My43MVoiLz48L3N2Zz4="
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Infinispan Source",
        "description" : "Get Events from an Infinispan cache",
        "required" : [ "cacheName", "hosts", "username", "password" ],
        "type" : "object",
        "properties" : {
          "cacheName" : {
            "title" : "Cache Name",
            "description" : "The name of the Infinispan cache to use",
            "type" : "string"
          },
          "hosts" : {
            "title" : "Hosts",
            "description" : "Specifies the host of the cache on Infinispan instance",
            "type" : "string"
          },
          "secure" : {
            "title" : "Secure",
            "description" : "If the Infinispan instance is secured or not",
            "type" : "boolean",
            "default" : true
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to connect to Infinispan.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to connect to Infinispan.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The SASL Mechanism to use",
            "type" : "string",
            "default" : "DIGEST-MD5"
          },
          "securityRealm" : {
            "title" : "Security Realm",
            "description" : "Define the security realm to access the infinispan instance",
            "type" : "string",
            "default" : "default"
          },
          "securityServerName" : {
            "title" : "Security Server name",
            "description" : "Define the security server name to access the infinispan instance",
            "type" : "string",
            "default" : "infinispan"
          },
          "eventTypes" : {
            "title" : "Infinispan Cluster Name",
            "description" : "Specifies the set of event types to register by the consumer. Multiple event can be separated by comma without spaces.",
            "type" : "string",
            "example" : "CLIENT_CACHE_ENTRY_CREATED,CLIENT_CACHE_ENTRY_MODIFIED",
            "default" : "CLIENT_CACHE_ENTRY_CREATED,CLIENT_CACHE_ENTRY_MODIFIED,CLIENT_CACHE_ENTRY_REMOVED,CLIENT_CACHE_ENTRY_EXPIRED,CLIENT_CACHE_FAILOVER",
            "enum" : [ "CLIENT_CACHE_ENTRY_CREATED", "CLIENT_CACHE_ENTRY_MODIFIED", "CLIENT_CACHE_ENTRY_REMOVED", "CLIENT_CACHE_ENTRY_EXPIRED", "CLIENT_CACHE_FAILOVER" ]
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:core", "camel:infinispan" ],
      "template" : {
        "beans" : [ {
          "name" : "local-infinispan",
          "type" : "#class:org.apache.camel.component.infinispan.remote.InfinispanRemoteComponent"
        } ],
        "from" : {
          "uri" : "{{local-infinispan}}:{{cacheName}}",
          "parameters" : {
            "hosts" : "{{hosts}}",
            "secure" : "{{secure}}",
            "username" : "{{username}}",
            "password" : "{{password}}",
            "saslMechanism" : "{{saslMechanism}}",
            "securityRealm" : "{{securityRealm}}",
            "securityServerName" : "{{securityServerName}}",
            "eventTypes" : "{{eventTypes}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "infinispan-cache-name",
              "simple" : "${header[CamelInfinispanCacheName]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-infinispancachename",
              "simple" : "${header[CamelInfinispanCacheName]}"
            }
          }, {
            "setHeader" : {
              "name" : "infinispan-entry-version",
              "simple" : "${header[CamelInfinispanEntryVersion]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-infinispanentryversion",
              "simple" : "${header[CamelInfinispanEntryVersion]}"
            }
          }, {
            "setHeader" : {
              "name" : "infinispan-event-type",
              "simple" : "${header[CamelInfinispanEventType]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-infinispaneventtype",
              "simple" : "${header[CamelInfinispanEventType]}"
            }
          }, {
            "setHeader" : {
              "name" : "infinispan-key",
              "simple" : "${header[CamelInfinispanKey]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-infinispankey",
              "simple" : "${header[CamelInfinispanKey]}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Infinispan Source",
      "description" : "Get Events from an Infinispan cache",
      "required" : [ "cacheName", "hosts", "username", "password" ],
      "properties" : {
        "cacheName" : {
          "type" : "string",
          "title" : "Cache Name",
          "description" : "The name of the Infinispan cache to use"
        },
        "hosts" : {
          "type" : "string",
          "title" : "Hosts",
          "description" : "Specifies the host of the cache on Infinispan instance"
        },
        "secure" : {
          "type" : "boolean",
          "title" : "Secure",
          "description" : "If the Infinispan instance is secured or not",
          "default" : true
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to connect to Infinispan."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to connect to Infinispan.",
          "format" : "password"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The SASL Mechanism to use",
          "default" : "DIGEST-MD5"
        },
        "securityRealm" : {
          "type" : "string",
          "title" : "Security Realm",
          "description" : "Define the security realm to access the infinispan instance",
          "default" : "default"
        },
        "securityServerName" : {
          "type" : "string",
          "title" : "Security Server name",
          "description" : "Define the security server name to access the infinispan instance",
          "default" : "infinispan"
        },
        "eventTypes" : {
          "type" : "string",
          "title" : "Infinispan Cluster Name",
          "description" : "Specifies the set of event types to register by the consumer. Multiple event can be separated by comma without spaces.",
          "enum" : [ "CLIENT_CACHE_ENTRY_CREATED", "CLIENT_CACHE_ENTRY_MODIFIED", "CLIENT_CACHE_ENTRY_REMOVED", "CLIENT_CACHE_ENTRY_EXPIRED", "CLIENT_CACHE_FAILOVER" ],
          "default" : "CLIENT_CACHE_ENTRY_CREATED,CLIENT_CACHE_ENTRY_MODIFIED,CLIENT_CACHE_ENTRY_REMOVED,CLIENT_CACHE_ENTRY_EXPIRED,CLIENT_CACHE_FAILOVER"
        }
      }
    }
  },
  "insert-field-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "insert-field-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Insert Field Action",
        "description" : "Adds a custom field with a simple language parsed value to the message in transit.\n\nThe insert field action expects an application/json content type.\n\nIf for example you have an object like '{ \"foo\":\"John\", \"bar\":30 }' and your action has been configured with field as 'element' and value as 'hello', you'll get '{ \"foo\":\"John\", \"bar\":30, \"element\":\"hello\" }' as a result",
        "required" : [ "field", "value" ],
        "properties" : {
          "field" : {
            "title" : "Field",
            "description" : "The name of the field to be added",
            "type" : "string"
          },
          "value" : {
            "title" : "Value",
            "description" : "The value of the field",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:jackson", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "insertField",
          "type" : "#class:org.apache.camel.kamelets.utils.transform.InsertField",
          "properties" : {
            "field" : "{{field}}",
            "value" : "{{value}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "deserialized",
                    "constant" : "true"
                  }
                }, {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "process" : {
              "ref" : "{{insertField}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty[deserialized]} == 'true'",
                "steps" : [ {
                  "marshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                }, {
                  "setHeader" : {
                    "name" : "Content-Type",
                    "constant" : "application/json"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Insert Field Action",
      "description" : "Adds a custom field with a simple language parsed value to the message in transit.\n\nThe insert field action expects an application/json content type.\n\nIf for example you have an object like '{ \"foo\":\"John\", \"bar\":30 }' and your action has been configured with field as 'element' and value as 'hello', you'll get '{ \"foo\":\"John\", \"bar\":30, \"element\":\"hello\" }' as a result",
      "required" : [ "field", "value" ],
      "properties" : {
        "field" : {
          "type" : "string",
          "title" : "Field",
          "description" : "The name of the field to be added"
        },
        "value" : {
          "type" : "string",
          "title" : "Value",
          "description" : "The value of the field"
        }
      }
    }
  },
  "insert-header-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "insert-header-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "EIP"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Insert Header Action",
        "description" : "Adds an header with a simple language parsed expression to the message in transit",
        "required" : [ "name", "value" ],
        "properties" : {
          "name" : {
            "title" : "Name",
            "description" : "The name of the header to be added. For Knative only, the name of the header requires a CloudEvent (ce-) prefix.",
            "type" : "string",
            "example" : "headername"
          },
          "value" : {
            "title" : "Value",
            "description" : "The value of the header to be added",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setHeader" : {
              "name" : "{{name}}",
              "simple" : "{{value}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Insert Header Action",
      "description" : "Adds an header with a simple language parsed expression to the message in transit",
      "required" : [ "name", "value" ],
      "properties" : {
        "name" : {
          "type" : "string",
          "title" : "Name",
          "description" : "The name of the header to be added. For Knative only, the name of the header requires a CloudEvent (ce-) prefix."
        },
        "value" : {
          "type" : "string",
          "title" : "Value",
          "description" : "The value of the header to be added"
        }
      }
    }
  },
  "is-tombstone-filter-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "is-tombstone-filter-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Is Tombstone Filter Action",
        "description" : "Filter based on the presence of body or not",
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "filter" : {
              "simple" : "${body} == null || ${body} == ''",
              "steps" : [ {
                "stop" : { }
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Is Tombstone Filter Action",
      "description" : "Filter based on the presence of body or not"
    }
  },
  "jira-add-comment-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jira-add-comment-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iOTguMDMwODY3NSUiIHkxPSIwLjE2MDU5OTU3MiUiIHgyPSI1OC44ODc3MDYyJSIgeTI9IjQwLjc2NTUyNDYlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDUyQ0MiIG9mZnNldD0iMTglIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyNjg0RkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIxMDAuNjY1MjQ3JSIgeTE9IjAuNDU1MDMyMTIlIiB4Mj0iNTUuNDAxODA5NSUiIHkyPSI0NC43MjY5ODA3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDA1MkNDIiBvZmZzZXQ9IjE4JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY4NEZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGc+CgkJCQk8cGF0aCBkPSJNMjQ0LjY1Nzc3OCwwIEwxMjEuNzA2NjY3LDAgQzEyMS43MDY2NjcsMTQuNzIwMTA0NiAxMjcuNTU0MjA1LDI4LjgzNzMxMiAxMzcuOTYyODkxLDM5LjI0NTk5NzcgQzE0OC4zNzE1NzcsNDkuNjU0NjgzNSAxNjIuNDg4Nzg0LDU1LjUwMjIyMjIgMTc3LjIwODg4OSw1NS41MDIyMjIyIEwxOTkuODU3Nzc4LDU1LjUwMjIyMjIgTDE5OS44NTc3NzgsNzcuMzY4ODg4OSBDMTk5Ljg3NzM5MSwxMDcuOTk0MTU1IDIyNC42OTkxNzgsMTMyLjgxNTk0MyAyNTUuMzI0NDQ0LDEzMi44MzU1NTYgTDI1NS4zMjQ0NDQsMTAuNjY2NjY2NyBDMjU1LjMyNDQ0NCw0Ljc3NTYyOTM0IDI1MC41NDg4MTUsMy42MDcyMjAwMWUtMTYgMjQ0LjY1Nzc3OCwwIFoiIGZpbGw9IiMyNjg0RkYiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODMuODIyMjIyLDYxLjI2MjIyMjIgTDYwLjg3MTExMTEsNjEuMjYyMjIyMiBDNjAuODkwNzIzOCw5MS44ODc0ODg4IDg1LjcxMjUxMTIsMTE2LjcwOTI3NiAxMTYuMzM3Nzc4LDExNi43Mjg4ODkgTDEzOC45ODY2NjcsMTE2LjcyODg4OSBMMTM4Ljk4NjY2NywxMzguNjY2NjY3IEMxMzkuMDI1OTA1LDE2OS4yOTE5MjMgMTYzLjg2MzYwNywxOTQuMDk3ODAzIDE5NC40ODg4ODksMTk0LjA5Nzc3OCBMMTk0LjQ4ODg4OSw3MS45Mjg4ODg5IEMxOTQuNDg4ODg5LDY2LjAzNzg1MTYgMTg5LjcxMzI2LDYxLjI2MjIyMjIgMTgzLjgyMjIyMiw2MS4yNjIyMjIyIFoiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xMjIuOTUxMTExLDEyMi40ODg4ODkgTDAsMTIyLjQ4ODg4OSBDMy43NTM5MTM2MmUtMTUsMTUzLjE0MTkyIDI0Ljg0OTE5MTMsMTc3Ljk5MTExMSA1NS41MDIyMjIyLDE3Ny45OTExMTEgTDc4LjIyMjIyMjIsMTc3Ljk5MTExMSBMNzguMjIyMjIyMiwxOTkuODU3Nzc4IEM3OC4yNDE3NjcsMjMwLjQ1NTMyIDEwMy4wMjAyODUsMjU1LjI2NTY0NyAxMzMuNjE3Nzc4LDI1NS4zMjQ0NDQgTDEzMy42MTc3NzgsMTMzLjE1NTU1NiBDMTMzLjYxNzc3OCwxMjcuMjY0NTE4IDEyOC44NDIxNDgsMTIyLjQ4ODg4OSAxMjIuOTUxMTExLDEyMi40ODg4ODkgWiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0yKSI+PC9wYXRoPgoJCTwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "JIRA",
        "camel.apache.org/kamelet.namespace" : "JIRA"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jira Add Comment Sink",
        "description" : "Add a new comment to an existing issue in Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `issueKey` / `ce-issueKey`: as the issue code.\n\nThe comment is set in the body of the message.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
        "required" : [ "jiraUrl" ],
        "type" : "object",
        "properties" : {
          "jiraUrl" : {
            "title" : "Jira URL",
            "description" : "The URL of your instance of Jira",
            "type" : "string",
            "example" : "http://my_jira.com:8081"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access Jira",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access Jira",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "personal-token" : {
            "title" : "Personal Token",
            "description" : "Personal Token",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:jira", "camel:kamelet", "mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.5" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueKey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueKey",
                    "simple" : "${header[ce-issueKey]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "jira:AddComment",
              "parameters" : {
                "jiraUrl" : "{{jiraUrl}}",
                "username" : "{{?username}}",
                "password" : "{{?password}}",
                "accessToken" : "{{?personal-token}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jira Add Comment Sink",
      "description" : "Add a new comment to an existing issue in Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `issueKey` / `ce-issueKey`: as the issue code.\n\nThe comment is set in the body of the message.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
      "required" : [ "jiraUrl" ],
      "properties" : {
        "jiraUrl" : {
          "type" : "string",
          "title" : "Jira URL",
          "description" : "The URL of your instance of Jira"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access Jira"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access Jira",
          "format" : "password"
        },
        "personal-token" : {
          "type" : "string",
          "title" : "Personal Token",
          "description" : "Personal Token"
        }
      }
    }
  },
  "jira-add-issue-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jira-add-issue-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iOTguMDMwODY3NSUiIHkxPSIwLjE2MDU5OTU3MiUiIHgyPSI1OC44ODc3MDYyJSIgeTI9IjQwLjc2NTUyNDYlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDUyQ0MiIG9mZnNldD0iMTglIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyNjg0RkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIxMDAuNjY1MjQ3JSIgeTE9IjAuNDU1MDMyMTIlIiB4Mj0iNTUuNDAxODA5NSUiIHkyPSI0NC43MjY5ODA3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDA1MkNDIiBvZmZzZXQ9IjE4JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY4NEZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGc+CgkJCQk8cGF0aCBkPSJNMjQ0LjY1Nzc3OCwwIEwxMjEuNzA2NjY3LDAgQzEyMS43MDY2NjcsMTQuNzIwMTA0NiAxMjcuNTU0MjA1LDI4LjgzNzMxMiAxMzcuOTYyODkxLDM5LjI0NTk5NzcgQzE0OC4zNzE1NzcsNDkuNjU0NjgzNSAxNjIuNDg4Nzg0LDU1LjUwMjIyMjIgMTc3LjIwODg4OSw1NS41MDIyMjIyIEwxOTkuODU3Nzc4LDU1LjUwMjIyMjIgTDE5OS44NTc3NzgsNzcuMzY4ODg4OSBDMTk5Ljg3NzM5MSwxMDcuOTk0MTU1IDIyNC42OTkxNzgsMTMyLjgxNTk0MyAyNTUuMzI0NDQ0LDEzMi44MzU1NTYgTDI1NS4zMjQ0NDQsMTAuNjY2NjY2NyBDMjU1LjMyNDQ0NCw0Ljc3NTYyOTM0IDI1MC41NDg4MTUsMy42MDcyMjAwMWUtMTYgMjQ0LjY1Nzc3OCwwIFoiIGZpbGw9IiMyNjg0RkYiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODMuODIyMjIyLDYxLjI2MjIyMjIgTDYwLjg3MTExMTEsNjEuMjYyMjIyMiBDNjAuODkwNzIzOCw5MS44ODc0ODg4IDg1LjcxMjUxMTIsMTE2LjcwOTI3NiAxMTYuMzM3Nzc4LDExNi43Mjg4ODkgTDEzOC45ODY2NjcsMTE2LjcyODg4OSBMMTM4Ljk4NjY2NywxMzguNjY2NjY3IEMxMzkuMDI1OTA1LDE2OS4yOTE5MjMgMTYzLjg2MzYwNywxOTQuMDk3ODAzIDE5NC40ODg4ODksMTk0LjA5Nzc3OCBMMTk0LjQ4ODg4OSw3MS45Mjg4ODg5IEMxOTQuNDg4ODg5LDY2LjAzNzg1MTYgMTg5LjcxMzI2LDYxLjI2MjIyMjIgMTgzLjgyMjIyMiw2MS4yNjIyMjIyIFoiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xMjIuOTUxMTExLDEyMi40ODg4ODkgTDAsMTIyLjQ4ODg4OSBDMy43NTM5MTM2MmUtMTUsMTUzLjE0MTkyIDI0Ljg0OTE5MTMsMTc3Ljk5MTExMSA1NS41MDIyMjIyLDE3Ny45OTExMTEgTDc4LjIyMjIyMjIsMTc3Ljk5MTExMSBMNzguMjIyMjIyMiwxOTkuODU3Nzc4IEM3OC4yNDE3NjcsMjMwLjQ1NTMyIDEwMy4wMjAyODUsMjU1LjI2NTY0NyAxMzMuNjE3Nzc4LDI1NS4zMjQ0NDQgTDEzMy42MTc3NzgsMTMzLjE1NTU1NiBDMTMzLjYxNzc3OCwxMjcuMjY0NTE4IDEyOC44NDIxNDgsMTIyLjQ4ODg4OSAxMjIuOTUxMTExLDEyMi40ODg4ODkgWiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0yKSI+PC9wYXRoPgoJCTwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "JIRA",
        "camel.apache.org/kamelet.namespace" : "JIRA"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jira Add Issue Sink",
        "description" : "Add a new issue to Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `projectKey` / `ce-projectKey`: as the Jira project key.\n\n- `issueTypeName` / `ce-issueTypeName`: as the name of the issue type (example: Bug, Enhancement).\n\n- `issueSummary` / `ce-issueSummary`: as the title or summary of the issue.\n\n- `issueAssignee` / `ce-issueAssignee`: as the user assigned to the issue (Optional).\n\n- `issuePriorityName` / `ce-issuePriorityName`: as the priority name of the issue (example: Critical, Blocker, Trivial) (Optional).\n\n- `issueComponents` / `ce-issueComponents`: as list of string with the valid component names (Optional).\n\n- `issueDescription` / `ce-issueDescription`: as the issue description (Optional).\n\nThe issue description can be set from the body of the message or the `issueDescription`/`ce-issueDescription` in the header, however the body takes precedence.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
        "required" : [ "jiraUrl" ],
        "type" : "object",
        "properties" : {
          "jiraUrl" : {
            "title" : "Jira URL",
            "description" : "The URL of your instance of Jira",
            "type" : "string",
            "example" : "http://my_jira.com:8081"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access Jira",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access Jira",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "personal-token" : {
            "title" : "Personal Token",
            "description" : "Personal Token",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:jira", "camel:kamelet", "mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.5" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-projectKey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "projectKey",
                    "simple" : "${header[ce-projectKey]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueTypeName]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueTypeName",
                    "simple" : "${header[ce-issueTypeName]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueSummary]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueSummary",
                    "simple" : "${header[ce-issueSummary]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueAssignee]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueAssignee",
                    "simple" : "${header[ce-issueAssignee]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issuePriorityName]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issuePriorityName",
                    "simple" : "${header[ce-issuePriorityName]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueComponents]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueComponents",
                    "simple" : "${header[ce-issueComponents]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueDescription]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueDescription",
                    "simple" : "${header[ce-issueDescription]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "jira:AddIssue",
              "parameters" : {
                "jiraUrl" : "{{jiraUrl}}",
                "username" : "{{?username}}",
                "password" : "{{?password}}",
                "accessToken" : "{{?personal-token}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jira Add Issue Sink",
      "description" : "Add a new issue to Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `projectKey` / `ce-projectKey`: as the Jira project key.\n\n- `issueTypeName` / `ce-issueTypeName`: as the name of the issue type (example: Bug, Enhancement).\n\n- `issueSummary` / `ce-issueSummary`: as the title or summary of the issue.\n\n- `issueAssignee` / `ce-issueAssignee`: as the user assigned to the issue (Optional).\n\n- `issuePriorityName` / `ce-issuePriorityName`: as the priority name of the issue (example: Critical, Blocker, Trivial) (Optional).\n\n- `issueComponents` / `ce-issueComponents`: as list of string with the valid component names (Optional).\n\n- `issueDescription` / `ce-issueDescription`: as the issue description (Optional).\n\nThe issue description can be set from the body of the message or the `issueDescription`/`ce-issueDescription` in the header, however the body takes precedence.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
      "required" : [ "jiraUrl" ],
      "properties" : {
        "jiraUrl" : {
          "type" : "string",
          "title" : "Jira URL",
          "description" : "The URL of your instance of Jira"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access Jira"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access Jira",
          "format" : "password"
        },
        "personal-token" : {
          "type" : "string",
          "title" : "Personal Token",
          "description" : "Personal Token"
        }
      }
    }
  },
  "jira-oauth-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jira-oauth-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iOTguMDMwODY3NSUiIHkxPSIwLjE2MDU5OTU3MiUiIHgyPSI1OC44ODc3MDYyJSIgeTI9IjQwLjc2NTUyNDYlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDUyQ0MiIG9mZnNldD0iMTglIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyNjg0RkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIxMDAuNjY1MjQ3JSIgeTE9IjAuNDU1MDMyMTIlIiB4Mj0iNTUuNDAxODA5NSUiIHkyPSI0NC43MjY5ODA3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDA1MkNDIiBvZmZzZXQ9IjE4JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY4NEZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGc+CgkJCQk8cGF0aCBkPSJNMjQ0LjY1Nzc3OCwwIEwxMjEuNzA2NjY3LDAgQzEyMS43MDY2NjcsMTQuNzIwMTA0NiAxMjcuNTU0MjA1LDI4LjgzNzMxMiAxMzcuOTYyODkxLDM5LjI0NTk5NzcgQzE0OC4zNzE1NzcsNDkuNjU0NjgzNSAxNjIuNDg4Nzg0LDU1LjUwMjIyMjIgMTc3LjIwODg4OSw1NS41MDIyMjIyIEwxOTkuODU3Nzc4LDU1LjUwMjIyMjIgTDE5OS44NTc3NzgsNzcuMzY4ODg4OSBDMTk5Ljg3NzM5MSwxMDcuOTk0MTU1IDIyNC42OTkxNzgsMTMyLjgxNTk0MyAyNTUuMzI0NDQ0LDEzMi44MzU1NTYgTDI1NS4zMjQ0NDQsMTAuNjY2NjY2NyBDMjU1LjMyNDQ0NCw0Ljc3NTYyOTM0IDI1MC41NDg4MTUsMy42MDcyMjAwMWUtMTYgMjQ0LjY1Nzc3OCwwIFoiIGZpbGw9IiMyNjg0RkYiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODMuODIyMjIyLDYxLjI2MjIyMjIgTDYwLjg3MTExMTEsNjEuMjYyMjIyMiBDNjAuODkwNzIzOCw5MS44ODc0ODg4IDg1LjcxMjUxMTIsMTE2LjcwOTI3NiAxMTYuMzM3Nzc4LDExNi43Mjg4ODkgTDEzOC45ODY2NjcsMTE2LjcyODg4OSBMMTM4Ljk4NjY2NywxMzguNjY2NjY3IEMxMzkuMDI1OTA1LDE2OS4yOTE5MjMgMTYzLjg2MzYwNywxOTQuMDk3ODAzIDE5NC40ODg4ODksMTk0LjA5Nzc3OCBMMTk0LjQ4ODg4OSw3MS45Mjg4ODg5IEMxOTQuNDg4ODg5LDY2LjAzNzg1MTYgMTg5LjcxMzI2LDYxLjI2MjIyMjIgMTgzLjgyMjIyMiw2MS4yNjIyMjIyIFoiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xMjIuOTUxMTExLDEyMi40ODg4ODkgTDAsMTIyLjQ4ODg4OSBDMy43NTM5MTM2MmUtMTUsMTUzLjE0MTkyIDI0Ljg0OTE5MTMsMTc3Ljk5MTExMSA1NS41MDIyMjIyLDE3Ny45OTExMTEgTDc4LjIyMjIyMjIsMTc3Ljk5MTExMSBMNzguMjIyMjIyMiwxOTkuODU3Nzc4IEM3OC4yNDE3NjcsMjMwLjQ1NTMyIDEwMy4wMjAyODUsMjU1LjI2NTY0NyAxMzMuNjE3Nzc4LDI1NS4zMjQ0NDQgTDEzMy42MTc3NzgsMTMzLjE1NTU1NiBDMTMzLjYxNzc3OCwxMjcuMjY0NTE4IDEyOC44NDIxNDgsMTIyLjQ4ODg4OSAxMjIuOTUxMTExLDEyMi40ODg4ODkgWiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0yKSI+PC9wYXRoPgoJCTwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "JIRA",
        "camel.apache.org/kamelet.namespace" : "JIRA"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jira oauth Source",
        "description" : "Receive notifications about new issues from Jira through OAuth authentication.",
        "required" : [ "jiraUrl", "accessToken", "verificationCode", "consumerKey", "privateKey", "jql" ],
        "type" : "object",
        "properties" : {
          "jiraUrl" : {
            "title" : "Jira URL",
            "description" : "The URL of your instance of Jira",
            "type" : "string",
            "example" : "http://my_jira.com:8081"
          },
          "accessToken" : {
            "title" : "Username",
            "description" : "The access token generated by the Jira server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "verificationCode" : {
            "title" : "Password",
            "description" : "The verification code from Jira generated in the first step of the authorization proccess.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "consumerKey" : {
            "title" : "Password",
            "description" : "The consumer key from Jira settings.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "privateKey" : {
            "title" : "Password",
            "description" : "The private key generated by the client to encrypt the conversation to the server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "jql" : {
            "title" : "JQL",
            "description" : "A query to filter issues",
            "type" : "string",
            "example" : "project=MyProject"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:jira", "camel:kamelet", "mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.5" ],
      "template" : {
        "from" : {
          "uri" : "jira:newIssues",
          "parameters" : {
            "jiraUrl" : "{{jiraUrl}}",
            "accessToken" : "{{accessToken}}",
            "verificationCode" : "{{verificationCode}}",
            "privateKey" : "RAW({{privateKey}})",
            "consumerKey" : "{{consumerKey}}",
            "jql" : "{{jql}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "moduleClassNames" : "com.fasterxml.jackson.datatype.joda.JodaModule"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jira oauth Source",
      "description" : "Receive notifications about new issues from Jira through OAuth authentication.",
      "required" : [ "jiraUrl", "accessToken", "verificationCode", "consumerKey", "privateKey", "jql" ],
      "properties" : {
        "jiraUrl" : {
          "type" : "string",
          "title" : "Jira URL",
          "description" : "The URL of your instance of Jira"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The access token generated by the Jira server.",
          "format" : "password"
        },
        "verificationCode" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The verification code from Jira generated in the first step of the authorization proccess.",
          "format" : "password"
        },
        "consumerKey" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The consumer key from Jira settings.",
          "format" : "password"
        },
        "privateKey" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The private key generated by the client to encrypt the conversation to the server.",
          "format" : "password"
        },
        "jql" : {
          "type" : "string",
          "title" : "JQL",
          "description" : "A query to filter issues"
        }
      }
    }
  },
  "jira-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jira-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iOTguMDMwODY3NSUiIHkxPSIwLjE2MDU5OTU3MiUiIHgyPSI1OC44ODc3MDYyJSIgeTI9IjQwLjc2NTUyNDYlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDUyQ0MiIG9mZnNldD0iMTglIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyNjg0RkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIxMDAuNjY1MjQ3JSIgeTE9IjAuNDU1MDMyMTIlIiB4Mj0iNTUuNDAxODA5NSUiIHkyPSI0NC43MjY5ODA3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDA1MkNDIiBvZmZzZXQ9IjE4JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY4NEZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGc+CgkJCQk8cGF0aCBkPSJNMjQ0LjY1Nzc3OCwwIEwxMjEuNzA2NjY3LDAgQzEyMS43MDY2NjcsMTQuNzIwMTA0NiAxMjcuNTU0MjA1LDI4LjgzNzMxMiAxMzcuOTYyODkxLDM5LjI0NTk5NzcgQzE0OC4zNzE1NzcsNDkuNjU0NjgzNSAxNjIuNDg4Nzg0LDU1LjUwMjIyMjIgMTc3LjIwODg4OSw1NS41MDIyMjIyIEwxOTkuODU3Nzc4LDU1LjUwMjIyMjIgTDE5OS44NTc3NzgsNzcuMzY4ODg4OSBDMTk5Ljg3NzM5MSwxMDcuOTk0MTU1IDIyNC42OTkxNzgsMTMyLjgxNTk0MyAyNTUuMzI0NDQ0LDEzMi44MzU1NTYgTDI1NS4zMjQ0NDQsMTAuNjY2NjY2NyBDMjU1LjMyNDQ0NCw0Ljc3NTYyOTM0IDI1MC41NDg4MTUsMy42MDcyMjAwMWUtMTYgMjQ0LjY1Nzc3OCwwIFoiIGZpbGw9IiMyNjg0RkYiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODMuODIyMjIyLDYxLjI2MjIyMjIgTDYwLjg3MTExMTEsNjEuMjYyMjIyMiBDNjAuODkwNzIzOCw5MS44ODc0ODg4IDg1LjcxMjUxMTIsMTE2LjcwOTI3NiAxMTYuMzM3Nzc4LDExNi43Mjg4ODkgTDEzOC45ODY2NjcsMTE2LjcyODg4OSBMMTM4Ljk4NjY2NywxMzguNjY2NjY3IEMxMzkuMDI1OTA1LDE2OS4yOTE5MjMgMTYzLjg2MzYwNywxOTQuMDk3ODAzIDE5NC40ODg4ODksMTk0LjA5Nzc3OCBMMTk0LjQ4ODg4OSw3MS45Mjg4ODg5IEMxOTQuNDg4ODg5LDY2LjAzNzg1MTYgMTg5LjcxMzI2LDYxLjI2MjIyMjIgMTgzLjgyMjIyMiw2MS4yNjIyMjIyIFoiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xMjIuOTUxMTExLDEyMi40ODg4ODkgTDAsMTIyLjQ4ODg4OSBDMy43NTM5MTM2MmUtMTUsMTUzLjE0MTkyIDI0Ljg0OTE5MTMsMTc3Ljk5MTExMSA1NS41MDIyMjIyLDE3Ny45OTExMTEgTDc4LjIyMjIyMjIsMTc3Ljk5MTExMSBMNzguMjIyMjIyMiwxOTkuODU3Nzc4IEM3OC4yNDE3NjcsMjMwLjQ1NTMyIDEwMy4wMjAyODUsMjU1LjI2NTY0NyAxMzMuNjE3Nzc4LDI1NS4zMjQ0NDQgTDEzMy42MTc3NzgsMTMzLjE1NTU1NiBDMTMzLjYxNzc3OCwxMjcuMjY0NTE4IDEyOC44NDIxNDgsMTIyLjQ4ODg4OSAxMjIuOTUxMTExLDEyMi40ODg4ODkgWiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0yKSI+PC9wYXRoPgoJCTwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "JIRA",
        "camel.apache.org/kamelet.namespace" : "JIRA"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jira Source",
        "description" : "Receive notifications about new issues from Jira.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
        "required" : [ "jiraUrl" ],
        "type" : "object",
        "properties" : {
          "jiraUrl" : {
            "title" : "Jira URL",
            "description" : "The URL of your instance of Jira.",
            "type" : "string",
            "example" : "http://my_jira.com:8081"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access Jira.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access Jira.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "personal-token" : {
            "title" : "Personal Token",
            "description" : "Personal Token",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "jql" : {
            "title" : "JQL",
            "description" : "A query to filter issues.",
            "type" : "string",
            "example" : "project=MyProject"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:jira", "camel:kamelet", "mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.5" ],
      "template" : {
        "from" : {
          "uri" : "jira:newIssues",
          "parameters" : {
            "jiraUrl" : "{{jiraUrl}}",
            "username" : "{{?username}}",
            "password" : "{{?password}}",
            "accessToken" : "{{?personal-token}}",
            "jql" : "{{jql}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "moduleClassNames" : "com.fasterxml.jackson.datatype.joda.JodaModule"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jira Source",
      "description" : "Receive notifications about new issues from Jira.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
      "required" : [ "jiraUrl" ],
      "properties" : {
        "jiraUrl" : {
          "type" : "string",
          "title" : "Jira URL",
          "description" : "The URL of your instance of Jira."
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access Jira."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access Jira.",
          "format" : "password"
        },
        "personal-token" : {
          "type" : "string",
          "title" : "Personal Token",
          "description" : "Personal Token"
        },
        "jql" : {
          "type" : "string",
          "title" : "JQL",
          "description" : "A query to filter issues."
        }
      }
    }
  },
  "jira-transition-issue-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jira-transition-issue-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iOTguMDMwODY3NSUiIHkxPSIwLjE2MDU5OTU3MiUiIHgyPSI1OC44ODc3MDYyJSIgeTI9IjQwLjc2NTUyNDYlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDUyQ0MiIG9mZnNldD0iMTglIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyNjg0RkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIxMDAuNjY1MjQ3JSIgeTE9IjAuNDU1MDMyMTIlIiB4Mj0iNTUuNDAxODA5NSUiIHkyPSI0NC43MjY5ODA3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDA1MkNDIiBvZmZzZXQ9IjE4JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY4NEZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGc+CgkJCQk8cGF0aCBkPSJNMjQ0LjY1Nzc3OCwwIEwxMjEuNzA2NjY3LDAgQzEyMS43MDY2NjcsMTQuNzIwMTA0NiAxMjcuNTU0MjA1LDI4LjgzNzMxMiAxMzcuOTYyODkxLDM5LjI0NTk5NzcgQzE0OC4zNzE1NzcsNDkuNjU0NjgzNSAxNjIuNDg4Nzg0LDU1LjUwMjIyMjIgMTc3LjIwODg4OSw1NS41MDIyMjIyIEwxOTkuODU3Nzc4LDU1LjUwMjIyMjIgTDE5OS44NTc3NzgsNzcuMzY4ODg4OSBDMTk5Ljg3NzM5MSwxMDcuOTk0MTU1IDIyNC42OTkxNzgsMTMyLjgxNTk0MyAyNTUuMzI0NDQ0LDEzMi44MzU1NTYgTDI1NS4zMjQ0NDQsMTAuNjY2NjY2NyBDMjU1LjMyNDQ0NCw0Ljc3NTYyOTM0IDI1MC41NDg4MTUsMy42MDcyMjAwMWUtMTYgMjQ0LjY1Nzc3OCwwIFoiIGZpbGw9IiMyNjg0RkYiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODMuODIyMjIyLDYxLjI2MjIyMjIgTDYwLjg3MTExMTEsNjEuMjYyMjIyMiBDNjAuODkwNzIzOCw5MS44ODc0ODg4IDg1LjcxMjUxMTIsMTE2LjcwOTI3NiAxMTYuMzM3Nzc4LDExNi43Mjg4ODkgTDEzOC45ODY2NjcsMTE2LjcyODg4OSBMMTM4Ljk4NjY2NywxMzguNjY2NjY3IEMxMzkuMDI1OTA1LDE2OS4yOTE5MjMgMTYzLjg2MzYwNywxOTQuMDk3ODAzIDE5NC40ODg4ODksMTk0LjA5Nzc3OCBMMTk0LjQ4ODg4OSw3MS45Mjg4ODg5IEMxOTQuNDg4ODg5LDY2LjAzNzg1MTYgMTg5LjcxMzI2LDYxLjI2MjIyMjIgMTgzLjgyMjIyMiw2MS4yNjIyMjIyIFoiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xMjIuOTUxMTExLDEyMi40ODg4ODkgTDAsMTIyLjQ4ODg4OSBDMy43NTM5MTM2MmUtMTUsMTUzLjE0MTkyIDI0Ljg0OTE5MTMsMTc3Ljk5MTExMSA1NS41MDIyMjIyLDE3Ny45OTExMTEgTDc4LjIyMjIyMjIsMTc3Ljk5MTExMSBMNzguMjIyMjIyMiwxOTkuODU3Nzc4IEM3OC4yNDE3NjcsMjMwLjQ1NTMyIDEwMy4wMjAyODUsMjU1LjI2NTY0NyAxMzMuNjE3Nzc4LDI1NS4zMjQ0NDQgTDEzMy42MTc3NzgsMTMzLjE1NTU1NiBDMTMzLjYxNzc3OCwxMjcuMjY0NTE4IDEyOC44NDIxNDgsMTIyLjQ4ODg4OSAxMjIuOTUxMTExLDEyMi40ODg4ODkgWiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0yKSI+PC9wYXRoPgoJCTwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "JIRA",
        "camel.apache.org/kamelet.namespace" : "JIRA"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jira Transition Issue Sink",
        "description" : "Sets a new status (transition to) of an existing issue in Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `issueKey` / `ce-issueKey`: as the issue unique code.\n\n- `issueTransitionId` / `ce-issueTransitionId`: as the new status (transition) code. You should carefully check the project workflow as each transition may have conditions to check before the transition is made.\n\nThe comment of the transition is set in the body of the message.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
        "required" : [ "jiraUrl" ],
        "type" : "object",
        "properties" : {
          "jiraUrl" : {
            "title" : "Jira URL",
            "description" : "The URL of your instance of Jira",
            "type" : "string",
            "example" : "http://my_jira.com:8081"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access Jira",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access Jira",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "personal-token" : {
            "title" : "Personal Token",
            "description" : "Personal Token",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:jira", "camel:kamelet", "mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.5" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueKey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueKey",
                    "simple" : "${header[ce-issueKey]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueTransitionId]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueTransitionId",
                    "simple" : "${header[ce-issueTransitionId]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "jira:transitionIssue",
              "parameters" : {
                "jiraUrl" : "{{jiraUrl}}",
                "username" : "{{?username}}",
                "password" : "{{?password}}",
                "accessToken" : "{{?personal-token}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jira Transition Issue Sink",
      "description" : "Sets a new status (transition to) of an existing issue in Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `issueKey` / `ce-issueKey`: as the issue unique code.\n\n- `issueTransitionId` / `ce-issueTransitionId`: as the new status (transition) code. You should carefully check the project workflow as each transition may have conditions to check before the transition is made.\n\nThe comment of the transition is set in the body of the message.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
      "required" : [ "jiraUrl" ],
      "properties" : {
        "jiraUrl" : {
          "type" : "string",
          "title" : "Jira URL",
          "description" : "The URL of your instance of Jira"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access Jira"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access Jira",
          "format" : "password"
        },
        "personal-token" : {
          "type" : "string",
          "title" : "Personal Token",
          "description" : "Personal Token"
        }
      }
    }
  },
  "jira-update-issue-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jira-update-issue-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iOTguMDMwODY3NSUiIHkxPSIwLjE2MDU5OTU3MiUiIHgyPSI1OC44ODc3MDYyJSIgeTI9IjQwLjc2NTUyNDYlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDUyQ0MiIG9mZnNldD0iMTglIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyNjg0RkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIxMDAuNjY1MjQ3JSIgeTE9IjAuNDU1MDMyMTIlIiB4Mj0iNTUuNDAxODA5NSUiIHkyPSI0NC43MjY5ODA3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDA1MkNDIiBvZmZzZXQ9IjE4JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY4NEZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGc+CgkJCQk8cGF0aCBkPSJNMjQ0LjY1Nzc3OCwwIEwxMjEuNzA2NjY3LDAgQzEyMS43MDY2NjcsMTQuNzIwMTA0NiAxMjcuNTU0MjA1LDI4LjgzNzMxMiAxMzcuOTYyODkxLDM5LjI0NTk5NzcgQzE0OC4zNzE1NzcsNDkuNjU0NjgzNSAxNjIuNDg4Nzg0LDU1LjUwMjIyMjIgMTc3LjIwODg4OSw1NS41MDIyMjIyIEwxOTkuODU3Nzc4LDU1LjUwMjIyMjIgTDE5OS44NTc3NzgsNzcuMzY4ODg4OSBDMTk5Ljg3NzM5MSwxMDcuOTk0MTU1IDIyNC42OTkxNzgsMTMyLjgxNTk0MyAyNTUuMzI0NDQ0LDEzMi44MzU1NTYgTDI1NS4zMjQ0NDQsMTAuNjY2NjY2NyBDMjU1LjMyNDQ0NCw0Ljc3NTYyOTM0IDI1MC41NDg4MTUsMy42MDcyMjAwMWUtMTYgMjQ0LjY1Nzc3OCwwIFoiIGZpbGw9IiMyNjg0RkYiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODMuODIyMjIyLDYxLjI2MjIyMjIgTDYwLjg3MTExMTEsNjEuMjYyMjIyMiBDNjAuODkwNzIzOCw5MS44ODc0ODg4IDg1LjcxMjUxMTIsMTE2LjcwOTI3NiAxMTYuMzM3Nzc4LDExNi43Mjg4ODkgTDEzOC45ODY2NjcsMTE2LjcyODg4OSBMMTM4Ljk4NjY2NywxMzguNjY2NjY3IEMxMzkuMDI1OTA1LDE2OS4yOTE5MjMgMTYzLjg2MzYwNywxOTQuMDk3ODAzIDE5NC40ODg4ODksMTk0LjA5Nzc3OCBMMTk0LjQ4ODg4OSw3MS45Mjg4ODg5IEMxOTQuNDg4ODg5LDY2LjAzNzg1MTYgMTg5LjcxMzI2LDYxLjI2MjIyMjIgMTgzLjgyMjIyMiw2MS4yNjIyMjIyIFoiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xMjIuOTUxMTExLDEyMi40ODg4ODkgTDAsMTIyLjQ4ODg4OSBDMy43NTM5MTM2MmUtMTUsMTUzLjE0MTkyIDI0Ljg0OTE5MTMsMTc3Ljk5MTExMSA1NS41MDIyMjIyLDE3Ny45OTExMTEgTDc4LjIyMjIyMjIsMTc3Ljk5MTExMSBMNzguMjIyMjIyMiwxOTkuODU3Nzc4IEM3OC4yNDE3NjcsMjMwLjQ1NTMyIDEwMy4wMjAyODUsMjU1LjI2NTY0NyAxMzMuNjE3Nzc4LDI1NS4zMjQ0NDQgTDEzMy42MTc3NzgsMTMzLjE1NTU1NiBDMTMzLjYxNzc3OCwxMjcuMjY0NTE4IDEyOC44NDIxNDgsMTIyLjQ4ODg4OSAxMjIuOTUxMTExLDEyMi40ODg4ODkgWiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0yKSI+PC9wYXRoPgoJCTwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "JIRA",
        "camel.apache.org/kamelet.namespace" : "JIRA"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jira Update Issue Sink",
        "description" : "Update fields of an existing issue in Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `issueKey` / `ce-issueKey`: as the issue code in Jira.\n\n- `issueTypeName` / `ce-issueTypeName`: as the name of the issue type (example: Bug, Enhancement).\n\n- `issueSummary` / `ce-issueSummary`: as the title or summary of the issue.\n\n- `issueAssignee` / `ce-issueAssignee`: as the user assigned to the issue (Optional).\n\n- `issuePriorityName` / `ce-issuePriorityName`: as the priority name of the issue (example: Critical, Blocker, Trivial) (Optional).\n\n- `issueComponents` / `ce-issueComponents`: as list of string with the valid component names (Optional).\n\n- `issueDescription` / `ce-issueDescription`: as the issue description (Optional).\n\nThe issue description can be set from the body of the message or the `issueDescription`/`ce-issueDescription` in the header, however the body takes precedence.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
        "required" : [ "jiraUrl" ],
        "type" : "object",
        "properties" : {
          "jiraUrl" : {
            "title" : "Jira URL",
            "description" : "The URL of your instance of Jira",
            "type" : "string",
            "example" : "http://my_jira.com:8081"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access Jira",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access Jira",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "personal-token" : {
            "title" : "Personal Token",
            "description" : "Personal Token",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:jira", "camel:kamelet", "mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.5" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueKey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueKey",
                    "simple" : "${header[ce-issueKey]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueTypeName]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueTypeName",
                    "simple" : "${header[ce-issueTypeName]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueSummary]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueSummary",
                    "simple" : "${header[ce-issueSummary]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueAssignee]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueAssignee",
                    "simple" : "${header[ce-issueAssignee]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issuePriorityName]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issuePriorityName",
                    "simple" : "${header[ce-issuePriorityName]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueComponents]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueComponents",
                    "simple" : "${header[ce-issueComponents]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-issueDescription]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "issueDescription",
                    "simple" : "${header[ce-issueDescription]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "jira:UpdateIssue",
              "parameters" : {
                "jiraUrl" : "{{jiraUrl}}",
                "username" : "{{?username}}",
                "password" : "{{?password}}",
                "accessToken" : "{{?personal-token}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jira Update Issue Sink",
      "description" : "Update fields of an existing issue in Jira.\n\nThe Kamelet expects the following headers to be set:\n\n- `issueKey` / `ce-issueKey`: as the issue code in Jira.\n\n- `issueTypeName` / `ce-issueTypeName`: as the name of the issue type (example: Bug, Enhancement).\n\n- `issueSummary` / `ce-issueSummary`: as the title or summary of the issue.\n\n- `issueAssignee` / `ce-issueAssignee`: as the user assigned to the issue (Optional).\n\n- `issuePriorityName` / `ce-issuePriorityName`: as the priority name of the issue (example: Critical, Blocker, Trivial) (Optional).\n\n- `issueComponents` / `ce-issueComponents`: as list of string with the valid component names (Optional).\n\n- `issueDescription` / `ce-issueDescription`: as the issue description (Optional).\n\nThe issue description can be set from the body of the message or the `issueDescription`/`ce-issueDescription` in the header, however the body takes precedence.\n\nTo authenticate a username/password or personal token must be defined. We recommend to use personal token as it is a safer way to get access to Jira.",
      "required" : [ "jiraUrl" ],
      "properties" : {
        "jiraUrl" : {
          "type" : "string",
          "title" : "Jira URL",
          "description" : "The URL of your instance of Jira"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access Jira"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access Jira",
          "format" : "password"
        },
        "personal-token" : {
          "type" : "string",
          "title" : "Personal Token",
          "description" : "Personal Token"
        }
      }
    }
  },
  "jms-amqp-10-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jms-amqp-10-sink",
      "annotations" : {
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTkzLjgzMzVtbSIKICAgaGVpZ2h0PSI5Ny4yNjgwMTNtbSIKICAgdmlld0JveD0iMCAwIDE5My44MzM1IDk3LjI2ODAxMyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMTAwMyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4zICgyNDA1NTQ2LCAyMDE4LTAzLTExKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icXBpZC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM5OTciPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0iU1ZHSURfMV8tNyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii02ODczLjY0NzkiCiAgICAgICB5MT0iMjc3NC4yOTk4IgogICAgICAgeDI9Ii02NjM2LjIzNzMiCiAgICAgICB5Mj0iMjQ5Ni42ODk1IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRjU5NzIzIgogICAgICAgICBpZD0ic3RvcDMxNzItNSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMxMjMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGNjk4MjIiCiAgICAgICAgIGlkPSJzdG9wMzE3NC0zIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuODM4MyIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgaWQ9InN0b3AzMTc2LTUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0iU1ZHSURfMl8tNiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii04NjMwLjcxOTciCiAgICAgICB5MT0iMjgwNC45NjA3IgogICAgICAgeDI9Ii02OTM2LjkyNTMiCiAgICAgICB5Mj0iMjgwNC45NjA3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgIGlkPSJzdG9wMzE5Ny0yIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgaWQ9InN0b3AzMTk5LTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICBpZD0ic3RvcDMyMDEtMSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICBpZD0ic3RvcDMyMDMtMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJTVkdJRF8zXy03IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTg0MjYuMjU1OSIKICAgICAgIHkxPSIyNjM1LjI4MzkiCiAgICAgICB4Mj0iLTc0MTYuOTE5NCIKICAgICAgIHkyPSIyNjM1LjI4MzkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyODI2NjEiCiAgICAgICAgIGlkPSJzdG9wMzIwOC0wIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjkuNTQ4Mzg5ZS0wMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzY2MkU4QyIKICAgICAgICAgaWQ9InN0b3AzMjEwLTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43ODgyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUUyMDY0IgogICAgICAgICBpZD0ic3RvcDMyMTItMyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjk0ODciCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIwMzIiCiAgICAgICAgIGlkPSJzdG9wMzIxNC02IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzRfLTAiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODc5IgogICAgICAgeTE9IjI4MjAuODYwNCIKICAgICAgIHgyPSItNjg0MS43OTMiCiAgICAgICB5Mj0iMjgyMC44NjA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgIGlkPSJzdG9wMzIxOS02IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgaWQ9InN0b3AzMjIxLTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICBpZD0ic3RvcDMyMjMtNiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICBpZD0ic3RvcDMyMjUtMSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJTVkdJRF81Xy04IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTg0MTIuMDU3NiIKICAgICAgIHkxPSIyNzk3Ljg3ODkiCiAgICAgICB4Mj0iLTc1MjEuOTE3NSIKICAgICAgIHkyPSIyNzk3Ljg3ODkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyODI2NjEiCiAgICAgICAgIGlkPSJzdG9wMzIzMC03IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjkuNTQ4Mzg5ZS0wMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzY2MkU4QyIKICAgICAgICAgaWQ9InN0b3AzMjMyLTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43ODgyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUUyMDY0IgogICAgICAgICBpZD0ic3RvcDMyMzQtMiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjk0ODciCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIwMzIiCiAgICAgICAgIGlkPSJzdG9wMzIzNi0wIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzZfLTIiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODc5IgogICAgICAgeTE9IjI2NDUuNDg5NyIKICAgICAgIHgyPSItNjg0MS43OTMiCiAgICAgICB5Mj0iMjY0NS40ODk3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgIGlkPSJzdG9wMzI0MS0zIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgaWQ9InN0b3AzMjQzLTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICBpZD0ic3RvcDMyNDUtNSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICBpZD0ic3RvcDMyNDctOSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJTVkdJRF83Xy0yIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTg2NDAuNjU5MiIKICAgICAgIHkxPSIyNjU0LjI2NDkiCiAgICAgICB4Mj0iLTY5NDYuODY0NyIKICAgICAgIHkyPSIyNjU0LjI2NDkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuMzIzMyIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgaWQ9InN0b3AzMjUyLTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC42MzAyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICBpZD0ic3RvcDMyNTQtOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjc1MTQiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgIGlkPSJzdG9wMzI1Ni05IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgIGlkPSJzdG9wMzI1OC03IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzhfLTMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODg5IgogICAgICAgeTE9IjI1OTMuNDQ2IgogICAgICAgeDI9Ii02ODQxLjc5MjUiCiAgICAgICB5Mj0iMjU5My40NDYiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuMzIzMyIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgaWQ9InN0b3AzMjY3LTYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC42MzAyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICBpZD0ic3RvcDMyNjktMSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjc1MTQiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgIGlkPSJzdG9wMzI3MS0yIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgIGlkPSJzdG9wMzI3My05IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzlfLTMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODg5IgogICAgICAgeTE9IjI1OTkuMzI0MiIKICAgICAgIHgyPSItNjg0MS43OTI1IgogICAgICAgeTI9IjI1OTkuMzI0MiIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC40MzQ1LC0wLjkzMTgsLTAuOTMxOCwtMC40MzQ1LDYyMjMuNDc2MSwtNTA1Mi43NDI3KSI+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUMyMDYzIgogICAgICAgICBpZD0ic3RvcDMyODItMSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODIwMzciCiAgICAgICAgIGlkPSJzdG9wMzI4NC05IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0NDMjEzNSIKICAgICAgICAgaWQ9InN0b3AzMjg2LTQiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgaWQ9InN0b3AzMjg4LTciIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0iU1ZHSURfMTBfLTgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItNzU4NC4wMzg2IgogICAgICAgeTE9IjI2MDAuNTUxNSIKICAgICAgIHgyPSItNzIwOS42NTQzIgogICAgICAgeTI9IjI2MDAuNTUxNSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC40MzQ1LC0wLjkzMTgsLTAuOTMxOCwtMC40MzQ1LDYyMjMuNDc2MSwtNTA1Mi43NDI3KSI+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUMyMDYzIgogICAgICAgICBpZD0ic3RvcDMyOTctNCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODIwMzciCiAgICAgICAgIGlkPSJzdG9wMzI5OS01IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0NDMjEzNSIKICAgICAgICAgaWQ9InN0b3AzMzAxLTAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgaWQ9InN0b3AzMzAzLTMiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMS40IgogICAgIGlua3NjYXBlOmN4PSIxNzkuMjM0NjYiCiAgICAgaW5rc2NhcGU6Y3k9IjIwNy4wNzAyOSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjM3MjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMjA0OSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMTE0IgogICAgIGlua3NjYXBlOndpbmRvdy15PSI1NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTEwMDAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2Ny4yNDA5NiwtMTUuNjM4MzgzKSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzJkMmQyZDtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIGQ9Im0gLTg0LjA4NzA2MSwxMTIuNzgyMzQgYyAtMC4xMDA0OCwtMC4xMDA0OCAtMC4xODI3LC0xNi40NjE2NzYgLTAuMTgyNywtMzYuMzU4MjA2IDAsLTMyLjc0MzI2IDAuMDM5NywtMzYuMTkwNzUgMC40MTg1MiwtMzYuMzM2MTEgMC41NDUxMywtMC4yMDkxOSA3LjYxMzY2NCwtMC4yMDkxOSA4LjE1ODgwNCwwIDAuMzA5MjUsMC4xMTg2NyAwLjQxODUxLDAuNTI5MDUgMC40MTg1MSwxLjU3MTg4IDAsMS42MjU5NyAwLjMyODE5LDEuOTgxMiAxLjE0NDA3LDEuMjM4MzUgNC4yOTMxNywtMy45MDg5MSAxNC40OTI5NSwtNS4wMDQyNiAyMS4yMTEzNSwtMi4yNzc4OSA4LjcxOTYzLDMuNTM4NDggMTMuOTM5NTgsMTMuNjQ1NjQgMTMuMjY0MzI5LDI1LjY4MzExIC0wLjUxNjQ0LDkuMjA2NCAtNC40MzQzOTksMTcuMDUzMjEgLTEwLjk3NTk2OSwyMS45ODI0MiAtNC4xNTM0MiwzLjEyOTcgLTcuMjM5ODUsNC4xNDUyIC0xMi42MDUyMyw0LjE0NzM3IC00LjczMjE0LDAuMDAyIC03Ljg3MjIxLC0wLjcyNDExIC0xMC4zMjE5OSwtMi4zODY1OCAtMC41MzI5NSwtMC4zNjE2NiAtMS4xMDc0MywtMC42ODM4OCAtMS4yNzY2MywtMC43MTYwMiAtMC4yMjg0NiwtMC4wNDM0IC0wLjM0MTY4LDIuOTcxNiAtMC40Mzk5MywxMS43MTU1MDYgbCAtMC4xMzIyOSwxMS43NzM5NiAtNC4yNDkwNywwLjA3MjUgYyAtMi4zMzY5OSwwLjAzOTkgLTQuMzMxMjg0LC0wLjAxIC00LjQzMTc3NCwtMC4xMTAyNSB6IG0gMjEuOTEwMDE0LC0yOC4yNzU1MTYgYyAzLjAwMDEyLC0wLjYzMjY4IDUuMDAyOTYsLTEuNzcwODggNy40NDg4NSwtNC4yMzMxMyAyLjQzODMsLTIuNDU0NjEgMy44ODUyOCwtNS4wNDA3MiA0Ljg5MTgzLC04Ljc0Mjg0IDAuNzc1NjYsLTIuODUyOTIgMC44NDA1MiwtOS4yNjc1MiAwLjEyNTU5LC0xMi40MjExNCAtMS43MTAyLC03LjU0Mzg3IC02LjE2MTIsLTExLjQzNDcxIC0xNC4wOTQ0NCwtMTIuMzIwNjMgLTEuOTg0NTYsLTAuMjIxNjIgLTIuNzQ3NjksLTAuMTk0OSAtNC4yMjYwMiwwLjE0Nzk1IC0yLjQ0NzA5LDAuNTY3NTEgLTUuNDEzMywyLjAzNzc0IC02LjQxNjYsMy4xODA0NSBsIC0wLjgyNjA5LDAuOTQwODUgdiAxNC4yMzg2IDE0LjIzODU5IGwgMC43NTk4NywxLjA0ODk2IGMgMi41NzUwNCwzLjU1NDc2IDcuMTYzMDksNS4wMTM0NCAxMi4zMzcwMSwzLjkyMjM0IHogbSAtNDUuMjA3ODQzLDEuMjAyNDggYyAtNS4wNzA5NiwzLjI1ODIyIC0xMC42NTgzNSw1LjI5NzI2IC0xNi43MDQ2Niw2LjA5NjE2IC0zLjIwMzQyLDAuNDIzMjYgLTkuMzE3MzMsMC4xNjIyNyAtMTIuNjIwMzYsLTAuNTM4NzYgLTE1LjA2MTMsLTMuMTk2NTUgLTI2LjUyMTAzLC0xNC42MzM4MyAtMjkuOTEwMDksLTI5Ljg1MTUgLTAuODI3OTQsLTMuNzE3NjggLTAuODI3OTQsLTExLjQ3NjYzIDAsLTE1LjE5NDMxIDMuNjY3MjksLTE2LjQ2NzAxMyAxNi43MTM3NSwtMjguMzM2OTczIDMzLjQwMjMyLC0zMC4zOTAxODMgMy4wNzYyMywtMC4zNzg0NyA4LjgyNTg2LC0wLjE3Njg5IDExLjg3OCwwLjQxNjQ0IDE1LjM0OTc2LDIuOTgzOTYgMjcuMDg2OTc5LDE0LjUxMTgxIDMwLjUxODEwOSwyOS45NzM3NDMgMC43NzAzNywzLjQ3MTU1IDAuODMzMDEsMTEuMTY5OTcgMC4xMTk2LDE0LjY5ODM4IC0xLjM1MTk2LDYuNjg2NTcgLTQuNzU0MzMsMTMuNTI1NTEgLTguOTg3ODYsMTguMDY2MDYgMCwwIC0xLjA4Mzk3OSwyLjU4MDI5NSAtNy42OTUwNTksNi43MjM5NyB6IG0gLTE0Ljc2NTA0LC0yLjg5NzMgYyAzLjY1MTk2LC0wLjc5OTc1IDguMzYwMTksLTIuNzU5NyA4LjY4OTIzLC0zLjYxNzE2IGwgNS44MDUzLC01Ljg0NDEyIDEuMjkyOTIsMC40MzY5NSAwLjc2LC0wLjg1NjcgYyAxLjU4MzQxLC0xLjc4NDg5IDMuOTE5MjIsLTUuNzE3NDcgNC45MDkxNCwtOC4yNjUwNSAxLjQ4OTY1OSwtMy44MzM2MyAxLjk3NTc5OSwtNi40NzAxOSAxLjk3NTc5OSwtMTAuNzE1NjIgMCwtNC4yNDU0NCAtMC40ODYxNCwtNi44ODIgLTEuOTc1Nzk5LC0xMC43MTU2MyAtMy41ODY5MywtOS4yMzA5ODMgLTExLjg5MTIyLC0xNi4xNDc3MTMgLTIxLjk0MTAxLC0xOC4yNzQ4ODMgLTMuMDY4NzksLTAuNjQ5NTUgLTguODM3NDcsLTAuNjQ5NTUgLTExLjkwNjI1LDAgLTExLjg0NzQ4LDIuNTA3NjggLTIwLjk5NDMxLDExLjU0Nzg4MyAtMjMuNDQyOTcsMjMuMTY5NjczIC0wLjY0MjY1LDMuMDUwMTYgLTAuNjQyNjUsOC41OTE1MSAwLDExLjY0MTY3IDIuNjc0MjQsMTIuNjkyNDggMTMuMzU1NjEsMjIuMjI4NTIgMjYuNDg1NjgsMjMuNjQ1NzIgMi4wMzMyOCwwLjIxOTQ2IDcuMDcyNzQsLTAuMTA2NjMgOS4zNDc5NSwtMC42MDQ4OSB6IG0gOTAuNjU4MDUsOC42NDkxNSBjIC0wLjA2OTc5LC0wLjE4NTI3IC0wLjE1NjQwOSwtMTAuMzM4MTEgLTAuMTkyNDg3LC0yMi41NjE4NiBsIC0wLjA2NTYsLTIyLjIyNSAtNS4wMjcwODQsLTAuMTMyMjkgLTUuMDI3MDgzLC0wLjEzMjI5IHYgLTMuOTY4NzUgLTMuOTY4NzUgaCA5LjkyMTg3NSA5LjkyMTg3NSB2IDI2LjU5MDYzIDI2LjU5MDYyIGwgLTQuNzAyMzA3LDAuMDcyMyBjIC0zLjYxNzg0NCwwLjA1NTYgLTQuNzMxNTY4LC0wLjAwNSAtNC44MjkxOTEsLTAuMjY0NTkgeiBtIDMwLjU2NTg3MzM3LC0wLjYwMDM5IEMgLTkuMjU4Mzc1OSw4OS4xODM5MjQgLTE1LjQxNDg5Nyw4Mi42NDg4MDQgLTE3LjM3MjQzMyw3My40MDI5NTQgYyAtMS4wMzIxNjksLTQuODc1MTUgLTAuOTE0NDc5LC0xMS4zNyAwLjI5MTQ3MywtMTYuMDg1MjMgMS44NTkwMjksLTcuMjY4NzMgNy4yNzQyNTMxLC0xNC4zNzY1MSAxMy4yNTIxMDMxLC0xNy4zOTQxMiAzLjEwOTI3ODI3LC0xLjU2OTU2IDUuMDQ1MjI5MywtMS45Nzc4NCA5LjM4NTE0MjMsLTEuOTc5MjYgMi41MDU2OTYsLTcuOWUtNCA0LjUwNTIwMjYsMC4xMzM2NCA1LjQyMzk1NzYsMC4zNjQ3MyAxLjcwNzMwNiwwLjQyOTQzIDQuNjcwNiwxLjcxNzc1IDUuMzM1ODc2LDIuMzE5ODIgMC4yNTU4ODYsMC4yMzE1NyAwLjY0ODI3NywwLjM1MDgxIDAuODcxOTc3LDAuMjY0OTcgMC4zNTc0MDEsLTAuMTM3MTUgMC40MDY3MywtMS41Njk3OSAwLjQwNjczLC0xMS44MTI0NTMgdiAtMTEuNjU2MzcgbCA0LjQzMTc3MSwwLjA3MjYgNC40MzE3NzEsMC4wNzI1IDAuMDY3MDksMzYuMzE0MDYzIDAuMDY3MDgsMzYuMzE0MDYgaCAtNC40OTg4NTQgLTQuNDk4ODU2IHYgLTEuNDM5NTkgYyAwLC0wLjc5MTc4IC0wLjExMzA1OSwtMS41MDk0NyAtMC4yNTEyNDUsLTEuNTk0ODcgLTAuMTM4MTg0LC0wLjA4NTQgLTEuMDIwMTk3LDAuMzcxMTYgLTEuOTYwMDIzLDEuMDE0NiAtMC45Mzk4MjksMC42NDM0MyAtMi4zNzk4OTUsMS40MjA5NyAtMy4yMDAxNDksMS43Mjc4NiAtMy4zOTU5ODk2LDEuMjcwNjEgLTkuMzc1MzY0NiwxLjcwNTk3IC0xMy4xMDk0MTU2MywwLjk1NDUxIHogTSAxMS42MDY5NzUsODMuMDY2NDU0IGMgMi4xODAyMjUsLTAuNzUwMTEgNC41OTM5NSwtMi4xMDAxNiA1LjMzOTk5LC0yLjk4Njc3IGwgMC42NDc4NjEsLTAuNzY5OTQgdiAtMTQuMjI3NTEgLTE0LjIyNzUgbCAtMC43NTk4NjIsLTEuMDQ4OTYgYyAtMC45OTgwNzcsLTEuMzc3OCAtMi41NDM0MjYsLTIuNTgwMzUgLTQuNDE5ODc1LC0zLjQzOTQyIC0yLjAwMTM4LC0wLjkxNjI2IC01LjQ5MTE4MzYsLTEuMTMzODMgLTguMTUxNzQ4NiwtMC41MDgyMiAtOC4yMDkyNzczLDEuOTMwMzQgLTEzLjI1OTA5NDMsMTAuMDQ3MzIgLTEyLjc3MDg1MDMsMjAuNTI3NjIgMC41MjYyMTEsMTEuMjk1MjcgNS45NTEzMjMsMTcuMDkzMDEgMTYuMDcyODk1MywxNy4xNzY4OSAxLjg3MzIyMSwwLjAxNTUgMi45MzIxNDk2LC0wLjExNDQ4IDQuMDQxNTg5NiwtMC40OTYxOSB6IE0gLTMxLjQ5NzkzMSwzMS4zOTExNzEgYyAtMC4wNzMxOCwtMC4xOTA3IC0wLjEwMDI5LC0yLjM2NjQxIC0wLjA2MDI1LC00LjgzNDkyIGwgMC4wNzI4LC00LjQ4ODIxIGggNC42MzAyMDggNC42MzAyMDkgdiA0Ljc2MjUgNC43NjI1IGwgLTQuNTY5OTYsMC4wNzI0IGMgLTMuNTc2NDM0LDAuMDU2NyAtNC41OTg4ODUsLTAuMDAzIC00LjcwMzAwNiwtMC4yNzQyOSB6IgogICAgICAgaWQ9InBhdGgxNTkxIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3Njc3NjY2Njc2NjY2Nzc2Nzc2NjY2NjY3NjY2NjY3NzY3NjY2NjY2NjY3Njc3Njc2NjY2NzY2NjY2NjY2NjY2NjY3Nzc2NzY2NzY2NjY2NjY3NjY2NjY2NjY2NjY2Nzc2NjY3NjY2NjY2NjYyIgLz4KICAgIDxnCiAgICAgICBpZD0iZzMxNjkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgtMC4wMTQ0MTc5MywwLjAyNDk3MjYsLTAuMDI0OTcyNiwtMC4wMTQ0MTc5MywtODEuNzM0ODg3LDgxLjgyNDQ0NikiPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDI3NCIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItNjg3My42NDc5IgogICAgICAgICB5MT0iMjc3NC4yOTk4IgogICAgICAgICB4Mj0iLTY2MzYuMjM3MyIKICAgICAgICAgeTI9IjI0OTYuNjg5NSIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRjU5NzIzIgogICAgICAgICAgIGlkPSJzdG9wNDI3NiIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMTIzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGNjk4MjIiCiAgICAgICAgICAgaWQ9InN0b3A0Mjc4IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjgzODMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgICBpZD0ic3RvcDQyODAiIC8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNzM2LjEsOC4xIGMgLTI3LjEsMTYgLTcyLjIsNjEuMyAtMTI1LjgsMTI3IGwgNDkuMyw5My4yIEMgNjk0LjMsMTc4LjggNzI5LjUsMTM0LjEgNzY1LDk2IGMgMi44LC0zIDQuMSwtNC40IDQuMSwtNC40IC0xLjMsMS40IC0yLjgsMyAtNC4xLDQuNCAtMTEuNSwxMi42IC00Ni40LDUzLjQgLTk5LDEzNC4yIDUwLjcsLTIuNSAxMjguNSwtMTIuOSAxOTIsLTIzLjcgMTksLTEwNS45IC0xOC41LC0xNTQuMyAtMTguNSwtMTU0LjMgMCwwIC00Ny42LC03NyAtMTAzLjQsLTQ0LjEgeiIKICAgICAgICAgaWQ9InBhdGgzMTc4IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzFfLTcpIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDY1Mi41LDUzOS45IGMgMC4zLC0wLjEgMC43LC0wLjEgMS4xLC0wLjIgbCAtNy4xLDAuOCBjIC0wLjQsMC4yIC0wLjgsMC40IC0xLjIsMC42IDIuMywtMC41IDQuOCwtMC45IDcuMiwtMS4yIHoiCiAgICAgICAgIGlkPSJwYXRoMzE4MCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA2MDIsNzA2LjkgYyAtNCwwLjkgLTguMSwxLjYgLTEyLjMsMi4zIDQuMiwtMC43IDguMywtMS41IDEyLjMsLTIuMyB6IgogICAgICAgICBpZD0icGF0aDMxODIiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMjU5LjQsMTA4MS40IGMgMC41LC0xLjMgMSwtMi44IDEuNSwtNC4xIDEwLjksLTI4LjcgMjEuNywtNTYuNiAzMi4zLC04My44IDExLjksLTMwLjUgMjMuNywtNjAgMzUuNSwtODguNiAxMi4zLC0zMC4xIDI0LjUsLTU5LjMgMzYuNCwtODcuNSAxMi41LC0yOS41IDI0LjksLTU4IDM3LjEsLTg1LjQgOS45LC0yMi4zIDE5LjYsLTQzLjkgMjkuMiwtNjQuOCAzLjIsLTcgNi40LC0xMy45IDkuNiwtMjAuNyA2LjMsLTEzLjYgMTIuNSwtMjYuOCAxOC43LC0zOS44IDUuNywtMTEuOSAxMS4zLC0yMy42IDE3LC0zNS4yIDEuOSwtMy44IDMuNywtNy42IDUuNiwtMTEuNCAwLjMsLTAuNiAwLjYsLTEuMiAwLjksLTEuOSBsIC02LjEsMC42IC00LjgsLTkuNSBjIC0wLjUsMC45IC0wLjksMS45IC0xLjQsMi44IC04LjYsMTcuMyAtMTcuMywzNC42IC0yNS44LDUyLjEgLTQuOSwxMC4yIC05LjgsMjAuNCAtMTQuNywzMC41IC0xMy41LDI4LjMgLTI2LjcsNTcgLTM5LjgsODUuNiAtMTMuMiwyOS4xIC0yNi4xLDU4LjMgLTM4LjksODcuNiAtMTIuNCwyOC44IC0yNC43LDU3LjYgLTM2LjYsODYuMyAtMTEuOSwyOC43IC0yMy42LDU3LjMgLTM1LDg1LjYgLTExLjksMjkuNiAtMjMuNCw1OSAtMzQuNiw4OCAtMi42LDYuNiAtNSwxMy4xIC03LjYsMTkuNiAtOSwyMy40IC0xNy44LDQ2LjYgLTI2LjMsNjkuNCBsIDcuNiwxNSA2LjgsLTAuNyBjIDAuMiwtMC43IDAuNSwtMS4zIDAuNywtMi4xIDExLjEsLTI5LjggMjIsLTU5LjEgMzIuNywtODcuNiB6IgogICAgICAgICBpZD0icGF0aDMxODQiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gNTg2LjYsNzA5LjYgWiIKICAgICAgICAgaWQ9InBhdGgzMTg2IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDU3MC4yLDc5MSBjIC02LjMsMS4xIC0xMi43LDIuMyAtMTkuNCwzLjQgMCwwIC0wLjEsMCAtMC4xLDAuMSAzLjQsLTAuNSA2LjcsLTEgMTAsLTEuNSAzLjEsLTAuNyA2LjMsLTEuMyA5LjUsLTIgeiIKICAgICAgICAgaWQ9InBhdGgzMTg4IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDojYmQyMDJlIiAvPgogICAgICA8cGF0aAogICAgICAgICBlbmFibGUtYmFja2dyb3VuZD0ibmV3ICAgICIKICAgICAgICAgZD0ibSA1NzAuMiw3OTEgYyAtNi4zLDEuMSAtMTIuNywyLjMgLTE5LjQsMy40IDAsMCAtMC4xLDAgLTAuMSwwLjEgMy40LC0wLjUgNi43LC0xIDEwLC0xLjUgMy4xLC0wLjcgNi4zLC0xLjMgOS41LC0yIHoiCiAgICAgICAgIGlkPSJwYXRoMzE5MCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MC4zNTtmaWxsOiNiZDIwMmUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNTg2LjcsNzA5LjUgYyAwLDAgMCwwLjEgMCwwIC0wLjEsMCAtMC4xLDAgLTAuMSwwLjEgMSwtMC4xIDIuMSwtMC4zIDMuMSwtMC41IDQuMiwtMC42IDguMywtMS4zIDEyLjMsLTIuMyAtNSwwLjkgLTEwLDEuOCAtMTUuMywyLjcgeiIKICAgICAgICAgaWQ9InBhdGgzMTkyIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDojYmQyMDJlIiAvPgogICAgICA8cGF0aAogICAgICAgICBlbmFibGUtYmFja2dyb3VuZD0ibmV3ICAgICIKICAgICAgICAgZD0ibSA1ODYuNyw3MDkuNSBjIDAsMCAwLDAuMSAwLDAgLTAuMSwwIC0wLjEsMCAtMC4xLDAuMSAxLC0wLjEgMi4xLC0wLjMgMy4xLC0wLjUgNC4yLC0wLjYgOC4zLC0xLjMgMTIuMywtMi4zIC01LDAuOSAtMTAsMS44IC0xNS4zLDIuNyB6IgogICAgICAgICBpZD0icGF0aDMxOTQiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZmlsbDojYmQyMDJlIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDI5MSIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODYzMC43MTk3IgogICAgICAgICB5MT0iMjgwNC45NjA3IgogICAgICAgICB4Mj0iLTY5MzYuOTI1MyIKICAgICAgICAgeTI9IjI4MDQuOTYwNyIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0MjkzIiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQyOTUiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDI5NyIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDI5OSIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1MTQsNDY5LjIgYyAxNSwtMjguMSAzMC4yLC01NS41IDQ1LjUsLTgyLjEgMTUuOSwtMjcuOCAzMi4xLC01NC42IDQ4LjQsLTgwLjYgMC45LC0xLjUgMiwtMy4xIDIuOSwtNC42IDE2LjEsLTI1LjUgMzIuNCwtNTAuMSA0OC43LC03My41IGwgLTQ5LjMsLTkzLjIgYyAtMy43LDQuNSAtNy40LDkuMSAtMTEuMiwxMy45IC0xNC4zLDE3LjggLTI5LDM2LjggLTQ0LjIsNTcuMSAtMTcuMSwyMi44IC0zNC42LDQ3LjIgLTUyLjUsNzIuOCAtMTYuNCwyMy42IC0zMy4yLDQ4LjMgLTUwLDc0IC0xNC4zLDIxLjggLTI4LjUsNDQuMiAtNDIuNyw2Ny4yIC0wLjUsMC44IC0xLDEuNyAtMS41LDIuNiBsIDY0LjMsMTI3IEMgNDg2LDUyMi4zIDUwMCw0OTUuNCA1MTQsNDY5LjIgWiIKICAgICAgICAgaWQ9InBhdGgzMjA1IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzJfLTYpIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDMwMiIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODQyNi4yNTU5IgogICAgICAgICB5MT0iMjYzNS4yODM5IgogICAgICAgICB4Mj0iLTc0MTYuOTE5NCIKICAgICAgICAgeTI9IjI2MzUuMjgzOSIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMjgyNjYxIgogICAgICAgICAgIGlkPSJzdG9wNDMwNCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iOS41NDgzODllLTAyIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM2NjJFOEMiCiAgICAgICAgICAgaWQ9InN0b3A0MzA2IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjc4ODIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlFMjA2NCIKICAgICAgICAgICBpZD0ic3RvcDQzMDgiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuOTQ4NyIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMDMyIgogICAgICAgICAgIGlkPSJzdG9wNDMxMCIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSAyMjEuMiwxMTg0LjQgYyAtOC41LDIzLjMgLTE3LjEsNDcuMiAtMjUuNiw3MS41IC0wLjEsMC4zIC0wLjIsMC43IC0wLjQsMSAtMS4yLDMuNCAtMi41LDYuOSAtMy42LDEwLjMgLTUuOCwxNi40IC0xMC44LDMxLjIgLTIyLjMsNjQuNyAxOC45LDguNiAzNC4xLDMxLjQgNDguNSw1Ny4yIC0xLjUsLTI2LjcgLTEyLjUsLTUxLjggLTMzLjYsLTcxLjIgOTMuMyw0LjIgMTczLjcsLTE5LjQgMjE1LjMsLTg3LjYgMy43LC02LjEgNy4xLC0xMi40IDEwLjIsLTE5LjMgLTE4LjksMjQgLTQyLjQsMzQuMSAtODYuNSwzMS43IC0wLjEsMCAtMC4yLDAuMSAtMC4zLDAuMSAwLjEsMCAwLjIsLTAuMSAwLjMsLTAuMSA2NSwtMjkuMSA5Ny41LC01NyAxMjYuNCwtMTAzLjIgNi44LC0xMSAxMy41LC0yMi45IDIwLjMsLTM2LjIgLTU2LjgsNTguMyAtMTIyLjUsNzQuOSAtMTkxLjgsNjIuMyBsIC01Miw1LjcgYyAtMS43LDQuNCAtMy4yLDguNyAtNC45LDEzLjEgeiIKICAgICAgICAgaWQ9InBhdGgzMjE2IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzNfLTcpIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDMxMyIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODUzNS41ODc5IgogICAgICAgICB5MT0iMjgyMC44NjA0IgogICAgICAgICB4Mj0iLTY4NDEuNzkzIgogICAgICAgICB5Mj0iMjgyMC44NjA0IgogICAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgICBpZD0ic3RvcDQzMTUiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICAgIGlkPSJzdG9wNDMxNyIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgICAgaWQ9InN0b3A0MzE5IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgICAgaWQ9InN0b3A0MzIxIiAvPgogICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDI0NS41LDEwNjguMSBjIDExLjIsLTI5IDIyLjgsLTU4LjQgMzQuNiwtODggMTEuNCwtMjguNCAyMywtNTcgMzUsLTg1LjYgMTIsLTI4LjYgMjQuMiwtNTcuNSAzNi42LC04Ni4zIDEyLjYsLTI5LjMgMjUuNiwtNTguNSAzOC45LC04Ny42IDEzLjEsLTI4LjggMjYuMywtNTcuNCAzOS44LC04NS42IDQuOCwtMTAuMiA5LjgsLTIwLjQgMTQuNywtMzAuNSA4LjUsLTE3LjUgMTcuMSwtMzQuOSAyNS44LC01Mi4xIDAuNSwtMC45IDAuOSwtMS45IDEuNCwtMi44IEwgNDA4LDQyMi42IGMgLTEsMS43IC0yLjEsMy41IC0zLjIsNS4xIC0xNSwyNC41IC0yOS45LDQ5LjUgLTQ0LjUsNzUgLTE0LjgsMjUuOCAtMjkuMyw1Mi4xIC00My41LDc4LjggLTExLjksMjIuNSAtMjMuNiw0NS4xIC0zNS4xLDY4LjEgLTIuMyw0LjYgLTQuNSw5LjMgLTYuOCwxMy45IC0xNCwyOC45IC0yNi42LDU2LjYgLTM4LjEsODMuNSAtMTMsMzAuMyAtMjQuNCw1OS4zIC0zNC4zLDg2LjggLTYuNiwxOC4xIC0xMi41LDM1LjUgLTE4LDUyLjMgLTQuNSwxNC4zIC04LjcsMjguNyAtMTIuOSw0MyAtOS42LDMzLjYgLTE3LjksNjcuMiAtMjQuNywxMDAuNiBsIDY0LjYsMTI3LjUgYyA4LjUsLTIyLjggMTcuMywtNDYgMjYuMywtNjkuNCAyLjcsLTYuNyA1LjEsLTEzLjMgNy43LC0xOS43IHoiCiAgICAgICAgIGlkPSJwYXRoMzIyNyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF80Xy0wKSIgLz4KICAgICAgPGxpbmVhckdyYWRpZW50CiAgICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQzMjQiCiAgICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgICB4MT0iLTg0MTIuMDU3NiIKICAgICAgICAgeTE9IjI3OTcuODc4OSIKICAgICAgICAgeDI9Ii03NTIxLjkxNzUiCiAgICAgICAgIHkyPSIyNzk3Ljg3ODkiCiAgICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC40MzQ1LC0wLjkzMTgsLTAuOTMxOCwtMC40MzQ1LDYyMjMuNDc2MSwtNTA1Mi43NDI3KSI+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzI4MjY2MSIKICAgICAgICAgICBpZD0ic3RvcDQzMjYiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjkuNTQ4Mzg5ZS0wMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNjYyRThDIgogICAgICAgICAgIGlkPSJzdG9wNDMyOCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43ODgyIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5RTIwNjQiCiAgICAgICAgICAgaWQ9InN0b3A0MzMwIiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjk0ODciCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0NDMjAzMiIKICAgICAgICAgICBpZD0ic3RvcDQzMzIiIC8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTQ2LjIsMTAzNCBjIC04LjEsNDAuOCAtMTMuOSw4MS40IC0xNi44LDEyMS44IC0wLjEsMS40IC0wLjIsMi44IC0wLjMsNC4yIC0yMC4yLC0zMi4zIC03NC4xLC02My44IC03NCwtNjMuNSAzOC43LDU2IDY4LDExMS42IDcyLjMsMTY2LjIgLTIwLjcsNC4yIC00OSwtMS45IC04MS43LC0xMy45IDM0LjEsMzEuNCA1OS43LDQwIDY5LjgsNDIuNCAtMzEuNCwyIC02NCwyMy41IC05Ni45LDQ4LjMgNDguMSwtMTkuNiA4NywtMjcuNCAxMTQuOCwtMjEuMSAtNDQuMiwxMjUgLTg4LjQsMjYzIC0xMzIuNyw0MDkuNiAxMy42LC00IDIxLjcsLTEzLjIgMjYuMiwtMjUuNSA3LjksLTI2LjUgNjAuMiwtMjAwLjcgMTQyLjMsLTQyOS40IDIuNCwtNi41IDQuNywtMTMuMSA3LjEsLTE5LjYgMC42LC0xLjkgMS4zLC0zLjcgMiwtNS40IDguNiwtMjQgMTcuNywtNDguNSAyNi45LC03My41IDIuMSwtNS43IDQuMiwtMTEuNCA2LjQsLTE3LjEgMCwtMC4xIDAuMSwtMC4yIDAuMSwtMC4zIEwgMTQ3LDEwMjkuNyBjIC0wLjIsMS4zIC0wLjUsMi44IC0wLjgsNC4zIHoiCiAgICAgICAgIGlkPSJwYXRoMzIzOCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF81Xy04KSIgLz4KICAgICAgPGxpbmVhckdyYWRpZW50CiAgICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQzMzUiCiAgICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgICB4MT0iLTg1MzUuNTg3OSIKICAgICAgICAgeTE9IjI2NDUuNDg5NyIKICAgICAgICAgeDI9Ii02ODQxLjc5MyIKICAgICAgICAgeTI9IjI2NDUuNDg5NyIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0MzM3IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQzMzkiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDM0MSIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDM0MyIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA0ODIuMyw1NjAuMiBjIC0xLjksMy44IC0zLjcsNy42IC01LjYsMTEuNCAtNS42LDExLjUgLTExLjIsMjMuMiAtMTcsMzUuMiAtNi4yLDEzIC0xMi40LDI2LjIgLTE4LjcsMzkuOCAtMy4yLDYuOCAtNi40LDEzLjcgLTkuNiwyMC43IC05LjYsMjAuOSAtMTkuMyw0Mi41IC0yOS4yLDY0LjggLTEyLjEsMjcuMyAtMjQuNiw1NS44IC0zNy4xLDg1LjQgLTExLjksMjguMiAtMjQuMiw1Ny4zIC0zNi40LDg3LjUgLTExLjcsMjguNiAtMjMuNSw1OC4yIC0zNS41LDg4LjYgLTEwLjcsMjcuMSAtMjEuNSw1NS4xIC0zMi4zLDgzLjggLTAuNSwxLjMgLTEsMi44IC0xLjUsNC4xIC0xMC44LDI4LjUgLTIxLjcsNTcuOCAtMzIuNiw4Ny44IC0wLjIsMC43IC0wLjUsMS4zIC0wLjcsMi4xIGwgNTIsLTUuNyBjIC0xLC0wLjIgLTIuMSwtMC4zIC0zLjEsLTAuNSA2Mi4xLC03LjcgMTQ0LjgsLTU0LjIgMTk4LjEsLTExMS41IDI0LjYsLTI2LjQgNDYuOSwtNTcuNiA2Ny41LC05NC4xIDE1LjMsLTI3LjEgMjkuOCwtNTcuMyA0My42LC05MC42IDEyLC0yOS4xIDIzLjUsLTYwLjcgMzQuNiwtOTQuOCAtMTQuMyw3LjUgLTMwLjYsMTMuMSAtNDguNiwxNi45IC0zLjIsMC43IC02LjQsMS4zIC05LjcsMS45IC0zLjMsMC42IC02LjYsMS4xIC0xMCwxLjUgdiAwIDAgYyAwLDAgMC4xLDAgMC4xLC0wLjEgNTgsLTIyLjMgOTQuNSwtNjUuMyAxMjEsLTExOCAtMTUuMiwxMC40IC00MCwyNCAtNjkuNywzMC41IC00LDAuOSAtOC4xLDEuNiAtMTIuMywyLjMgLTEsMC4xIC0yLjEsMC4zIC0zLjEsMC41IHYgMCAwIGggMC4xIGMgMCwwIDAsMCAwLjEsMCB2IDAgYyAyMC4yLC04LjQgMzcuMSwtMTcuOSA1MS44LC0yOSAzLjIsLTIuNCA2LjMsLTQuOCA5LjEsLTcuNCA0LjUsLTMuOSA4LjcsLTggMTIuOSwtMTIuMiAyLjYsLTIuOCA1LjEsLTUuNiA3LjYsLTguNSA1LjgsLTYuOSAxMS4yLC0xNC4zIDE2LjIsLTIyLjMgMS41LC0yLjUgMy4xLC00LjkgNC41LC03LjUgMiwtMy43IDMuOCwtNy40IDUuNiwtMTAuOSA4LjEsLTE2LjIgMTQuNiwtMzAuOCAxOS43LC00My41IDIuNiwtNi40IDQuOCwtMTIuMiA2LjgsLTE3LjggMC44LC0yLjIgMS41LC00LjMgMi4yLC02LjQgMi4xLC02LjEgMy43LC0xMS41IDUsLTE2LjMgMiwtNy4yIDMuMiwtMTIuOSAzLjgsLTE3IHYgMCAwIGMgLTIsMS41IC00LjIsMy4xIC02LjgsNC42IC0xNy41LDEwLjUgLTQ3LjUsMTkuOSAtNzEuNywyNC40IGwgNDcuNywtNS4yIC00Ny43LDUuMiBjIC0wLjMsMC4xIC0wLjcsMC4xIC0xLjEsMC4yIC0yLjUsMC40IC00LjgsMC44IC03LjMsMS4xIDAuNCwtMC4yIDAuOCwtMC40IDEuMiwtMC42IGwgLTE2My4zLDE3LjkgYyAwLDAuNCAtMC4zLDEuMSAtMC42LDEuNyB6IgogICAgICAgICBpZD0icGF0aDMyNDkiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfNl8tMikiIC8+CiAgICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MzQ2IgogICAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgICAgeDE9Ii04NjQwLjY1OTIiCiAgICAgICAgIHkxPSIyNjU0LjI2NDkiCiAgICAgICAgIHgyPSItNjk0Ni44NjQ3IgogICAgICAgICB5Mj0iMjY1NC4yNjQ5IgogICAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgICBpZD0ic3RvcDQzNDgiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICAgIGlkPSJzdG9wNDM1MCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgICAgaWQ9InN0b3A0MzUyIiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgICAgaWQ9InN0b3A0MzU0IiAvPgogICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDY2Ni4xLDIzMC4yIGMgLTE0LjUsMjIuMyAtMzAuMyw0Ny42IC00Ny41LDc2LjMgLTAuOSwxLjQgLTEuOSwzLjEgLTIuNyw0LjUgLTE0LjcsMjQuOCAtMzAuMyw1MiAtNDYuOSw4MS45IC0xNC4yLDI1LjggLTI5LDUzLjQgLTQ0LjQsODMuMSAtMTMuNCwyNS45IC0yNy4yLDUzLjQgLTQxLjUsODIuNSBsIDE2My4zLC0xNy45IGMgNDcuNiwtMjEuOSA2OC44LC00MS42IDg5LjQsLTcwLjMgNS40LC03LjkgMTEsLTE2LjEgMTYuNCwtMjQuNyAxNi44LC0yNi4yIDMzLjIsLTU1IDQ3LjksLTgzLjcgMTQuMiwtMjcuNyAyNi43LC01NS4xIDM2LjMsLTc5LjkgNi4xLC0xNS43IDExLC0zMC4zIDE0LjQsLTQzLjIgMywtMTEuMyA1LjMsLTIyLjEgNy4xLC0zMi40IC02My4zLDEwLjkgLTE0MS4yLDIxLjMgLTE5MS44LDIzLjggeiIKICAgICAgICAgaWQ9InBhdGgzMjYwIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzdfLTIpIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDU2MC41LDc5Mi44IGMgLTMuMywwLjYgLTYuNiwxLjEgLTEwLDEuNSB2IDAgYyAzLjQsLTAuMyA2LjgsLTAuOSAxMCwtMS41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI2MiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2JkMjAyZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiCiAgICAgICAgIGQ9Im0gNTYwLjUsNzkyLjggYyAtMy4zLDAuNiAtNi42LDEuMSAtMTAsMS41IHYgMCBjIDMuNCwtMC4zIDYuOCwtMC45IDEwLC0xLjUgeiIKICAgICAgICAgaWQ9InBhdGgzMjY0IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0ib3BhY2l0eTowLjM1O2ZpbGw6I2JkMjAyZSIgLz4KICAgICAgPGxpbmVhckdyYWRpZW50CiAgICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQzNTkiCiAgICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgICB4MT0iLTg1MzUuNTg4OSIKICAgICAgICAgeTE9IjI1OTMuNDQ2IgogICAgICAgICB4Mj0iLTY4NDEuNzkyNSIKICAgICAgICAgeTI9IjI1OTMuNDQ2IgogICAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgICBpZD0ic3RvcDQzNjEiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICAgIGlkPSJzdG9wNDM2MyIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgICAgaWQ9InN0b3A0MzY1IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgICAgaWQ9InN0b3A0MzY3IiAvPgogICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDU2MC41LDc5Mi44IGMgLTMuMywwLjYgLTYuNiwxLjEgLTEwLDEuNSB2IDAgYyAzLjQsLTAuMyA2LjgsLTAuOSAxMCwtMS41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI3NSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF84Xy0zKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDEsLTAuMSAyLjEsLTAuMyAzLjEsLTAuNSAtMSwwLjEgLTIsMC40IC0zLjEsMC41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI3NyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2JkMjAyZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiCiAgICAgICAgIGQ9Im0gNTg2LjYsNzA5LjYgYyAxLC0wLjEgMi4xLC0wLjMgMy4xLC0wLjUgLTEsMC4xIC0yLDAuNCAtMy4xLDAuNSB6IgogICAgICAgICBpZD0icGF0aDMyNzkiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZmlsbDojYmQyMDJlIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDM3MiIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODUzNS41ODg5IgogICAgICAgICB5MT0iMjU5OS4zMjQyIgogICAgICAgICB4Mj0iLTY4NDEuNzkyNSIKICAgICAgICAgeTI9IjI1OTkuMzI0MiIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0Mzc0IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQzNzYiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDM3OCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDM4MCIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDEsLTAuMSAyLjEsLTAuMyAzLjEsLTAuNSAtMSwwLjEgLTIsMC40IC0zLjEsMC41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI5MCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF85Xy0zKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDAuMSwwIDAuMSwtMC4xIDAsMCB2IDAgMCAwIGMgMC4xLC0wLjEgMC4xLDAgMCwwIHoiCiAgICAgICAgIGlkPSJwYXRoMzI5MiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2JkMjAyZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiCiAgICAgICAgIGQ9Im0gNTg2LjYsNzA5LjYgYyAwLjEsMCAwLjEsLTAuMSAwLDAgdiAwIDAgMCBjIDAuMSwtMC4xIDAuMSwwIDAsMCB6IgogICAgICAgICBpZD0icGF0aDMyOTQiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZmlsbDojYmQyMDJlIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDM4NSIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItNzU4NC4wMzg2IgogICAgICAgICB5MT0iMjYwMC41NTE1IgogICAgICAgICB4Mj0iLTcyMDkuNjU0MyIKICAgICAgICAgeTI9IjI2MDAuNTUxNSIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0Mzg3IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQzODkiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDM5MSIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDM5MyIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDAuMSwwIDAuMSwtMC4xIDAsMCB2IDAgMCAwIGMgMC4xLC0wLjEgMC4xLDAgMCwwIHoiCiAgICAgICAgIGlkPSJwYXRoMzMwNSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8xMF8tOCkiIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K",
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "JMS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink",
        "camel.apache.org/requires.runtime" : "camel-k"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "JMS - AMQP 1.0 Sink",
        "description" : "Send data to any AMQP 1.0 compliant message broker by using the Apache Qpid JMS client.",
        "required" : [ "destinationName", "remoteURI" ],
        "type" : "object",
        "properties" : {
          "destinationType" : {
            "title" : "Destination Type",
            "description" : "The JMS destination type (queue or topic).",
            "type" : "string",
            "default" : "queue"
          },
          "destinationName" : {
            "title" : "Destination Name",
            "description" : "The JMS destination name.",
            "type" : "string"
          },
          "remoteURI" : {
            "title" : "Broker URL",
            "description" : "The JMS URL.",
            "type" : "string",
            "example" : "amqp://my-host:31616"
          }
        }
      },
      "dependencies" : [ "camel:jms", "camel:amqp", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "connectionFactoryBean",
          "type" : "#class:org.apache.qpid.jms.JmsConnectionFactory",
          "properties" : {
            "remoteURI" : "{{remoteURI}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "jms:{{destinationType}}:{{destinationName}}",
              "parameters" : {
                "connectionFactory" : "#bean:{{connectionFactoryBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "JMS - AMQP 1.0 Sink",
      "description" : "Send data to any AMQP 1.0 compliant message broker by using the Apache Qpid JMS client.",
      "required" : [ "destinationName", "remoteURI" ],
      "properties" : {
        "destinationType" : {
          "type" : "string",
          "title" : "Destination Type",
          "description" : "The JMS destination type (queue or topic).",
          "default" : "queue"
        },
        "destinationName" : {
          "type" : "string",
          "title" : "Destination Name",
          "description" : "The JMS destination name."
        },
        "remoteURI" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The JMS URL."
        }
      }
    }
  },
  "jms-amqp-10-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jms-amqp-10-source",
      "annotations" : {
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTkzLjgzMzVtbSIKICAgaGVpZ2h0PSI5Ny4yNjgwMTNtbSIKICAgdmlld0JveD0iMCAwIDE5My44MzM1IDk3LjI2ODAxMyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMTAwMyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4zICgyNDA1NTQ2LCAyMDE4LTAzLTExKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icXBpZC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM5OTciPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0iU1ZHSURfMV8tNyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii02ODczLjY0NzkiCiAgICAgICB5MT0iMjc3NC4yOTk4IgogICAgICAgeDI9Ii02NjM2LjIzNzMiCiAgICAgICB5Mj0iMjQ5Ni42ODk1IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRjU5NzIzIgogICAgICAgICBpZD0ic3RvcDMxNzItNSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMxMjMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGNjk4MjIiCiAgICAgICAgIGlkPSJzdG9wMzE3NC0zIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuODM4MyIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgaWQ9InN0b3AzMTc2LTUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0iU1ZHSURfMl8tNiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii04NjMwLjcxOTciCiAgICAgICB5MT0iMjgwNC45NjA3IgogICAgICAgeDI9Ii02OTM2LjkyNTMiCiAgICAgICB5Mj0iMjgwNC45NjA3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgIGlkPSJzdG9wMzE5Ny0yIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgaWQ9InN0b3AzMTk5LTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICBpZD0ic3RvcDMyMDEtMSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICBpZD0ic3RvcDMyMDMtMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJTVkdJRF8zXy03IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTg0MjYuMjU1OSIKICAgICAgIHkxPSIyNjM1LjI4MzkiCiAgICAgICB4Mj0iLTc0MTYuOTE5NCIKICAgICAgIHkyPSIyNjM1LjI4MzkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyODI2NjEiCiAgICAgICAgIGlkPSJzdG9wMzIwOC0wIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjkuNTQ4Mzg5ZS0wMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzY2MkU4QyIKICAgICAgICAgaWQ9InN0b3AzMjEwLTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43ODgyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUUyMDY0IgogICAgICAgICBpZD0ic3RvcDMyMTItMyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjk0ODciCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIwMzIiCiAgICAgICAgIGlkPSJzdG9wMzIxNC02IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzRfLTAiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODc5IgogICAgICAgeTE9IjI4MjAuODYwNCIKICAgICAgIHgyPSItNjg0MS43OTMiCiAgICAgICB5Mj0iMjgyMC44NjA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgIGlkPSJzdG9wMzIxOS02IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgaWQ9InN0b3AzMjIxLTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICBpZD0ic3RvcDMyMjMtNiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICBpZD0ic3RvcDMyMjUtMSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJTVkdJRF81Xy04IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTg0MTIuMDU3NiIKICAgICAgIHkxPSIyNzk3Ljg3ODkiCiAgICAgICB4Mj0iLTc1MjEuOTE3NSIKICAgICAgIHkyPSIyNzk3Ljg3ODkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyODI2NjEiCiAgICAgICAgIGlkPSJzdG9wMzIzMC03IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjkuNTQ4Mzg5ZS0wMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzY2MkU4QyIKICAgICAgICAgaWQ9InN0b3AzMjMyLTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43ODgyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUUyMDY0IgogICAgICAgICBpZD0ic3RvcDMyMzQtMiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjk0ODciCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIwMzIiCiAgICAgICAgIGlkPSJzdG9wMzIzNi0wIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzZfLTIiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODc5IgogICAgICAgeTE9IjI2NDUuNDg5NyIKICAgICAgIHgyPSItNjg0MS43OTMiCiAgICAgICB5Mj0iMjY0NS40ODk3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgIGlkPSJzdG9wMzI0MS0zIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgaWQ9InN0b3AzMjQzLTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICBpZD0ic3RvcDMyNDUtNSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICBpZD0ic3RvcDMyNDctOSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJTVkdJRF83Xy0yIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTg2NDAuNjU5MiIKICAgICAgIHkxPSIyNjU0LjI2NDkiCiAgICAgICB4Mj0iLTY5NDYuODY0NyIKICAgICAgIHkyPSIyNjU0LjI2NDkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuMzIzMyIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgaWQ9InN0b3AzMjUyLTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC42MzAyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICBpZD0ic3RvcDMyNTQtOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjc1MTQiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgIGlkPSJzdG9wMzI1Ni05IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgIGlkPSJzdG9wMzI1OC03IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzhfLTMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODg5IgogICAgICAgeTE9IjI1OTMuNDQ2IgogICAgICAgeDI9Ii02ODQxLjc5MjUiCiAgICAgICB5Mj0iMjU5My40NDYiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuMzIzMyIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgaWQ9InN0b3AzMjY3LTYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC42MzAyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICBpZD0ic3RvcDMyNjktMSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjc1MTQiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgIGlkPSJzdG9wMzI3MS0yIiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgIGlkPSJzdG9wMzI3My05IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9IlNWR0lEXzlfLTMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItODUzNS41ODg5IgogICAgICAgeTE9IjI1OTkuMzI0MiIKICAgICAgIHgyPSItNjg0MS43OTI1IgogICAgICAgeTI9IjI1OTkuMzI0MiIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC40MzQ1LC0wLjkzMTgsLTAuOTMxOCwtMC40MzQ1LDYyMjMuNDc2MSwtNTA1Mi43NDI3KSI+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUMyMDYzIgogICAgICAgICBpZD0ic3RvcDMyODItMSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODIwMzciCiAgICAgICAgIGlkPSJzdG9wMzI4NC05IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0NDMjEzNSIKICAgICAgICAgaWQ9InN0b3AzMjg2LTQiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgaWQ9InN0b3AzMjg4LTciIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0iU1ZHSURfMTBfLTgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItNzU4NC4wMzg2IgogICAgICAgeTE9IjI2MDAuNTUxNSIKICAgICAgIHgyPSItNzIwOS42NTQzIgogICAgICAgeTI9IjI2MDAuNTUxNSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC40MzQ1LC0wLjkzMTgsLTAuOTMxOCwtMC40MzQ1LDYyMjMuNDc2MSwtNTA1Mi43NDI3KSI+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOUMyMDYzIgogICAgICAgICBpZD0ic3RvcDMyOTctNCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODIwMzciCiAgICAgICAgIGlkPSJzdG9wMzI5OS01IiAvPgogICAgICA8c3RvcAogICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0NDMjEzNSIKICAgICAgICAgaWQ9InN0b3AzMzAxLTAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgaWQ9InN0b3AzMzAzLTMiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMS40IgogICAgIGlua3NjYXBlOmN4PSIxNzkuMjM0NjYiCiAgICAgaW5rc2NhcGU6Y3k9IjIwNy4wNzAyOSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjM3MjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMjA0OSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMTE0IgogICAgIGlua3NjYXBlOndpbmRvdy15PSI1NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTEwMDAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2Ny4yNDA5NiwtMTUuNjM4MzgzKSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzJkMmQyZDtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIGQ9Im0gLTg0LjA4NzA2MSwxMTIuNzgyMzQgYyAtMC4xMDA0OCwtMC4xMDA0OCAtMC4xODI3LC0xNi40NjE2NzYgLTAuMTgyNywtMzYuMzU4MjA2IDAsLTMyLjc0MzI2IDAuMDM5NywtMzYuMTkwNzUgMC40MTg1MiwtMzYuMzM2MTEgMC41NDUxMywtMC4yMDkxOSA3LjYxMzY2NCwtMC4yMDkxOSA4LjE1ODgwNCwwIDAuMzA5MjUsMC4xMTg2NyAwLjQxODUxLDAuNTI5MDUgMC40MTg1MSwxLjU3MTg4IDAsMS42MjU5NyAwLjMyODE5LDEuOTgxMiAxLjE0NDA3LDEuMjM4MzUgNC4yOTMxNywtMy45MDg5MSAxNC40OTI5NSwtNS4wMDQyNiAyMS4yMTEzNSwtMi4yNzc4OSA4LjcxOTYzLDMuNTM4NDggMTMuOTM5NTgsMTMuNjQ1NjQgMTMuMjY0MzI5LDI1LjY4MzExIC0wLjUxNjQ0LDkuMjA2NCAtNC40MzQzOTksMTcuMDUzMjEgLTEwLjk3NTk2OSwyMS45ODI0MiAtNC4xNTM0MiwzLjEyOTcgLTcuMjM5ODUsNC4xNDUyIC0xMi42MDUyMyw0LjE0NzM3IC00LjczMjE0LDAuMDAyIC03Ljg3MjIxLC0wLjcyNDExIC0xMC4zMjE5OSwtMi4zODY1OCAtMC41MzI5NSwtMC4zNjE2NiAtMS4xMDc0MywtMC42ODM4OCAtMS4yNzY2MywtMC43MTYwMiAtMC4yMjg0NiwtMC4wNDM0IC0wLjM0MTY4LDIuOTcxNiAtMC40Mzk5MywxMS43MTU1MDYgbCAtMC4xMzIyOSwxMS43NzM5NiAtNC4yNDkwNywwLjA3MjUgYyAtMi4zMzY5OSwwLjAzOTkgLTQuMzMxMjg0LC0wLjAxIC00LjQzMTc3NCwtMC4xMTAyNSB6IG0gMjEuOTEwMDE0LC0yOC4yNzU1MTYgYyAzLjAwMDEyLC0wLjYzMjY4IDUuMDAyOTYsLTEuNzcwODggNy40NDg4NSwtNC4yMzMxMyAyLjQzODMsLTIuNDU0NjEgMy44ODUyOCwtNS4wNDA3MiA0Ljg5MTgzLC04Ljc0Mjg0IDAuNzc1NjYsLTIuODUyOTIgMC44NDA1MiwtOS4yNjc1MiAwLjEyNTU5LC0xMi40MjExNCAtMS43MTAyLC03LjU0Mzg3IC02LjE2MTIsLTExLjQzNDcxIC0xNC4wOTQ0NCwtMTIuMzIwNjMgLTEuOTg0NTYsLTAuMjIxNjIgLTIuNzQ3NjksLTAuMTk0OSAtNC4yMjYwMiwwLjE0Nzk1IC0yLjQ0NzA5LDAuNTY3NTEgLTUuNDEzMywyLjAzNzc0IC02LjQxNjYsMy4xODA0NSBsIC0wLjgyNjA5LDAuOTQwODUgdiAxNC4yMzg2IDE0LjIzODU5IGwgMC43NTk4NywxLjA0ODk2IGMgMi41NzUwNCwzLjU1NDc2IDcuMTYzMDksNS4wMTM0NCAxMi4zMzcwMSwzLjkyMjM0IHogbSAtNDUuMjA3ODQzLDEuMjAyNDggYyAtNS4wNzA5NiwzLjI1ODIyIC0xMC42NTgzNSw1LjI5NzI2IC0xNi43MDQ2Niw2LjA5NjE2IC0zLjIwMzQyLDAuNDIzMjYgLTkuMzE3MzMsMC4xNjIyNyAtMTIuNjIwMzYsLTAuNTM4NzYgLTE1LjA2MTMsLTMuMTk2NTUgLTI2LjUyMTAzLC0xNC42MzM4MyAtMjkuOTEwMDksLTI5Ljg1MTUgLTAuODI3OTQsLTMuNzE3NjggLTAuODI3OTQsLTExLjQ3NjYzIDAsLTE1LjE5NDMxIDMuNjY3MjksLTE2LjQ2NzAxMyAxNi43MTM3NSwtMjguMzM2OTczIDMzLjQwMjMyLC0zMC4zOTAxODMgMy4wNzYyMywtMC4zNzg0NyA4LjgyNTg2LC0wLjE3Njg5IDExLjg3OCwwLjQxNjQ0IDE1LjM0OTc2LDIuOTgzOTYgMjcuMDg2OTc5LDE0LjUxMTgxIDMwLjUxODEwOSwyOS45NzM3NDMgMC43NzAzNywzLjQ3MTU1IDAuODMzMDEsMTEuMTY5OTcgMC4xMTk2LDE0LjY5ODM4IC0xLjM1MTk2LDYuNjg2NTcgLTQuNzU0MzMsMTMuNTI1NTEgLTguOTg3ODYsMTguMDY2MDYgMCwwIC0xLjA4Mzk3OSwyLjU4MDI5NSAtNy42OTUwNTksNi43MjM5NyB6IG0gLTE0Ljc2NTA0LC0yLjg5NzMgYyAzLjY1MTk2LC0wLjc5OTc1IDguMzYwMTksLTIuNzU5NyA4LjY4OTIzLC0zLjYxNzE2IGwgNS44MDUzLC01Ljg0NDEyIDEuMjkyOTIsMC40MzY5NSAwLjc2LC0wLjg1NjcgYyAxLjU4MzQxLC0xLjc4NDg5IDMuOTE5MjIsLTUuNzE3NDcgNC45MDkxNCwtOC4yNjUwNSAxLjQ4OTY1OSwtMy44MzM2MyAxLjk3NTc5OSwtNi40NzAxOSAxLjk3NTc5OSwtMTAuNzE1NjIgMCwtNC4yNDU0NCAtMC40ODYxNCwtNi44ODIgLTEuOTc1Nzk5LC0xMC43MTU2MyAtMy41ODY5MywtOS4yMzA5ODMgLTExLjg5MTIyLC0xNi4xNDc3MTMgLTIxLjk0MTAxLC0xOC4yNzQ4ODMgLTMuMDY4NzksLTAuNjQ5NTUgLTguODM3NDcsLTAuNjQ5NTUgLTExLjkwNjI1LDAgLTExLjg0NzQ4LDIuNTA3NjggLTIwLjk5NDMxLDExLjU0Nzg4MyAtMjMuNDQyOTcsMjMuMTY5NjczIC0wLjY0MjY1LDMuMDUwMTYgLTAuNjQyNjUsOC41OTE1MSAwLDExLjY0MTY3IDIuNjc0MjQsMTIuNjkyNDggMTMuMzU1NjEsMjIuMjI4NTIgMjYuNDg1NjgsMjMuNjQ1NzIgMi4wMzMyOCwwLjIxOTQ2IDcuMDcyNzQsLTAuMTA2NjMgOS4zNDc5NSwtMC42MDQ4OSB6IG0gOTAuNjU4MDUsOC42NDkxNSBjIC0wLjA2OTc5LC0wLjE4NTI3IC0wLjE1NjQwOSwtMTAuMzM4MTEgLTAuMTkyNDg3LC0yMi41NjE4NiBsIC0wLjA2NTYsLTIyLjIyNSAtNS4wMjcwODQsLTAuMTMyMjkgLTUuMDI3MDgzLC0wLjEzMjI5IHYgLTMuOTY4NzUgLTMuOTY4NzUgaCA5LjkyMTg3NSA5LjkyMTg3NSB2IDI2LjU5MDYzIDI2LjU5MDYyIGwgLTQuNzAyMzA3LDAuMDcyMyBjIC0zLjYxNzg0NCwwLjA1NTYgLTQuNzMxNTY4LC0wLjAwNSAtNC44MjkxOTEsLTAuMjY0NTkgeiBtIDMwLjU2NTg3MzM3LC0wLjYwMDM5IEMgLTkuMjU4Mzc1OSw4OS4xODM5MjQgLTE1LjQxNDg5Nyw4Mi42NDg4MDQgLTE3LjM3MjQzMyw3My40MDI5NTQgYyAtMS4wMzIxNjksLTQuODc1MTUgLTAuOTE0NDc5LC0xMS4zNyAwLjI5MTQ3MywtMTYuMDg1MjMgMS44NTkwMjksLTcuMjY4NzMgNy4yNzQyNTMxLC0xNC4zNzY1MSAxMy4yNTIxMDMxLC0xNy4zOTQxMiAzLjEwOTI3ODI3LC0xLjU2OTU2IDUuMDQ1MjI5MywtMS45Nzc4NCA5LjM4NTE0MjMsLTEuOTc5MjYgMi41MDU2OTYsLTcuOWUtNCA0LjUwNTIwMjYsMC4xMzM2NCA1LjQyMzk1NzYsMC4zNjQ3MyAxLjcwNzMwNiwwLjQyOTQzIDQuNjcwNiwxLjcxNzc1IDUuMzM1ODc2LDIuMzE5ODIgMC4yNTU4ODYsMC4yMzE1NyAwLjY0ODI3NywwLjM1MDgxIDAuODcxOTc3LDAuMjY0OTcgMC4zNTc0MDEsLTAuMTM3MTUgMC40MDY3MywtMS41Njk3OSAwLjQwNjczLC0xMS44MTI0NTMgdiAtMTEuNjU2MzcgbCA0LjQzMTc3MSwwLjA3MjYgNC40MzE3NzEsMC4wNzI1IDAuMDY3MDksMzYuMzE0MDYzIDAuMDY3MDgsMzYuMzE0MDYgaCAtNC40OTg4NTQgLTQuNDk4ODU2IHYgLTEuNDM5NTkgYyAwLC0wLjc5MTc4IC0wLjExMzA1OSwtMS41MDk0NyAtMC4yNTEyNDUsLTEuNTk0ODcgLTAuMTM4MTg0LC0wLjA4NTQgLTEuMDIwMTk3LDAuMzcxMTYgLTEuOTYwMDIzLDEuMDE0NiAtMC45Mzk4MjksMC42NDM0MyAtMi4zNzk4OTUsMS40MjA5NyAtMy4yMDAxNDksMS43Mjc4NiAtMy4zOTU5ODk2LDEuMjcwNjEgLTkuMzc1MzY0NiwxLjcwNTk3IC0xMy4xMDk0MTU2MywwLjk1NDUxIHogTSAxMS42MDY5NzUsODMuMDY2NDU0IGMgMi4xODAyMjUsLTAuNzUwMTEgNC41OTM5NSwtMi4xMDAxNiA1LjMzOTk5LC0yLjk4Njc3IGwgMC42NDc4NjEsLTAuNzY5OTQgdiAtMTQuMjI3NTEgLTE0LjIyNzUgbCAtMC43NTk4NjIsLTEuMDQ4OTYgYyAtMC45OTgwNzcsLTEuMzc3OCAtMi41NDM0MjYsLTIuNTgwMzUgLTQuNDE5ODc1LC0zLjQzOTQyIC0yLjAwMTM4LC0wLjkxNjI2IC01LjQ5MTE4MzYsLTEuMTMzODMgLTguMTUxNzQ4NiwtMC41MDgyMiAtOC4yMDkyNzczLDEuOTMwMzQgLTEzLjI1OTA5NDMsMTAuMDQ3MzIgLTEyLjc3MDg1MDMsMjAuNTI3NjIgMC41MjYyMTEsMTEuMjk1MjcgNS45NTEzMjMsMTcuMDkzMDEgMTYuMDcyODk1MywxNy4xNzY4OSAxLjg3MzIyMSwwLjAxNTUgMi45MzIxNDk2LC0wLjExNDQ4IDQuMDQxNTg5NiwtMC40OTYxOSB6IE0gLTMxLjQ5NzkzMSwzMS4zOTExNzEgYyAtMC4wNzMxOCwtMC4xOTA3IC0wLjEwMDI5LC0yLjM2NjQxIC0wLjA2MDI1LC00LjgzNDkyIGwgMC4wNzI4LC00LjQ4ODIxIGggNC42MzAyMDggNC42MzAyMDkgdiA0Ljc2MjUgNC43NjI1IGwgLTQuNTY5OTYsMC4wNzI0IGMgLTMuNTc2NDM0LDAuMDU2NyAtNC41OTg4ODUsLTAuMDAzIC00LjcwMzAwNiwtMC4yNzQyOSB6IgogICAgICAgaWQ9InBhdGgxNTkxIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3Njc3NjY2Njc2NjY2Nzc2Nzc2NjY2NjY3NjY2NjY3NzY3NjY2NjY2NjY3Njc3Njc2NjY2NzY2NjY2NjY2NjY2NjY3Nzc2NzY2NzY2NjY2NjY3NjY2NjY2NjY2NjY2Nzc2NjY3NjY2NjY2NjYyIgLz4KICAgIDxnCiAgICAgICBpZD0iZzMxNjkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgtMC4wMTQ0MTc5MywwLjAyNDk3MjYsLTAuMDI0OTcyNiwtMC4wMTQ0MTc5MywtODEuNzM0ODg3LDgxLjgyNDQ0NikiPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDI3NCIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItNjg3My42NDc5IgogICAgICAgICB5MT0iMjc3NC4yOTk4IgogICAgICAgICB4Mj0iLTY2MzYuMjM3MyIKICAgICAgICAgeTI9IjI0OTYuNjg5NSIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRjU5NzIzIgogICAgICAgICAgIGlkPSJzdG9wNDI3NiIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMTIzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGNjk4MjIiCiAgICAgICAgICAgaWQ9InN0b3A0Mjc4IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjgzODMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0U4NzcyNiIKICAgICAgICAgICBpZD0ic3RvcDQyODAiIC8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNzM2LjEsOC4xIGMgLTI3LjEsMTYgLTcyLjIsNjEuMyAtMTI1LjgsMTI3IGwgNDkuMyw5My4yIEMgNjk0LjMsMTc4LjggNzI5LjUsMTM0LjEgNzY1LDk2IGMgMi44LC0zIDQuMSwtNC40IDQuMSwtNC40IC0xLjMsMS40IC0yLjgsMyAtNC4xLDQuNCAtMTEuNSwxMi42IC00Ni40LDUzLjQgLTk5LDEzNC4yIDUwLjcsLTIuNSAxMjguNSwtMTIuOSAxOTIsLTIzLjcgMTksLTEwNS45IC0xOC41LC0xNTQuMyAtMTguNSwtMTU0LjMgMCwwIC00Ny42LC03NyAtMTAzLjQsLTQ0LjEgeiIKICAgICAgICAgaWQ9InBhdGgzMTc4IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzFfLTcpIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDY1Mi41LDUzOS45IGMgMC4zLC0wLjEgMC43LC0wLjEgMS4xLC0wLjIgbCAtNy4xLDAuOCBjIC0wLjQsMC4yIC0wLjgsMC40IC0xLjIsMC42IDIuMywtMC41IDQuOCwtMC45IDcuMiwtMS4yIHoiCiAgICAgICAgIGlkPSJwYXRoMzE4MCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA2MDIsNzA2LjkgYyAtNCwwLjkgLTguMSwxLjYgLTEyLjMsMi4zIDQuMiwtMC43IDguMywtMS41IDEyLjMsLTIuMyB6IgogICAgICAgICBpZD0icGF0aDMxODIiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMjU5LjQsMTA4MS40IGMgMC41LC0xLjMgMSwtMi44IDEuNSwtNC4xIDEwLjksLTI4LjcgMjEuNywtNTYuNiAzMi4zLC04My44IDExLjksLTMwLjUgMjMuNywtNjAgMzUuNSwtODguNiAxMi4zLC0zMC4xIDI0LjUsLTU5LjMgMzYuNCwtODcuNSAxMi41LC0yOS41IDI0LjksLTU4IDM3LjEsLTg1LjQgOS45LC0yMi4zIDE5LjYsLTQzLjkgMjkuMiwtNjQuOCAzLjIsLTcgNi40LC0xMy45IDkuNiwtMjAuNyA2LjMsLTEzLjYgMTIuNSwtMjYuOCAxOC43LC0zOS44IDUuNywtMTEuOSAxMS4zLC0yMy42IDE3LC0zNS4yIDEuOSwtMy44IDMuNywtNy42IDUuNiwtMTEuNCAwLjMsLTAuNiAwLjYsLTEuMiAwLjksLTEuOSBsIC02LjEsMC42IC00LjgsLTkuNSBjIC0wLjUsMC45IC0wLjksMS45IC0xLjQsMi44IC04LjYsMTcuMyAtMTcuMywzNC42IC0yNS44LDUyLjEgLTQuOSwxMC4yIC05LjgsMjAuNCAtMTQuNywzMC41IC0xMy41LDI4LjMgLTI2LjcsNTcgLTM5LjgsODUuNiAtMTMuMiwyOS4xIC0yNi4xLDU4LjMgLTM4LjksODcuNiAtMTIuNCwyOC44IC0yNC43LDU3LjYgLTM2LjYsODYuMyAtMTEuOSwyOC43IC0yMy42LDU3LjMgLTM1LDg1LjYgLTExLjksMjkuNiAtMjMuNCw1OSAtMzQuNiw4OCAtMi42LDYuNiAtNSwxMy4xIC03LjYsMTkuNiAtOSwyMy40IC0xNy44LDQ2LjYgLTI2LjMsNjkuNCBsIDcuNiwxNSA2LjgsLTAuNyBjIDAuMiwtMC43IDAuNSwtMS4zIDAuNywtMi4xIDExLjEsLTI5LjggMjIsLTU5LjEgMzIuNywtODcuNiB6IgogICAgICAgICBpZD0icGF0aDMxODQiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gNTg2LjYsNzA5LjYgWiIKICAgICAgICAgaWQ9InBhdGgzMTg2IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDU3MC4yLDc5MSBjIC02LjMsMS4xIC0xMi43LDIuMyAtMTkuNCwzLjQgMCwwIC0wLjEsMCAtMC4xLDAuMSAzLjQsLTAuNSA2LjcsLTEgMTAsLTEuNSAzLjEsLTAuNyA2LjMsLTEuMyA5LjUsLTIgeiIKICAgICAgICAgaWQ9InBhdGgzMTg4IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDojYmQyMDJlIiAvPgogICAgICA8cGF0aAogICAgICAgICBlbmFibGUtYmFja2dyb3VuZD0ibmV3ICAgICIKICAgICAgICAgZD0ibSA1NzAuMiw3OTEgYyAtNi4zLDEuMSAtMTIuNywyLjMgLTE5LjQsMy40IDAsMCAtMC4xLDAgLTAuMSwwLjEgMy40LC0wLjUgNi43LC0xIDEwLC0xLjUgMy4xLC0wLjcgNi4zLC0xLjMgOS41LC0yIHoiCiAgICAgICAgIGlkPSJwYXRoMzE5MCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MC4zNTtmaWxsOiNiZDIwMmUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNTg2LjcsNzA5LjUgYyAwLDAgMCwwLjEgMCwwIC0wLjEsMCAtMC4xLDAgLTAuMSwwLjEgMSwtMC4xIDIuMSwtMC4zIDMuMSwtMC41IDQuMiwtMC42IDguMywtMS4zIDEyLjMsLTIuMyAtNSwwLjkgLTEwLDEuOCAtMTUuMywyLjcgeiIKICAgICAgICAgaWQ9InBhdGgzMTkyIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDojYmQyMDJlIiAvPgogICAgICA8cGF0aAogICAgICAgICBlbmFibGUtYmFja2dyb3VuZD0ibmV3ICAgICIKICAgICAgICAgZD0ibSA1ODYuNyw3MDkuNSBjIDAsMCAwLDAuMSAwLDAgLTAuMSwwIC0wLjEsMCAtMC4xLDAuMSAxLC0wLjEgMi4xLC0wLjMgMy4xLC0wLjUgNC4yLC0wLjYgOC4zLC0xLjMgMTIuMywtMi4zIC01LDAuOSAtMTAsMS44IC0xNS4zLDIuNyB6IgogICAgICAgICBpZD0icGF0aDMxOTQiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZmlsbDojYmQyMDJlIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDI5MSIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODYzMC43MTk3IgogICAgICAgICB5MT0iMjgwNC45NjA3IgogICAgICAgICB4Mj0iLTY5MzYuOTI1MyIKICAgICAgICAgeTI9IjI4MDQuOTYwNyIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0MjkzIiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQyOTUiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDI5NyIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDI5OSIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1MTQsNDY5LjIgYyAxNSwtMjguMSAzMC4yLC01NS41IDQ1LjUsLTgyLjEgMTUuOSwtMjcuOCAzMi4xLC01NC42IDQ4LjQsLTgwLjYgMC45LC0xLjUgMiwtMy4xIDIuOSwtNC42IDE2LjEsLTI1LjUgMzIuNCwtNTAuMSA0OC43LC03My41IGwgLTQ5LjMsLTkzLjIgYyAtMy43LDQuNSAtNy40LDkuMSAtMTEuMiwxMy45IC0xNC4zLDE3LjggLTI5LDM2LjggLTQ0LjIsNTcuMSAtMTcuMSwyMi44IC0zNC42LDQ3LjIgLTUyLjUsNzIuOCAtMTYuNCwyMy42IC0zMy4yLDQ4LjMgLTUwLDc0IC0xNC4zLDIxLjggLTI4LjUsNDQuMiAtNDIuNyw2Ny4yIC0wLjUsMC44IC0xLDEuNyAtMS41LDIuNiBsIDY0LjMsMTI3IEMgNDg2LDUyMi4zIDUwMCw0OTUuNCA1MTQsNDY5LjIgWiIKICAgICAgICAgaWQ9InBhdGgzMjA1IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzJfLTYpIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDMwMiIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODQyNi4yNTU5IgogICAgICAgICB5MT0iMjYzNS4yODM5IgogICAgICAgICB4Mj0iLTc0MTYuOTE5NCIKICAgICAgICAgeTI9IjI2MzUuMjgzOSIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMjgyNjYxIgogICAgICAgICAgIGlkPSJzdG9wNDMwNCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iOS41NDgzODllLTAyIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM2NjJFOEMiCiAgICAgICAgICAgaWQ9InN0b3A0MzA2IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjc4ODIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlFMjA2NCIKICAgICAgICAgICBpZD0ic3RvcDQzMDgiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuOTQ4NyIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMDMyIgogICAgICAgICAgIGlkPSJzdG9wNDMxMCIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSAyMjEuMiwxMTg0LjQgYyAtOC41LDIzLjMgLTE3LjEsNDcuMiAtMjUuNiw3MS41IC0wLjEsMC4zIC0wLjIsMC43IC0wLjQsMSAtMS4yLDMuNCAtMi41LDYuOSAtMy42LDEwLjMgLTUuOCwxNi40IC0xMC44LDMxLjIgLTIyLjMsNjQuNyAxOC45LDguNiAzNC4xLDMxLjQgNDguNSw1Ny4yIC0xLjUsLTI2LjcgLTEyLjUsLTUxLjggLTMzLjYsLTcxLjIgOTMuMyw0LjIgMTczLjcsLTE5LjQgMjE1LjMsLTg3LjYgMy43LC02LjEgNy4xLC0xMi40IDEwLjIsLTE5LjMgLTE4LjksMjQgLTQyLjQsMzQuMSAtODYuNSwzMS43IC0wLjEsMCAtMC4yLDAuMSAtMC4zLDAuMSAwLjEsMCAwLjIsLTAuMSAwLjMsLTAuMSA2NSwtMjkuMSA5Ny41LC01NyAxMjYuNCwtMTAzLjIgNi44LC0xMSAxMy41LC0yMi45IDIwLjMsLTM2LjIgLTU2LjgsNTguMyAtMTIyLjUsNzQuOSAtMTkxLjgsNjIuMyBsIC01Miw1LjcgYyAtMS43LDQuNCAtMy4yLDguNyAtNC45LDEzLjEgeiIKICAgICAgICAgaWQ9InBhdGgzMjE2IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzNfLTcpIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDMxMyIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODUzNS41ODc5IgogICAgICAgICB5MT0iMjgyMC44NjA0IgogICAgICAgICB4Mj0iLTY4NDEuNzkzIgogICAgICAgICB5Mj0iMjgyMC44NjA0IgogICAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgICBpZD0ic3RvcDQzMTUiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICAgIGlkPSJzdG9wNDMxNyIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgICAgaWQ9InN0b3A0MzE5IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgICAgaWQ9InN0b3A0MzIxIiAvPgogICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDI0NS41LDEwNjguMSBjIDExLjIsLTI5IDIyLjgsLTU4LjQgMzQuNiwtODggMTEuNCwtMjguNCAyMywtNTcgMzUsLTg1LjYgMTIsLTI4LjYgMjQuMiwtNTcuNSAzNi42LC04Ni4zIDEyLjYsLTI5LjMgMjUuNiwtNTguNSAzOC45LC04Ny42IDEzLjEsLTI4LjggMjYuMywtNTcuNCAzOS44LC04NS42IDQuOCwtMTAuMiA5LjgsLTIwLjQgMTQuNywtMzAuNSA4LjUsLTE3LjUgMTcuMSwtMzQuOSAyNS44LC01Mi4xIDAuNSwtMC45IDAuOSwtMS45IDEuNCwtMi44IEwgNDA4LDQyMi42IGMgLTEsMS43IC0yLjEsMy41IC0zLjIsNS4xIC0xNSwyNC41IC0yOS45LDQ5LjUgLTQ0LjUsNzUgLTE0LjgsMjUuOCAtMjkuMyw1Mi4xIC00My41LDc4LjggLTExLjksMjIuNSAtMjMuNiw0NS4xIC0zNS4xLDY4LjEgLTIuMyw0LjYgLTQuNSw5LjMgLTYuOCwxMy45IC0xNCwyOC45IC0yNi42LDU2LjYgLTM4LjEsODMuNSAtMTMsMzAuMyAtMjQuNCw1OS4zIC0zNC4zLDg2LjggLTYuNiwxOC4xIC0xMi41LDM1LjUgLTE4LDUyLjMgLTQuNSwxNC4zIC04LjcsMjguNyAtMTIuOSw0MyAtOS42LDMzLjYgLTE3LjksNjcuMiAtMjQuNywxMDAuNiBsIDY0LjYsMTI3LjUgYyA4LjUsLTIyLjggMTcuMywtNDYgMjYuMywtNjkuNCAyLjcsLTYuNyA1LjEsLTEzLjMgNy43LC0xOS43IHoiCiAgICAgICAgIGlkPSJwYXRoMzIyNyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF80Xy0wKSIgLz4KICAgICAgPGxpbmVhckdyYWRpZW50CiAgICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQzMjQiCiAgICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgICB4MT0iLTg0MTIuMDU3NiIKICAgICAgICAgeTE9IjI3OTcuODc4OSIKICAgICAgICAgeDI9Ii03NTIxLjkxNzUiCiAgICAgICAgIHkyPSIyNzk3Ljg3ODkiCiAgICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC40MzQ1LC0wLjkzMTgsLTAuOTMxOCwtMC40MzQ1LDYyMjMuNDc2MSwtNTA1Mi43NDI3KSI+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzI4MjY2MSIKICAgICAgICAgICBpZD0ic3RvcDQzMjYiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjkuNTQ4Mzg5ZS0wMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNjYyRThDIgogICAgICAgICAgIGlkPSJzdG9wNDMyOCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43ODgyIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5RTIwNjQiCiAgICAgICAgICAgaWQ9InN0b3A0MzMwIiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjk0ODciCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0NDMjAzMiIKICAgICAgICAgICBpZD0ic3RvcDQzMzIiIC8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTQ2LjIsMTAzNCBjIC04LjEsNDAuOCAtMTMuOSw4MS40IC0xNi44LDEyMS44IC0wLjEsMS40IC0wLjIsMi44IC0wLjMsNC4yIC0yMC4yLC0zMi4zIC03NC4xLC02My44IC03NCwtNjMuNSAzOC43LDU2IDY4LDExMS42IDcyLjMsMTY2LjIgLTIwLjcsNC4yIC00OSwtMS45IC04MS43LC0xMy45IDM0LjEsMzEuNCA1OS43LDQwIDY5LjgsNDIuNCAtMzEuNCwyIC02NCwyMy41IC05Ni45LDQ4LjMgNDguMSwtMTkuNiA4NywtMjcuNCAxMTQuOCwtMjEuMSAtNDQuMiwxMjUgLTg4LjQsMjYzIC0xMzIuNyw0MDkuNiAxMy42LC00IDIxLjcsLTEzLjIgMjYuMiwtMjUuNSA3LjksLTI2LjUgNjAuMiwtMjAwLjcgMTQyLjMsLTQyOS40IDIuNCwtNi41IDQuNywtMTMuMSA3LjEsLTE5LjYgMC42LC0xLjkgMS4zLC0zLjcgMiwtNS40IDguNiwtMjQgMTcuNywtNDguNSAyNi45LC03My41IDIuMSwtNS43IDQuMiwtMTEuNCA2LjQsLTE3LjEgMCwtMC4xIDAuMSwtMC4yIDAuMSwtMC4zIEwgMTQ3LDEwMjkuNyBjIC0wLjIsMS4zIC0wLjUsMi44IC0wLjgsNC4zIHoiCiAgICAgICAgIGlkPSJwYXRoMzIzOCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF81Xy04KSIgLz4KICAgICAgPGxpbmVhckdyYWRpZW50CiAgICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQzMzUiCiAgICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgICB4MT0iLTg1MzUuNTg3OSIKICAgICAgICAgeTE9IjI2NDUuNDg5NyIKICAgICAgICAgeDI9Ii02ODQxLjc5MyIKICAgICAgICAgeTI9IjI2NDUuNDg5NyIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0MzM3IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQzMzkiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDM0MSIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDM0MyIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA0ODIuMyw1NjAuMiBjIC0xLjksMy44IC0zLjcsNy42IC01LjYsMTEuNCAtNS42LDExLjUgLTExLjIsMjMuMiAtMTcsMzUuMiAtNi4yLDEzIC0xMi40LDI2LjIgLTE4LjcsMzkuOCAtMy4yLDYuOCAtNi40LDEzLjcgLTkuNiwyMC43IC05LjYsMjAuOSAtMTkuMyw0Mi41IC0yOS4yLDY0LjggLTEyLjEsMjcuMyAtMjQuNiw1NS44IC0zNy4xLDg1LjQgLTExLjksMjguMiAtMjQuMiw1Ny4zIC0zNi40LDg3LjUgLTExLjcsMjguNiAtMjMuNSw1OC4yIC0zNS41LDg4LjYgLTEwLjcsMjcuMSAtMjEuNSw1NS4xIC0zMi4zLDgzLjggLTAuNSwxLjMgLTEsMi44IC0xLjUsNC4xIC0xMC44LDI4LjUgLTIxLjcsNTcuOCAtMzIuNiw4Ny44IC0wLjIsMC43IC0wLjUsMS4zIC0wLjcsMi4xIGwgNTIsLTUuNyBjIC0xLC0wLjIgLTIuMSwtMC4zIC0zLjEsLTAuNSA2Mi4xLC03LjcgMTQ0LjgsLTU0LjIgMTk4LjEsLTExMS41IDI0LjYsLTI2LjQgNDYuOSwtNTcuNiA2Ny41LC05NC4xIDE1LjMsLTI3LjEgMjkuOCwtNTcuMyA0My42LC05MC42IDEyLC0yOS4xIDIzLjUsLTYwLjcgMzQuNiwtOTQuOCAtMTQuMyw3LjUgLTMwLjYsMTMuMSAtNDguNiwxNi45IC0zLjIsMC43IC02LjQsMS4zIC05LjcsMS45IC0zLjMsMC42IC02LjYsMS4xIC0xMCwxLjUgdiAwIDAgYyAwLDAgMC4xLDAgMC4xLC0wLjEgNTgsLTIyLjMgOTQuNSwtNjUuMyAxMjEsLTExOCAtMTUuMiwxMC40IC00MCwyNCAtNjkuNywzMC41IC00LDAuOSAtOC4xLDEuNiAtMTIuMywyLjMgLTEsMC4xIC0yLjEsMC4zIC0zLjEsMC41IHYgMCAwIGggMC4xIGMgMCwwIDAsMCAwLjEsMCB2IDAgYyAyMC4yLC04LjQgMzcuMSwtMTcuOSA1MS44LC0yOSAzLjIsLTIuNCA2LjMsLTQuOCA5LjEsLTcuNCA0LjUsLTMuOSA4LjcsLTggMTIuOSwtMTIuMiAyLjYsLTIuOCA1LjEsLTUuNiA3LjYsLTguNSA1LjgsLTYuOSAxMS4yLC0xNC4zIDE2LjIsLTIyLjMgMS41LC0yLjUgMy4xLC00LjkgNC41LC03LjUgMiwtMy43IDMuOCwtNy40IDUuNiwtMTAuOSA4LjEsLTE2LjIgMTQuNiwtMzAuOCAxOS43LC00My41IDIuNiwtNi40IDQuOCwtMTIuMiA2LjgsLTE3LjggMC44LC0yLjIgMS41LC00LjMgMi4yLC02LjQgMi4xLC02LjEgMy43LC0xMS41IDUsLTE2LjMgMiwtNy4yIDMuMiwtMTIuOSAzLjgsLTE3IHYgMCAwIGMgLTIsMS41IC00LjIsMy4xIC02LjgsNC42IC0xNy41LDEwLjUgLTQ3LjUsMTkuOSAtNzEuNywyNC40IGwgNDcuNywtNS4yIC00Ny43LDUuMiBjIC0wLjMsMC4xIC0wLjcsMC4xIC0xLjEsMC4yIC0yLjUsMC40IC00LjgsMC44IC03LjMsMS4xIDAuNCwtMC4yIDAuOCwtMC40IDEuMiwtMC42IGwgLTE2My4zLDE3LjkgYyAwLDAuNCAtMC4zLDEuMSAtMC42LDEuNyB6IgogICAgICAgICBpZD0icGF0aDMyNDkiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfNl8tMikiIC8+CiAgICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MzQ2IgogICAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgICAgeDE9Ii04NjQwLjY1OTIiCiAgICAgICAgIHkxPSIyNjU0LjI2NDkiCiAgICAgICAgIHgyPSItNjk0Ni44NjQ3IgogICAgICAgICB5Mj0iMjY1NC4yNjQ5IgogICAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgICBpZD0ic3RvcDQzNDgiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICAgIGlkPSJzdG9wNDM1MCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgICAgaWQ9InN0b3A0MzUyIiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgICAgaWQ9InN0b3A0MzU0IiAvPgogICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDY2Ni4xLDIzMC4yIGMgLTE0LjUsMjIuMyAtMzAuMyw0Ny42IC00Ny41LDc2LjMgLTAuOSwxLjQgLTEuOSwzLjEgLTIuNyw0LjUgLTE0LjcsMjQuOCAtMzAuMyw1MiAtNDYuOSw4MS45IC0xNC4yLDI1LjggLTI5LDUzLjQgLTQ0LjQsODMuMSAtMTMuNCwyNS45IC0yNy4yLDUzLjQgLTQxLjUsODIuNSBsIDE2My4zLC0xNy45IGMgNDcuNiwtMjEuOSA2OC44LC00MS42IDg5LjQsLTcwLjMgNS40LC03LjkgMTEsLTE2LjEgMTYuNCwtMjQuNyAxNi44LC0yNi4yIDMzLjIsLTU1IDQ3LjksLTgzLjcgMTQuMiwtMjcuNyAyNi43LC01NS4xIDM2LjMsLTc5LjkgNi4xLC0xNS43IDExLC0zMC4zIDE0LjQsLTQzLjIgMywtMTEuMyA1LjMsLTIyLjEgNy4xLC0zMi40IC02My4zLDEwLjkgLTE0MS4yLDIxLjMgLTE5MS44LDIzLjggeiIKICAgICAgICAgaWQ9InBhdGgzMjYwIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzdfLTIpIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDU2MC41LDc5Mi44IGMgLTMuMywwLjYgLTYuNiwxLjEgLTEwLDEuNSB2IDAgYyAzLjQsLTAuMyA2LjgsLTAuOSAxMCwtMS41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI2MiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2JkMjAyZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiCiAgICAgICAgIGQ9Im0gNTYwLjUsNzkyLjggYyAtMy4zLDAuNiAtNi42LDEuMSAtMTAsMS41IHYgMCBjIDMuNCwtMC4zIDYuOCwtMC45IDEwLC0xLjUgeiIKICAgICAgICAgaWQ9InBhdGgzMjY0IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0ib3BhY2l0eTowLjM1O2ZpbGw6I2JkMjAyZSIgLz4KICAgICAgPGxpbmVhckdyYWRpZW50CiAgICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQzNTkiCiAgICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgICB4MT0iLTg1MzUuNTg4OSIKICAgICAgICAgeTE9IjI1OTMuNDQ2IgogICAgICAgICB4Mj0iLTY4NDEuNzkyNSIKICAgICAgICAgeTI9IjI1OTMuNDQ2IgogICAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNDM0NSwtMC45MzE4LC0wLjkzMTgsLTAuNDM0NSw2MjIzLjQ3NjEsLTUwNTIuNzQyNykiPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjMyMzMiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzlDMjA2MyIKICAgICAgICAgICBpZD0ic3RvcDQzNjEiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNjMwMiIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyMDM3IgogICAgICAgICAgIGlkPSJzdG9wNDM2MyIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC43NTE0IgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDQzIxMzUiCiAgICAgICAgICAgaWQ9InN0b3A0MzY1IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFODc3MjYiCiAgICAgICAgICAgaWQ9InN0b3A0MzY3IiAvPgogICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDU2MC41LDc5Mi44IGMgLTMuMywwLjYgLTYuNiwxLjEgLTEwLDEuNSB2IDAgYyAzLjQsLTAuMyA2LjgsLTAuOSAxMCwtMS41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI3NSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF84Xy0zKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDEsLTAuMSAyLjEsLTAuMyAzLjEsLTAuNSAtMSwwLjEgLTIsMC40IC0zLjEsMC41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI3NyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2JkMjAyZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiCiAgICAgICAgIGQ9Im0gNTg2LjYsNzA5LjYgYyAxLC0wLjEgMi4xLC0wLjMgMy4xLC0wLjUgLTEsMC4xIC0yLDAuNCAtMy4xLDAuNSB6IgogICAgICAgICBpZD0icGF0aDMyNzkiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZmlsbDojYmQyMDJlIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDM3MiIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItODUzNS41ODg5IgogICAgICAgICB5MT0iMjU5OS4zMjQyIgogICAgICAgICB4Mj0iLTY4NDEuNzkyNSIKICAgICAgICAgeTI9IjI1OTkuMzI0MiIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0Mzc0IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQzNzYiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDM3OCIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDM4MCIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDEsLTAuMSAyLjEsLTAuMyAzLjEsLTAuNSAtMSwwLjEgLTIsMC40IC0zLjEsMC41IHoiCiAgICAgICAgIGlkPSJwYXRoMzI5MCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF85Xy0zKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDAuMSwwIDAuMSwtMC4xIDAsMCB2IDAgMCAwIGMgMC4xLC0wLjEgMC4xLDAgMCwwIHoiCiAgICAgICAgIGlkPSJwYXRoMzI5MiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2JkMjAyZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiCiAgICAgICAgIGQ9Im0gNTg2LjYsNzA5LjYgYyAwLjEsMCAwLjEsLTAuMSAwLDAgdiAwIDAgMCBjIDAuMSwtMC4xIDAuMSwwIDAsMCB6IgogICAgICAgICBpZD0icGF0aDMyOTQiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZmlsbDojYmQyMDJlIiAvPgogICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDM4NSIKICAgICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgIHgxPSItNzU4NC4wMzg2IgogICAgICAgICB5MT0iMjYwMC41NTE1IgogICAgICAgICB4Mj0iLTcyMDkuNjU0MyIKICAgICAgICAgeTI9IjI2MDAuNTUxNSIKICAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQzNDUsLTAuOTMxOCwtMC45MzE4LC0wLjQzNDUsNjIyMy40NzYxLC01MDUyLjc0MjcpIj4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMC4zMjMzIgogICAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM5QzIwNjMiCiAgICAgICAgICAgaWQ9InN0b3A0Mzg3IiAvPgogICAgICAgIDxzdG9wCiAgICAgICAgICAgb2Zmc2V0PSIwLjYzMDIiCiAgICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjAzNyIKICAgICAgICAgICBpZD0ic3RvcDQzODkiIC8+CiAgICAgICAgPHN0b3AKICAgICAgICAgICBvZmZzZXQ9IjAuNzUxNCIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojQ0MyMTM1IgogICAgICAgICAgIGlkPSJzdG9wNDM5MSIgLz4KICAgICAgICA8c3RvcAogICAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojRTg3NzI2IgogICAgICAgICAgIGlkPSJzdG9wNDM5MyIgLz4KICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA1ODYuNiw3MDkuNiBjIDAuMSwwIDAuMSwtMC4xIDAsMCB2IDAgMCAwIGMgMC4xLC0wLjEgMC4xLDAgMCwwIHoiCiAgICAgICAgIGlkPSJwYXRoMzMwNSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8xMF8tOCkiIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K",
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "JMS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source",
        "camel.apache.org/requires.runtime" : "camel-k"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "JMS - AMQP 1.0 Source",
        "description" : "Consume data from any AMQP 1.0 compliant message broker by using the Apache Qpid JMS client.",
        "required" : [ "destinationName", "remoteURI" ],
        "type" : "object",
        "properties" : {
          "destinationType" : {
            "title" : "Destination Type",
            "description" : "The JMS destination type (queue or topic).",
            "type" : "string",
            "default" : "queue"
          },
          "destinationName" : {
            "title" : "Destination Name",
            "description" : "The JMS destination name.",
            "type" : "string"
          },
          "remoteURI" : {
            "title" : "Broker URL",
            "description" : "The JMS URL.",
            "type" : "string",
            "example" : "amqp://my-host:31616"
          }
        }
      },
      "dependencies" : [ "camel:jms", "camel:amqp", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "connectionFactoryBean",
          "type" : "#class:org.apache.qpid.jms.JmsConnectionFactory",
          "properties" : {
            "remoteURI" : "{{remoteURI}}"
          }
        } ],
        "from" : {
          "uri" : "jms:{{destinationType}}:{{destinationName}}",
          "parameters" : {
            "connectionFactory" : "#bean:{{connectionFactoryBean}}"
          },
          "steps" : [ {
            "to" : {
              "uri" : "kamelet:sink"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "JMS - AMQP 1.0 Source",
      "description" : "Consume data from any AMQP 1.0 compliant message broker by using the Apache Qpid JMS client.",
      "required" : [ "destinationName", "remoteURI" ],
      "properties" : {
        "destinationType" : {
          "type" : "string",
          "title" : "Destination Type",
          "description" : "The JMS destination type (queue or topic).",
          "default" : "queue"
        },
        "destinationName" : {
          "type" : "string",
          "title" : "Destination Name",
          "description" : "The JMS destination name."
        },
        "remoteURI" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The JMS URL."
        }
      }
    }
  },
  "jms-apache-artemis-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jms-apache-artemis-sink",
      "annotations" : {
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOTQuNTY2OTFtbSIKICAgaGVpZ2h0PSI4My44MzA0NDRtbSIKICAgdmlld0JveD0iMCAwIDk0LjU2NjkxIDgzLjgzMDQ0NCIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNDM5MCI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgiCiAgICAgaW5rc2NhcGU6Y3g9IjI0LjE0MTM0OSIKICAgICBpbmtzY2FwZTpjeT0iMjAxLjA3Njk3IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtcm90YXRpb249IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMzg0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIyMDU2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9InRydWUiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIyMCIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgZml0LW1hcmdpbi10b3A9IjEwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMTAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMTAiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEwIiAvPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0Mzg0Ij4KICAgIDxmaWx0ZXIKICAgICAgIHN0eWxlPSJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6c1JHQiIKICAgICAgIGlua3NjYXBlOmxhYmVsPSJEcm9wIFNoYWRvdyIKICAgICAgIGlkPSJmaWx0ZXI1NTI5Ij4KICAgICAgPGZlRmxvb2QKICAgICAgICAgZmxvb2Qtb3BhY2l0eT0iMC40OTgwMzkiCiAgICAgICAgIGZsb29kLWNvbG9yPSJyZ2IoMCwwLDApIgogICAgICAgICByZXN1bHQ9ImZsb29kIgogICAgICAgICBpZD0iZmVGbG9vZDU1MTkiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iZmxvb2QiCiAgICAgICAgIGluMj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgb3BlcmF0b3I9ImluIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTEiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTU1MjEiIC8+CiAgICAgIDxmZUdhdXNzaWFuQmx1cgogICAgICAgICBpbj0iY29tcG9zaXRlMSIKICAgICAgICAgc3RkRGV2aWF0aW9uPSIwLjIiCiAgICAgICAgIHJlc3VsdD0iYmx1ciIKICAgICAgICAgaWQ9ImZlR2F1c3NpYW5CbHVyNTUyMyIgLz4KICAgICAgPGZlT2Zmc2V0CiAgICAgICAgIGR4PSIxIgogICAgICAgICBkeT0iMSIKICAgICAgICAgcmVzdWx0PSJvZmZzZXQiCiAgICAgICAgIGlkPSJmZU9mZnNldDU1MjUiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgaW4yPSJvZmZzZXQiCiAgICAgICAgIG9wZXJhdG9yPSJvdmVyIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTIiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTU1MjciIC8+CiAgICA8L2ZpbHRlcj4KICAgIDxmaWx0ZXIKICAgICAgIHN0eWxlPSJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6c1JHQjsiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iRHJvcCBTaGFkb3ciCiAgICAgICBpZD0iZmlsdGVyNTYiPgogICAgICA8ZmVGbG9vZAogICAgICAgICBmbG9vZC1vcGFjaXR5PSIwLjQ5ODAzOSIKICAgICAgICAgZmxvb2QtY29sb3I9InJnYigwLDAsMCkiCiAgICAgICAgIHJlc3VsdD0iZmxvb2QiCiAgICAgICAgIGlkPSJmZUZsb29kNDYiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iZmxvb2QiCiAgICAgICAgIGluMj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgb3BlcmF0b3I9ImluIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTEiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTQ4IiAvPgogICAgICA8ZmVHYXVzc2lhbkJsdXIKICAgICAgICAgaW49ImNvbXBvc2l0ZTEiCiAgICAgICAgIHN0ZERldmlhdGlvbj0iMC4xIgogICAgICAgICByZXN1bHQ9ImJsdXIiCiAgICAgICAgIGlkPSJmZUdhdXNzaWFuQmx1cjUwIiAvPgogICAgICA8ZmVPZmZzZXQKICAgICAgICAgZHg9IjEiCiAgICAgICAgIGR5PSIxIgogICAgICAgICByZXN1bHQ9Im9mZnNldCIKICAgICAgICAgaWQ9ImZlT2Zmc2V0NTIiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgaW4yPSJvZmZzZXQiCiAgICAgICAgIG9wZXJhdG9yPSJvdmVyIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTIiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTU0IiAvPgogICAgPC9maWx0ZXI+CiAgICA8ZmlsdGVyCiAgICAgICBzdHlsZT0iY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOnNSR0I7IgogICAgICAgaW5rc2NhcGU6bGFiZWw9IkRyb3AgU2hhZG93IgogICAgICAgaWQ9ImZpbHRlcjYzIj4KICAgICAgPGZlRmxvb2QKICAgICAgICAgZmxvb2Qtb3BhY2l0eT0iMC40OTgwMzkiCiAgICAgICAgIGZsb29kLWNvbG9yPSJyZ2IoMCwwLDApIgogICAgICAgICByZXN1bHQ9ImZsb29kIgogICAgICAgICBpZD0iZmVGbG9vZDUyIiAvPgogICAgICA8ZmVDb21wb3NpdGUKICAgICAgICAgaW49ImZsb29kIgogICAgICAgICBpbjI9IlNvdXJjZUdyYXBoaWMiCiAgICAgICAgIG9wZXJhdG9yPSJpbiIKICAgICAgICAgcmVzdWx0PSJjb21wb3NpdGUxIgogICAgICAgICBpZD0iZmVDb21wb3NpdGU1NSIgLz4KICAgICAgPGZlR2F1c3NpYW5CbHVyCiAgICAgICAgIGluPSJjb21wb3NpdGUxIgogICAgICAgICBzdGREZXZpYXRpb249IjAuMSIKICAgICAgICAgcmVzdWx0PSJibHVyIgogICAgICAgICBpZD0iZmVHYXVzc2lhbkJsdXI1NyIgLz4KICAgICAgPGZlT2Zmc2V0CiAgICAgICAgIGR4PSIxIgogICAgICAgICBkeT0iMSIKICAgICAgICAgcmVzdWx0PSJvZmZzZXQiCiAgICAgICAgIGlkPSJmZU9mZnNldDU5IiAvPgogICAgICA8ZmVDb21wb3NpdGUKICAgICAgICAgaW49IlNvdXJjZUdyYXBoaWMiCiAgICAgICAgIGluMj0ib2Zmc2V0IgogICAgICAgICBvcGVyYXRvcj0ib3ZlciIKICAgICAgICAgcmVzdWx0PSJjb21wb3NpdGUyIgogICAgICAgICBpZD0iZmVDb21wb3NpdGU2MSIgLz4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE0Mzg3Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMiIKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMiIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTguMDUyNzc3OCwtOTYuOTUwODk0KSI+CiAgICA8ZwogICAgICAgaWQ9Imc1MDczIgogICAgICAgc3R5bGU9ImZpbHRlcjp1cmwoI2ZpbHRlcjU1MjkpIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNjQuNjk3MTkzLDE1My41NTE4MSAtOC4zNTE4NDgsLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzYgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkyLDcuMjU3NDYgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzU5OSIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjE0Ni4yOTQzNCIKICAgICAgICAgc29kaXBvZGk6Y3g9IjYwLjU2MzgwMSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4MyIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4zOTQ2OTg1O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNTIuNjMyMTM3LDE0Ni41NTMwOSAtOC4zNTE4NDgsLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzUgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkyLDcuMjU3NDcgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzYwNCIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjEzOS4yOTU2MiIKICAgICAgICAgc29kaXBvZGk6Y3g9IjQ4LjQ5ODc0NSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4My00IgogICAgICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDowLjM5NDY5ODU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteD0iMy4zNTY0NDcyZS0wNiIKICAgICAgICAgZD0ibSA2NC43NzEyNjMsMTM5LjU4ODg5IC04LjM1MTg0OCwtMC4wNDkxIC00LjEzMzM5MiwtNy4yNTc0NyA0LjIxODQ1NSwtNy4yMDgzNiA4LjM1MTg0OSwwLjA0OTEgNC4xMzMzOTIsNy4yNTc0NyB6IgogICAgICAgICBpbmtzY2FwZTpyYW5kb21pemVkPSIwIgogICAgICAgICBpbmtzY2FwZTpyb3VuZGVkPSIwIgogICAgICAgICBpbmtzY2FwZTpmbGF0c2lkZWQ9InRydWUiCiAgICAgICAgIHNvZGlwb2RpOmFyZzI9IjEuNTc2Njc2NiIKICAgICAgICAgc29kaXBvZGk6YXJnMT0iMS4wNTMwNzc4IgogICAgICAgICBzb2RpcG9kaTpyMj0iNi4wNDczNjA5IgogICAgICAgICBzb2RpcG9kaTpyMT0iOC4zNTE5OTI2IgogICAgICAgICBzb2RpcG9kaTpjeT0iMTMyLjMzMTQyIgogICAgICAgICBzb2RpcG9kaTpjeD0iNjAuNjM3ODcxIgogICAgICAgICBzb2RpcG9kaTpzaWRlcz0iNiIKICAgICAgICAgaWQ9InBhdGg0ODgzLTQtMiIKICAgICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4zOTQ2OTg1O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNjQuNzY1NDg4LDEyNS43MDIyOCAtOC4zNTE4NDksLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzYgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkzLDcuMjU3NDcgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzYwOSIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjExOC40NDQ4MSIKICAgICAgICAgc29kaXBvZGk6Y3g9IjYwLjYzMjA5NSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4My00LTItMCIKICAgICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4zOTQ2OTg1O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNTIuNjk2MDM3LDEzMi42NzYxMSAtOC4zNTE4NDgsLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzYgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkyLDcuMjU3NDcgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzYwOSIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjEyNS40MTg2NCIKICAgICAgICAgc29kaXBvZGk6Y3g9IjQ4LjU2MjY0NSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4My00LTItMC0wIgogICAgICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDowLjM5NDY5ODU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8L2c+CiAgPC9nPgogIDxnCiAgICAgaWQ9ImxheWVyMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOC4wNTI3Nzc4LC05Ni45NTA4OTQpIj4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMDcyMDU3NSwwLjAxNTUzMzQ1LC0wLjAxNTUzMzQ1LDAuMDcyMDU3NSwtNTkuMDMxMDU1LDYzLjc5NTc3NikiCiAgICAgICBkPSJtIDE4NDkuMTM4Nyw2NDAuMzUyNTIgLTk2LjgyNDIsMjAuNTU4MDIgLTY2LjIxNTgsLTczLjU3MzE2IDMwLjYwODMsLTk0LjEzMTE4IDk2LjgyNDIsLTIwLjU1ODAyIDY2LjIxNTgsNzMuNTczMTYgeiIKICAgICAgIGlua3NjYXBlOnJhbmRvbWl6ZWQ9IjAiCiAgICAgICBpbmtzY2FwZTpyb3VuZGVkPSIwIgogICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgc29kaXBvZGk6YXJnMj0iMS4zNjE1OCIKICAgICAgIHNvZGlwb2RpOmFyZzE9IjAuODM3OTgxMjMiCiAgICAgICBzb2RpcG9kaTpyMj0iNDkuNDkxMjgiCiAgICAgICBzb2RpcG9kaTpyMT0iOTguOTgyNTU5IgogICAgICAgc29kaXBvZGk6Y3k9IjU2Ni43NzkzNiIKICAgICAgIHNvZGlwb2RpOmN4PSIxNzgyLjkyMjkiCiAgICAgICBzb2RpcG9kaTpzaWRlcz0iNiIKICAgICAgIGlkPSJwYXRoNTAxOS0wMi05IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNjMTI3NjY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjA3MjA1NzUsMC4wMTU1MzM0NSwtMC4wMTU1MzM0NSwwLjA3MjA1NzUsLTcxLjE3MDE3OSw3MC43NTk5ODUpIgogICAgICAgZD0ibSAxODQ5LjEzODcsNjQwLjM1MjUyIC05Ni44MjQyLDIwLjU1ODAyIC02Ni4yMTU4LC03My41NzMxNiAzMC42MDgzLC05NC4xMzExOCA5Ni44MjQyLC0yMC41NTgwMiA2Ni4yMTU4LDczLjU3MzE2IHoiCiAgICAgICBpbmtzY2FwZTpyYW5kb21pemVkPSIwIgogICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgIGlua3NjYXBlOmZsYXRzaWRlZD0idHJ1ZSIKICAgICAgIHNvZGlwb2RpOmFyZzI9IjEuMzYxNTgiCiAgICAgICBzb2RpcG9kaTphcmcxPSIwLjgzNzk4MTIzIgogICAgICAgc29kaXBvZGk6cjI9IjQ5LjQ5MTI4IgogICAgICAgc29kaXBvZGk6cjE9Ijk4Ljk4MjU1OSIKICAgICAgIHNvZGlwb2RpOmN5PSI1NjYuNzc5MzYiCiAgICAgICBzb2RpcG9kaTpjeD0iMTc4Mi45MjI5IgogICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICBpZD0icGF0aDUwMTktMC01LTEiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6IzNlNDg5ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9Ii05Ni43ODY0NjUiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjE5OC4xMDMzNSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMDcyMDU3NSwwLjAxNTUzMzQ1LC0wLjAxNTUzMzQ1LDAuMDcyMDU3NSwtNTkuMTA2NDksNzcuNzU4MjkzKSIKICAgICAgIGQ9Im0gMTg0OS4xMzg3LDY0MC4zNTI1MiAtOTYuODI0MiwyMC41NTgwMiAtNjYuMjE1OCwtNzMuNTczMTYgMzAuNjA4MywtOTQuMTMxMTggOTYuODI0MiwtMjAuNTU4MDIgNjYuMjE1OCw3My41NzMxNiB6IgogICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgIGlua3NjYXBlOnJvdW5kZWQ9IjAiCiAgICAgICBpbmtzY2FwZTpmbGF0c2lkZWQ9InRydWUiCiAgICAgICBzb2RpcG9kaTphcmcyPSIxLjM2MTU4IgogICAgICAgc29kaXBvZGk6YXJnMT0iMC44Mzc5ODEyMyIKICAgICAgIHNvZGlwb2RpOnIyPSI0OS40OTEyOCIKICAgICAgIHNvZGlwb2RpOnIxPSI5OC45ODI1NTkiCiAgICAgICBzb2RpcG9kaTpjeT0iNTY2Ljc3OTM2IgogICAgICAgc29kaXBvZGk6Y3g9IjE3ODIuOTIyOSIKICAgICAgIHNvZGlwb2RpOnNpZGVzPSI2IgogICAgICAgaWQ9InBhdGg1MDE5LTQtMS0yIgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3MTQwOTk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjA3MjA1NzUsMC4wMTU1MzM0NSwtMC4wMTU1MzM0NSwwLjA3MjA1NzUsLTcxLjEwNjI4MSw1Ni44ODI5OSkiCiAgICAgICBkPSJtIDE4NDkuMTM4Nyw2NDAuMzUyNTIgLTk2LjgyNDIsMjAuNTU4MDIgLTY2LjIxNTgsLTczLjU3MzE2IDMwLjYwODMsLTk0LjEzMTE4IDk2LjgyNDIsLTIwLjU1ODAyIDY2LjIxNTgsNzMuNTczMTYgeiIKICAgICAgIGlua3NjYXBlOnJhbmRvbWl6ZWQ9IjAiCiAgICAgICBpbmtzY2FwZTpyb3VuZGVkPSIwIgogICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgc29kaXBvZGk6YXJnMj0iMS4zNjE1OCIKICAgICAgIHNvZGlwb2RpOmFyZzE9IjAuODM3OTgxMjMiCiAgICAgICBzb2RpcG9kaTpyMj0iNDkuNDkxMjgiCiAgICAgICBzb2RpcG9kaTpyMT0iOTguOTgyNTU5IgogICAgICAgc29kaXBvZGk6Y3k9IjU2Ni43NzkzNiIKICAgICAgIHNvZGlwb2RpOmN4PSIxNzgyLjkyMjkiCiAgICAgICBzb2RpcG9kaTpzaWRlcz0iNiIKICAgICAgIGlkPSJwYXRoNTAxOS0wLTQtOS04IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3ODkzMmM7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjA3MjA1NzUsMC4wMTU1MzM0NSwtMC4wMTU1MzM0NSwwLjA3MjA1NzUsLTU5LjAzNjgyOCw0OS45MDkxNjcpIgogICAgICAgZD0ibSAxODQ5LjEzODcsNjQwLjM1MjUyIC05Ni44MjQyLDIwLjU1ODAyIC02Ni4yMTU4LC03My41NzMxNiAzMC42MDgzLC05NC4xMzExOCA5Ni44MjQyLC0yMC41NTgwMiA2Ni4yMTU4LDczLjU3MzE2IHoiCiAgICAgICBpbmtzY2FwZTpyYW5kb21pemVkPSIwIgogICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgIGlua3NjYXBlOmZsYXRzaWRlZD0idHJ1ZSIKICAgICAgIHNvZGlwb2RpOmFyZzI9IjEuMzYxNTgiCiAgICAgICBzb2RpcG9kaTphcmcxPSIwLjgzNzk4MTIzIgogICAgICAgc29kaXBvZGk6cjI9IjQ5LjQ5MTI4IgogICAgICAgc29kaXBvZGk6cjE9Ijk4Ljk4MjU1OSIKICAgICAgIHNvZGlwb2RpOmN5PSI1NjYuNzc5MzYiCiAgICAgICBzb2RpcG9kaTpjeD0iMTc4Mi45MjI5IgogICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICBpZD0icGF0aDUwMTktMC0wLTctOSIKICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojY2YyNDJhO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDozO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTQ2LjI5NDM0IgogICAgICAgY3g9IjYwLjU2MzgwMSIKICAgICAgIGlkPSJwYXRoNTU1My03IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMzIwMDcxMTM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHI9IjEuNjAwMzU1NiIgLz4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItdHlwZT0icG9seWxpbmUiCiAgICAgICBpZD0icGF0aDU1OTIiCiAgICAgICBkPSJNIDYxLjc0NzY1NywxMTcuNzEwMzkgNDcuNDgwNzksMTI1Ljg4NDI0IgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM3NTI3NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci10eXBlPSJwb2x5bGluZSIKICAgICAgIGlkPSJwYXRoNTU5Mi03IgogICAgICAgZD0ibSA0OC41MTM2MjcsMTI0LjE5Njc1IDAuMDQ4MTEsMTYuNDQyNDIiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDowLjUyMzc1Mjc1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLXR5cGU9InBvbHlsaW5lIgogICAgICAgaWQ9InBhdGg1NTkyLTctMSIKICAgICAgIGQ9Im0gNDcuNTI0NTE5LDEzOC43MTQ2OCAxNC4xMzY0NTMsOC4zOTc0MSIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuNTIzNzUyNzU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItdHlwZT0icG9seWxpbmUiCiAgICAgICBpZD0icGF0aDU1OTItNy03IgogICAgICAgZD0ibSA2MC41OTAxMDEsMTE3LjEzMjUxIDAuMDQ4MTEsMTYuNDQyNDIiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDowLjUyMzc1Mjc1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLXR5cGU9InBvbHlsaW5lIgogICAgICAgaWQ9InBhdGg1NTkyLTctNCIKICAgICAgIGQ9Im0gNjAuNjU3Mzc0LDEzMS4wOTI3OCAwLjA0ODExLDE2LjQ0MjQyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM4MDAwMjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci10eXBlPSJwb2x5bGluZSIKICAgICAgIGlkPSJwYXRoNTU5Mi01IgogICAgICAgZD0ibSA2MS43NjU1NSwxMzEuNzA4MDEgLTE0LjI2Njg2Nyw4LjE3Mzg2IgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM3NTI3NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci10eXBlPSJwb2x5bGluZSIKICAgICAgIGlkPSJwYXRoNTU5Mi03LTEtMyIKICAgICAgIGQ9Im0gNDcuNTYzODksMTI0Ljg0MDg2IDE0LjEzNjQ1Myw4LjM5NzQxIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM3NTI3NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZTowLjY3NzAwOTUycHg7bGluZS1oZWlnaHQ6MCU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMDU2NDE3NDVweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxO2ZpbHRlcjp1cmwoI2ZpbHRlcjYzKSIKICAgICAgIHg9IjE3Ljk5MjA5NiIKICAgICAgIHk9IjE2OC45NjY5NSIKICAgICAgIGlkPSJ0ZXh0NTA5My0xLTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTIuNDI3NjQ1NjhweDtsaW5lLWhlaWdodDoxLjI1O2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4wNTY0MTc0NXB4IgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDk1LTMtNiIKICAgICAgICAgeD0iMTcuOTkyMDk2IgogICAgICAgICB5PSIxNjguOTY2OTUiPjx0c3BhbgogICAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LWZhbWlseTpzYW5zLXNlcmlmOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J3NhbnMtc2VyaWYgQm9sZCc7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjA1NjQxNzQ1cHgiCiAgICAgICAgICAgaWQ9InRzcGFuNTA5Ny0xLTQiPkFDVElWRTwvdHNwYW4+PC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjAuNjc3MDA5NTJweDtsaW5lLWhlaWdodDowJTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4wNTY0MTc0NXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICB4PSIxOS43OTU2MjIiCiAgICAgICB5PSIxNTguMzA0OTMiCiAgICAgICBpZD0idGV4dDY5MzgtNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5Ij48dHNwYW4KICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo1LjExNzE5Nzk5cHg7bGluZS1oZWlnaHQ6MS4yNTtmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuMDU2NDE3NDVweCIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNjk0MC0xIgogICAgICAgICB4PSIxOS43OTU2MjIiCiAgICAgICAgIHk9IjE1OC4zMDQ5MyI+QVBBQ0hFPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjAuNjc3MDA5NTJweDtsaW5lLWhlaWdodDowJTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6I2MxMjc2NjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4wNTY0MTc0NXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7ZmlsdGVyOnVybCgjZmlsdGVyNTYpIgogICAgICAgeD0iNjcuNzg2ODY1IgogICAgICAgeT0iMTY4Ljk2Njk1IgogICAgICAgaWQ9InRleHQ1MDkzLTEtNC0yLTgtOS00IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDk1LTMtNi01LTUtNi0zIgogICAgICAgICB4PSI2Ny43ODY4NjUiCiAgICAgICAgIHk9IjE2OC45NjY5NSIKICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxMi40Mjc2NDU2OHB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmIEJvbGQnO3N0cm9rZS13aWR0aDowLjA1NjQxNzQ1cHgiPk1RPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgaWQ9InRleHQzOTYwIgogICAgICAgeT0iMTYwLjY1NzczIgogICAgICAgeD0iODkuNDMyMTc1IgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXNpemU6My4xNzUwMDAwOHB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMDU3ODkzMTsiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDowLjA1Nzg5MzE7Zm9udC1zaXplOjMuMTc1MDAwMDhweDsiCiAgICAgICAgIHk9IjE2MC42NTc3MyIKICAgICAgICAgeD0iODkuNDMyMTc1IgogICAgICAgICBpZD0idHNwYW4zOTU4IgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIj7CrjwvdHNwYW4+PC90ZXh0PgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTM5LjI0MjE5IgogICAgICAgY3g9IjQ4LjMzMzcwNiIKICAgICAgIGlkPSJwYXRoNTU1My03LTEiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4zMjAwNzExMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgcj0iMS42MDAzNTU2IiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTMyLjQ4NTg2IgogICAgICAgY3g9IjYwLjkwMTQxMyIKICAgICAgIGlkPSJwYXRoNTU1My03LTMiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4zMjAwNzExMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgcj0iMS42MDAzNTU2IiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTI1LjQxODY0IgogICAgICAgY3g9IjQ4LjU2MjY0NSIKICAgICAgIGlkPSJwYXRoNTU1My03LTAiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4zMjAwNzExMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgcj0iMS42MDAzNTU2IiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTE4LjQ0NDgyIgogICAgICAgY3g9IjYwLjYzMjA5NSIKICAgICAgIGlkPSJwYXRoNTU1My03LTM5IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMzIwMDcxMTM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHI9IjEuNjAwMzU1NiIgLz4KICA8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "JMS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink",
        "camel.apache.org/requires.runtime" : "camel-k"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "JMS - Apache Artemis Sink",
        "description" : "Send data to an Apache Artemis message broker by using JMS.",
        "required" : [ "destinationName", "brokerURL" ],
        "type" : "object",
        "properties" : {
          "destinationType" : {
            "title" : "Destination Type",
            "description" : "The JMS destination type (queue or topic).",
            "type" : "string",
            "default" : "queue"
          },
          "destinationName" : {
            "title" : "Destination Name",
            "description" : "The JMS destination name.",
            "type" : "string",
            "example" : "person"
          },
          "brokerURL" : {
            "title" : "Broker URL",
            "description" : "The JMS URL.",
            "type" : "string",
            "example" : "tcp://my-host:61616"
          }
        }
      },
      "dependencies" : [ "camel:jms", "camel:kamelet", "mvn:org.apache.activemq:artemis-jakarta-client-all:2.32.0" ],
      "template" : {
        "beans" : [ {
          "name" : "connectionFactoryBean",
          "type" : "#class:org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory",
          "properties" : {
            "brokerURL" : "{{brokerURL}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "jms:{{destinationType}}:{{destinationName}}",
              "parameters" : {
                "connectionFactory" : "#bean:{{connectionFactoryBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "JMS - Apache Artemis Sink",
      "description" : "Send data to an Apache Artemis message broker by using JMS.",
      "required" : [ "destinationName", "brokerURL" ],
      "properties" : {
        "destinationType" : {
          "type" : "string",
          "title" : "Destination Type",
          "description" : "The JMS destination type (queue or topic).",
          "default" : "queue"
        },
        "destinationName" : {
          "type" : "string",
          "title" : "Destination Name",
          "description" : "The JMS destination name."
        },
        "brokerURL" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The JMS URL."
        }
      }
    }
  },
  "jms-apache-artemis-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jms-apache-artemis-source",
      "annotations" : {
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOTQuNTY2OTFtbSIKICAgaGVpZ2h0PSI4My44MzA0NDRtbSIKICAgdmlld0JveD0iMCAwIDk0LjU2NjkxIDgzLjgzMDQ0NCIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNDM5MCI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgiCiAgICAgaW5rc2NhcGU6Y3g9IjI0LjE0MTM0OSIKICAgICBpbmtzY2FwZTpjeT0iMjAxLjA3Njk3IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtcm90YXRpb249IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMzg0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIyMDU2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9InRydWUiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIyMCIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgZml0LW1hcmdpbi10b3A9IjEwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMTAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMTAiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEwIiAvPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0Mzg0Ij4KICAgIDxmaWx0ZXIKICAgICAgIHN0eWxlPSJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6c1JHQiIKICAgICAgIGlua3NjYXBlOmxhYmVsPSJEcm9wIFNoYWRvdyIKICAgICAgIGlkPSJmaWx0ZXI1NTI5Ij4KICAgICAgPGZlRmxvb2QKICAgICAgICAgZmxvb2Qtb3BhY2l0eT0iMC40OTgwMzkiCiAgICAgICAgIGZsb29kLWNvbG9yPSJyZ2IoMCwwLDApIgogICAgICAgICByZXN1bHQ9ImZsb29kIgogICAgICAgICBpZD0iZmVGbG9vZDU1MTkiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iZmxvb2QiCiAgICAgICAgIGluMj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgb3BlcmF0b3I9ImluIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTEiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTU1MjEiIC8+CiAgICAgIDxmZUdhdXNzaWFuQmx1cgogICAgICAgICBpbj0iY29tcG9zaXRlMSIKICAgICAgICAgc3RkRGV2aWF0aW9uPSIwLjIiCiAgICAgICAgIHJlc3VsdD0iYmx1ciIKICAgICAgICAgaWQ9ImZlR2F1c3NpYW5CbHVyNTUyMyIgLz4KICAgICAgPGZlT2Zmc2V0CiAgICAgICAgIGR4PSIxIgogICAgICAgICBkeT0iMSIKICAgICAgICAgcmVzdWx0PSJvZmZzZXQiCiAgICAgICAgIGlkPSJmZU9mZnNldDU1MjUiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgaW4yPSJvZmZzZXQiCiAgICAgICAgIG9wZXJhdG9yPSJvdmVyIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTIiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTU1MjciIC8+CiAgICA8L2ZpbHRlcj4KICAgIDxmaWx0ZXIKICAgICAgIHN0eWxlPSJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6c1JHQjsiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iRHJvcCBTaGFkb3ciCiAgICAgICBpZD0iZmlsdGVyNTYiPgogICAgICA8ZmVGbG9vZAogICAgICAgICBmbG9vZC1vcGFjaXR5PSIwLjQ5ODAzOSIKICAgICAgICAgZmxvb2QtY29sb3I9InJnYigwLDAsMCkiCiAgICAgICAgIHJlc3VsdD0iZmxvb2QiCiAgICAgICAgIGlkPSJmZUZsb29kNDYiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iZmxvb2QiCiAgICAgICAgIGluMj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgb3BlcmF0b3I9ImluIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTEiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTQ4IiAvPgogICAgICA8ZmVHYXVzc2lhbkJsdXIKICAgICAgICAgaW49ImNvbXBvc2l0ZTEiCiAgICAgICAgIHN0ZERldmlhdGlvbj0iMC4xIgogICAgICAgICByZXN1bHQ9ImJsdXIiCiAgICAgICAgIGlkPSJmZUdhdXNzaWFuQmx1cjUwIiAvPgogICAgICA8ZmVPZmZzZXQKICAgICAgICAgZHg9IjEiCiAgICAgICAgIGR5PSIxIgogICAgICAgICByZXN1bHQ9Im9mZnNldCIKICAgICAgICAgaWQ9ImZlT2Zmc2V0NTIiIC8+CiAgICAgIDxmZUNvbXBvc2l0ZQogICAgICAgICBpbj0iU291cmNlR3JhcGhpYyIKICAgICAgICAgaW4yPSJvZmZzZXQiCiAgICAgICAgIG9wZXJhdG9yPSJvdmVyIgogICAgICAgICByZXN1bHQ9ImNvbXBvc2l0ZTIiCiAgICAgICAgIGlkPSJmZUNvbXBvc2l0ZTU0IiAvPgogICAgPC9maWx0ZXI+CiAgICA8ZmlsdGVyCiAgICAgICBzdHlsZT0iY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOnNSR0I7IgogICAgICAgaW5rc2NhcGU6bGFiZWw9IkRyb3AgU2hhZG93IgogICAgICAgaWQ9ImZpbHRlcjYzIj4KICAgICAgPGZlRmxvb2QKICAgICAgICAgZmxvb2Qtb3BhY2l0eT0iMC40OTgwMzkiCiAgICAgICAgIGZsb29kLWNvbG9yPSJyZ2IoMCwwLDApIgogICAgICAgICByZXN1bHQ9ImZsb29kIgogICAgICAgICBpZD0iZmVGbG9vZDUyIiAvPgogICAgICA8ZmVDb21wb3NpdGUKICAgICAgICAgaW49ImZsb29kIgogICAgICAgICBpbjI9IlNvdXJjZUdyYXBoaWMiCiAgICAgICAgIG9wZXJhdG9yPSJpbiIKICAgICAgICAgcmVzdWx0PSJjb21wb3NpdGUxIgogICAgICAgICBpZD0iZmVDb21wb3NpdGU1NSIgLz4KICAgICAgPGZlR2F1c3NpYW5CbHVyCiAgICAgICAgIGluPSJjb21wb3NpdGUxIgogICAgICAgICBzdGREZXZpYXRpb249IjAuMSIKICAgICAgICAgcmVzdWx0PSJibHVyIgogICAgICAgICBpZD0iZmVHYXVzc2lhbkJsdXI1NyIgLz4KICAgICAgPGZlT2Zmc2V0CiAgICAgICAgIGR4PSIxIgogICAgICAgICBkeT0iMSIKICAgICAgICAgcmVzdWx0PSJvZmZzZXQiCiAgICAgICAgIGlkPSJmZU9mZnNldDU5IiAvPgogICAgICA8ZmVDb21wb3NpdGUKICAgICAgICAgaW49IlNvdXJjZUdyYXBoaWMiCiAgICAgICAgIGluMj0ib2Zmc2V0IgogICAgICAgICBvcGVyYXRvcj0ib3ZlciIKICAgICAgICAgcmVzdWx0PSJjb21wb3NpdGUyIgogICAgICAgICBpZD0iZmVDb21wb3NpdGU2MSIgLz4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE0Mzg3Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMiIKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMiIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTguMDUyNzc3OCwtOTYuOTUwODk0KSI+CiAgICA8ZwogICAgICAgaWQ9Imc1MDczIgogICAgICAgc3R5bGU9ImZpbHRlcjp1cmwoI2ZpbHRlcjU1MjkpIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNjQuNjk3MTkzLDE1My41NTE4MSAtOC4zNTE4NDgsLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzYgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkyLDcuMjU3NDYgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzU5OSIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjE0Ni4yOTQzNCIKICAgICAgICAgc29kaXBvZGk6Y3g9IjYwLjU2MzgwMSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4MyIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4zOTQ2OTg1O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNTIuNjMyMTM3LDE0Ni41NTMwOSAtOC4zNTE4NDgsLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzUgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkyLDcuMjU3NDcgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzYwNCIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjEzOS4yOTU2MiIKICAgICAgICAgc29kaXBvZGk6Y3g9IjQ4LjQ5ODc0NSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4My00IgogICAgICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDowLjM5NDY5ODU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteD0iMy4zNTY0NDcyZS0wNiIKICAgICAgICAgZD0ibSA2NC43NzEyNjMsMTM5LjU4ODg5IC04LjM1MTg0OCwtMC4wNDkxIC00LjEzMzM5MiwtNy4yNTc0NyA0LjIxODQ1NSwtNy4yMDgzNiA4LjM1MTg0OSwwLjA0OTEgNC4xMzMzOTIsNy4yNTc0NyB6IgogICAgICAgICBpbmtzY2FwZTpyYW5kb21pemVkPSIwIgogICAgICAgICBpbmtzY2FwZTpyb3VuZGVkPSIwIgogICAgICAgICBpbmtzY2FwZTpmbGF0c2lkZWQ9InRydWUiCiAgICAgICAgIHNvZGlwb2RpOmFyZzI9IjEuNTc2Njc2NiIKICAgICAgICAgc29kaXBvZGk6YXJnMT0iMS4wNTMwNzc4IgogICAgICAgICBzb2RpcG9kaTpyMj0iNi4wNDczNjA5IgogICAgICAgICBzb2RpcG9kaTpyMT0iOC4zNTE5OTI2IgogICAgICAgICBzb2RpcG9kaTpjeT0iMTMyLjMzMTQyIgogICAgICAgICBzb2RpcG9kaTpjeD0iNjAuNjM3ODcxIgogICAgICAgICBzb2RpcG9kaTpzaWRlcz0iNiIKICAgICAgICAgaWQ9InBhdGg0ODgzLTQtMiIKICAgICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4zOTQ2OTg1O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNjQuNzY1NDg4LDEyNS43MDIyOCAtOC4zNTE4NDksLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzYgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkzLDcuMjU3NDcgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzYwOSIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjExOC40NDQ4MSIKICAgICAgICAgc29kaXBvZGk6Y3g9IjYwLjYzMjA5NSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4My00LTItMCIKICAgICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4zOTQ2OTg1O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjMuMzU2NDQ3MmUtMDYiCiAgICAgICAgIGQ9Im0gNTIuNjk2MDM3LDEzMi42NzYxMSAtOC4zNTE4NDgsLTAuMDQ5MSAtNC4xMzMzOTIsLTcuMjU3NDcgNC4yMTg0NTYsLTcuMjA4MzYgOC4zNTE4NDgsMC4wNDkxIDQuMTMzMzkyLDcuMjU3NDcgeiIKICAgICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgICBzb2RpcG9kaTphcmcyPSIxLjU3NjY3NjYiCiAgICAgICAgIHNvZGlwb2RpOmFyZzE9IjEuMDUzMDc3OCIKICAgICAgICAgc29kaXBvZGk6cjI9IjYuMDQ3MzYwOSIKICAgICAgICAgc29kaXBvZGk6cjE9IjguMzUxOTkyNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjEyNS40MTg2NCIKICAgICAgICAgc29kaXBvZGk6Y3g9IjQ4LjU2MjY0NSIKICAgICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICAgIGlkPSJwYXRoNDg4My00LTItMC0wIgogICAgICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDowLjM5NDY5ODU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8L2c+CiAgPC9nPgogIDxnCiAgICAgaWQ9ImxheWVyMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOC4wNTI3Nzc4LC05Ni45NTA4OTQpIj4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMDcyMDU3NSwwLjAxNTUzMzQ1LC0wLjAxNTUzMzQ1LDAuMDcyMDU3NSwtNTkuMDMxMDU1LDYzLjc5NTc3NikiCiAgICAgICBkPSJtIDE4NDkuMTM4Nyw2NDAuMzUyNTIgLTk2LjgyNDIsMjAuNTU4MDIgLTY2LjIxNTgsLTczLjU3MzE2IDMwLjYwODMsLTk0LjEzMTE4IDk2LjgyNDIsLTIwLjU1ODAyIDY2LjIxNTgsNzMuNTczMTYgeiIKICAgICAgIGlua3NjYXBlOnJhbmRvbWl6ZWQ9IjAiCiAgICAgICBpbmtzY2FwZTpyb3VuZGVkPSIwIgogICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgc29kaXBvZGk6YXJnMj0iMS4zNjE1OCIKICAgICAgIHNvZGlwb2RpOmFyZzE9IjAuODM3OTgxMjMiCiAgICAgICBzb2RpcG9kaTpyMj0iNDkuNDkxMjgiCiAgICAgICBzb2RpcG9kaTpyMT0iOTguOTgyNTU5IgogICAgICAgc29kaXBvZGk6Y3k9IjU2Ni43NzkzNiIKICAgICAgIHNvZGlwb2RpOmN4PSIxNzgyLjkyMjkiCiAgICAgICBzb2RpcG9kaTpzaWRlcz0iNiIKICAgICAgIGlkPSJwYXRoNTAxOS0wMi05IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNjMTI3NjY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjA3MjA1NzUsMC4wMTU1MzM0NSwtMC4wMTU1MzM0NSwwLjA3MjA1NzUsLTcxLjE3MDE3OSw3MC43NTk5ODUpIgogICAgICAgZD0ibSAxODQ5LjEzODcsNjQwLjM1MjUyIC05Ni44MjQyLDIwLjU1ODAyIC02Ni4yMTU4LC03My41NzMxNiAzMC42MDgzLC05NC4xMzExOCA5Ni44MjQyLC0yMC41NTgwMiA2Ni4yMTU4LDczLjU3MzE2IHoiCiAgICAgICBpbmtzY2FwZTpyYW5kb21pemVkPSIwIgogICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgIGlua3NjYXBlOmZsYXRzaWRlZD0idHJ1ZSIKICAgICAgIHNvZGlwb2RpOmFyZzI9IjEuMzYxNTgiCiAgICAgICBzb2RpcG9kaTphcmcxPSIwLjgzNzk4MTIzIgogICAgICAgc29kaXBvZGk6cjI9IjQ5LjQ5MTI4IgogICAgICAgc29kaXBvZGk6cjE9Ijk4Ljk4MjU1OSIKICAgICAgIHNvZGlwb2RpOmN5PSI1NjYuNzc5MzYiCiAgICAgICBzb2RpcG9kaTpjeD0iMTc4Mi45MjI5IgogICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICBpZD0icGF0aDUwMTktMC01LTEiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6IzNlNDg5ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9Ii05Ni43ODY0NjUiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9IjE5OC4xMDMzNSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMDcyMDU3NSwwLjAxNTUzMzQ1LC0wLjAxNTUzMzQ1LDAuMDcyMDU3NSwtNTkuMTA2NDksNzcuNzU4MjkzKSIKICAgICAgIGQ9Im0gMTg0OS4xMzg3LDY0MC4zNTI1MiAtOTYuODI0MiwyMC41NTgwMiAtNjYuMjE1OCwtNzMuNTczMTYgMzAuNjA4MywtOTQuMTMxMTggOTYuODI0MiwtMjAuNTU4MDIgNjYuMjE1OCw3My41NzMxNiB6IgogICAgICAgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIKICAgICAgIGlua3NjYXBlOnJvdW5kZWQ9IjAiCiAgICAgICBpbmtzY2FwZTpmbGF0c2lkZWQ9InRydWUiCiAgICAgICBzb2RpcG9kaTphcmcyPSIxLjM2MTU4IgogICAgICAgc29kaXBvZGk6YXJnMT0iMC44Mzc5ODEyMyIKICAgICAgIHNvZGlwb2RpOnIyPSI0OS40OTEyOCIKICAgICAgIHNvZGlwb2RpOnIxPSI5OC45ODI1NTkiCiAgICAgICBzb2RpcG9kaTpjeT0iNTY2Ljc3OTM2IgogICAgICAgc29kaXBvZGk6Y3g9IjE3ODIuOTIyOSIKICAgICAgIHNvZGlwb2RpOnNpZGVzPSI2IgogICAgICAgaWQ9InBhdGg1MDE5LTQtMS0yIgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3MTQwOTk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjA3MjA1NzUsMC4wMTU1MzM0NSwtMC4wMTU1MzM0NSwwLjA3MjA1NzUsLTcxLjEwNjI4MSw1Ni44ODI5OSkiCiAgICAgICBkPSJtIDE4NDkuMTM4Nyw2NDAuMzUyNTIgLTk2LjgyNDIsMjAuNTU4MDIgLTY2LjIxNTgsLTczLjU3MzE2IDMwLjYwODMsLTk0LjEzMTE4IDk2LjgyNDIsLTIwLjU1ODAyIDY2LjIxNTgsNzMuNTczMTYgeiIKICAgICAgIGlua3NjYXBlOnJhbmRvbWl6ZWQ9IjAiCiAgICAgICBpbmtzY2FwZTpyb3VuZGVkPSIwIgogICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgc29kaXBvZGk6YXJnMj0iMS4zNjE1OCIKICAgICAgIHNvZGlwb2RpOmFyZzE9IjAuODM3OTgxMjMiCiAgICAgICBzb2RpcG9kaTpyMj0iNDkuNDkxMjgiCiAgICAgICBzb2RpcG9kaTpyMT0iOTguOTgyNTU5IgogICAgICAgc29kaXBvZGk6Y3k9IjU2Ni43NzkzNiIKICAgICAgIHNvZGlwb2RpOmN4PSIxNzgyLjkyMjkiCiAgICAgICBzb2RpcG9kaTpzaWRlcz0iNiIKICAgICAgIGlkPSJwYXRoNTAxOS0wLTQtOS04IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3ODkzMmM7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHNvZGlwb2RpOnR5cGU9InN0YXIiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjA3MjA1NzUsMC4wMTU1MzM0NSwtMC4wMTU1MzM0NSwwLjA3MjA1NzUsLTU5LjAzNjgyOCw0OS45MDkxNjcpIgogICAgICAgZD0ibSAxODQ5LjEzODcsNjQwLjM1MjUyIC05Ni44MjQyLDIwLjU1ODAyIC02Ni4yMTU4LC03My41NzMxNiAzMC42MDgzLC05NC4xMzExOCA5Ni44MjQyLC0yMC41NTgwMiA2Ni4yMTU4LDczLjU3MzE2IHoiCiAgICAgICBpbmtzY2FwZTpyYW5kb21pemVkPSIwIgogICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgIGlua3NjYXBlOmZsYXRzaWRlZD0idHJ1ZSIKICAgICAgIHNvZGlwb2RpOmFyZzI9IjEuMzYxNTgiCiAgICAgICBzb2RpcG9kaTphcmcxPSIwLjgzNzk4MTIzIgogICAgICAgc29kaXBvZGk6cjI9IjQ5LjQ5MTI4IgogICAgICAgc29kaXBvZGk6cjE9Ijk4Ljk4MjU1OSIKICAgICAgIHNvZGlwb2RpOmN5PSI1NjYuNzc5MzYiCiAgICAgICBzb2RpcG9kaTpjeD0iMTc4Mi45MjI5IgogICAgICAgc29kaXBvZGk6c2lkZXM9IjYiCiAgICAgICBpZD0icGF0aDUwMTktMC0wLTctOSIKICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojY2YyNDJhO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDozO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJzdGFyIiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTQ2LjI5NDM0IgogICAgICAgY3g9IjYwLjU2MzgwMSIKICAgICAgIGlkPSJwYXRoNTU1My03IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMzIwMDcxMTM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHI9IjEuNjAwMzU1NiIgLz4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItdHlwZT0icG9seWxpbmUiCiAgICAgICBpZD0icGF0aDU1OTIiCiAgICAgICBkPSJNIDYxLjc0NzY1NywxMTcuNzEwMzkgNDcuNDgwNzksMTI1Ljg4NDI0IgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM3NTI3NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci10eXBlPSJwb2x5bGluZSIKICAgICAgIGlkPSJwYXRoNTU5Mi03IgogICAgICAgZD0ibSA0OC41MTM2MjcsMTI0LjE5Njc1IDAuMDQ4MTEsMTYuNDQyNDIiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDowLjUyMzc1Mjc1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLXR5cGU9InBvbHlsaW5lIgogICAgICAgaWQ9InBhdGg1NTkyLTctMSIKICAgICAgIGQ9Im0gNDcuNTI0NTE5LDEzOC43MTQ2OCAxNC4xMzY0NTMsOC4zOTc0MSIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuNTIzNzUyNzU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItdHlwZT0icG9seWxpbmUiCiAgICAgICBpZD0icGF0aDU1OTItNy03IgogICAgICAgZD0ibSA2MC41OTAxMDEsMTE3LjEzMjUxIDAuMDQ4MTEsMTYuNDQyNDIiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDowLjUyMzc1Mjc1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLXR5cGU9InBvbHlsaW5lIgogICAgICAgaWQ9InBhdGg1NTkyLTctNCIKICAgICAgIGQ9Im0gNjAuNjU3Mzc0LDEzMS4wOTI3OCAwLjA0ODExLDE2LjQ0MjQyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM4MDAwMjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci10eXBlPSJwb2x5bGluZSIKICAgICAgIGlkPSJwYXRoNTU5Mi01IgogICAgICAgZD0ibSA2MS43NjU1NSwxMzEuNzA4MDEgLTE0LjI2Njg2Nyw4LjE3Mzg2IgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM3NTI3NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci10eXBlPSJwb2x5bGluZSIKICAgICAgIGlkPSJwYXRoNTU5Mi03LTEtMyIKICAgICAgIGQ9Im0gNDcuNTYzODksMTI0Ljg0MDg2IDE0LjEzNjQ1Myw4LjM5NzQxIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC41MjM3NTI3NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZTowLjY3NzAwOTUycHg7bGluZS1oZWlnaHQ6MCU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMDU2NDE3NDVweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxO2ZpbHRlcjp1cmwoI2ZpbHRlcjYzKSIKICAgICAgIHg9IjE3Ljk5MjA5NiIKICAgICAgIHk9IjE2OC45NjY5NSIKICAgICAgIGlkPSJ0ZXh0NTA5My0xLTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTMwLjY0OTA5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTIuNDI3NjQ1NjhweDtsaW5lLWhlaWdodDoxLjI1O2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MC4wNTY0MTc0NXB4IgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDk1LTMtNiIKICAgICAgICAgeD0iMTcuOTkyMDk2IgogICAgICAgICB5PSIxNjguOTY2OTUiPjx0c3BhbgogICAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LWZhbWlseTpzYW5zLXNlcmlmOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J3NhbnMtc2VyaWYgQm9sZCc7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjA1NjQxNzQ1cHgiCiAgICAgICAgICAgaWQ9InRzcGFuNTA5Ny0xLTQiPkFDVElWRTwvdHNwYW4+PC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjAuNjc3MDA5NTJweDtsaW5lLWhlaWdodDowJTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4wNTY0MTc0NXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICB4PSIxOS43OTU2MjIiCiAgICAgICB5PSIxNTguMzA0OTMiCiAgICAgICBpZD0idGV4dDY5MzgtNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTMwLjY0OTA5Ij48dHNwYW4KICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo1LjExNzE5Nzk5cHg7bGluZS1oZWlnaHQ6MS4yNTtmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuMDU2NDE3NDVweCIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNjk0MC0xIgogICAgICAgICB4PSIxOS43OTU2MjIiCiAgICAgICAgIHk9IjE1OC4zMDQ5MyI+QVBBQ0hFPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjAuNjc3MDA5NTJweDtsaW5lLWhlaWdodDowJTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6I2MxMjc2NjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4wNTY0MTc0NXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7ZmlsdGVyOnVybCgjZmlsdGVyNTYpIgogICAgICAgeD0iNjcuNzg2ODY1IgogICAgICAgeT0iMTY4Ljk2Njk1IgogICAgICAgaWQ9InRleHQ1MDkzLTEtNC0yLTgtOS00IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDk1LTMtNi01LTUtNi0zIgogICAgICAgICB4PSI2Ny43ODY4NjUiCiAgICAgICAgIHk9IjE2OC45NjY5NSIKICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxMi40Mjc2NDU2OHB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmIEJvbGQnO3N0cm9rZS13aWR0aDowLjA1NjQxNzQ1cHgiPk1RPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgaWQ9InRleHQzOTYwIgogICAgICAgeT0iMTYwLjY1NzczIgogICAgICAgeD0iODkuNDMyMTc1IgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXNpemU6My4xNzUwMDAwOHB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMDU3ODkzMTsiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMzAuNjQ5MDkiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDowLjA1Nzg5MzE7Zm9udC1zaXplOjMuMTc1MDAwMDhweDsiCiAgICAgICAgIHk9IjE2MC42NTc3MyIKICAgICAgICAgeD0iODkuNDMyMTc1IgogICAgICAgICBpZD0idHNwYW4zOTU4IgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIj7CrjwvdHNwYW4+PC90ZXh0PgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTM5LjI0MjE5IgogICAgICAgY3g9IjQ4LjMzMzcwNiIKICAgICAgIGlkPSJwYXRoNTU1My03LTEiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4zMjAwNzExMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgcj0iMS42MDAzNTU2IiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTMyLjQ4NTg2IgogICAgICAgY3g9IjYwLjkwMTQxMyIKICAgICAgIGlkPSJwYXRoNTU1My03LTMiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4zMjAwNzExMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgcj0iMS42MDAzNTU2IiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTI1LjQxODY0IgogICAgICAgY3g9IjQ4LjU2MjY0NSIKICAgICAgIGlkPSJwYXRoNTU1My03LTAiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4zMjAwNzExMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgcj0iMS42MDAzNTU2IiAvPgogICAgPGNpcmNsZQogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEzMC42NDkwOSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMzAuNjQ5MDkiCiAgICAgICBjeT0iMTE4LjQ0NDgyIgogICAgICAgY3g9IjYwLjYzMjA5NSIKICAgICAgIGlkPSJwYXRoNTU1My03LTM5IgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMzIwMDcxMTM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHI9IjEuNjAwMzU1NiIgLz4KICA8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "JMS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source",
        "camel.apache.org/requires.runtime" : "camel-k"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "JMS - Apache Artemis Source",
        "description" : "Receive data from an Apache Artemis message broker by using JMS.",
        "required" : [ "destinationName", "brokerURL" ],
        "type" : "object",
        "properties" : {
          "destinationType" : {
            "title" : "Destination Type",
            "description" : "The JMS destination type (queue or topic).",
            "type" : "string",
            "default" : "queue"
          },
          "destinationName" : {
            "title" : "Destination Name",
            "description" : "The JMS destination name.",
            "type" : "string"
          },
          "brokerURL" : {
            "title" : "Broker URL",
            "description" : "The JMS URL.",
            "type" : "string",
            "example" : "tcp://k3s-node-master.usersys.redhat.com:31616"
          }
        }
      },
      "dependencies" : [ "camel:jms", "camel:kamelet", "mvn:org.apache.activemq:artemis-jakarta-client-all:2.32.0" ],
      "template" : {
        "beans" : [ {
          "name" : "connectionFactoryBean",
          "type" : "#class:org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory",
          "properties" : {
            "brokerURL" : "{{brokerURL}}"
          }
        } ],
        "from" : {
          "uri" : "jms:{{destinationType}}:{{destinationName}}",
          "parameters" : {
            "connectionFactory" : "#bean:{{connectionFactoryBean}}"
          },
          "steps" : [ {
            "to" : {
              "uri" : "kamelet:sink"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "JMS - Apache Artemis Source",
      "description" : "Receive data from an Apache Artemis message broker by using JMS.",
      "required" : [ "destinationName", "brokerURL" ],
      "properties" : {
        "destinationType" : {
          "type" : "string",
          "title" : "Destination Type",
          "description" : "The JMS destination type (queue or topic).",
          "default" : "queue"
        },
        "destinationName" : {
          "type" : "string",
          "title" : "Destination Name",
          "description" : "The JMS destination name."
        },
        "brokerURL" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The JMS URL."
        }
      }
    }
  },
  "jms-ibm-mq-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jms-ibm-mq-sink",
      "annotations" : {
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA1NzMuMDggNTc2Ljk3Ij4KICAgIDxkZWZzPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgLmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzVhNzdiNTt9LmNscy0ze2ZpbGw6I2FmYmVlMDt9LmNscy00e2NsaXAtcGF0aDp1cmwoI2NsaXAtcGF0aCk7fS5jbHMtNXtjbGlwLXBhdGg6dXJsKCNjbGlwLXBhdGgtMik7fQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPgogICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiCiAgICAgICAgICAgICAgICAgIGQ9Ik0xNjQuNSw1MTAuODhWNDU3aDQuMDh2NTMuOTFabTQ3Ljc4LTI3LjcxYTEzLjE0LDEzLjE0LDAsMCwxLDkuMjMsMTNjMCw5LjYyLTYuMjgsMTQuNjktMTUuODIsMTQuNjlIMTg1LjI0VjQ1N2gxOS44NGM4Ljk0LDAsMTUuNiw1LjE1LDE1LjYsMTQuMDhhMTIuMzgsMTIuMzgsMCwwLDEtOC40LDEyLjEyWm0tMjIuOTUsMjQuMDhoMTUuOWM3LjM1LDAsMTIuMTktNC4xNywxMi4xOS0xMS4wNnMtNC44NC0xMS4wNS0xMi4xOS0xMS4wNWgtMTUuOXYyMi4xMVptMTUuMy00Ni42NWgtMTUuM3YyMC45aDE1LjNjNi41MSwwLDEyLTMsMTItMTAuNDVzLTUuNDUtMTAuNDUtMTItMTAuNDVabTcyLjYxLDUwLjI4VjQ2Ni40M2wtMTYuMzUsMzYuODhIMjU2LjhsLTE2LjY2LTM2Ljg4djQ0LjQ1aC00LjA5VjQ1N2g0LjA5bDE4Ljc4LDQxLjU3TDI3Ny4yNCw0NTdoNC4wOXY1My45MVoiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLTIiPgogICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiCiAgICAgICAgICAgICAgICAgIGQ9Ik0zNDkuNyw1MTAuODRWNDc3LjI4aC0uMThsLTEwLjkxLDI1Ljg0SDMzMmwtMTAuOTEtMjUuODRIMzIxdjMzLjU2aC03LjlWNDU3aDcuNDRsMTUsMzUuMDdMMzUwLjEzLDQ1N2g3LjQ2djUzLjgxWm01NC4yLTEwLDYuODgsNS42NS00LjY5LDUuNjEtNi41OC01LjQ0cS00LjYyLDQuNTEtMTIuMyw0LjY2YTE3Ljg5LDE3Ljg5LDAsMCwxLTEwLjI1LTMuMSwxNy43LDE3LjcsMCwwLDEtNi4wOC02LjU3Yy0uMzgtLjgxLS43My0xLjU5LTEtMi4zMmExNS40NSwxNS40NSwwLDAsMS0uNzItMi44OCwxNDUuMjksMTQ1LjI5LDAsMCwxLDAtMjUsMTUuMzgsMTUuMzgsMCwwLDEsMS43NS01LjEzLDE4LjMzLDE4LjMzLDAsMCwxLDYuMDgtNi42NCwxNy40NywxNy40NywwLDAsMSwxMC4yNS0zLDE3Ljc2LDE3Ljc2LDAsMCwxLDEwLjM2LDMsMTgsMTgsMCwwLDEsNS45NCw2LjY0LDEyLjc5LDEyLjc5LDAsMCwxLDEuODIsNS4xMywxMDcuMjMsMTA3LjIzLDAsMCwxLC40NiwxMi41NXEwLDguMzgtLjM2LDExLjdhMTQuNTEsMTQuNTEsMCwwLDEtMS41Myw1LjE3Wm0tNi41NC0yNy43MWExMS4yNiwxMS4yNiwwLDAsMC01LjI2LTcuMjQsMTEuMTgsMTEuMTgsMCwwLDAtNC45MS0xLjE1LDEwLjYzLDEwLjYzLDAsMCwwLTQuOCwxLjE1LDEwLjA5LDEwLjA5LDAsMCwwLTMuMjksMi43Nyw5LDksMCwwLDAtMiw0LjQ4LDY2LjcsNjYuNywwLDAsMC0uNTcsMTAuODMsNjUuNDcsNjUuNDcsMCwwLDAsLjU3LDEwLjc3LDksOSwwLDAsMCwyLDQuNTQsOS40Nyw5LjQ3LDAsMCwwLDMuMjksMi43MSw5LjExLDkuMTEsMCwwLDAsNC44LDEuMjIsOC42Miw4LjYyLDAsMCwwLDUuODQtMS44OWwtNi42Ni01LjQ3LDQuNjktNS41OSw2LjA5LDVxLjc1LTIuNzMuNzUtMTEuMjhhNzAuNiw3MC42LDAsMCwwLS41NC0xMC44NFoiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgPC9kZWZzPgogICAgPHRpdGxlPklCTSBJUTwvdGl0bGU+CiAgICA8Y2lyY2xlIGNsYXNzPSJjbHMtMiIgY3g9IjI4Ny42NCIgY3k9IjI4Ny4yIiByPSIyNzguNSIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0zIgogICAgICAgICAgICAgcG9pbnRzPSI0NTguMTcgNDI2LjY3IDExNy4xMSA0MjYuNjcgMTE3LjExIDE1My41NSA3MC45MSAxNTMuNTUgNzAuOTEgMTMxLjU1IDEzOS4xMSAxMzEuNTUgMTM5LjExIDQwNC42NyA0MzYuMTcgNDA0LjY3IDQzNi4xNyAxMzEuNTUgNTA0LjM3IDEzMS41NSA1MDQuMzcgMTUzLjU1IDQ1OC4xNyAxNTMuNTUgNDU4LjE3IDQyNi42NyIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0xIgogICAgICAgICAgICAgcG9pbnRzPSI0MjAuMjYgMjUzLjEyIDQyMC4yNiAyNDEuNzcgMTU1LjAyIDI0MS43NyAxNTUuMDIgMjUyLjg1IDI4Ny44OCAzMjkuNDkgNDIwLjI2IDI1My4xMiIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0xIgogICAgICAgICAgICAgcG9pbnRzPSIyODcuODggMzM5Ljc1IDE1NS4wMiAyNjMuMTEgMTU1LjAyIDM4OC44NCA0MjAuMjYgMzg4Ljg0IDQyMC4yNiAyNjMuMzggMjg3Ljg4IDMzOS43NSIvPgogICAgPHBhdGggY2xhc3M9ImNscy0xIgogICAgICAgICAgZD0iTTE2NC41LDUxMC44OFY0NTdoNC4wOHY1My45MVptNDcuNzgtMjcuNzFhMTMuMTQsMTMuMTQsMCwwLDEsOS4yMywxM2MwLDkuNjItNi4yOCwxNC42OS0xNS44MiwxNC42OUgxODUuMjRWNDU3aDE5Ljg0YzguOTQsMCwxNS42LDUuMTUsMTUuNiwxNC4wOGExMi4zOCwxMi4zOCwwLDAsMS04LjQsMTIuMTJabS0yMi45NSwyNC4wOGgxNS45YzcuMzUsMCwxMi4xOS00LjE3LDEyLjE5LTExLjA2cy00Ljg0LTExLjA1LTEyLjE5LTExLjA1aC0xNS45djIyLjExWm0xNS4zLTQ2LjY1aC0xNS4zdjIwLjloMTUuM2M2LjUxLDAsMTItMywxMi0xMC40NXMtNS40NS0xMC40NS0xMi0xMC40NVptNzIuNjEsNTAuMjhWNDY2LjQzbC0xNi4zNSwzNi44OEgyNTYuOGwtMTYuNjYtMzYuODh2NDQuNDVoLTQuMDlWNDU3aDQuMDlsMTguNzgsNDEuNTdMMjc3LjI0LDQ1N2g0LjA5djUzLjkxWiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0xIgogICAgICAgICAgZD0iTTM0OS43LDUxMC44NFY0NzcuMjhoLS4xOGwtMTAuOTEsMjUuODRIMzMybC0xMC45MS0yNS44NEgzMjF2MzMuNTZoLTcuOVY0NTdoNy40NGwxNSwzNS4wN0wzNTAuMTMsNDU3aDcuNDZ2NTMuODFabTU0LjItMTAsNi44OCw1LjY1LTQuNjksNS42MS02LjU4LTUuNDRxLTQuNjIsNC41MS0xMi4zLDQuNjZhMTcuODksMTcuODksMCwwLDEtMTAuMjUtMy4xLDE3LjcsMTcuNywwLDAsMS02LjA4LTYuNTdjLS4zOC0uODEtLjczLTEuNTktMS0yLjMyYTE1LjQ1LDE1LjQ1LDAsMCwxLS43Mi0yLjg4LDE0NS4yOSwxNDUuMjksMCwwLDEsMC0yNSwxNS4zOCwxNS4zOCwwLDAsMSwxLjc1LTUuMTMsMTguMzMsMTguMzMsMCwwLDEsNi4wOC02LjY0LDE3LjQ3LDE3LjQ3LDAsMCwxLDEwLjI1LTMsMTcuNzYsMTcuNzYsMCwwLDEsMTAuMzYsMywxOCwxOCwwLDAsMSw1Ljk0LDYuNjQsMTIuNzksMTIuNzksMCwwLDEsMS44Miw1LjEzLDEwNy4yMywxMDcuMjMsMCwwLDEsLjQ2LDEyLjU1cTAsOC4zOC0uMzYsMTEuN2ExNC41MSwxNC41MSwwLDAsMS0xLjUzLDUuMTdabS02LjU0LTI3LjcxYTExLjI2LDExLjI2LDAsMCwwLTUuMjYtNy4yNCwxMS4xOCwxMS4xOCwwLDAsMC00LjkxLTEuMTUsMTAuNjMsMTAuNjMsMCwwLDAtNC44LDEuMTUsMTAuMDksMTAuMDksMCwwLDAtMy4yOSwyLjc3LDksOSwwLDAsMC0yLDQuNDgsNjYuNyw2Ni43LDAsMCwwLS41NywxMC44Myw2NS40Nyw2NS40NywwLDAsMCwuNTcsMTAuNzcsOSw5LDAsMCwwLDIsNC41NCw5LjQ3LDkuNDcsMCwwLDAsMy4yOSwyLjcxLDkuMTEsOS4xMSwwLDAsMCw0LjgsMS4yMiw4LjYyLDguNjIsMCwwLDAsNS44NC0xLjg5bC02LjY2LTUuNDcsNC42OS01LjU5LDYuMDksNXEuNzUtMi43My43NS0xMS4yOGE3MC42LDcwLjYsMCwwLDAtLjU0LTEwLjg0WiIvPgo8L3N2Zz4=",
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "JMS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink",
        "camel.apache.org/requires.runtime" : "camel-k"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "JMS - IBM MQ Sink",
        "description" : "A Kamelet that can produce events to an IBM MQ message queue using JMS.\n\nIn your Pipe file, you must explicitly declare the IBM MQ Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.ibm.mq:com.ibm.mq.allclient:<version>\"",
        "required" : [ "serverName", "serverPort", "destinationName", "queueManager", "channel", "username", "password" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "IBM MQ Server name",
            "description" : "IBM MQ Server name or address",
            "type" : "string"
          },
          "serverPort" : {
            "title" : "IBM MQ Server Port",
            "description" : "IBM MQ Server port",
            "type" : "integer",
            "default" : 1414
          },
          "destinationType" : {
            "title" : "Destination Type",
            "description" : "The JMS destination type (queue or topic)",
            "type" : "string",
            "default" : "queue"
          },
          "destinationName" : {
            "title" : "Destination Name",
            "description" : "The destination name",
            "type" : "string"
          },
          "queueManager" : {
            "title" : "IBM MQ Queue Manager",
            "description" : "Name of the IBM MQ Queue Manager",
            "type" : "string"
          },
          "channel" : {
            "title" : "IBM MQ Channel",
            "description" : "Name of the IBM MQ Channel",
            "type" : "string"
          },
          "clientId" : {
            "title" : "IBM MQ Client ID",
            "description" : "Name of the IBM MQ Client ID",
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to authenticate to IBM MQ server",
            "type" : "string"
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to IBM MQ server",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "sslCipherSuite" : {
            "title" : "CipherSuite",
            "description" : "CipherSuite to use for enabling TLS",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:jms", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "wmqConnectionFactory",
          "type" : "#class:com.ibm.mq.jms.MQConnectionFactory",
          "properties" : {
            "XMSC_WMQ_HOST_NAME" : "{{serverName}}",
            "XMSC_WMQ_PORT" : "{{serverPort}}",
            "XMSC_WMQ_CHANNEL" : "{{channel}}",
            "XMSC_WMQ_QUEUE_MANAGER" : "{{queueManager}}",
            "XMSC_WMQ_CONNECTION_MODE" : 1,
            "XMSC_USERID" : "{{username}}",
            "XMSC_PASSWORD" : "{{password}}",
            "XMSC_CLIENT_ID" : "{{?clientId}}",
            "XMSC_WMQ_SSL_CIPHER_SUITE" : "{{?sslCipherSuite}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "jms:{{destinationType}}:{{destinationName}}",
              "parameters" : {
                "connectionFactory" : "#bean:{{wmqConnectionFactory}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "JMS - IBM MQ Sink",
      "description" : "A Kamelet that can produce events to an IBM MQ message queue using JMS.\n\nIn your Pipe file, you must explicitly declare the IBM MQ Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.ibm.mq:com.ibm.mq.allclient:<version>\"",
      "required" : [ "serverName", "serverPort", "destinationName", "queueManager", "channel", "username", "password" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "IBM MQ Server name",
          "description" : "IBM MQ Server name or address"
        },
        "serverPort" : {
          "type" : "integer",
          "title" : "IBM MQ Server Port",
          "description" : "IBM MQ Server port",
          "default" : 1414
        },
        "destinationType" : {
          "type" : "string",
          "title" : "Destination Type",
          "description" : "The JMS destination type (queue or topic)",
          "default" : "queue"
        },
        "destinationName" : {
          "type" : "string",
          "title" : "Destination Name",
          "description" : "The destination name"
        },
        "queueManager" : {
          "type" : "string",
          "title" : "IBM MQ Queue Manager",
          "description" : "Name of the IBM MQ Queue Manager"
        },
        "channel" : {
          "type" : "string",
          "title" : "IBM MQ Channel",
          "description" : "Name of the IBM MQ Channel"
        },
        "clientId" : {
          "type" : "string",
          "title" : "IBM MQ Client ID",
          "description" : "Name of the IBM MQ Client ID"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to IBM MQ server"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to IBM MQ server",
          "format" : "password"
        },
        "sslCipherSuite" : {
          "type" : "string",
          "title" : "CipherSuite",
          "description" : "CipherSuite to use for enabling TLS"
        }
      }
    }
  },
  "jms-ibm-mq-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jms-ibm-mq-source",
      "annotations" : {
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA1NzMuMDggNTc2Ljk3Ij4KICAgIDxkZWZzPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgLmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzVhNzdiNTt9LmNscy0ze2ZpbGw6I2FmYmVlMDt9LmNscy00e2NsaXAtcGF0aDp1cmwoI2NsaXAtcGF0aCk7fS5jbHMtNXtjbGlwLXBhdGg6dXJsKCNjbGlwLXBhdGgtMik7fQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPgogICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiCiAgICAgICAgICAgICAgICAgIGQ9Ik0xNjQuNSw1MTAuODhWNDU3aDQuMDh2NTMuOTFabTQ3Ljc4LTI3LjcxYTEzLjE0LDEzLjE0LDAsMCwxLDkuMjMsMTNjMCw5LjYyLTYuMjgsMTQuNjktMTUuODIsMTQuNjlIMTg1LjI0VjQ1N2gxOS44NGM4Ljk0LDAsMTUuNiw1LjE1LDE1LjYsMTQuMDhhMTIuMzgsMTIuMzgsMCwwLDEtOC40LDEyLjEyWm0tMjIuOTUsMjQuMDhoMTUuOWM3LjM1LDAsMTIuMTktNC4xNywxMi4xOS0xMS4wNnMtNC44NC0xMS4wNS0xMi4xOS0xMS4wNWgtMTUuOXYyMi4xMVptMTUuMy00Ni42NWgtMTUuM3YyMC45aDE1LjNjNi41MSwwLDEyLTMsMTItMTAuNDVzLTUuNDUtMTAuNDUtMTItMTAuNDVabTcyLjYxLDUwLjI4VjQ2Ni40M2wtMTYuMzUsMzYuODhIMjU2LjhsLTE2LjY2LTM2Ljg4djQ0LjQ1aC00LjA5VjQ1N2g0LjA5bDE4Ljc4LDQxLjU3TDI3Ny4yNCw0NTdoNC4wOXY1My45MVoiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLTIiPgogICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiCiAgICAgICAgICAgICAgICAgIGQ9Ik0zNDkuNyw1MTAuODRWNDc3LjI4aC0uMThsLTEwLjkxLDI1Ljg0SDMzMmwtMTAuOTEtMjUuODRIMzIxdjMzLjU2aC03LjlWNDU3aDcuNDRsMTUsMzUuMDdMMzUwLjEzLDQ1N2g3LjQ2djUzLjgxWm01NC4yLTEwLDYuODgsNS42NS00LjY5LDUuNjEtNi41OC01LjQ0cS00LjYyLDQuNTEtMTIuMyw0LjY2YTE3Ljg5LDE3Ljg5LDAsMCwxLTEwLjI1LTMuMSwxNy43LDE3LjcsMCwwLDEtNi4wOC02LjU3Yy0uMzgtLjgxLS43My0xLjU5LTEtMi4zMmExNS40NSwxNS40NSwwLDAsMS0uNzItMi44OCwxNDUuMjksMTQ1LjI5LDAsMCwxLDAtMjUsMTUuMzgsMTUuMzgsMCwwLDEsMS43NS01LjEzLDE4LjMzLDE4LjMzLDAsMCwxLDYuMDgtNi42NCwxNy40NywxNy40NywwLDAsMSwxMC4yNS0zLDE3Ljc2LDE3Ljc2LDAsMCwxLDEwLjM2LDMsMTgsMTgsMCwwLDEsNS45NCw2LjY0LDEyLjc5LDEyLjc5LDAsMCwxLDEuODIsNS4xMywxMDcuMjMsMTA3LjIzLDAsMCwxLC40NiwxMi41NXEwLDguMzgtLjM2LDExLjdhMTQuNTEsMTQuNTEsMCwwLDEtMS41Myw1LjE3Wm0tNi41NC0yNy43MWExMS4yNiwxMS4yNiwwLDAsMC01LjI2LTcuMjQsMTEuMTgsMTEuMTgsMCwwLDAtNC45MS0xLjE1LDEwLjYzLDEwLjYzLDAsMCwwLTQuOCwxLjE1LDEwLjA5LDEwLjA5LDAsMCwwLTMuMjksMi43Nyw5LDksMCwwLDAtMiw0LjQ4LDY2LjcsNjYuNywwLDAsMC0uNTcsMTAuODMsNjUuNDcsNjUuNDcsMCwwLDAsLjU3LDEwLjc3LDksOSwwLDAsMCwyLDQuNTQsOS40Nyw5LjQ3LDAsMCwwLDMuMjksMi43MSw5LjExLDkuMTEsMCwwLDAsNC44LDEuMjIsOC42Miw4LjYyLDAsMCwwLDUuODQtMS44OWwtNi42Ni01LjQ3LDQuNjktNS41OSw2LjA5LDVxLjc1LTIuNzMuNzUtMTEuMjhhNzAuNiw3MC42LDAsMCwwLS41NC0xMC44NFoiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgPC9kZWZzPgogICAgPHRpdGxlPklCTSBJUTwvdGl0bGU+CiAgICA8Y2lyY2xlIGNsYXNzPSJjbHMtMiIgY3g9IjI4Ny42NCIgY3k9IjI4Ny4yIiByPSIyNzguNSIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0zIgogICAgICAgICAgICAgcG9pbnRzPSI0NTguMTcgNDI2LjY3IDExNy4xMSA0MjYuNjcgMTE3LjExIDE1My41NSA3MC45MSAxNTMuNTUgNzAuOTEgMTMxLjU1IDEzOS4xMSAxMzEuNTUgMTM5LjExIDQwNC42NyA0MzYuMTcgNDA0LjY3IDQzNi4xNyAxMzEuNTUgNTA0LjM3IDEzMS41NSA1MDQuMzcgMTUzLjU1IDQ1OC4xNyAxNTMuNTUgNDU4LjE3IDQyNi42NyIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0xIgogICAgICAgICAgICAgcG9pbnRzPSI0MjAuMjYgMjUzLjEyIDQyMC4yNiAyNDEuNzcgMTU1LjAyIDI0MS43NyAxNTUuMDIgMjUyLjg1IDI4Ny44OCAzMjkuNDkgNDIwLjI2IDI1My4xMiIvPgogICAgPHBvbHlnb24gY2xhc3M9ImNscy0xIgogICAgICAgICAgICAgcG9pbnRzPSIyODcuODggMzM5Ljc1IDE1NS4wMiAyNjMuMTEgMTU1LjAyIDM4OC44NCA0MjAuMjYgMzg4Ljg0IDQyMC4yNiAyNjMuMzggMjg3Ljg4IDMzOS43NSIvPgogICAgPHBhdGggY2xhc3M9ImNscy0xIgogICAgICAgICAgZD0iTTE2NC41LDUxMC44OFY0NTdoNC4wOHY1My45MVptNDcuNzgtMjcuNzFhMTMuMTQsMTMuMTQsMCwwLDEsOS4yMywxM2MwLDkuNjItNi4yOCwxNC42OS0xNS44MiwxNC42OUgxODUuMjRWNDU3aDE5Ljg0YzguOTQsMCwxNS42LDUuMTUsMTUuNiwxNC4wOGExMi4zOCwxMi4zOCwwLDAsMS04LjQsMTIuMTJabS0yMi45NSwyNC4wOGgxNS45YzcuMzUsMCwxMi4xOS00LjE3LDEyLjE5LTExLjA2cy00Ljg0LTExLjA1LTEyLjE5LTExLjA1aC0xNS45djIyLjExWm0xNS4zLTQ2LjY1aC0xNS4zdjIwLjloMTUuM2M2LjUxLDAsMTItMywxMi0xMC40NXMtNS40NS0xMC40NS0xMi0xMC40NVptNzIuNjEsNTAuMjhWNDY2LjQzbC0xNi4zNSwzNi44OEgyNTYuOGwtMTYuNjYtMzYuODh2NDQuNDVoLTQuMDlWNDU3aDQuMDlsMTguNzgsNDEuNTdMMjc3LjI0LDQ1N2g0LjA5djUzLjkxWiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0xIgogICAgICAgICAgZD0iTTM0OS43LDUxMC44NFY0NzcuMjhoLS4xOGwtMTAuOTEsMjUuODRIMzMybC0xMC45MS0yNS44NEgzMjF2MzMuNTZoLTcuOVY0NTdoNy40NGwxNSwzNS4wN0wzNTAuMTMsNDU3aDcuNDZ2NTMuODFabTU0LjItMTAsNi44OCw1LjY1LTQuNjksNS42MS02LjU4LTUuNDRxLTQuNjIsNC41MS0xMi4zLDQuNjZhMTcuODksMTcuODksMCwwLDEtMTAuMjUtMy4xLDE3LjcsMTcuNywwLDAsMS02LjA4LTYuNTdjLS4zOC0uODEtLjczLTEuNTktMS0yLjMyYTE1LjQ1LDE1LjQ1LDAsMCwxLS43Mi0yLjg4LDE0NS4yOSwxNDUuMjksMCwwLDEsMC0yNSwxNS4zOCwxNS4zOCwwLDAsMSwxLjc1LTUuMTMsMTguMzMsMTguMzMsMCwwLDEsNi4wOC02LjY0LDE3LjQ3LDE3LjQ3LDAsMCwxLDEwLjI1LTMsMTcuNzYsMTcuNzYsMCwwLDEsMTAuMzYsMywxOCwxOCwwLDAsMSw1Ljk0LDYuNjQsMTIuNzksMTIuNzksMCwwLDEsMS44Miw1LjEzLDEwNy4yMywxMDcuMjMsMCwwLDEsLjQ2LDEyLjU1cTAsOC4zOC0uMzYsMTEuN2ExNC41MSwxNC41MSwwLDAsMS0xLjUzLDUuMTdabS02LjU0LTI3LjcxYTExLjI2LDExLjI2LDAsMCwwLTUuMjYtNy4yNCwxMS4xOCwxMS4xOCwwLDAsMC00LjkxLTEuMTUsMTAuNjMsMTAuNjMsMCwwLDAtNC44LDEuMTUsMTAuMDksMTAuMDksMCwwLDAtMy4yOSwyLjc3LDksOSwwLDAsMC0yLDQuNDgsNjYuNyw2Ni43LDAsMCwwLS41NywxMC44Myw2NS40Nyw2NS40NywwLDAsMCwuNTcsMTAuNzcsOSw5LDAsMCwwLDIsNC41NCw5LjQ3LDkuNDcsMCwwLDAsMy4yOSwyLjcxLDkuMTEsOS4xMSwwLDAsMCw0LjgsMS4yMiw4LjYyLDguNjIsMCwwLDAsNS44NC0xLjg5bC02LjY2LTUuNDcsNC42OS01LjU5LDYuMDksNXEuNzUtMi43My43NS0xMS4yOGE3MC42LDcwLjYsMCwwLDAtLjU0LTEwLjg0WiIvPgo8L3N2Zz4=",
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "JMS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source",
        "camel.apache.org/requires.runtime" : "camel-k"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "JMS - IBM MQ Source",
        "description" : "A Kamelet that can read events from an IBM MQ message queue using JMS.\n\nIn your Pipe file, you must explicitly declare the IBM MQ Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.ibm.mq:com.ibm.mq.allclient:<version>\"",
        "required" : [ "serverName", "serverPort", "destinationName", "queueManager", "channel", "username", "password" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "IBM MQ Server name",
            "description" : "IBM MQ Server name or address",
            "type" : "string"
          },
          "serverPort" : {
            "title" : "IBM MQ Server Port",
            "description" : "IBM MQ Server port",
            "type" : "integer",
            "default" : 1414
          },
          "destinationType" : {
            "title" : "Destination Type",
            "description" : "The JMS destination type (queue or topic)",
            "type" : "string",
            "default" : "queue"
          },
          "destinationName" : {
            "title" : "Destination Name",
            "description" : "The destination name",
            "type" : "string"
          },
          "queueManager" : {
            "title" : "IBM MQ Queue Manager",
            "description" : "Name of the IBM MQ Queue Manager",
            "type" : "string"
          },
          "channel" : {
            "title" : "IBM MQ Channel",
            "description" : "Name of the IBM MQ Channel",
            "type" : "string"
          },
          "clientId" : {
            "title" : "IBM MQ Client ID",
            "description" : "Name of the IBM MQ Client ID",
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to authenticate to IBM MQ server",
            "type" : "string"
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to IBM MQ server",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "sslCipherSuite" : {
            "title" : "CipherSuite",
            "description" : "CipherSuite to use for enabling TLS",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:jms", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "wmqConnectionFactory",
          "type" : "#class:com.ibm.mq.jms.MQConnectionFactory",
          "properties" : {
            "XMSC_WMQ_HOST_NAME" : "{{serverName}}",
            "XMSC_WMQ_PORT" : "{{serverPort}}",
            "XMSC_WMQ_CHANNEL" : "{{channel}}",
            "XMSC_WMQ_QUEUE_MANAGER" : "{{queueManager}}",
            "XMSC_WMQ_CONNECTION_MODE" : 1,
            "XMSC_USERID" : "{{username}}",
            "XMSC_PASSWORD" : "{{password}}",
            "XMSC_CLIENT_ID" : "{{?clientId}}",
            "XMSC_WMQ_SSL_CIPHER_SUITE" : "{{?sslCipherSuite}}"
          }
        } ],
        "from" : {
          "uri" : "jms:{{destinationType}}:{{destinationName}}",
          "parameters" : {
            "connectionFactory" : "#bean:{{wmqConnectionFactory}}"
          },
          "steps" : [ {
            "to" : {
              "uri" : "kamelet:sink"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "JMS - IBM MQ Source",
      "description" : "A Kamelet that can read events from an IBM MQ message queue using JMS.\n\nIn your Pipe file, you must explicitly declare the IBM MQ Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.ibm.mq:com.ibm.mq.allclient:<version>\"",
      "required" : [ "serverName", "serverPort", "destinationName", "queueManager", "channel", "username", "password" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "IBM MQ Server name",
          "description" : "IBM MQ Server name or address"
        },
        "serverPort" : {
          "type" : "integer",
          "title" : "IBM MQ Server Port",
          "description" : "IBM MQ Server port",
          "default" : 1414
        },
        "destinationType" : {
          "type" : "string",
          "title" : "Destination Type",
          "description" : "The JMS destination type (queue or topic)",
          "default" : "queue"
        },
        "destinationName" : {
          "type" : "string",
          "title" : "Destination Name",
          "description" : "The destination name"
        },
        "queueManager" : {
          "type" : "string",
          "title" : "IBM MQ Queue Manager",
          "description" : "Name of the IBM MQ Queue Manager"
        },
        "channel" : {
          "type" : "string",
          "title" : "IBM MQ Channel",
          "description" : "Name of the IBM MQ Channel"
        },
        "clientId" : {
          "type" : "string",
          "title" : "IBM MQ Client ID",
          "description" : "Name of the IBM MQ Client ID"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to IBM MQ server"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to IBM MQ server",
          "format" : "password"
        },
        "sslCipherSuite" : {
          "type" : "string",
          "title" : "CipherSuite",
          "description" : "CipherSuite to use for enabling TLS"
        }
      }
    }
  },
  "jolt-transformation-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jolt-transformation-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jolt Transformation Action",
        "description" : "Apply a Jolt Transformation.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.json",
            "pattern" : "^(http|https|file|classpath)://.*"
          },
          "transform" : {
            "title" : "Transform DSL",
            "description" : "Specifies the Transform DSL of the endpoint resource. If none is specified Chainr will be used.",
            "type" : "string",
            "default" : "Chainr",
            "enum" : [ "Chainr", "Shiftr", "Defaultr", "Removr", "Sortr" ]
          }
        }
      },
      "dependencies" : [ "camel:jolt", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "jolt:",
              "parameters" : {
                "resourceUri" : "{{template}}",
                "transformDsl" : "{{transform}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jolt Transformation Action",
      "description" : "Apply a Jolt Transformation.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        },
        "transform" : {
          "type" : "string",
          "title" : "Transform DSL",
          "description" : "Specifies the Transform DSL of the endpoint resource. If none is specified Chainr will be used.",
          "enum" : [ "Chainr", "Shiftr", "Defaultr", "Removr", "Sortr" ],
          "default" : "Chainr"
        }
      }
    }
  },
  "jslt-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jslt-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "JSLT Action",
        "description" : "Apply a JSLT query or transformation on JSON.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template for JSLT Transformation",
            "type" : "string",
            "example" : "file://template.json",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:jslt", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "jslt:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "JSLT Action",
      "description" : "Apply a JSLT query or transformation on JSON.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template for JSLT Transformation"
        }
      }
    }
  },
  "json-deserialize-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "json-deserialize-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "JSON"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Json Deserialize Action",
        "description" : "Deserialize payload to JSON",
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
              }
            }
          }, {
            "removeHeader" : {
              "name" : "Content-Type"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Json Deserialize Action",
      "description" : "Deserialize payload to JSON"
    }
  },
  "json-patch-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "json-patch-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Json Patch Action",
        "description" : "Apply a Json Patch Transformation.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The json patch transformation",
            "type" : "string",
            "example" : "file:////template.json",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:json-patch", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "json-patch:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Json Patch Action",
      "description" : "Apply a Json Patch Transformation.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The json patch transformation"
        }
      }
    }
  },
  "json-schema-validator-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "json-schema-validator-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "JSON"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Json Schema Validator Action",
        "description" : "Apply a Json Schema Template to validate the payload against.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.json",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:json-validator", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "json-validator:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Json Schema Validator Action",
      "description" : "Apply a Json Schema Template to validate the payload against.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "json-serialize-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "json-serialize-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "JSON"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Json Serialize Action",
        "description" : "Serialize payload to JSON",
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
              }
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "application/json"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Json Serialize Action",
      "description" : "Serialize payload to JSON"
    }
  },
  "jsonata-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "jsonata-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "JSON"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Jsonata Action",
        "description" : "Apply a Jsonata Transformation.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.spec",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:jsonata", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "jsonata:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Jsonata Action",
      "description" : "Apply a Jsonata Transformation.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "kafka-apicurio-registry-not-secured-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-apicurio-registry-not-secured-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Not Secured with Apicurio Registry Sink",
        "description" : "Send data to Kafka topics on an insecure broker with Apicurio Registry.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.\n\nThree headers, if specified, will be deduplicated with different names, kafka.key will be duplicated into kafka.KEY, kafka.topic into kafka.TOPIC and kafka.override_topic into kafka.OVERRIDE_TOPIC",
        "required" : [ "topic", "bootstrapServers", "apicurioRegistryUrl" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string"
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string"
          },
          "valueSerializer" : {
            "title" : "Value Serializer",
            "description" : "Serliazer class for value that implements the Serializer interface.",
            "type" : "string",
            "default" : "io.apicurio.registry.serde.avro.AvroKafkaSerializer"
          },
          "apicurioRegistryUrl" : {
            "title" : "Apicurio Registry URL",
            "description" : "The Apicurio Schema Registry URL",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:apicurioRegistryUrl", "urn:keda:required" ]
          },
          "avroDatumProvider" : {
            "title" : "Avro Datum Provider",
            "description" : "How to write data with Avro",
            "type" : "string",
            "default" : "io.apicurio.registry.serde.avro.ReflectAvroDatumProvider"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:kafka", "mvn:io.apicurio:apicurio-registry-serdes-avro-serde:2.4.14.Final" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[partition-key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partitionkey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[ce-partitionkey]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "kafka:{{topic}}",
              "parameters" : {
                "brokers" : "{{bootstrapServers}}",
                "valueSerializer" : "{{valueSerializer}}",
                "additionalProperties.apicurio.registry.url" : "{{apicurioRegistryUrl}}",
                "additionalProperties.apicurio.registry.avro-datum-provider" : "{{avroDatumProvider}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Not Secured with Apicurio Registry Sink",
      "description" : "Send data to Kafka topics on an insecure broker with Apicurio Registry.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.\n\nThree headers, if specified, will be deduplicated with different names, kafka.key will be duplicated into kafka.KEY, kafka.topic into kafka.TOPIC and kafka.override_topic into kafka.OVERRIDE_TOPIC",
      "required" : [ "topic", "bootstrapServers", "apicurioRegistryUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "valueSerializer" : {
          "type" : "string",
          "title" : "Value Serializer",
          "description" : "Serliazer class for value that implements the Serializer interface.",
          "default" : "io.apicurio.registry.serde.avro.AvroKafkaSerializer"
        },
        "apicurioRegistryUrl" : {
          "type" : "string",
          "title" : "Apicurio Registry URL",
          "description" : "The Apicurio Schema Registry URL"
        },
        "avroDatumProvider" : {
          "type" : "string",
          "title" : "Avro Datum Provider",
          "description" : "How to write data with Avro",
          "default" : "io.apicurio.registry.serde.avro.ReflectAvroDatumProvider"
        }
      }
    }
  },
  "kafka-apicurio-registry-not-secured-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-apicurio-registry-not-secured-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Not Secured with Apicurio Registry Source",
        "description" : "Receive data from Kafka topics on an insecure broker combined with Apicurio Registry.",
        "required" : [ "topic", "bootstrapServers", "apicurioRegistryUrl" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "valueDeserializer" : {
            "title" : "Value Deserializer",
            "description" : "Deserializer class for value that implements the Deserializer interface.",
            "type" : "string",
            "default" : "io.apicurio.registry.serde.avro.AvroKafkaDeserializer"
          },
          "apicurioRegistryUrl" : {
            "title" : "Apicurio Registry URL",
            "description" : "The Apicurio Schema Registry URL",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "avroDatumProvider" : {
            "title" : "Avro Datum Provider",
            "description" : "How to read data with Avro",
            "type" : "string",
            "default" : "io.apicurio.registry.serde.avro.ReflectAvroDatumProvider"
          },
          "topicIsPattern" : {
            "title" : "Topic Is Pattern",
            "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kafka", "camel:core", "camel:kamelet", "mvn:io.quarkus:quarkus-apicurio-registry-avro:3.6.3" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{bootstrapServers}}",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "valueDeserializer" : "{{valueDeserializer}}",
            "topicIsPattern" : "{{topicIsPattern}}",
            "additionalProperties.apicurio.registry.url" : "{{apicurioRegistryUrl}}",
            "additionalProperties.apicurio.registry.avro-datum-provider" : "{{avroDatumProvider}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Not Secured with Apicurio Registry Source",
      "description" : "Receive data from Kafka topics on an insecure broker combined with Apicurio Registry.",
      "required" : [ "topic", "bootstrapServers", "apicurioRegistryUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "valueDeserializer" : {
          "type" : "string",
          "title" : "Value Deserializer",
          "description" : "Deserializer class for value that implements the Deserializer interface.",
          "default" : "io.apicurio.registry.serde.avro.AvroKafkaDeserializer"
        },
        "apicurioRegistryUrl" : {
          "type" : "string",
          "title" : "Apicurio Registry URL",
          "description" : "The Apicurio Schema Registry URL"
        },
        "avroDatumProvider" : {
          "type" : "string",
          "title" : "Avro Datum Provider",
          "description" : "How to read data with Avro",
          "default" : "io.apicurio.registry.serde.avro.ReflectAvroDatumProvider"
        },
        "topicIsPattern" : {
          "type" : "boolean",
          "title" : "Topic Is Pattern",
          "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
          "default" : false
        }
      }
    }
  },
  "kafka-azure-schema-registry-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-azure-schema-registry-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Kafka through Eventhubs with Azure Schema Registry Sink",
        "description" : "Send data to Kafka topics on Azure Eventhubs combined with Azure Schema Registry.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
        "required" : [ "topic", "bootstrapServers", "azureRegistryUrl", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string"
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string"
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "PLAIN"
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "valueSerializer" : {
            "title" : "Value Deserializer",
            "description" : "Deserializer class for value that implements the Deserializer interface.",
            "type" : "string",
            "default" : "com.microsoft.azure.schemaregistry.kafka.avro.KafkaAvroSerializer"
          },
          "azureRegistryUrl" : {
            "title" : "Azure Schema Registry URL",
            "description" : "The Apicurio Schema Registry URL",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "specificAvroValueType" : {
            "title" : "Specific Avro Value Type",
            "description" : "The Specific Type Avro will have to deal with",
            "type" : "string",
            "example" : "com.example.Order"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:kafka", "camel:kamelet", "camel:azure-schema-registry", "mvn:com.microsoft.azure:azure-schemaregistry-kafka-avro:1.1.1", "mvn:com.azure:azure-data-schemaregistry-apacheavro:1.1.13", "mvn:com.azure:azure-identity:1.11.1" ],
      "template" : {
        "beans" : [ {
          "name" : "defaultAzureCredential",
          "type" : "#class:org.apache.camel.component.azure.schema.registry.DefaultAzureCredentialWrapper"
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[partition-key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partitionkey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[ce-partitionkey]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "kafka:{{topic}}",
              "parameters" : {
                "brokers" : "{{bootstrapServers}}",
                "securityProtocol" : "{{securityProtocol}}",
                "saslMechanism" : "{{saslMechanism}}",
                "saslJaasConfig" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"$ConnectionString\" password={{password}};",
                "valueSerializer" : "{{valueSerializer}}",
                "additionalProperties.schema.registry.url" : "{{azureRegistryUrl}}",
                "additionalProperties.schema.group" : "avro",
                "additionalProperties.schema.registry.credential" : "#bean:defaultAzureCredential",
                "additionalProperties.specific.avro.value.type" : "#valueAs(java.lang.Class):{{specificAvroValueType}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Kafka through Eventhubs with Azure Schema Registry Sink",
      "description" : "Send data to Kafka topics on Azure Eventhubs combined with Azure Schema Registry.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
      "required" : [ "topic", "bootstrapServers", "azureRegistryUrl", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "PLAIN"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        },
        "valueSerializer" : {
          "type" : "string",
          "title" : "Value Deserializer",
          "description" : "Deserializer class for value that implements the Deserializer interface.",
          "default" : "com.microsoft.azure.schemaregistry.kafka.avro.KafkaAvroSerializer"
        },
        "azureRegistryUrl" : {
          "type" : "string",
          "title" : "Azure Schema Registry URL",
          "description" : "The Apicurio Schema Registry URL"
        },
        "specificAvroValueType" : {
          "type" : "string",
          "title" : "Specific Avro Value Type",
          "description" : "The Specific Type Avro will have to deal with"
        }
      }
    }
  },
  "kafka-azure-schema-registry-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-azure-schema-registry-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Kafka through Eventhubs with Azure Schema Registry Source",
        "description" : "Receive data from Kafka topics on Azure Eventhubs combined with Azure Schema Registry.",
        "required" : [ "topic", "bootstrapServers", "azureRegistryUrl", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "PLAIN"
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "valueDeserializer" : {
            "title" : "Value Deserializer",
            "description" : "Deserializer class for value that implements the Deserializer interface.",
            "type" : "string",
            "default" : "com.microsoft.azure.schemaregistry.kafka.avro.KafkaAvroDeserializer"
          },
          "azureRegistryUrl" : {
            "title" : "Azure Schema Registry URL",
            "description" : "The Apicurio Schema Registry URL",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "specificAvroValueType" : {
            "title" : "Specific Avro Value Type",
            "description" : "The Specific Type Avro will have to deal with",
            "type" : "string",
            "example" : "com.example.Order"
          },
          "topicIsPattern" : {
            "title" : "Topic Is Pattern",
            "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kafka", "camel:core", "camel:kamelet", "camel:azure-schema-registry", "mvn:com.microsoft.azure:azure-schemaregistry-kafka-avro:1.1.1", "mvn:com.azure:azure-data-schemaregistry-apacheavro:1.1.13", "mvn:com.azure:azure-identity:1.11.1" ],
      "template" : {
        "beans" : [ {
          "name" : "defaultAzureCredential",
          "type" : "#class:org.apache.camel.component.azure.schema.registry.DefaultAzureCredentialWrapper"
        }, {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "saslMechanism" : "{{saslMechanism}}",
            "saslJaasConfig" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"$ConnectionString\" password={{password}};",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "valueDeserializer" : "{{valueDeserializer}}",
            "topicIsPattern" : "{{topicIsPattern}}",
            "additionalProperties.schema.registry.url" : "{{azureRegistryUrl}}",
            "additionalProperties.schema.group" : "avro",
            "additionalProperties.schema.registry.credential" : "#bean:defaultAzureCredential",
            "additionalProperties.specific.avro.value.type" : "#valueAs(java.lang.Class):{{specificAvroValueType}}",
            "additionalProperties.specific.avro.reader" : "#valueAs(boolean):true"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Kafka through Eventhubs with Azure Schema Registry Source",
      "description" : "Receive data from Kafka topics on Azure Eventhubs combined with Azure Schema Registry.",
      "required" : [ "topic", "bootstrapServers", "azureRegistryUrl", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "PLAIN"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "valueDeserializer" : {
          "type" : "string",
          "title" : "Value Deserializer",
          "description" : "Deserializer class for value that implements the Deserializer interface.",
          "default" : "com.microsoft.azure.schemaregistry.kafka.avro.KafkaAvroDeserializer"
        },
        "azureRegistryUrl" : {
          "type" : "string",
          "title" : "Azure Schema Registry URL",
          "description" : "The Apicurio Schema Registry URL"
        },
        "specificAvroValueType" : {
          "type" : "string",
          "title" : "Specific Avro Value Type",
          "description" : "The Specific Type Avro will have to deal with"
        },
        "topicIsPattern" : {
          "type" : "boolean",
          "title" : "Topic Is Pattern",
          "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
          "default" : false
        }
      }
    }
  },
  "kafka-batch-apicurio-registry-not-secured-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-batch-apicurio-registry-not-secured-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Batch Not Secured with Apicurio Registry Source",
        "description" : "Receive data from Kafka topics in batch on an insecure broker combined with Apicurio Registry and commit them manually through KafkaManualCommit or auto commit.",
        "required" : [ "topic", "bootstrapServers", "apicurioRegistryUrl" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "valueDeserializer" : {
            "title" : "Value Deserializer",
            "description" : "Deserializer class for value that implements the Deserializer interface.",
            "type" : "string",
            "default" : "io.apicurio.registry.serde.avro.AvroKafkaDeserializer"
          },
          "apicurioRegistryUrl" : {
            "title" : "Apicurio Registry URL",
            "description" : "The Apicurio Schema Registry URL",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "avroDatumProvider" : {
            "title" : "Avro Datum Provider",
            "description" : "How to read data with Avro",
            "type" : "string",
            "default" : "io.apicurio.registry.serde.avro.ReflectAvroDatumProvider"
          },
          "batchSize" : {
            "title" : "Batch Dimension",
            "description" : "The maximum number of records returned in a single call to poll()",
            "type" : "int",
            "default" : 500
          },
          "pollTimeout" : {
            "title" : "Poll Timeout Interval",
            "description" : "The timeout used when polling the KafkaConsumer",
            "type" : "int",
            "default" : 5000
          },
          "maxPollIntervalMs" : {
            "title" : "Max Poll Interval",
            "description" : "The maximum delay between invocations of poll() when using consumer group management",
            "type" : "int"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kafka", "camel:core", "camel:kamelet", "mvn:io.quarkus:quarkus-apicurio-registry-avro:3.6.3" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        }, {
          "name" : "manualCommitFactory",
          "type" : "#class:org.apache.camel.component.kafka.consumer.DefaultKafkaManualCommitFactory"
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{bootstrapServers}}",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "valueDeserializer" : "{{valueDeserializer}}",
            "additionalProperties.apicurio.registry.url" : "{{apicurioRegistryUrl}}",
            "additionalProperties.apicurio.registry.avro-datum-provider" : "{{avroDatumProvider}}",
            "maxPollRecords" : "{{batchSize}}",
            "pollTimeoutMs" : "{{pollTimeout}}",
            "maxPollIntervalMs" : "{{?maxPollIntervalMs}}",
            "batching" : true,
            "kafkaManualCommitFactory" : "#bean:{{manualCommitFactory}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Batch Not Secured with Apicurio Registry Source",
      "description" : "Receive data from Kafka topics in batch on an insecure broker combined with Apicurio Registry and commit them manually through KafkaManualCommit or auto commit.",
      "required" : [ "topic", "bootstrapServers", "apicurioRegistryUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "valueDeserializer" : {
          "type" : "string",
          "title" : "Value Deserializer",
          "description" : "Deserializer class for value that implements the Deserializer interface.",
          "default" : "io.apicurio.registry.serde.avro.AvroKafkaDeserializer"
        },
        "apicurioRegistryUrl" : {
          "type" : "string",
          "title" : "Apicurio Registry URL",
          "description" : "The Apicurio Schema Registry URL"
        },
        "avroDatumProvider" : {
          "type" : "string",
          "title" : "Avro Datum Provider",
          "description" : "How to read data with Avro",
          "default" : "io.apicurio.registry.serde.avro.ReflectAvroDatumProvider"
        },
        "batchSize" : {
          "type" : "int",
          "title" : "Batch Dimension",
          "description" : "The maximum number of records returned in a single call to poll()",
          "default" : 500
        },
        "pollTimeout" : {
          "type" : "int",
          "title" : "Poll Timeout Interval",
          "description" : "The timeout used when polling the KafkaConsumer",
          "default" : 5000
        },
        "maxPollIntervalMs" : {
          "type" : "int",
          "title" : "Max Poll Interval",
          "description" : "The maximum delay between invocations of poll() when using consumer group management"
        }
      }
    }
  },
  "kafka-batch-azure-schema-registry-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-batch-azure-schema-registry-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Azure Kafka Batch through Eventhubs with Azure Schema Registry Source",
        "description" : "Receive data from Kafka topics in batch on Azure Eventhubs combined with Azure Schema Registry and commit them manually through KafkaManualCommit or auto commit.",
        "required" : [ "topic", "bootstrapServers", "azureRegistryUrl", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "PLAIN"
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "valueDeserializer" : {
            "title" : "Value Deserializer",
            "description" : "Deserializer class for value that implements the Deserializer interface.",
            "type" : "string",
            "default" : "com.microsoft.azure.schemaregistry.kafka.avro.KafkaAvroDeserializer"
          },
          "azureRegistryUrl" : {
            "title" : "Azure Schema Registry URL",
            "description" : "The Apicurio Schema Registry URL",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "specificAvroValueType" : {
            "title" : "Specific Avro Value Type",
            "description" : "The Specific Type Avro will have to deal with",
            "type" : "string",
            "example" : "com.example.Order"
          },
          "batchSize" : {
            "title" : "Batch Dimension",
            "description" : "The maximum number of records returned in a single call to poll()",
            "type" : "int",
            "default" : 500
          },
          "pollTimeout" : {
            "title" : "Poll Timeout Interval",
            "description" : "The timeout used when polling the KafkaConsumer",
            "type" : "int",
            "default" : 5000
          },
          "maxPollIntervalMs" : {
            "title" : "Max Poll Interval",
            "description" : "The maximum delay between invocations of poll() when using consumer group management",
            "type" : "int"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kafka", "camel:core", "camel:kamelet", "camel:azure-schema-registry", "mvn:com.microsoft.azure:azure-schemaregistry-kafka-avro:1.1.1", "mvn:com.azure:azure-data-schemaregistry-apacheavro:1.1.13", "mvn:com.azure:azure-identity:1.11.1" ],
      "template" : {
        "beans" : [ {
          "name" : "defaultAzureCredential",
          "type" : "#class:org.apache.camel.component.azure.schema.registry.DefaultAzureCredentialWrapper"
        }, {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        }, {
          "name" : "manualCommitFactory",
          "type" : "#class:org.apache.camel.component.kafka.consumer.DefaultKafkaManualCommitFactory"
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "saslMechanism" : "{{saslMechanism}}",
            "saslJaasConfig" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"$ConnectionString\" password={{password}};",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "valueDeserializer" : "{{valueDeserializer}}",
            "maxPollRecords" : "{{batchSize}}",
            "pollTimeoutMs" : "{{pollTimeout}}",
            "maxPollIntervalMs" : "{{?maxPollIntervalMs}}",
            "batching" : true,
            "kafkaManualCommitFactory" : "#bean:{{manualCommitFactory}}",
            "additionalProperties.schema.registry.url" : "{{azureRegistryUrl}}",
            "additionalProperties.schema.group" : "avro",
            "additionalProperties.schema.registry.credential" : "#bean:defaultAzureCredential",
            "additionalProperties.specific.avro.value.type" : "#valueAs(java.lang.Class):{{specificAvroValueType}}",
            "additionalProperties.specific.avro.reader" : "#valueAs(boolean):true"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Azure Kafka Batch through Eventhubs with Azure Schema Registry Source",
      "description" : "Receive data from Kafka topics in batch on Azure Eventhubs combined with Azure Schema Registry and commit them manually through KafkaManualCommit or auto commit.",
      "required" : [ "topic", "bootstrapServers", "azureRegistryUrl", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "PLAIN"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "valueDeserializer" : {
          "type" : "string",
          "title" : "Value Deserializer",
          "description" : "Deserializer class for value that implements the Deserializer interface.",
          "default" : "com.microsoft.azure.schemaregistry.kafka.avro.KafkaAvroDeserializer"
        },
        "azureRegistryUrl" : {
          "type" : "string",
          "title" : "Azure Schema Registry URL",
          "description" : "The Apicurio Schema Registry URL"
        },
        "specificAvroValueType" : {
          "type" : "string",
          "title" : "Specific Avro Value Type",
          "description" : "The Specific Type Avro will have to deal with"
        },
        "batchSize" : {
          "type" : "int",
          "title" : "Batch Dimension",
          "description" : "The maximum number of records returned in a single call to poll()",
          "default" : 500
        },
        "pollTimeout" : {
          "type" : "int",
          "title" : "Poll Timeout Interval",
          "description" : "The timeout used when polling the KafkaConsumer",
          "default" : 5000
        },
        "maxPollIntervalMs" : {
          "type" : "int",
          "title" : "Max Poll Interval",
          "description" : "The maximum delay between invocations of poll() when using consumer group management"
        }
      }
    }
  },
  "kafka-batch-manual-commit-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-batch-manual-commit-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Batch Manual Commit Action",
        "description" : "Manually commit Kafka Batch Offset",
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "bean" : "org.apache.camel.kamelets.utils.transform.kafka.BatchManualCommit"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Batch Manual Commit Action",
      "description" : "Manually commit Kafka Batch Offset"
    }
  },
  "kafka-batch-not-secured-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-batch-not-secured-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Batch Not Secured Source",
        "description" : "Receive data from Kafka topics in batch on an insecure broker and commit them manually through KafkaManualCommit.",
        "required" : [ "topic", "bootstrapServers" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "batchSize" : {
            "title" : "Batch Dimension",
            "description" : "The maximum number of records returned in a single call to poll()",
            "type" : "int",
            "default" : 500
          },
          "pollTimeout" : {
            "title" : "Poll Timeout Interval",
            "description" : "The timeout used when polling the KafkaConsumer",
            "type" : "int",
            "default" : 5000
          },
          "maxPollIntervalMs" : {
            "title" : "Max Poll Interval",
            "description" : "The maximum delay between invocations of poll() when using consumer group management",
            "type" : "int"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kafka", "camel:core", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        }, {
          "name" : "manualCommitFactory",
          "type" : "#class:org.apache.camel.component.kafka.consumer.DefaultKafkaManualCommitFactory"
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{bootstrapServers}}",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "maxPollRecords" : "{{batchSize}}",
            "pollTimeoutMs" : "{{pollTimeout}}",
            "maxPollIntervalMs" : "{{?maxPollIntervalMs}}",
            "batching" : true,
            "kafkaManualCommitFactory" : "#bean:{{manualCommitFactory}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Batch Not Secured Source",
      "description" : "Receive data from Kafka topics in batch on an insecure broker and commit them manually through KafkaManualCommit.",
      "required" : [ "topic", "bootstrapServers" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "batchSize" : {
          "type" : "int",
          "title" : "Batch Dimension",
          "description" : "The maximum number of records returned in a single call to poll()",
          "default" : 500
        },
        "pollTimeout" : {
          "type" : "int",
          "title" : "Poll Timeout Interval",
          "description" : "The timeout used when polling the KafkaConsumer",
          "default" : 5000
        },
        "maxPollIntervalMs" : {
          "type" : "int",
          "title" : "Max Poll Interval",
          "description" : "The maximum delay between invocations of poll() when using consumer group management"
        }
      }
    }
  },
  "kafka-batch-scram-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-batch-scram-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka",
        "camel.apache.org/keda.authentication.sasl" : "scram-sha-512",
        "camel.apache.org/keda.authentication.tls" : "enable"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Batch Scram Source",
        "description" : "Receive data from Kafka topics in batch through SCRAM login module and commit them manually through KafkaManualCommit..",
        "required" : [ "topic", "bootstrapServers", "user", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "SCRAM-SHA-512"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to authenticate to Kafka",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:username", "urn:keda:required" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "batchSize" : {
            "title" : "Batch Dimension",
            "description" : "The maximum number of records returned in a single call to poll()",
            "type" : "int",
            "default" : 500
          },
          "pollTimeout" : {
            "title" : "Poll Timeout Interval",
            "description" : "The timeout used when polling the KafkaConsumer",
            "type" : "int",
            "default" : 5000
          },
          "maxPollIntervalMs" : {
            "title" : "Max Poll Interval",
            "description" : "The maximum delay between invocations of poll() when using consumer group management",
            "type" : "int"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        }, {
          "name" : "manualCommitFactory",
          "type" : "#class:org.apache.camel.component.kafka.consumer.DefaultKafkaManualCommitFactory"
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{?bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "saslMechanism" : "{{saslMechanism}}",
            "saslJaasConfig" : "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"{{user}}\" password=\"{{password}}\";",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "maxPollRecords" : "{{batchSize}}",
            "pollTimeoutMs" : "{{pollTimeout}}",
            "maxPollIntervalMs" : "{{?maxPollIntervalMs}}",
            "batching" : true,
            "kafkaManualCommitFactory" : "#bean:{{manualCommitFactory}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Batch Scram Source",
      "description" : "Receive data from Kafka topics in batch through SCRAM login module and commit them manually through KafkaManualCommit..",
      "required" : [ "topic", "bootstrapServers", "user", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "SCRAM-SHA-512"
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to Kafka"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "batchSize" : {
          "type" : "int",
          "title" : "Batch Dimension",
          "description" : "The maximum number of records returned in a single call to poll()",
          "default" : 500
        },
        "pollTimeout" : {
          "type" : "int",
          "title" : "Poll Timeout Interval",
          "description" : "The timeout used when polling the KafkaConsumer",
          "default" : 5000
        },
        "maxPollIntervalMs" : {
          "type" : "int",
          "title" : "Max Poll Interval",
          "description" : "The maximum delay between invocations of poll() when using consumer group management"
        }
      }
    }
  },
  "kafka-batch-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-batch-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka",
        "camel.apache.org/keda.authentication.sasl" : "plaintext",
        "camel.apache.org/keda.authentication.tls" : "enable"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Batch Source",
        "description" : "Receive data from Kafka topics in batch through Plain Login Module and commit them manually through KafkaManualCommit..",
        "required" : [ "topic", "bootstrapServers", "user", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "PLAIN"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to authenticate to Kafka",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:username", "urn:keda:required" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "batchSize" : {
            "title" : "Batch Dimension",
            "description" : "The maximum number of records returned in a single call to poll()",
            "type" : "int",
            "default" : 500
          },
          "pollTimeout" : {
            "title" : "Poll Timeout Interval",
            "description" : "The timeout used when polling the KafkaConsumer",
            "type" : "int",
            "default" : 5000
          },
          "maxPollIntervalMs" : {
            "title" : "Max Poll Interval",
            "description" : "The maximum delay between invocations of poll() when using consumer group management",
            "type" : "int"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        }, {
          "name" : "manualCommitFactory",
          "type" : "#class:org.apache.camel.component.kafka.consumer.DefaultKafkaManualCommitFactory"
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{?bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "saslMechanism" : "{{saslMechanism}}",
            "saslJaasConfig" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"{{user}}\" password=\"{{password}}\";",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "maxPollRecords" : "{{batchSize}}",
            "pollTimeoutMs" : "{{pollTimeout}}",
            "maxPollIntervalMs" : "{{?maxPollIntervalMs}}",
            "batching" : true,
            "kafkaManualCommitFactory" : "#bean:{{manualCommitFactory}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Batch Source",
      "description" : "Receive data from Kafka topics in batch through Plain Login Module and commit them manually through KafkaManualCommit..",
      "required" : [ "topic", "bootstrapServers", "user", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "PLAIN"
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to Kafka"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "batchSize" : {
          "type" : "int",
          "title" : "Batch Dimension",
          "description" : "The maximum number of records returned in a single call to poll()",
          "default" : 500
        },
        "pollTimeout" : {
          "type" : "int",
          "title" : "Poll Timeout Interval",
          "description" : "The timeout used when polling the KafkaConsumer",
          "default" : 5000
        },
        "maxPollIntervalMs" : {
          "type" : "int",
          "title" : "Max Poll Interval",
          "description" : "The maximum delay between invocations of poll() when using consumer group management"
        }
      }
    }
  },
  "kafka-batch-ssl-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-batch-ssl-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Batch SSL Source",
        "description" : "Receive data from Kafka topics in batch with SSL/TLS support and commit them manually through KafkaManualCommit or automatically.",
        "required" : [ "topic", "bootstrapServers", "sslTruststoreLocation", "sslKeyPassword" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "GSSAPI"
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "sslKeyPassword" : {
            "description" : "The password of the private key in the key store file.",
            "title" : "SSL Key Password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "sslKeystorePassword" : {
            "description" : "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
            "title" : "SSL Keystore Password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password" ]
          },
          "sslEndpointAlgorithm" : {
            "description" : "The endpoint identification algorithm to validate server hostname using server certificate. Use none or false to disable server hostname verification.",
            "title" : "SSL Endpoint Algorithm",
            "type" : "string",
            "default" : "https"
          },
          "sslProtocol" : {
            "description" : "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
            "title" : "SSL Protocol",
            "type" : "string",
            "default" : "TLSv1.2"
          },
          "sslKeystoreLocation" : {
            "description" : "The location of the key store file. This is optional for client and can be used for two-way authentication for client.",
            "title" : "SSL Keystore Location",
            "type" : "string"
          },
          "sslTruststoreLocation" : {
            "description" : "The location of the trust store file.",
            "title" : "SSL Truststore Location",
            "type" : "string"
          },
          "sslEnabledProtocols" : {
            "description" : "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
            "title" : "SSL Enabled Protocols",
            "type" : "string",
            "default" : "TLSv1.2,TLSv1.1,TLSv1"
          },
          "saslJaasConfig" : {
            "description" : "Java Authentication and Authorization Service (JAAS) for Simple Authentication and Security Layer (SASL) configuration.",
            "title" : "JAAS Configuration",
            "type" : "string"
          },
          "batchSize" : {
            "title" : "Batch Dimension",
            "description" : "The maximum number of records returned in a single call to poll()",
            "type" : "int",
            "default" : 500
          },
          "pollTimeout" : {
            "title" : "Poll Timeout Interval",
            "description" : "The timeout used when polling the KafkaConsumer",
            "type" : "int",
            "default" : 5000
          },
          "maxPollIntervalMs" : {
            "title" : "Max Poll Interval",
            "description" : "The maximum delay between invocations of poll() when using consumer group management",
            "type" : "int"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafka-ssl-source-local",
          "type" : "#class:org.apache.camel.component.kafka.KafkaComponent"
        }, {
          "name" : "manualCommitFactory",
          "type" : "#class:org.apache.camel.component.kafka.consumer.DefaultKafkaManualCommitFactory"
        }, {
          "name" : "kafka-ssl-source-configuration-local",
          "properties" : {
            "brokers" : "{{bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "sslKeystoreLocation" : "{{sslKeystoreLocation}}",
            "sslKeyPassword" : "{{sslKeyPassword}}",
            "sslKeystorePassword" : "{{sslKeystorePassword}}",
            "sslTruststoreLocation" : "{{sslTruststoreLocation}}",
            "sslProtocol" : "{{sslProtocol}}",
            "sslEnabledProtocols" : "{{sslEnabledProtocols}}",
            "sslEndpointAlgorithm" : "{{sslEndpointAlgorithm}}",
            "saslMechanism" : "{{saslMechanism}}",
            "groupId" : "{{?consumerGroup}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "pollOnError" : "{{pollOnError}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "saslJaasConfig" : "{{?saslJaasConfig}}",
            "maxPollRecords" : "{{batchSize}}",
            "pollTimeoutMs" : "{{pollTimeout}}",
            "maxPollIntervalMs" : "{{?maxPollIntervalMs}}",
            "batching" : true,
            "kafkaManualCommitFactory" : "#bean:{{manualCommitFactory}}"
          },
          "type" : "#class:org.apache.camel.component.kafka.KafkaConfiguration"
        }, {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        } ],
        "from" : {
          "uri" : "{{kafka-ssl-source-local}}:{{topic}}",
          "parameters" : {
            "configuration" : "#bean:{{kafka-ssl-source-configuration-local}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Batch SSL Source",
      "description" : "Receive data from Kafka topics in batch with SSL/TLS support and commit them manually through KafkaManualCommit or automatically.",
      "required" : [ "topic", "bootstrapServers", "sslTruststoreLocation", "sslKeyPassword" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "GSSAPI"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "sslKeyPassword" : {
          "type" : "string",
          "title" : "SSL Key Password",
          "description" : "The password of the private key in the key store file.",
          "format" : "password"
        },
        "sslKeystorePassword" : {
          "type" : "string",
          "title" : "SSL Keystore Password",
          "description" : "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
          "format" : "password"
        },
        "sslEndpointAlgorithm" : {
          "type" : "string",
          "title" : "SSL Endpoint Algorithm",
          "description" : "The endpoint identification algorithm to validate server hostname using server certificate. Use none or false to disable server hostname verification.",
          "default" : "https"
        },
        "sslProtocol" : {
          "type" : "string",
          "title" : "SSL Protocol",
          "description" : "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
          "default" : "TLSv1.2"
        },
        "sslKeystoreLocation" : {
          "type" : "string",
          "title" : "SSL Keystore Location",
          "description" : "The location of the key store file. This is optional for client and can be used for two-way authentication for client."
        },
        "sslTruststoreLocation" : {
          "type" : "string",
          "title" : "SSL Truststore Location",
          "description" : "The location of the trust store file."
        },
        "sslEnabledProtocols" : {
          "type" : "string",
          "title" : "SSL Enabled Protocols",
          "description" : "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
          "default" : "TLSv1.2,TLSv1.1,TLSv1"
        },
        "saslJaasConfig" : {
          "type" : "string",
          "title" : "JAAS Configuration",
          "description" : "Java Authentication and Authorization Service (JAAS) for Simple Authentication and Security Layer (SASL) configuration."
        },
        "batchSize" : {
          "type" : "int",
          "title" : "Batch Dimension",
          "description" : "The maximum number of records returned in a single call to poll()",
          "default" : 500
        },
        "pollTimeout" : {
          "type" : "int",
          "title" : "Poll Timeout Interval",
          "description" : "The timeout used when polling the KafkaConsumer",
          "default" : 5000
        },
        "maxPollIntervalMs" : {
          "type" : "int",
          "title" : "Max Poll Interval",
          "description" : "The maximum delay between invocations of poll() when using consumer group management"
        }
      }
    }
  },
  "kafka-manual-commit-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-manual-commit-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Manual Commit Action",
        "description" : "Manually commit Kafka Offset",
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "bean" : "org.apache.camel.kamelets.utils.transform.kafka.ManualCommit"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Manual Commit Action",
      "description" : "Manually commit Kafka Offset"
    }
  },
  "kafka-not-secured-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-not-secured-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Not Secured Sink",
        "description" : "Send data to Kafka topics on an insecure broker.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.\n\nThree headers, if specified, will be deduplicated with different names, kafka.key will be duplicated into kafka.KEY, kafka.topic into kafka.TOPIC and kafka.override_topic into kafka.OVERRIDE_TOPIC",
        "required" : [ "topic", "bootstrapServers" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string"
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:kafka", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[partition-key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partitionkey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[ce-partitionkey]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "kafka:{{topic}}",
              "parameters" : {
                "brokers" : "{{bootstrapServers}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Not Secured Sink",
      "description" : "Send data to Kafka topics on an insecure broker.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.\n\nThree headers, if specified, will be deduplicated with different names, kafka.key will be duplicated into kafka.KEY, kafka.topic into kafka.TOPIC and kafka.override_topic into kafka.OVERRIDE_TOPIC",
      "required" : [ "topic", "bootstrapServers" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        }
      }
    }
  },
  "kafka-not-secured-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-not-secured-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Not Secured Source",
        "description" : "Receive data from Kafka topics on an insecure broker.",
        "required" : [ "topic", "bootstrapServers" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "topicIsPattern" : {
            "title" : "Topic Is Pattern",
            "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kafka", "camel:core", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{bootstrapServers}}",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "topicIsPattern" : "{{topicIsPattern}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Not Secured Source",
      "description" : "Receive data from Kafka topics on an insecure broker.",
      "required" : [ "topic", "bootstrapServers" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "topicIsPattern" : {
          "type" : "boolean",
          "title" : "Topic Is Pattern",
          "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
          "default" : false
        }
      }
    }
  },
  "kafka-scram-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-scram-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Scram Sink",
        "description" : "Send data to Kafka topics through SCRAM login module.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
        "required" : [ "topic", "bootstrapServers", "user", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string"
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string"
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "SCRAM-SHA-512"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to authenticate to Kafka",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[partition-key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partitionkey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[ce-partitionkey]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "kafka:{{topic}}",
              "parameters" : {
                "brokers" : "{{bootstrapServers}}",
                "securityProtocol" : "{{securityProtocol}}",
                "saslMechanism" : "{{saslMechanism}}",
                "saslJaasConfig" : "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"{{user}}\" password=\"{{password}}\";"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Scram Sink",
      "description" : "Send data to Kafka topics through SCRAM login module.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
      "required" : [ "topic", "bootstrapServers", "user", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "SCRAM-SHA-512"
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to Kafka"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        }
      }
    }
  },
  "kafka-scram-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-scram-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka",
        "camel.apache.org/keda.authentication.sasl" : "scram-sha-512",
        "camel.apache.org/keda.authentication.tls" : "enable"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Scram Source",
        "description" : "Receive data from Kafka topics through SCRAM login module.",
        "required" : [ "topic", "bootstrapServers", "user", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "SCRAM-SHA-512"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to authenticate to Kafka",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:username", "urn:keda:required" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "topicIsPattern" : {
            "title" : "Topic Is Pattern",
            "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{?bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "saslMechanism" : "{{saslMechanism}}",
            "saslJaasConfig" : "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"{{user}}\" password=\"{{password}}\";",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "topicIsPattern" : "{{topicIsPattern}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Scram Source",
      "description" : "Receive data from Kafka topics through SCRAM login module.",
      "required" : [ "topic", "bootstrapServers", "user", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "SCRAM-SHA-512"
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to Kafka"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "topicIsPattern" : {
          "type" : "boolean",
          "title" : "Topic Is Pattern",
          "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
          "default" : false
        }
      }
    }
  },
  "kafka-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Sink",
        "description" : "Send data to Kafka topics through Plain Login Module.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
        "required" : [ "topic", "bootstrapServers", "user", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string"
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string"
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "PLAIN"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to authenticate to Kafka",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[partition-key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partitionkey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[ce-partitionkey]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "kafka:{{topic}}",
              "parameters" : {
                "brokers" : "{{bootstrapServers}}",
                "securityProtocol" : "{{securityProtocol}}",
                "saslMechanism" : "{{saslMechanism}}",
                "saslJaasConfig" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"{{user}}\" password=\"{{password}}\";"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Sink",
      "description" : "Send data to Kafka topics through Plain Login Module.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
      "required" : [ "topic", "bootstrapServers", "user", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "PLAIN"
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to Kafka"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        }
      }
    }
  },
  "kafka-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka",
        "camel.apache.org/keda.type" : "kafka",
        "camel.apache.org/keda.authentication.sasl" : "plaintext",
        "camel.apache.org/keda.authentication.tls" : "enable"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Source",
        "description" : "Receive data from Kafka topics through Plain Login Module.",
        "required" : [ "topic", "bootstrapServers", "user", "password" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SASL_SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "PLAIN"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to authenticate to Kafka",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:username", "urn:keda:required" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to authenticate to kafka",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "topicIsPattern" : {
            "title" : "Topic Is Pattern",
            "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        } ],
        "from" : {
          "uri" : "kafka:{{topic}}",
          "parameters" : {
            "brokers" : "{{?bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "saslMechanism" : "{{saslMechanism}}",
            "saslJaasConfig" : "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"{{user}}\" password=\"{{password}}\";",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "pollOnError" : "{{pollOnError}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "groupId" : "{{?consumerGroup}}",
            "topicIsPattern" : "{{topicIsPattern}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Source",
      "description" : "Receive data from Kafka topics through Plain Login Module.",
      "required" : [ "topic", "bootstrapServers", "user", "password" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SASL_SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "PLAIN"
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to authenticate to Kafka"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to authenticate to kafka",
          "format" : "password"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "topicIsPattern" : {
          "type" : "boolean",
          "title" : "Topic Is Pattern",
          "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
          "default" : false
        }
      }
    }
  },
  "kafka-ssl-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-ssl-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "description" : "Send data to Kafka topics wit TLS/SSL support.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
        "required" : [ "topic", "bootstrapServers", "sslKeystoreLocation", "sslKeystorePassword", "sslTruststoreLocation", "sslKeyPassword" ],
        "properties" : {
          "bootstrapServers" : {
            "description" : "Comma separated list of Kafka Broker URLs",
            "title" : "Brokers",
            "type" : "string"
          },
          "sslKeystoreLocation" : {
            "description" : "The location of the key store file. This is optional for client and can be used for two-way authentication for client.",
            "title" : "SSL Keystore Location",
            "type" : "string"
          },
          "sslProtocol" : {
            "default" : "TLSv1.2",
            "description" : "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
            "title" : "SSL Protocol",
            "type" : "string"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "GSSAPI"
          },
          "sslEnabledProtocols" : {
            "default" : "TLSv1.2,TLSv1.1,TLSv1",
            "description" : "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
            "title" : "SSL Enabled Protocols",
            "type" : "string"
          },
          "sslKeystorePassword" : {
            "description" : "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
            "title" : "SSL Keystore Password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "sslTruststoreLocation" : {
            "description" : "The location of the trust store file.",
            "title" : "SSL Truststore Location",
            "type" : "string"
          },
          "sslKeyPassword" : {
            "description" : "The password of the private key in the key store file.",
            "title" : "SSL Key Password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "sslEndpointAlgorithm" : {
            "description" : "The endpoint identification algorithm to validate server hostname using server certificate. Use none or false to disable server hostname verification.",
            "title" : "SSL Endpoint Algorithm",
            "type" : "string",
            "default" : "https"
          },
          "topic" : {
            "description" : "Comma separated list of Kafka topic names",
            "title" : "Topic Names",
            "type" : "string"
          },
          "securityProtocol" : {
            "default" : "SSL",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "title" : "Security Protocol",
            "type" : "string"
          }
        },
        "title" : "Kafka SSL Sink",
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafka-ssl-sink-local",
          "type" : "#class:org.apache.camel.component.kafka.KafkaComponent"
        }, {
          "name" : "kafka-ssl-sink-configuration-local",
          "properties" : {
            "brokers" : "{{bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "sslKeystoreLocation" : "{{sslKeystoreLocation}}",
            "sslKeyPassword" : "{{sslKeyPassword}}",
            "sslKeystorePassword" : "{{sslKeystorePassword}}",
            "sslTruststoreLocation" : "{{sslTruststoreLocation}}",
            "sslProtocol" : "{{sslProtocol}}",
            "sslEnabledProtocols" : "{{sslEnabledProtocols}}",
            "sslEndpointAlgorithm" : "{{sslEndpointAlgorithm}}",
            "saslMechanism" : "{{saslMechanism}}"
          },
          "type" : "#class:org.apache.camel.component.kafka.KafkaConfiguration"
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.KEY",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[partition-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[partition-key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-partitionkey]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "kafka.PARTITION_KEY",
                    "simple" : "${header[ce-partitionkey]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "{{kafka-ssl-sink-local}}:{{topic}}",
              "parameters" : {
                "configuration" : "#bean:{{kafka-ssl-sink-configuration-local}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka SSL Sink",
      "description" : "Send data to Kafka topics wit TLS/SSL support.\n\nThe Kamelet is able to understand the following headers to be set:\n\n- `key` / `ce-key`: as message key\n\n- `partition-key` / `ce-partitionkey`: as message partition key\n\nBoth the headers are optional.",
      "required" : [ "topic", "bootstrapServers", "sslKeystoreLocation", "sslKeystorePassword", "sslTruststoreLocation", "sslKeyPassword" ],
      "properties" : {
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Brokers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "sslKeystoreLocation" : {
          "type" : "string",
          "title" : "SSL Keystore Location",
          "description" : "The location of the key store file. This is optional for client and can be used for two-way authentication for client."
        },
        "sslProtocol" : {
          "type" : "string",
          "title" : "SSL Protocol",
          "description" : "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
          "default" : "TLSv1.2"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "GSSAPI"
        },
        "sslEnabledProtocols" : {
          "type" : "string",
          "title" : "SSL Enabled Protocols",
          "description" : "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
          "default" : "TLSv1.2,TLSv1.1,TLSv1"
        },
        "sslKeystorePassword" : {
          "type" : "string",
          "title" : "SSL Keystore Password",
          "description" : "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
          "format" : "password"
        },
        "sslTruststoreLocation" : {
          "type" : "string",
          "title" : "SSL Truststore Location",
          "description" : "The location of the trust store file."
        },
        "sslKeyPassword" : {
          "type" : "string",
          "title" : "SSL Key Password",
          "description" : "The password of the private key in the key store file.",
          "format" : "password"
        },
        "sslEndpointAlgorithm" : {
          "type" : "string",
          "title" : "SSL Endpoint Algorithm",
          "description" : "The endpoint identification algorithm to validate server hostname using server certificate. Use none or false to disable server hostname verification.",
          "default" : "https"
        },
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SSL"
        }
      }
    }
  },
  "kafka-ssl-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kafka-ssl-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kafka",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka SSL Source",
        "description" : "Receive data from Kafka topics with SSL/TLS support",
        "required" : [ "topic", "bootstrapServers", "sslTruststoreLocation", "sslKeyPassword" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic Names",
            "description" : "Comma separated list of Kafka topic names",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:topic", "urn:keda:required" ]
          },
          "bootstrapServers" : {
            "title" : "Bootstrap Servers",
            "description" : "Comma separated list of Kafka Broker URLs",
            "type" : "string",
            "x-descriptors" : [ "urn:keda:metadata:bootstrapServers", "urn:keda:required" ]
          },
          "securityProtocol" : {
            "title" : "Security Protocol",
            "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
            "type" : "string",
            "default" : "SSL"
          },
          "saslMechanism" : {
            "title" : "SASL Mechanism",
            "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
            "type" : "string",
            "default" : "GSSAPI"
          },
          "autoCommitEnable" : {
            "title" : "Auto Commit Enable",
            "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
            "type" : "boolean",
            "default" : true
          },
          "allowManualCommit" : {
            "title" : "Allow Manual Commit",
            "description" : "Whether to allow doing manual commits",
            "type" : "boolean",
            "default" : false
          },
          "pollOnError" : {
            "title" : "Poll On Error Behavior",
            "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
            "type" : "string",
            "default" : "ERROR_HANDLER"
          },
          "autoOffsetReset" : {
            "title" : "Auto Offset Reset",
            "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
            "type" : "string",
            "default" : "latest",
            "x-descriptors" : [ "urn:keda:metadata:offsetResetPolicy" ]
          },
          "consumerGroup" : {
            "title" : "Consumer Group",
            "description" : "A string that uniquely identifies the group of consumers to which this source belongs",
            "type" : "string",
            "example" : "my-group-id",
            "x-descriptors" : [ "urn:keda:metadata:consumerGroup", "urn:keda:required" ]
          },
          "deserializeHeaders" : {
            "title" : "Automatically Deserialize Headers",
            "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
            "type" : "boolean",
            "default" : true
          },
          "sslKeyPassword" : {
            "description" : "The password of the private key in the key store file.",
            "title" : "SSL Key Password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password", "urn:keda:required" ]
          },
          "sslKeystorePassword" : {
            "description" : "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
            "title" : "SSL Keystore Password",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials", "urn:keda:authentication:password" ]
          },
          "sslEndpointAlgorithm" : {
            "description" : "The endpoint identification algorithm to validate server hostname using server certificate. Use none or false to disable server hostname verification.",
            "title" : "SSL Endpoint Algorithm",
            "type" : "string",
            "default" : "https"
          },
          "sslProtocol" : {
            "description" : "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
            "title" : "SSL Protocol",
            "type" : "string",
            "default" : "TLSv1.2"
          },
          "sslKeystoreLocation" : {
            "description" : "The location of the key store file. This is optional for client and can be used for two-way authentication for client.",
            "title" : "SSL Keystore Location",
            "type" : "string"
          },
          "sslTruststoreLocation" : {
            "description" : "The location of the trust store file.",
            "title" : "SSL Truststore Location",
            "type" : "string"
          },
          "sslEnabledProtocols" : {
            "description" : "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
            "title" : "SSL Enabled Protocols",
            "type" : "string",
            "default" : "TLSv1.2,TLSv1.1,TLSv1"
          },
          "saslJaasConfig" : {
            "description" : "Java Authentication and Authorization Service (JAAS) for Simple Authentication and Security Layer (SASL) configuration.",
            "title" : "JAAS Configuration",
            "type" : "string"
          },
          "topicIsPattern" : {
            "title" : "Topic Is Pattern",
            "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:kafka", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "kafka-ssl-source-local",
          "type" : "#class:org.apache.camel.component.kafka.KafkaComponent"
        }, {
          "name" : "kafka-ssl-source-configuration-local",
          "properties" : {
            "brokers" : "{{bootstrapServers}}",
            "securityProtocol" : "{{securityProtocol}}",
            "sslKeystoreLocation" : "{{sslKeystoreLocation}}",
            "sslKeyPassword" : "{{sslKeyPassword}}",
            "sslKeystorePassword" : "{{sslKeystorePassword}}",
            "sslTruststoreLocation" : "{{sslTruststoreLocation}}",
            "sslProtocol" : "{{sslProtocol}}",
            "sslEnabledProtocols" : "{{sslEnabledProtocols}}",
            "sslEndpointAlgorithm" : "{{sslEndpointAlgorithm}}",
            "saslMechanism" : "{{saslMechanism}}",
            "groupId" : "{{?consumerGroup}}",
            "autoOffsetReset" : "{{autoOffsetReset}}",
            "pollOnError" : "{{pollOnError}}",
            "allowManualCommit" : "{{allowManualCommit}}",
            "autoCommitEnable" : "{{autoCommitEnable}}",
            "saslJaasConfig" : "{{?saslJaasConfig}}",
            "topicIsPattern" : "{{topicIsPattern}}"
          },
          "type" : "#class:org.apache.camel.component.kafka.KafkaConfiguration"
        }, {
          "name" : "kafkaHeaderDeserializer",
          "type" : "#class:org.apache.camel.kamelets.utils.serialization.kafka.KafkaHeaderDeserializer",
          "properties" : {
            "enabled" : "{{deserializeHeaders}}"
          }
        } ],
        "from" : {
          "uri" : "{{kafka-ssl-source-local}}:{{topic}}",
          "parameters" : {
            "configuration" : "#bean:{{kafka-ssl-source-configuration-local}}"
          },
          "steps" : [ {
            "process" : {
              "ref" : "{{kafkaHeaderDeserializer}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka SSL Source",
      "description" : "Receive data from Kafka topics with SSL/TLS support",
      "required" : [ "topic", "bootstrapServers", "sslTruststoreLocation", "sslKeyPassword" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Names",
          "description" : "Comma separated list of Kafka topic names"
        },
        "bootstrapServers" : {
          "type" : "string",
          "title" : "Bootstrap Servers",
          "description" : "Comma separated list of Kafka Broker URLs"
        },
        "securityProtocol" : {
          "type" : "string",
          "title" : "Security Protocol",
          "description" : "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT, SASL_SSL and SSL are supported",
          "default" : "SSL"
        },
        "saslMechanism" : {
          "type" : "string",
          "title" : "SASL Mechanism",
          "description" : "The Simple Authentication and Security Layer (SASL) Mechanism used.",
          "default" : "GSSAPI"
        },
        "autoCommitEnable" : {
          "type" : "boolean",
          "title" : "Auto Commit Enable",
          "description" : "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer",
          "default" : true
        },
        "allowManualCommit" : {
          "type" : "boolean",
          "title" : "Allow Manual Commit",
          "description" : "Whether to allow doing manual commits",
          "default" : false
        },
        "pollOnError" : {
          "type" : "string",
          "title" : "Poll On Error Behavior",
          "description" : "What to do if kafka threw an exception while polling for new messages. There are 5 enums and the value can be one of DISCARD, ERROR_HANDLER, RECONNECT, RETRY, STOP",
          "default" : "ERROR_HANDLER"
        },
        "autoOffsetReset" : {
          "type" : "string",
          "title" : "Auto Offset Reset",
          "description" : "What to do when there is no initial offset. There are 3 enums and the value can be one of latest, earliest, none",
          "default" : "latest"
        },
        "consumerGroup" : {
          "type" : "string",
          "title" : "Consumer Group",
          "description" : "A string that uniquely identifies the group of consumers to which this source belongs"
        },
        "deserializeHeaders" : {
          "type" : "boolean",
          "title" : "Automatically Deserialize Headers",
          "description" : "When enabled the Kamelet source will deserialize all message headers to String representation.",
          "default" : true
        },
        "sslKeyPassword" : {
          "type" : "string",
          "title" : "SSL Key Password",
          "description" : "The password of the private key in the key store file.",
          "format" : "password"
        },
        "sslKeystorePassword" : {
          "type" : "string",
          "title" : "SSL Keystore Password",
          "description" : "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
          "format" : "password"
        },
        "sslEndpointAlgorithm" : {
          "type" : "string",
          "title" : "SSL Endpoint Algorithm",
          "description" : "The endpoint identification algorithm to validate server hostname using server certificate. Use none or false to disable server hostname verification.",
          "default" : "https"
        },
        "sslProtocol" : {
          "type" : "string",
          "title" : "SSL Protocol",
          "description" : "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
          "default" : "TLSv1.2"
        },
        "sslKeystoreLocation" : {
          "type" : "string",
          "title" : "SSL Keystore Location",
          "description" : "The location of the key store file. This is optional for client and can be used for two-way authentication for client."
        },
        "sslTruststoreLocation" : {
          "type" : "string",
          "title" : "SSL Truststore Location",
          "description" : "The location of the trust store file."
        },
        "sslEnabledProtocols" : {
          "type" : "string",
          "title" : "SSL Enabled Protocols",
          "description" : "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
          "default" : "TLSv1.2,TLSv1.1,TLSv1"
        },
        "saslJaasConfig" : {
          "type" : "string",
          "title" : "JAAS Configuration",
          "description" : "Java Authentication and Authorization Service (JAAS) for Simple Authentication and Security Layer (SASL) configuration."
        },
        "topicIsPattern" : {
          "type" : "boolean",
          "title" : "Topic Is Pattern",
          "description" : "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
          "default" : false
        }
      }
    }
  },
  "kubernetes-namespaces-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kubernetes-namespaces-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNzIyLjg0NTciCiAgIGhlaWdodD0iNzAxLjk2NjM3IgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjQgcjk5MzkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImxvZ28uc3ZnIgogICBpbmtzY2FwZTpleHBvcnQtZmlsZW5hbWU9Ii9ob21lL3Rob2NraW4vc3JjL2t1YmVybmV0ZXMvbmV3LnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ2MC45NTAwMSIKICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ2MC45NTAwMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjE2LjE5MDUwOSIKICAgICBpbmtzY2FwZTpjeD0iMjc3LjU2ODUxIgogICAgIGlua3NjYXBlOmN5PSIxNTcuNTQ0OTQiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImczMDUyIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE1MTkiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iODIyIgogICAgIGlua3NjYXBlOndpbmRvdy14PSI1MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMjUiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjEwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMTAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMTAiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02LjMyNjA5NDIsLTE3NC43NTI0KSI+CiAgICA8ZwogICAgICAgaWQ9ImczMDUyIj4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9ImZpbGw6IzMyNmNlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBkPSJtIDM2NS4zMTI1LDE4NC44MTI1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMTcuOTA2MjUsNC41MzEyNSBsIC0yNDQuMzQzNzUsMTE2Ljc1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMjUuMjgxMjUsMzEuNDM3NSBMIDE3LjUsNTk5Ljc4MTI1IEEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAyMy44NDM3NSw2MzUuMzEyNSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDI2LjUsNjM5IGwgMTY5LjEyNSwyMTAuMjgxMjUgYSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDM2LjUzMTI1LDE3LjQzNzUgTCA1MDMuMzc1LDg2Ni42NTYyNSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgNTM5LjkwNjI1LDg0OS4yNSBMIDcwOC45Njg3NSw2MzguOTM3NSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgNzE4LDU5OS43MTg3NSBsIC02MC4zNzUsLTI2Mi4yNSBhIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgLTI1LjI4MTI1LC0zMS40Mzc1IGwgLTI0NC4zNzUsLTExNi42ODc1IEEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAzNjUuMzEyNSwxODQuODEyNSB6IgogICAgICAgICBpZD0icGF0aDMwNTUiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0ibmV3LnBuZyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgzMDU5IgogICAgICAgICBkPSJtIDM2Ny43MzM2NiwyNzQuMDU5NjIgYyAtOC4wNzY5Niw4LjJlLTQgLTE0LjYyNTk2LDcuMjc1OTEgLTE0LjYyNSwxNi4yNSAxZS01LDAuMTM3NzMgMC4wMjgyLDAuMjY5MzQgMC4wMzEyLDAuNDA2MjUgLTAuMDExOSwxLjIxOTM2IC0wLjA3MDgsMi42ODgzNiAtMC4wMzEyLDMuNzUgMC4xOTI2Miw1LjE3NiAxLjMyMDksOS4xMzc0OSAyLDEzLjkwNjI1IDEuMjMwMjgsMTAuMjA2NjYgMi4yNjExNywxOC42NjczNiAxLjYyNSwyNi41MzEyNSAtMC42MTg2OSwyLjk2NTQgLTIuODAyODgsNS42Nzc0MSAtNC43NSw3LjU2MjUgbCAtMC4zNDM3NSw2LjE4NzUgYyAtOC43NzY4MiwwLjcyNzE3IC0xNy42MTIzNSwyLjA1ODc0IC0yNi40Mzc1LDQuMDYyNSAtMzcuOTc0NjEsOC42MjIxOCAtNzAuNjcwMDgsMjguMTgzMDcgLTk1LjU2MjUsNTQuNTkzNzUgLTEuNjE1MjIsLTEuMTAxOTMgLTQuNDQxMDMsLTMuMTI5MTQgLTUuMjgxMywtMy43NSAtMi42MTExNywwLjM1MjYyIC01LjI1MDIxLDEuMTU4MjkgLTguNjg3NSwtMC44NDM3NSAtNi41NDQ5MSwtNC40MDU2MyAtMTIuNTA1ODcsLTEwLjQ4NjkzIC0xOS43MTg3NSwtMTcuODEyNSAtMy4zMDQ5OCwtMy41MDQxOSAtNS42OTgzMiwtNi44NDEwMSAtOS42MjUsLTEwLjIxODc1IC0wLjg5MTcyLC0wLjc2NzA3IC0yLjI1MjU4LC0xLjgwNDU1IC0zLjI1LC0yLjU5Mzc1IC0zLjA2OTg4LC0yLjQ0NzU3IC02LjY5MDcsLTMuNzI0MDIgLTEwLjE4NzUsLTMuODQzNzUgLTQuNDk1ODksLTAuMTUzOTQgLTguODIzOTQsMS42MDM4NSAtMTEuNjU2MjUsNS4xNTYyNSAtNS4wMzUyMSw2LjMxNTM4IC0zLjQyMzEyLDE1Ljk2ODA1IDMuNTkzNzUsMjEuNTYyNSAwLjA3MTIsMC4wNTY3IDAuMTQ3MDIsMC4xMDA3OCAwLjIxODc1LDAuMTU2MjUgMC45NjQyMiwwLjc4MTYyIDIuMTQ0OTYsMS43ODMxMyAzLjAzMTI1LDIuNDM3NSA0LjE2Njg3LDMuMDc2NTUgNy45NzMyLDQuNjUxNDUgMTIuMTI1LDcuMDkzNzUgOC43NDcsNS40MDE4MSAxNS45OTgzNyw5Ljg4MDg2IDIxLjc1LDE1LjI4MTI1IDIuMjQ2MDIsMi4zOTQxNyAyLjYzODU4LDYuNjEyOTIgMi45Mzc1LDguNDM3NSBsIDQuNjg3NSw0LjE4NzUgYyAtMjUuMDkzNDIsMzcuNzYzNjggLTM2LjcwNjg2LDg0LjQwOTQ2IC0yOS44NDM3LDEzMS45Mzc1IGwgLTYuMTI1LDEuNzgxMjUgYyAtMS42MTQzLDIuMDg0NjEgLTMuODk1NDEsNS4zNjQ3NCAtNi4yODEzLDYuMzQzNzUgLTcuNTI1MTMsMi4zNzAyMSAtMTUuOTk0MjQsMy4yNDA1OSAtMjYuMjE4NzUsNC4zMTI1IC00LjgwMDMxLDAuMzk5MTUgLTguOTQyMTgsMC4xNjA5NSAtMTQuMDMxMjUsMS4xMjUgLTEuMTIwMDgsMC4yMTIxOCAtMi42ODA3MiwwLjYxODc3IC0zLjkwNjI1LDAuOTA2MjUgLTAuMDQyNiwwLjAwOSAtMC4wODI0LDAuMDIxNiAtMC4xMjUsMC4wMzEyIC0wLjA2NjgsMC4wMTU1IC0wLjE1NDU2LDAuMDQ3OSAtMC4yMTg3NSwwLjA2MjUgLTguNjIwMTQsMi4wODI3OSAtMTQuMTU3NzQsMTAuMDA2IC0xMi4zNzUsMTcuODEyNSAxLjc4MzE2LDcuODA4MzMgMTAuMjAzMTQsMTIuNTU2NzcgMTguODc1LDEwLjY4NzUgMC4wNjI2LC0wLjAxNDMgMC4xNTM1LC0wLjAxNjcgMC4yMTg3NSwtMC4wMzEyIDAuMDk3OSwtMC4wMjI0IDAuMTg0MDksLTAuMDY5OSAwLjI4MTI1LC0wLjA5MzcgMS4yMDg4NSwtMC4yNjUzNiAyLjcyMzc3LC0wLjU2MDYgMy43ODEyNSwtMC44NDM3NSA1LjAwMzM0LC0xLjMzOTYzIDguNjI2OTQsLTMuMzA3OTYgMTMuMTI1LC01LjAzMTI1IDkuNjc2OTQsLTMuNDcwNzcgMTcuNjkxNzMsLTYuMzcwMjIgMjUuNSwtNy41IDMuMjYxMTgsLTAuMjU1NDIgNi42OTcxMSwyLjAxMjE2IDguNDA2MjUsMi45Njg3NSBsIDYuMzc1LC0xLjA5Mzc1IGMgMTQuNjcwMTgsNDUuNDgyODIgNDUuNDE0MTYsODIuMjQ1MDIgODQuMzQzNzUsMTA1LjMxMjUgbCAtMi42NTYyNSw2LjM3NSBjIDAuOTU3NDIsMi40NzU0MiAyLjAxMzQxLDUuODI0NyAxLjMwMDIyLDguMjY5MzIgLTIuODM4NjgsNy4zNjEyIC03LjcwMDk3LDE1LjEzMDk3IC0xMy4yMzc3MiwyMy43OTMxOCAtMi42ODA4NSw0LjAwMTkyIC01LjQyNDUzLDcuMTA3NjEgLTcuODQzNzUsMTEuNjg3NSAtMC41Nzg5LDEuMDk1ODkgLTEuMzE2MTgsMi43NzkzMiAtMS44NzUsMy45Mzc1IC0zLjc1ODg0LDguMDQyMzYgLTEuMDAxNjQsMTcuMzA1MiA2LjIxODc1LDIwLjc4MTI1IDcuMjY1NzUsMy40OTc4OCAxNi4yODQ0NywtMC4xOTEzNCAyMC4xODc1LC04LjI1IDAuMDA2LC0wLjAxMTQgMC4wMjU3LC0wLjAxOTggMC4wMzEyLC0wLjAzMTIgMC4wMDQsLTAuMDA5IC0wLjAwNCwtMC4wMjI1IDAsLTAuMDMxMiAwLjU1NTkzLC0xLjE0MjU1IDEuMzQzNTMsLTIuNjQ0MzcgMS44MTI1LC0zLjcxODc1IDIuMDcyMTMsLTQuNzQ3MDIgMi43NjE2MSwtOC44MTUwNiA0LjIxODc1LC0xMy40MDYyNSAzLjg2OTYyLC05LjcyMDE0IDUuOTk1NjcsLTE5LjkxOTAzIDExLjMyMjU4LC0yNi4yNzQxMSAxLjQ1ODY4LC0xLjc0MDIzIDMuODM2ODEsLTIuNDA5NSA2LjMwMjQyLC0zLjA2OTY0IGwgMy4zMTI1LC02IGMgMzMuOTM4MjQsMTMuMDI2OCA3MS45MjY2NiwxNi41MjI0NiAxMDkuODc1LDcuOTA2MjUgOC42NTY5NywtMS45NjU1NyAxNy4wMTQ0NCwtNC41MDk0NSAyNS4wOTM3NSwtNy41NjI1IDAuOTMwOTgsMS42NTEzMyAyLjY2MTEzLDQuODI1NyAzLjEyNSw1LjYyNSAyLjUwNTU5LDAuODE1MTggNS4yNDA0NCwxLjIzNjE0IDcuNDY4NzUsNC41MzEyNSAzLjk4NTM5LDYuODA4OTggNi43MTA5LDE0Ljg2NDE2IDEwLjAzMTI1LDI0LjU5Mzc1IDEuNDU3MzgsNC41OTExMSAyLjE3NzYyLDguNjU5MzMgNC4yNSwxMy40MDYyNSAwLjQ3MjM0LDEuMDgxOTUgMS4yNTYsMi42MDQ4NiAxLjgxMjUsMy43NSAzLjg5NDgyLDguMDg0ODQgMTIuOTQyMTIsMTEuNzg2NjcgMjAuMjE4NzUsOC4yODEyNSA3LjIxOTUsLTMuNDc3OSA5Ljk3OTc0LC0xMi43Mzk5IDYuMjE4NzUsLTIwLjc4MTI1IC0wLjU1ODg5LC0xLjE1ODE0IC0xLjMyNzMsLTIuODQxNjQgLTEuOTA2MjUsLTMuOTM3NSAtMi40MTk0NiwtNC41Nzk3NiAtNS4xNjI3LC03LjY1NDQ4IC03Ljg0Mzc1LC0xMS42NTYyNSAtNS41MzcyMSwtOC42NjE5MiAtMTAuMTI5NjgsLTE1Ljg1NzcgLTEyLjk2ODc1LC0yMy4yMTg3NSAtMS4xODcxMSwtMy43OTY1NyAwLjIwMDI4LC02LjE1Nzc0IDEuMTI1LC04LjYyNSAtMC41NTM3OCwtMC42MzQ3NyAtMS43Mzg4MSwtNC4yMjAwOSAtMi40Mzc1LC01LjkwNjI1IDQwLjQ1NzQsLTIzLjg4ODE2IDcwLjI5ODU2LC02Mi4wMjEyOSA4NC4zMTI1LC0xMDYuMDYyNSAxLjg5MjQsMC4yOTc0MiA1LjE4MTU0LDAuODc5MzYgNi4yNSwxLjA5Mzc1IDIuMTk5NTQsLTEuNDUwNyA0LjIyMTk0LC0zLjM0MzUyIDguMTg3NSwtMy4wMzEyNSA3LjgwODMyLDEuMTI5MzcgMTUuODIyODgsNC4wMjk3MyAyNS41LDcuNSA0LjQ5ODE1LDEuNzIzMDYgOC4xMjE2LDMuNzIzMTMgMTMuMTI1LDUuMDYyNSAxLjA1NzQ5LDAuMjgzMDkgMi41NzIzOCwwLjU0NzIgMy43ODEyNSwwLjgxMjUgMC4wOTcyLDAuMDIzOCAwLjE4MzMsMC4wNzE0IDAuMjgxMjUsMC4wOTM3IDAuMDY1MywwLjAxNDYgMC4xNTYxNSwwLjAxNjkgMC4yMTg3NSwwLjAzMTIgOC42NzIzNiwxLjg2Njk1IDE3LjA5Mzg0LC0yLjg3ODcxIDE4Ljg3NSwtMTAuNjg3NSAxLjc4MDc0LC03LjgwNjk2IC0zLjc1NDMsLTE1LjczMjAxIC0xMi4zNzUsLTE3LjgxMjUgLTEuMjUzOTMsLTAuMjg1MTMgLTMuMDMyMjUsLTAuNzY5MzggLTQuMjUsLTEgLTUuMDg5MTIsLTAuOTYzNzggLTkuMjMwOTIsLTAuNzI2MSAtMTQuMDMxMjUsLTEuMTI1IC0xMC4yMjQ1NiwtMS4wNzEzOCAtMTguNjkzNSwtMS45NDI2OSAtMjYuMjE4NzUsLTQuMzEyNSAtMy4wNjgyNiwtMS4xOTAyOCAtNS4yNTEwMywtNC44NDEyNCAtNi4zMTI1NSwtNi4zNDM3NSBsIC01LjkwNjI1LC0xLjcxODc1IGMgMy4wNjIyNiwtMjIuMTU0NDIgMi4yMzY1NSwtNDUuMjExMzQgLTMuMDYyNSwtNjguMjgxMjUgLTUuMzQ4MzksLTIzLjI4NDcxIC0xNC44MDAzNywtNDQuNTgwODQgLTI3LjQwNjI1LC02My4zNDM3NSAxLjUxNTA1LC0xLjM3NzI5IDQuMzc2MTksLTMuOTEwOTEgNS4xODc1LC00LjY1NjI1IDAuMjM3MTYsLTIuNjI0MTcgMC4wMzM0LC01LjM3NTUzIDIuNzUsLTguMjgxMjUgNS43NTEzNCwtNS40MDA2OSAxMy4wMDMyOSwtOS44Nzg5OCAyMS43NSwtMTUuMjgxMjUgNC4xNTE2NywtMi40NDI1MiA3Ljk4OTU0LC00LjAxNjk4IDEyLjE1NjI1LC03LjA5Mzc1IDAuOTQyMjUsLTAuNjk1NzYgMi4yMjg5LC0xLjc5NzU5IDMuMjE4NzUsLTIuNTkzNzUgNy4wMTUzOCwtNS41OTYzMyA4LjYzMDU4LC0xNS4yNDg0MiAzLjU5Mzc1LC0yMS41NjI1IC01LjAzNjgzLC02LjMxNDA4IC0xNC43OTcxMiwtNi45MDg4MyAtMjEuODEyNSwtMS4zMTI1IC0wLjk5ODU2LDAuNzkwODUgLTIuMzUzNTMsMS44MjI1MiAtMy4yNSwyLjU5Mzc1IC0zLjkyNjUsMy4zNzc5NiAtNi4zNTE0NSw2LjcxNDM5IC05LjY1NjI1LDEwLjIxODc1IC03LjIxMjQ5LDcuMzI1OTUgLTEzLjE3NDA3LDEzLjQzNzc3IC0xOS43MTg3NSwxNy44NDM3NSAtMi44MzYwMSwxLjY1MTA2IC02Ljk4OTk2LDEuMDc5NzggLTguODc1MDUsMC45Njg3NSBsIC01LjU2MjUsMy45Njg3NSBjIC0zMS43MTg4LC0zMy4yNjA1NyAtNzQuOTA0NjYsLTU0LjUyNTQ2IC0xMjEuNDA2MDUsLTU4LjY1NjMgLTAuMTMwMDYsLTEuOTQ4NzIgLTAuMzAwNDUsLTUuNDcxMTcgLTAuMzQzNzUsLTYuNTMxMjUgLTEuOTAzNzEsLTEuODIxNjUgLTQuMjAzNDIsLTMuMzc2ODYgLTQuNzgxMjUsLTcuMzEyNSAtMC42MzYxNywtNy44NjM4OSAwLjQyNTk3LC0xNi4zMjQ1OSAxLjY1NjI1LC0yNi41MzEyNSAwLjY3OTEsLTQuNzY4NzYgMS44MDczOCwtOC43MzAyNSAyLC0xMy45MDYyNSAwLjA0MzgsLTEuMTc2NjMgLTAuMDI2NSwtMi44ODQwMSAtMC4wMzEyLC00LjE1NjI1IC05LjZlLTQsLTguOTc0MDkgLTYuNTQ4MDQsLTE2LjI1MDgyIC0xNC42MjUsLTE2LjI1IHogbSAtMTguMzEyNSwxMTMuNDM3NSAtNC4zNDM3NSw3Ni43MTg3NSAtMC4zMTI1LDAuMTU2MjUgYyAtMC4yOTEzNCw2Ljg2MzM1IC01LjkzOTk2LDEyLjM0Mzc1IC0xMi44NzUsMTIuMzQzNzUgLTIuODQwODEsMCAtNS40NjI5NCwtMC45MTIyOSAtNy41OTM3NSwtMi40Njg3NSBsIC0wLjEyNSwwLjA2MjUgLTYyLjkwNjI1LC00NC41OTM3NSBjIDE5LjMzMzY1LC0xOS4wMTExNSA0NC4wNjI5MSwtMzMuMDYwMzkgNzIuNTYyNSwtMzkuNTMxMjUgNS4yMDU5OSwtMS4xODIwMyAxMC40MDk2NiwtMi4wNTkxIDE1LjU5Mzc1LC0yLjY4NzUgeiBtIDM2LjY1NjI1LDAgYyAzMy4yNzM0Nyw0LjA5MjMyIDY0LjA0NTAxLDE5LjE1ODgyIDg3LjYyNSw0Mi4yNSBsIC02Mi41LDQ0LjMxMjUgLTAuMjE4NzUsLTAuMDkzNyBjIC01LjU0NzQ1LDQuMDUxNjkgLTEzLjM2MzQzLDMuMDQ2MzkgLTE3LjY4NzUsLTIuMzc1IC0xLjc3MTMyLC0yLjIyMDk2IC0yLjcwMDcyLC00LjgzMjM5IC0yLjgxMjUsLTcuNDY4NzUgbCAtMC4wNjI1LC0wLjAzMTIgeiBtIC0xNDcuNjI1LDcwLjg3NSA1Ny40Mzc1LDUxLjM3NSAtMC4wNjI1LDAuMzEyNSBjIDUuMTg0MzcsNC41MDY5NyA1Ljk0ODg4LDEyLjMyNzk0IDEuNjI1LDE3Ljc1IC0xLjc3MTIsMi4yMjEwNSAtNC4xNDIwOCwzLjcxMDc0IC02LjY4NzUsNC40MDYyNSBsIC0wLjA2MjUsMC4yNSAtNzMuNjI1LDIxLjI1IGMgLTMuNzQ3MjgsLTM0LjI2NTE3IDQuMzI4NTUsLTY3LjU3MzY0IDIxLjM3NSwtOTUuMzQzNzUgeiBtIDI1OC4xNTYyNSwwLjAzMTIgYyA4LjUzNDEsMTMuODMyNTYgMTQuOTk2NTUsMjkuMjgyMTQgMTguODQzNzUsNDYuMDMxMjUgMy44MDEwNiwxNi41NDgyOCA0Ljc1NDk5LDMzLjA2Njk3IDMuMTg3NSw0OS4wMzEyNSBsIC03NCwtMjEuMzEyNSAtMC4wNjI1LC0wLjMxMjUgYyAtNi42MjY1LC0xLjgxMTA0IC0xMC42OTg5MywtOC41NTE2MiAtOS4xNTYyNSwtMTUuMzEyNSAwLjYzMjAzLC0yLjc2OTYyIDIuMTAyMjIsLTUuMTEyNjQgNC4wOTM3NSwtNi44NDM3NSBsIC0wLjAzMTIsLTAuMTU2MjUgNTcuMTI1LC01MS4xMjUgeiBtIC0xNDAuNjU2MjUsNTUuMzEyNSAyMy41MzEyNSwwIDE0LjYyNSwxOC4yODEyNSAtNS4yNSwyMi44MTI1IC0yMS4xMjUsMTAuMTU2MjUgLTIxLjE4NzUsLTEwLjE4NzUgLTUuMjUsLTIyLjgxMjUgeiBtIDc1LjQzNzUsNjIuNTYyNSBjIDAuOTk5OTcsLTAuMDUwNSAxLjk5NTU4LDAuMDM5NiAyLjk2ODc1LDAuMjE4NzUgbCAwLjEyNSwtMC4xNTYyNSA3Ni4xNTYyNSwxMi44NzUgYyAtMTEuMTQ1NSwzMS4zMTMxIC0zMi40NzI4MSw1OC40NDAxOCAtNjAuOTY4NzUsNzYuNTkzNzUgbCAtMjkuNTYyNSwtNzEuNDA2MjUgMC4wOTM3LC0wLjEyNSBjIC0yLjcxNTYxLC02LjMwOTk5IDAuMDAyLC0xMy43MDk1NiA2LjI1LC0xNi43MTg3NSAxLjU5OTY1LC0wLjc3MDQxIDMuMjcwODksLTEuMTk3MDEgNC45Mzc1LC0xLjI4MTI1IHogbSAtMTI3LjkwNjI1LDAuMzEyNSBjIDUuODExNzQsMC4wODE1IDExLjAyNDYyLDQuMTE1MjUgMTIuMzc1LDEwLjAzMTI1IDAuNjMyMTksMi43Njk1OCAwLjMyNDUsNS41MTM3NSAtMC43MTg3NSw3LjkzNzUgbCAwLjIxODc1LDAuMjgxMjUgLTI5LjI1LDcwLjY4NzUgYyAtMjcuMzQ3MTYsLTE3LjU0ODYgLTQ5LjEyOTI3LC00My44MjQwMyAtNjAuNzgxMjUsLTc2LjA2MjQ1IGwgNzUuNSwtMTIuODEyNSAwLjEyNSwwLjE1NjI1IGMgMC44NDQ1MSwtMC4xNTU0MSAxLjcwMSwtMC4yMzA0IDIuNTMxMjUsLTAuMjE4NzUgeiBtIDYzLjc4MTI1LDMwLjk2ODggYyAyLjAyNDQ1LC0wLjA3NDQgNC4wNzg2NSwwLjM0MDk4IDYuMDMxMjUsMS4yODEyNSAyLjU1OTUxLDEuMjMyNTMgNC41MzY3MywzLjE3MzE5IDUuNzgxMjUsNS41IGwgMC4yODEyNSwwIDM3LjIxODc1LDY3LjI1IGMgLTQuODMwMjksMS42MTkyMyAtOS43OTYwOSwzLjAwMzA4IC0xNC44NzUsNC4xNTYyNSAtMjguNDY0NTMsNi40NjI5IC01Ni44Mzg2Miw0LjUwNDY3IC04Mi41MzEyNSwtNC4yNSBsIDM3LjEyNSwtNjcuMTI1IDAuMDYyNSwwIGMgMi4yMjc2NywtNC4xNjQ0MSA2LjQ1MjQ3LC02LjY0ODg3IDEwLjkwNjI1LC02LjgxMjUgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTptZWRpdW07Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bGluZS1oZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7ZGlyZWN0aW9uOmx0cjtibG9jay1wcm9ncmVzc2lvbjp0Yjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7YmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7Y29sb3I6IzAwMDAwMDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuMjU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO2ZvbnQtZmFtaWx5OlNhbnM7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpTYW5zIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2Njc2NjY2NzY3NzY2NzY2NjY2NjY2NzY2Njc2NjY2NjY2NjY2NjY2Njc2NjY3Njc2Njc2NjY2NzY3Njc2NjY2NjY2Njc2NjY3Njc2NjY2NzY2NjY3Njc2NzY2NjY2NjY2NjY2NjY2Njc2NjY3NjY2NjY2NjY2NjY2NzY2NjY2NzY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NzY2Njc2NjY2NjY2NjY3NjY2NzY2NjYyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIuL3BhdGgzMDU5LnBuZyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kubernetes",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kubernetes Namespaces Source",
        "description" : "Consume Events from Kubernetes Namespaces",
        "required" : [ "token", "masterUrl" ],
        "type" : "object",
        "properties" : {
          "token" : {
            "title" : "Oauth Token",
            "description" : "The Auth Token to connect to Kubernetes Cluster",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "masterUrl" : {
            "title" : "Kubernetes Master URL",
            "description" : "The Kubernetes Cluster Master URL",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:kubernetes", "camel:kamelet", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kubernetes-namespaces://{{masterUrl}}",
          "parameters" : {
            "oauthToken" : "{{token}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kubernetes Namespaces Source",
      "description" : "Consume Events from Kubernetes Namespaces",
      "required" : [ "token", "masterUrl" ],
      "properties" : {
        "token" : {
          "type" : "string",
          "title" : "Oauth Token",
          "description" : "The Auth Token to connect to Kubernetes Cluster",
          "format" : "password"
        },
        "masterUrl" : {
          "type" : "string",
          "title" : "Kubernetes Master URL",
          "description" : "The Kubernetes Cluster Master URL"
        }
      }
    }
  },
  "kubernetes-nodes-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kubernetes-nodes-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNzIyLjg0NTciCiAgIGhlaWdodD0iNzAxLjk2NjM3IgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjQgcjk5MzkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImxvZ28uc3ZnIgogICBpbmtzY2FwZTpleHBvcnQtZmlsZW5hbWU9Ii9ob21lL3Rob2NraW4vc3JjL2t1YmVybmV0ZXMvbmV3LnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ2MC45NTAwMSIKICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ2MC45NTAwMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjE2LjE5MDUwOSIKICAgICBpbmtzY2FwZTpjeD0iMjc3LjU2ODUxIgogICAgIGlua3NjYXBlOmN5PSIxNTcuNTQ0OTQiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImczMDUyIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE1MTkiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iODIyIgogICAgIGlua3NjYXBlOndpbmRvdy14PSI1MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMjUiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjEwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMTAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMTAiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02LjMyNjA5NDIsLTE3NC43NTI0KSI+CiAgICA8ZwogICAgICAgaWQ9ImczMDUyIj4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9ImZpbGw6IzMyNmNlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBkPSJtIDM2NS4zMTI1LDE4NC44MTI1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMTcuOTA2MjUsNC41MzEyNSBsIC0yNDQuMzQzNzUsMTE2Ljc1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMjUuMjgxMjUsMzEuNDM3NSBMIDE3LjUsNTk5Ljc4MTI1IEEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAyMy44NDM3NSw2MzUuMzEyNSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDI2LjUsNjM5IGwgMTY5LjEyNSwyMTAuMjgxMjUgYSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDM2LjUzMTI1LDE3LjQzNzUgTCA1MDMuMzc1LDg2Ni42NTYyNSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgNTM5LjkwNjI1LDg0OS4yNSBMIDcwOC45Njg3NSw2MzguOTM3NSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgNzE4LDU5OS43MTg3NSBsIC02MC4zNzUsLTI2Mi4yNSBhIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgLTI1LjI4MTI1LC0zMS40Mzc1IGwgLTI0NC4zNzUsLTExNi42ODc1IEEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAzNjUuMzEyNSwxODQuODEyNSB6IgogICAgICAgICBpZD0icGF0aDMwNTUiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0ibmV3LnBuZyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgzMDU5IgogICAgICAgICBkPSJtIDM2Ny43MzM2NiwyNzQuMDU5NjIgYyAtOC4wNzY5Niw4LjJlLTQgLTE0LjYyNTk2LDcuMjc1OTEgLTE0LjYyNSwxNi4yNSAxZS01LDAuMTM3NzMgMC4wMjgyLDAuMjY5MzQgMC4wMzEyLDAuNDA2MjUgLTAuMDExOSwxLjIxOTM2IC0wLjA3MDgsMi42ODgzNiAtMC4wMzEyLDMuNzUgMC4xOTI2Miw1LjE3NiAxLjMyMDksOS4xMzc0OSAyLDEzLjkwNjI1IDEuMjMwMjgsMTAuMjA2NjYgMi4yNjExNywxOC42NjczNiAxLjYyNSwyNi41MzEyNSAtMC42MTg2OSwyLjk2NTQgLTIuODAyODgsNS42Nzc0MSAtNC43NSw3LjU2MjUgbCAtMC4zNDM3NSw2LjE4NzUgYyAtOC43NzY4MiwwLjcyNzE3IC0xNy42MTIzNSwyLjA1ODc0IC0yNi40Mzc1LDQuMDYyNSAtMzcuOTc0NjEsOC42MjIxOCAtNzAuNjcwMDgsMjguMTgzMDcgLTk1LjU2MjUsNTQuNTkzNzUgLTEuNjE1MjIsLTEuMTAxOTMgLTQuNDQxMDMsLTMuMTI5MTQgLTUuMjgxMywtMy43NSAtMi42MTExNywwLjM1MjYyIC01LjI1MDIxLDEuMTU4MjkgLTguNjg3NSwtMC44NDM3NSAtNi41NDQ5MSwtNC40MDU2MyAtMTIuNTA1ODcsLTEwLjQ4NjkzIC0xOS43MTg3NSwtMTcuODEyNSAtMy4zMDQ5OCwtMy41MDQxOSAtNS42OTgzMiwtNi44NDEwMSAtOS42MjUsLTEwLjIxODc1IC0wLjg5MTcyLC0wLjc2NzA3IC0yLjI1MjU4LC0xLjgwNDU1IC0zLjI1LC0yLjU5Mzc1IC0zLjA2OTg4LC0yLjQ0NzU3IC02LjY5MDcsLTMuNzI0MDIgLTEwLjE4NzUsLTMuODQzNzUgLTQuNDk1ODksLTAuMTUzOTQgLTguODIzOTQsMS42MDM4NSAtMTEuNjU2MjUsNS4xNTYyNSAtNS4wMzUyMSw2LjMxNTM4IC0zLjQyMzEyLDE1Ljk2ODA1IDMuNTkzNzUsMjEuNTYyNSAwLjA3MTIsMC4wNTY3IDAuMTQ3MDIsMC4xMDA3OCAwLjIxODc1LDAuMTU2MjUgMC45NjQyMiwwLjc4MTYyIDIuMTQ0OTYsMS43ODMxMyAzLjAzMTI1LDIuNDM3NSA0LjE2Njg3LDMuMDc2NTUgNy45NzMyLDQuNjUxNDUgMTIuMTI1LDcuMDkzNzUgOC43NDcsNS40MDE4MSAxNS45OTgzNyw5Ljg4MDg2IDIxLjc1LDE1LjI4MTI1IDIuMjQ2MDIsMi4zOTQxNyAyLjYzODU4LDYuNjEyOTIgMi45Mzc1LDguNDM3NSBsIDQuNjg3NSw0LjE4NzUgYyAtMjUuMDkzNDIsMzcuNzYzNjggLTM2LjcwNjg2LDg0LjQwOTQ2IC0yOS44NDM3LDEzMS45Mzc1IGwgLTYuMTI1LDEuNzgxMjUgYyAtMS42MTQzLDIuMDg0NjEgLTMuODk1NDEsNS4zNjQ3NCAtNi4yODEzLDYuMzQzNzUgLTcuNTI1MTMsMi4zNzAyMSAtMTUuOTk0MjQsMy4yNDA1OSAtMjYuMjE4NzUsNC4zMTI1IC00LjgwMDMxLDAuMzk5MTUgLTguOTQyMTgsMC4xNjA5NSAtMTQuMDMxMjUsMS4xMjUgLTEuMTIwMDgsMC4yMTIxOCAtMi42ODA3MiwwLjYxODc3IC0zLjkwNjI1LDAuOTA2MjUgLTAuMDQyNiwwLjAwOSAtMC4wODI0LDAuMDIxNiAtMC4xMjUsMC4wMzEyIC0wLjA2NjgsMC4wMTU1IC0wLjE1NDU2LDAuMDQ3OSAtMC4yMTg3NSwwLjA2MjUgLTguNjIwMTQsMi4wODI3OSAtMTQuMTU3NzQsMTAuMDA2IC0xMi4zNzUsMTcuODEyNSAxLjc4MzE2LDcuODA4MzMgMTAuMjAzMTQsMTIuNTU2NzcgMTguODc1LDEwLjY4NzUgMC4wNjI2LC0wLjAxNDMgMC4xNTM1LC0wLjAxNjcgMC4yMTg3NSwtMC4wMzEyIDAuMDk3OSwtMC4wMjI0IDAuMTg0MDksLTAuMDY5OSAwLjI4MTI1LC0wLjA5MzcgMS4yMDg4NSwtMC4yNjUzNiAyLjcyMzc3LC0wLjU2MDYgMy43ODEyNSwtMC44NDM3NSA1LjAwMzM0LC0xLjMzOTYzIDguNjI2OTQsLTMuMzA3OTYgMTMuMTI1LC01LjAzMTI1IDkuNjc2OTQsLTMuNDcwNzcgMTcuNjkxNzMsLTYuMzcwMjIgMjUuNSwtNy41IDMuMjYxMTgsLTAuMjU1NDIgNi42OTcxMSwyLjAxMjE2IDguNDA2MjUsMi45Njg3NSBsIDYuMzc1LC0xLjA5Mzc1IGMgMTQuNjcwMTgsNDUuNDgyODIgNDUuNDE0MTYsODIuMjQ1MDIgODQuMzQzNzUsMTA1LjMxMjUgbCAtMi42NTYyNSw2LjM3NSBjIDAuOTU3NDIsMi40NzU0MiAyLjAxMzQxLDUuODI0NyAxLjMwMDIyLDguMjY5MzIgLTIuODM4NjgsNy4zNjEyIC03LjcwMDk3LDE1LjEzMDk3IC0xMy4yMzc3MiwyMy43OTMxOCAtMi42ODA4NSw0LjAwMTkyIC01LjQyNDUzLDcuMTA3NjEgLTcuODQzNzUsMTEuNjg3NSAtMC41Nzg5LDEuMDk1ODkgLTEuMzE2MTgsMi43NzkzMiAtMS44NzUsMy45Mzc1IC0zLjc1ODg0LDguMDQyMzYgLTEuMDAxNjQsMTcuMzA1MiA2LjIxODc1LDIwLjc4MTI1IDcuMjY1NzUsMy40OTc4OCAxNi4yODQ0NywtMC4xOTEzNCAyMC4xODc1LC04LjI1IDAuMDA2LC0wLjAxMTQgMC4wMjU3LC0wLjAxOTggMC4wMzEyLC0wLjAzMTIgMC4wMDQsLTAuMDA5IC0wLjAwNCwtMC4wMjI1IDAsLTAuMDMxMiAwLjU1NTkzLC0xLjE0MjU1IDEuMzQzNTMsLTIuNjQ0MzcgMS44MTI1LC0zLjcxODc1IDIuMDcyMTMsLTQuNzQ3MDIgMi43NjE2MSwtOC44MTUwNiA0LjIxODc1LC0xMy40MDYyNSAzLjg2OTYyLC05LjcyMDE0IDUuOTk1NjcsLTE5LjkxOTAzIDExLjMyMjU4LC0yNi4yNzQxMSAxLjQ1ODY4LC0xLjc0MDIzIDMuODM2ODEsLTIuNDA5NSA2LjMwMjQyLC0zLjA2OTY0IGwgMy4zMTI1LC02IGMgMzMuOTM4MjQsMTMuMDI2OCA3MS45MjY2NiwxNi41MjI0NiAxMDkuODc1LDcuOTA2MjUgOC42NTY5NywtMS45NjU1NyAxNy4wMTQ0NCwtNC41MDk0NSAyNS4wOTM3NSwtNy41NjI1IDAuOTMwOTgsMS42NTEzMyAyLjY2MTEzLDQuODI1NyAzLjEyNSw1LjYyNSAyLjUwNTU5LDAuODE1MTggNS4yNDA0NCwxLjIzNjE0IDcuNDY4NzUsNC41MzEyNSAzLjk4NTM5LDYuODA4OTggNi43MTA5LDE0Ljg2NDE2IDEwLjAzMTI1LDI0LjU5Mzc1IDEuNDU3MzgsNC41OTExMSAyLjE3NzYyLDguNjU5MzMgNC4yNSwxMy40MDYyNSAwLjQ3MjM0LDEuMDgxOTUgMS4yNTYsMi42MDQ4NiAxLjgxMjUsMy43NSAzLjg5NDgyLDguMDg0ODQgMTIuOTQyMTIsMTEuNzg2NjcgMjAuMjE4NzUsOC4yODEyNSA3LjIxOTUsLTMuNDc3OSA5Ljk3OTc0LC0xMi43Mzk5IDYuMjE4NzUsLTIwLjc4MTI1IC0wLjU1ODg5LC0xLjE1ODE0IC0xLjMyNzMsLTIuODQxNjQgLTEuOTA2MjUsLTMuOTM3NSAtMi40MTk0NiwtNC41Nzk3NiAtNS4xNjI3LC03LjY1NDQ4IC03Ljg0Mzc1LC0xMS42NTYyNSAtNS41MzcyMSwtOC42NjE5MiAtMTAuMTI5NjgsLTE1Ljg1NzcgLTEyLjk2ODc1LC0yMy4yMTg3NSAtMS4xODcxMSwtMy43OTY1NyAwLjIwMDI4LC02LjE1Nzc0IDEuMTI1LC04LjYyNSAtMC41NTM3OCwtMC42MzQ3NyAtMS43Mzg4MSwtNC4yMjAwOSAtMi40Mzc1LC01LjkwNjI1IDQwLjQ1NzQsLTIzLjg4ODE2IDcwLjI5ODU2LC02Mi4wMjEyOSA4NC4zMTI1LC0xMDYuMDYyNSAxLjg5MjQsMC4yOTc0MiA1LjE4MTU0LDAuODc5MzYgNi4yNSwxLjA5Mzc1IDIuMTk5NTQsLTEuNDUwNyA0LjIyMTk0LC0zLjM0MzUyIDguMTg3NSwtMy4wMzEyNSA3LjgwODMyLDEuMTI5MzcgMTUuODIyODgsNC4wMjk3MyAyNS41LDcuNSA0LjQ5ODE1LDEuNzIzMDYgOC4xMjE2LDMuNzIzMTMgMTMuMTI1LDUuMDYyNSAxLjA1NzQ5LDAuMjgzMDkgMi41NzIzOCwwLjU0NzIgMy43ODEyNSwwLjgxMjUgMC4wOTcyLDAuMDIzOCAwLjE4MzMsMC4wNzE0IDAuMjgxMjUsMC4wOTM3IDAuMDY1MywwLjAxNDYgMC4xNTYxNSwwLjAxNjkgMC4yMTg3NSwwLjAzMTIgOC42NzIzNiwxLjg2Njk1IDE3LjA5Mzg0LC0yLjg3ODcxIDE4Ljg3NSwtMTAuNjg3NSAxLjc4MDc0LC03LjgwNjk2IC0zLjc1NDMsLTE1LjczMjAxIC0xMi4zNzUsLTE3LjgxMjUgLTEuMjUzOTMsLTAuMjg1MTMgLTMuMDMyMjUsLTAuNzY5MzggLTQuMjUsLTEgLTUuMDg5MTIsLTAuOTYzNzggLTkuMjMwOTIsLTAuNzI2MSAtMTQuMDMxMjUsLTEuMTI1IC0xMC4yMjQ1NiwtMS4wNzEzOCAtMTguNjkzNSwtMS45NDI2OSAtMjYuMjE4NzUsLTQuMzEyNSAtMy4wNjgyNiwtMS4xOTAyOCAtNS4yNTEwMywtNC44NDEyNCAtNi4zMTI1NSwtNi4zNDM3NSBsIC01LjkwNjI1LC0xLjcxODc1IGMgMy4wNjIyNiwtMjIuMTU0NDIgMi4yMzY1NSwtNDUuMjExMzQgLTMuMDYyNSwtNjguMjgxMjUgLTUuMzQ4MzksLTIzLjI4NDcxIC0xNC44MDAzNywtNDQuNTgwODQgLTI3LjQwNjI1LC02My4zNDM3NSAxLjUxNTA1LC0xLjM3NzI5IDQuMzc2MTksLTMuOTEwOTEgNS4xODc1LC00LjY1NjI1IDAuMjM3MTYsLTIuNjI0MTcgMC4wMzM0LC01LjM3NTUzIDIuNzUsLTguMjgxMjUgNS43NTEzNCwtNS40MDA2OSAxMy4wMDMyOSwtOS44Nzg5OCAyMS43NSwtMTUuMjgxMjUgNC4xNTE2NywtMi40NDI1MiA3Ljk4OTU0LC00LjAxNjk4IDEyLjE1NjI1LC03LjA5Mzc1IDAuOTQyMjUsLTAuNjk1NzYgMi4yMjg5LC0xLjc5NzU5IDMuMjE4NzUsLTIuNTkzNzUgNy4wMTUzOCwtNS41OTYzMyA4LjYzMDU4LC0xNS4yNDg0MiAzLjU5Mzc1LC0yMS41NjI1IC01LjAzNjgzLC02LjMxNDA4IC0xNC43OTcxMiwtNi45MDg4MyAtMjEuODEyNSwtMS4zMTI1IC0wLjk5ODU2LDAuNzkwODUgLTIuMzUzNTMsMS44MjI1MiAtMy4yNSwyLjU5Mzc1IC0zLjkyNjUsMy4zNzc5NiAtNi4zNTE0NSw2LjcxNDM5IC05LjY1NjI1LDEwLjIxODc1IC03LjIxMjQ5LDcuMzI1OTUgLTEzLjE3NDA3LDEzLjQzNzc3IC0xOS43MTg3NSwxNy44NDM3NSAtMi44MzYwMSwxLjY1MTA2IC02Ljk4OTk2LDEuMDc5NzggLTguODc1MDUsMC45Njg3NSBsIC01LjU2MjUsMy45Njg3NSBjIC0zMS43MTg4LC0zMy4yNjA1NyAtNzQuOTA0NjYsLTU0LjUyNTQ2IC0xMjEuNDA2MDUsLTU4LjY1NjMgLTAuMTMwMDYsLTEuOTQ4NzIgLTAuMzAwNDUsLTUuNDcxMTcgLTAuMzQzNzUsLTYuNTMxMjUgLTEuOTAzNzEsLTEuODIxNjUgLTQuMjAzNDIsLTMuMzc2ODYgLTQuNzgxMjUsLTcuMzEyNSAtMC42MzYxNywtNy44NjM4OSAwLjQyNTk3LC0xNi4zMjQ1OSAxLjY1NjI1LC0yNi41MzEyNSAwLjY3OTEsLTQuNzY4NzYgMS44MDczOCwtOC43MzAyNSAyLC0xMy45MDYyNSAwLjA0MzgsLTEuMTc2NjMgLTAuMDI2NSwtMi44ODQwMSAtMC4wMzEyLC00LjE1NjI1IC05LjZlLTQsLTguOTc0MDkgLTYuNTQ4MDQsLTE2LjI1MDgyIC0xNC42MjUsLTE2LjI1IHogbSAtMTguMzEyNSwxMTMuNDM3NSAtNC4zNDM3NSw3Ni43MTg3NSAtMC4zMTI1LDAuMTU2MjUgYyAtMC4yOTEzNCw2Ljg2MzM1IC01LjkzOTk2LDEyLjM0Mzc1IC0xMi44NzUsMTIuMzQzNzUgLTIuODQwODEsMCAtNS40NjI5NCwtMC45MTIyOSAtNy41OTM3NSwtMi40Njg3NSBsIC0wLjEyNSwwLjA2MjUgLTYyLjkwNjI1LC00NC41OTM3NSBjIDE5LjMzMzY1LC0xOS4wMTExNSA0NC4wNjI5MSwtMzMuMDYwMzkgNzIuNTYyNSwtMzkuNTMxMjUgNS4yMDU5OSwtMS4xODIwMyAxMC40MDk2NiwtMi4wNTkxIDE1LjU5Mzc1LC0yLjY4NzUgeiBtIDM2LjY1NjI1LDAgYyAzMy4yNzM0Nyw0LjA5MjMyIDY0LjA0NTAxLDE5LjE1ODgyIDg3LjYyNSw0Mi4yNSBsIC02Mi41LDQ0LjMxMjUgLTAuMjE4NzUsLTAuMDkzNyBjIC01LjU0NzQ1LDQuMDUxNjkgLTEzLjM2MzQzLDMuMDQ2MzkgLTE3LjY4NzUsLTIuMzc1IC0xLjc3MTMyLC0yLjIyMDk2IC0yLjcwMDcyLC00LjgzMjM5IC0yLjgxMjUsLTcuNDY4NzUgbCAtMC4wNjI1LC0wLjAzMTIgeiBtIC0xNDcuNjI1LDcwLjg3NSA1Ny40Mzc1LDUxLjM3NSAtMC4wNjI1LDAuMzEyNSBjIDUuMTg0MzcsNC41MDY5NyA1Ljk0ODg4LDEyLjMyNzk0IDEuNjI1LDE3Ljc1IC0xLjc3MTIsMi4yMjEwNSAtNC4xNDIwOCwzLjcxMDc0IC02LjY4NzUsNC40MDYyNSBsIC0wLjA2MjUsMC4yNSAtNzMuNjI1LDIxLjI1IGMgLTMuNzQ3MjgsLTM0LjI2NTE3IDQuMzI4NTUsLTY3LjU3MzY0IDIxLjM3NSwtOTUuMzQzNzUgeiBtIDI1OC4xNTYyNSwwLjAzMTIgYyA4LjUzNDEsMTMuODMyNTYgMTQuOTk2NTUsMjkuMjgyMTQgMTguODQzNzUsNDYuMDMxMjUgMy44MDEwNiwxNi41NDgyOCA0Ljc1NDk5LDMzLjA2Njk3IDMuMTg3NSw0OS4wMzEyNSBsIC03NCwtMjEuMzEyNSAtMC4wNjI1LC0wLjMxMjUgYyAtNi42MjY1LC0xLjgxMTA0IC0xMC42OTg5MywtOC41NTE2MiAtOS4xNTYyNSwtMTUuMzEyNSAwLjYzMjAzLC0yLjc2OTYyIDIuMTAyMjIsLTUuMTEyNjQgNC4wOTM3NSwtNi44NDM3NSBsIC0wLjAzMTIsLTAuMTU2MjUgNTcuMTI1LC01MS4xMjUgeiBtIC0xNDAuNjU2MjUsNTUuMzEyNSAyMy41MzEyNSwwIDE0LjYyNSwxOC4yODEyNSAtNS4yNSwyMi44MTI1IC0yMS4xMjUsMTAuMTU2MjUgLTIxLjE4NzUsLTEwLjE4NzUgLTUuMjUsLTIyLjgxMjUgeiBtIDc1LjQzNzUsNjIuNTYyNSBjIDAuOTk5OTcsLTAuMDUwNSAxLjk5NTU4LDAuMDM5NiAyLjk2ODc1LDAuMjE4NzUgbCAwLjEyNSwtMC4xNTYyNSA3Ni4xNTYyNSwxMi44NzUgYyAtMTEuMTQ1NSwzMS4zMTMxIC0zMi40NzI4MSw1OC40NDAxOCAtNjAuOTY4NzUsNzYuNTkzNzUgbCAtMjkuNTYyNSwtNzEuNDA2MjUgMC4wOTM3LC0wLjEyNSBjIC0yLjcxNTYxLC02LjMwOTk5IDAuMDAyLC0xMy43MDk1NiA2LjI1LC0xNi43MTg3NSAxLjU5OTY1LC0wLjc3MDQxIDMuMjcwODksLTEuMTk3MDEgNC45Mzc1LC0xLjI4MTI1IHogbSAtMTI3LjkwNjI1LDAuMzEyNSBjIDUuODExNzQsMC4wODE1IDExLjAyNDYyLDQuMTE1MjUgMTIuMzc1LDEwLjAzMTI1IDAuNjMyMTksMi43Njk1OCAwLjMyNDUsNS41MTM3NSAtMC43MTg3NSw3LjkzNzUgbCAwLjIxODc1LDAuMjgxMjUgLTI5LjI1LDcwLjY4NzUgYyAtMjcuMzQ3MTYsLTE3LjU0ODYgLTQ5LjEyOTI3LC00My44MjQwMyAtNjAuNzgxMjUsLTc2LjA2MjQ1IGwgNzUuNSwtMTIuODEyNSAwLjEyNSwwLjE1NjI1IGMgMC44NDQ1MSwtMC4xNTU0MSAxLjcwMSwtMC4yMzA0IDIuNTMxMjUsLTAuMjE4NzUgeiBtIDYzLjc4MTI1LDMwLjk2ODggYyAyLjAyNDQ1LC0wLjA3NDQgNC4wNzg2NSwwLjM0MDk4IDYuMDMxMjUsMS4yODEyNSAyLjU1OTUxLDEuMjMyNTMgNC41MzY3MywzLjE3MzE5IDUuNzgxMjUsNS41IGwgMC4yODEyNSwwIDM3LjIxODc1LDY3LjI1IGMgLTQuODMwMjksMS42MTkyMyAtOS43OTYwOSwzLjAwMzA4IC0xNC44NzUsNC4xNTYyNSAtMjguNDY0NTMsNi40NjI5IC01Ni44Mzg2Miw0LjUwNDY3IC04Mi41MzEyNSwtNC4yNSBsIDM3LjEyNSwtNjcuMTI1IDAuMDYyNSwwIGMgMi4yMjc2NywtNC4xNjQ0MSA2LjQ1MjQ3LC02LjY0ODg3IDEwLjkwNjI1LC02LjgxMjUgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTptZWRpdW07Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bGluZS1oZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7ZGlyZWN0aW9uOmx0cjtibG9jay1wcm9ncmVzc2lvbjp0Yjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7YmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7Y29sb3I6IzAwMDAwMDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuMjU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO2ZvbnQtZmFtaWx5OlNhbnM7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpTYW5zIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2Njc2NjY2NzY3NzY2NzY2NjY2NjY2NzY2Njc2NjY2NjY2NjY2NjY2Njc2NjY3Njc2Njc2NjY2NzY3Njc2NjY2NjY2Njc2NjY3Njc2NjY2NzY2NjY3Njc2NzY2NjY2NjY2NjY2NjY2Njc2NjY3NjY2NjY2NjY2NjY2NzY2NjY2NzY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NzY2Njc2NjY2NjY2NjY3NjY2NzY2NjYyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIuL3BhdGgzMDU5LnBuZyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kubernetes",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kubernetes Nodes Source",
        "description" : "Consume Events from Kubernetes Nodes",
        "required" : [ "token", "masterUrl" ],
        "type" : "object",
        "properties" : {
          "token" : {
            "title" : "Oauth Token",
            "description" : "The Auth Token to connect to Kubernetes Cluster",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "masterUrl" : {
            "title" : "Kubernetes Master URL",
            "description" : "The Kubernetes Cluster Master URL",
            "type" : "string"
          },
          "resourceName" : {
            "title" : "Resource Name",
            "description" : "The Resource Name we want to watch",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:kubernetes", "camel:kamelet", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kubernetes-nodes://{{masterUrl}}",
          "parameters" : {
            "oauthToken" : "{{token}}",
            "resourceName" : "{{?resourceName}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kubernetes Nodes Source",
      "description" : "Consume Events from Kubernetes Nodes",
      "required" : [ "token", "masterUrl" ],
      "properties" : {
        "token" : {
          "type" : "string",
          "title" : "Oauth Token",
          "description" : "The Auth Token to connect to Kubernetes Cluster",
          "format" : "password"
        },
        "masterUrl" : {
          "type" : "string",
          "title" : "Kubernetes Master URL",
          "description" : "The Kubernetes Cluster Master URL"
        },
        "resourceName" : {
          "type" : "string",
          "title" : "Resource Name",
          "description" : "The Resource Name we want to watch"
        }
      }
    }
  },
  "kubernetes-pods-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "kubernetes-pods-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNzIyLjg0NTciCiAgIGhlaWdodD0iNzAxLjk2NjM3IgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjQgcjk5MzkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImxvZ28uc3ZnIgogICBpbmtzY2FwZTpleHBvcnQtZmlsZW5hbWU9Ii9ob21lL3Rob2NraW4vc3JjL2t1YmVybmV0ZXMvbmV3LnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ2MC45NTAwMSIKICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ2MC45NTAwMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjE2LjE5MDUwOSIKICAgICBpbmtzY2FwZTpjeD0iMjc3LjU2ODUxIgogICAgIGlua3NjYXBlOmN5PSIxNTcuNTQ0OTQiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImczMDUyIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE1MTkiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iODIyIgogICAgIGlua3NjYXBlOndpbmRvdy14PSI1MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMjUiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjEwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMTAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMTAiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02LjMyNjA5NDIsLTE3NC43NTI0KSI+CiAgICA8ZwogICAgICAgaWQ9ImczMDUyIj4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9ImZpbGw6IzMyNmNlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBkPSJtIDM2NS4zMTI1LDE4NC44MTI1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMTcuOTA2MjUsNC41MzEyNSBsIC0yNDQuMzQzNzUsMTE2Ljc1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMjUuMjgxMjUsMzEuNDM3NSBMIDE3LjUsNTk5Ljc4MTI1IEEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAyMy44NDM3NSw2MzUuMzEyNSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDI2LjUsNjM5IGwgMTY5LjEyNSwyMTAuMjgxMjUgYSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDM2LjUzMTI1LDE3LjQzNzUgTCA1MDMuMzc1LDg2Ni42NTYyNSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgNTM5LjkwNjI1LDg0OS4yNSBMIDcwOC45Njg3NSw2MzguOTM3NSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgNzE4LDU5OS43MTg3NSBsIC02MC4zNzUsLTI2Mi4yNSBhIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgLTI1LjI4MTI1LC0zMS40Mzc1IGwgLTI0NC4zNzUsLTExNi42ODc1IEEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAzNjUuMzEyNSwxODQuODEyNSB6IgogICAgICAgICBpZD0icGF0aDMwNTUiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0ibmV3LnBuZyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgzMDU5IgogICAgICAgICBkPSJtIDM2Ny43MzM2NiwyNzQuMDU5NjIgYyAtOC4wNzY5Niw4LjJlLTQgLTE0LjYyNTk2LDcuMjc1OTEgLTE0LjYyNSwxNi4yNSAxZS01LDAuMTM3NzMgMC4wMjgyLDAuMjY5MzQgMC4wMzEyLDAuNDA2MjUgLTAuMDExOSwxLjIxOTM2IC0wLjA3MDgsMi42ODgzNiAtMC4wMzEyLDMuNzUgMC4xOTI2Miw1LjE3NiAxLjMyMDksOS4xMzc0OSAyLDEzLjkwNjI1IDEuMjMwMjgsMTAuMjA2NjYgMi4yNjExNywxOC42NjczNiAxLjYyNSwyNi41MzEyNSAtMC42MTg2OSwyLjk2NTQgLTIuODAyODgsNS42Nzc0MSAtNC43NSw3LjU2MjUgbCAtMC4zNDM3NSw2LjE4NzUgYyAtOC43NzY4MiwwLjcyNzE3IC0xNy42MTIzNSwyLjA1ODc0IC0yNi40Mzc1LDQuMDYyNSAtMzcuOTc0NjEsOC42MjIxOCAtNzAuNjcwMDgsMjguMTgzMDcgLTk1LjU2MjUsNTQuNTkzNzUgLTEuNjE1MjIsLTEuMTAxOTMgLTQuNDQxMDMsLTMuMTI5MTQgLTUuMjgxMywtMy43NSAtMi42MTExNywwLjM1MjYyIC01LjI1MDIxLDEuMTU4MjkgLTguNjg3NSwtMC44NDM3NSAtNi41NDQ5MSwtNC40MDU2MyAtMTIuNTA1ODcsLTEwLjQ4NjkzIC0xOS43MTg3NSwtMTcuODEyNSAtMy4zMDQ5OCwtMy41MDQxOSAtNS42OTgzMiwtNi44NDEwMSAtOS42MjUsLTEwLjIxODc1IC0wLjg5MTcyLC0wLjc2NzA3IC0yLjI1MjU4LC0xLjgwNDU1IC0zLjI1LC0yLjU5Mzc1IC0zLjA2OTg4LC0yLjQ0NzU3IC02LjY5MDcsLTMuNzI0MDIgLTEwLjE4NzUsLTMuODQzNzUgLTQuNDk1ODksLTAuMTUzOTQgLTguODIzOTQsMS42MDM4NSAtMTEuNjU2MjUsNS4xNTYyNSAtNS4wMzUyMSw2LjMxNTM4IC0zLjQyMzEyLDE1Ljk2ODA1IDMuNTkzNzUsMjEuNTYyNSAwLjA3MTIsMC4wNTY3IDAuMTQ3MDIsMC4xMDA3OCAwLjIxODc1LDAuMTU2MjUgMC45NjQyMiwwLjc4MTYyIDIuMTQ0OTYsMS43ODMxMyAzLjAzMTI1LDIuNDM3NSA0LjE2Njg3LDMuMDc2NTUgNy45NzMyLDQuNjUxNDUgMTIuMTI1LDcuMDkzNzUgOC43NDcsNS40MDE4MSAxNS45OTgzNyw5Ljg4MDg2IDIxLjc1LDE1LjI4MTI1IDIuMjQ2MDIsMi4zOTQxNyAyLjYzODU4LDYuNjEyOTIgMi45Mzc1LDguNDM3NSBsIDQuNjg3NSw0LjE4NzUgYyAtMjUuMDkzNDIsMzcuNzYzNjggLTM2LjcwNjg2LDg0LjQwOTQ2IC0yOS44NDM3LDEzMS45Mzc1IGwgLTYuMTI1LDEuNzgxMjUgYyAtMS42MTQzLDIuMDg0NjEgLTMuODk1NDEsNS4zNjQ3NCAtNi4yODEzLDYuMzQzNzUgLTcuNTI1MTMsMi4zNzAyMSAtMTUuOTk0MjQsMy4yNDA1OSAtMjYuMjE4NzUsNC4zMTI1IC00LjgwMDMxLDAuMzk5MTUgLTguOTQyMTgsMC4xNjA5NSAtMTQuMDMxMjUsMS4xMjUgLTEuMTIwMDgsMC4yMTIxOCAtMi42ODA3MiwwLjYxODc3IC0zLjkwNjI1LDAuOTA2MjUgLTAuMDQyNiwwLjAwOSAtMC4wODI0LDAuMDIxNiAtMC4xMjUsMC4wMzEyIC0wLjA2NjgsMC4wMTU1IC0wLjE1NDU2LDAuMDQ3OSAtMC4yMTg3NSwwLjA2MjUgLTguNjIwMTQsMi4wODI3OSAtMTQuMTU3NzQsMTAuMDA2IC0xMi4zNzUsMTcuODEyNSAxLjc4MzE2LDcuODA4MzMgMTAuMjAzMTQsMTIuNTU2NzcgMTguODc1LDEwLjY4NzUgMC4wNjI2LC0wLjAxNDMgMC4xNTM1LC0wLjAxNjcgMC4yMTg3NSwtMC4wMzEyIDAuMDk3OSwtMC4wMjI0IDAuMTg0MDksLTAuMDY5OSAwLjI4MTI1LC0wLjA5MzcgMS4yMDg4NSwtMC4yNjUzNiAyLjcyMzc3LC0wLjU2MDYgMy43ODEyNSwtMC44NDM3NSA1LjAwMzM0LC0xLjMzOTYzIDguNjI2OTQsLTMuMzA3OTYgMTMuMTI1LC01LjAzMTI1IDkuNjc2OTQsLTMuNDcwNzcgMTcuNjkxNzMsLTYuMzcwMjIgMjUuNSwtNy41IDMuMjYxMTgsLTAuMjU1NDIgNi42OTcxMSwyLjAxMjE2IDguNDA2MjUsMi45Njg3NSBsIDYuMzc1LC0xLjA5Mzc1IGMgMTQuNjcwMTgsNDUuNDgyODIgNDUuNDE0MTYsODIuMjQ1MDIgODQuMzQzNzUsMTA1LjMxMjUgbCAtMi42NTYyNSw2LjM3NSBjIDAuOTU3NDIsMi40NzU0MiAyLjAxMzQxLDUuODI0NyAxLjMwMDIyLDguMjY5MzIgLTIuODM4NjgsNy4zNjEyIC03LjcwMDk3LDE1LjEzMDk3IC0xMy4yMzc3MiwyMy43OTMxOCAtMi42ODA4NSw0LjAwMTkyIC01LjQyNDUzLDcuMTA3NjEgLTcuODQzNzUsMTEuNjg3NSAtMC41Nzg5LDEuMDk1ODkgLTEuMzE2MTgsMi43NzkzMiAtMS44NzUsMy45Mzc1IC0zLjc1ODg0LDguMDQyMzYgLTEuMDAxNjQsMTcuMzA1MiA2LjIxODc1LDIwLjc4MTI1IDcuMjY1NzUsMy40OTc4OCAxNi4yODQ0NywtMC4xOTEzNCAyMC4xODc1LC04LjI1IDAuMDA2LC0wLjAxMTQgMC4wMjU3LC0wLjAxOTggMC4wMzEyLC0wLjAzMTIgMC4wMDQsLTAuMDA5IC0wLjAwNCwtMC4wMjI1IDAsLTAuMDMxMiAwLjU1NTkzLC0xLjE0MjU1IDEuMzQzNTMsLTIuNjQ0MzcgMS44MTI1LC0zLjcxODc1IDIuMDcyMTMsLTQuNzQ3MDIgMi43NjE2MSwtOC44MTUwNiA0LjIxODc1LC0xMy40MDYyNSAzLjg2OTYyLC05LjcyMDE0IDUuOTk1NjcsLTE5LjkxOTAzIDExLjMyMjU4LC0yNi4yNzQxMSAxLjQ1ODY4LC0xLjc0MDIzIDMuODM2ODEsLTIuNDA5NSA2LjMwMjQyLC0zLjA2OTY0IGwgMy4zMTI1LC02IGMgMzMuOTM4MjQsMTMuMDI2OCA3MS45MjY2NiwxNi41MjI0NiAxMDkuODc1LDcuOTA2MjUgOC42NTY5NywtMS45NjU1NyAxNy4wMTQ0NCwtNC41MDk0NSAyNS4wOTM3NSwtNy41NjI1IDAuOTMwOTgsMS42NTEzMyAyLjY2MTEzLDQuODI1NyAzLjEyNSw1LjYyNSAyLjUwNTU5LDAuODE1MTggNS4yNDA0NCwxLjIzNjE0IDcuNDY4NzUsNC41MzEyNSAzLjk4NTM5LDYuODA4OTggNi43MTA5LDE0Ljg2NDE2IDEwLjAzMTI1LDI0LjU5Mzc1IDEuNDU3MzgsNC41OTExMSAyLjE3NzYyLDguNjU5MzMgNC4yNSwxMy40MDYyNSAwLjQ3MjM0LDEuMDgxOTUgMS4yNTYsMi42MDQ4NiAxLjgxMjUsMy43NSAzLjg5NDgyLDguMDg0ODQgMTIuOTQyMTIsMTEuNzg2NjcgMjAuMjE4NzUsOC4yODEyNSA3LjIxOTUsLTMuNDc3OSA5Ljk3OTc0LC0xMi43Mzk5IDYuMjE4NzUsLTIwLjc4MTI1IC0wLjU1ODg5LC0xLjE1ODE0IC0xLjMyNzMsLTIuODQxNjQgLTEuOTA2MjUsLTMuOTM3NSAtMi40MTk0NiwtNC41Nzk3NiAtNS4xNjI3LC03LjY1NDQ4IC03Ljg0Mzc1LC0xMS42NTYyNSAtNS41MzcyMSwtOC42NjE5MiAtMTAuMTI5NjgsLTE1Ljg1NzcgLTEyLjk2ODc1LC0yMy4yMTg3NSAtMS4xODcxMSwtMy43OTY1NyAwLjIwMDI4LC02LjE1Nzc0IDEuMTI1LC04LjYyNSAtMC41NTM3OCwtMC42MzQ3NyAtMS43Mzg4MSwtNC4yMjAwOSAtMi40Mzc1LC01LjkwNjI1IDQwLjQ1NzQsLTIzLjg4ODE2IDcwLjI5ODU2LC02Mi4wMjEyOSA4NC4zMTI1LC0xMDYuMDYyNSAxLjg5MjQsMC4yOTc0MiA1LjE4MTU0LDAuODc5MzYgNi4yNSwxLjA5Mzc1IDIuMTk5NTQsLTEuNDUwNyA0LjIyMTk0LC0zLjM0MzUyIDguMTg3NSwtMy4wMzEyNSA3LjgwODMyLDEuMTI5MzcgMTUuODIyODgsNC4wMjk3MyAyNS41LDcuNSA0LjQ5ODE1LDEuNzIzMDYgOC4xMjE2LDMuNzIzMTMgMTMuMTI1LDUuMDYyNSAxLjA1NzQ5LDAuMjgzMDkgMi41NzIzOCwwLjU0NzIgMy43ODEyNSwwLjgxMjUgMC4wOTcyLDAuMDIzOCAwLjE4MzMsMC4wNzE0IDAuMjgxMjUsMC4wOTM3IDAuMDY1MywwLjAxNDYgMC4xNTYxNSwwLjAxNjkgMC4yMTg3NSwwLjAzMTIgOC42NzIzNiwxLjg2Njk1IDE3LjA5Mzg0LC0yLjg3ODcxIDE4Ljg3NSwtMTAuNjg3NSAxLjc4MDc0LC03LjgwNjk2IC0zLjc1NDMsLTE1LjczMjAxIC0xMi4zNzUsLTE3LjgxMjUgLTEuMjUzOTMsLTAuMjg1MTMgLTMuMDMyMjUsLTAuNzY5MzggLTQuMjUsLTEgLTUuMDg5MTIsLTAuOTYzNzggLTkuMjMwOTIsLTAuNzI2MSAtMTQuMDMxMjUsLTEuMTI1IC0xMC4yMjQ1NiwtMS4wNzEzOCAtMTguNjkzNSwtMS45NDI2OSAtMjYuMjE4NzUsLTQuMzEyNSAtMy4wNjgyNiwtMS4xOTAyOCAtNS4yNTEwMywtNC44NDEyNCAtNi4zMTI1NSwtNi4zNDM3NSBsIC01LjkwNjI1LC0xLjcxODc1IGMgMy4wNjIyNiwtMjIuMTU0NDIgMi4yMzY1NSwtNDUuMjExMzQgLTMuMDYyNSwtNjguMjgxMjUgLTUuMzQ4MzksLTIzLjI4NDcxIC0xNC44MDAzNywtNDQuNTgwODQgLTI3LjQwNjI1LC02My4zNDM3NSAxLjUxNTA1LC0xLjM3NzI5IDQuMzc2MTksLTMuOTEwOTEgNS4xODc1LC00LjY1NjI1IDAuMjM3MTYsLTIuNjI0MTcgMC4wMzM0LC01LjM3NTUzIDIuNzUsLTguMjgxMjUgNS43NTEzNCwtNS40MDA2OSAxMy4wMDMyOSwtOS44Nzg5OCAyMS43NSwtMTUuMjgxMjUgNC4xNTE2NywtMi40NDI1MiA3Ljk4OTU0LC00LjAxNjk4IDEyLjE1NjI1LC03LjA5Mzc1IDAuOTQyMjUsLTAuNjk1NzYgMi4yMjg5LC0xLjc5NzU5IDMuMjE4NzUsLTIuNTkzNzUgNy4wMTUzOCwtNS41OTYzMyA4LjYzMDU4LC0xNS4yNDg0MiAzLjU5Mzc1LC0yMS41NjI1IC01LjAzNjgzLC02LjMxNDA4IC0xNC43OTcxMiwtNi45MDg4MyAtMjEuODEyNSwtMS4zMTI1IC0wLjk5ODU2LDAuNzkwODUgLTIuMzUzNTMsMS44MjI1MiAtMy4yNSwyLjU5Mzc1IC0zLjkyNjUsMy4zNzc5NiAtNi4zNTE0NSw2LjcxNDM5IC05LjY1NjI1LDEwLjIxODc1IC03LjIxMjQ5LDcuMzI1OTUgLTEzLjE3NDA3LDEzLjQzNzc3IC0xOS43MTg3NSwxNy44NDM3NSAtMi44MzYwMSwxLjY1MTA2IC02Ljk4OTk2LDEuMDc5NzggLTguODc1MDUsMC45Njg3NSBsIC01LjU2MjUsMy45Njg3NSBjIC0zMS43MTg4LC0zMy4yNjA1NyAtNzQuOTA0NjYsLTU0LjUyNTQ2IC0xMjEuNDA2MDUsLTU4LjY1NjMgLTAuMTMwMDYsLTEuOTQ4NzIgLTAuMzAwNDUsLTUuNDcxMTcgLTAuMzQzNzUsLTYuNTMxMjUgLTEuOTAzNzEsLTEuODIxNjUgLTQuMjAzNDIsLTMuMzc2ODYgLTQuNzgxMjUsLTcuMzEyNSAtMC42MzYxNywtNy44NjM4OSAwLjQyNTk3LC0xNi4zMjQ1OSAxLjY1NjI1LC0yNi41MzEyNSAwLjY3OTEsLTQuNzY4NzYgMS44MDczOCwtOC43MzAyNSAyLC0xMy45MDYyNSAwLjA0MzgsLTEuMTc2NjMgLTAuMDI2NSwtMi44ODQwMSAtMC4wMzEyLC00LjE1NjI1IC05LjZlLTQsLTguOTc0MDkgLTYuNTQ4MDQsLTE2LjI1MDgyIC0xNC42MjUsLTE2LjI1IHogbSAtMTguMzEyNSwxMTMuNDM3NSAtNC4zNDM3NSw3Ni43MTg3NSAtMC4zMTI1LDAuMTU2MjUgYyAtMC4yOTEzNCw2Ljg2MzM1IC01LjkzOTk2LDEyLjM0Mzc1IC0xMi44NzUsMTIuMzQzNzUgLTIuODQwODEsMCAtNS40NjI5NCwtMC45MTIyOSAtNy41OTM3NSwtMi40Njg3NSBsIC0wLjEyNSwwLjA2MjUgLTYyLjkwNjI1LC00NC41OTM3NSBjIDE5LjMzMzY1LC0xOS4wMTExNSA0NC4wNjI5MSwtMzMuMDYwMzkgNzIuNTYyNSwtMzkuNTMxMjUgNS4yMDU5OSwtMS4xODIwMyAxMC40MDk2NiwtMi4wNTkxIDE1LjU5Mzc1LC0yLjY4NzUgeiBtIDM2LjY1NjI1LDAgYyAzMy4yNzM0Nyw0LjA5MjMyIDY0LjA0NTAxLDE5LjE1ODgyIDg3LjYyNSw0Mi4yNSBsIC02Mi41LDQ0LjMxMjUgLTAuMjE4NzUsLTAuMDkzNyBjIC01LjU0NzQ1LDQuMDUxNjkgLTEzLjM2MzQzLDMuMDQ2MzkgLTE3LjY4NzUsLTIuMzc1IC0xLjc3MTMyLC0yLjIyMDk2IC0yLjcwMDcyLC00LjgzMjM5IC0yLjgxMjUsLTcuNDY4NzUgbCAtMC4wNjI1LC0wLjAzMTIgeiBtIC0xNDcuNjI1LDcwLjg3NSA1Ny40Mzc1LDUxLjM3NSAtMC4wNjI1LDAuMzEyNSBjIDUuMTg0MzcsNC41MDY5NyA1Ljk0ODg4LDEyLjMyNzk0IDEuNjI1LDE3Ljc1IC0xLjc3MTIsMi4yMjEwNSAtNC4xNDIwOCwzLjcxMDc0IC02LjY4NzUsNC40MDYyNSBsIC0wLjA2MjUsMC4yNSAtNzMuNjI1LDIxLjI1IGMgLTMuNzQ3MjgsLTM0LjI2NTE3IDQuMzI4NTUsLTY3LjU3MzY0IDIxLjM3NSwtOTUuMzQzNzUgeiBtIDI1OC4xNTYyNSwwLjAzMTIgYyA4LjUzNDEsMTMuODMyNTYgMTQuOTk2NTUsMjkuMjgyMTQgMTguODQzNzUsNDYuMDMxMjUgMy44MDEwNiwxNi41NDgyOCA0Ljc1NDk5LDMzLjA2Njk3IDMuMTg3NSw0OS4wMzEyNSBsIC03NCwtMjEuMzEyNSAtMC4wNjI1LC0wLjMxMjUgYyAtNi42MjY1LC0xLjgxMTA0IC0xMC42OTg5MywtOC41NTE2MiAtOS4xNTYyNSwtMTUuMzEyNSAwLjYzMjAzLC0yLjc2OTYyIDIuMTAyMjIsLTUuMTEyNjQgNC4wOTM3NSwtNi44NDM3NSBsIC0wLjAzMTIsLTAuMTU2MjUgNTcuMTI1LC01MS4xMjUgeiBtIC0xNDAuNjU2MjUsNTUuMzEyNSAyMy41MzEyNSwwIDE0LjYyNSwxOC4yODEyNSAtNS4yNSwyMi44MTI1IC0yMS4xMjUsMTAuMTU2MjUgLTIxLjE4NzUsLTEwLjE4NzUgLTUuMjUsLTIyLjgxMjUgeiBtIDc1LjQzNzUsNjIuNTYyNSBjIDAuOTk5OTcsLTAuMDUwNSAxLjk5NTU4LDAuMDM5NiAyLjk2ODc1LDAuMjE4NzUgbCAwLjEyNSwtMC4xNTYyNSA3Ni4xNTYyNSwxMi44NzUgYyAtMTEuMTQ1NSwzMS4zMTMxIC0zMi40NzI4MSw1OC40NDAxOCAtNjAuOTY4NzUsNzYuNTkzNzUgbCAtMjkuNTYyNSwtNzEuNDA2MjUgMC4wOTM3LC0wLjEyNSBjIC0yLjcxNTYxLC02LjMwOTk5IDAuMDAyLC0xMy43MDk1NiA2LjI1LC0xNi43MTg3NSAxLjU5OTY1LC0wLjc3MDQxIDMuMjcwODksLTEuMTk3MDEgNC45Mzc1LC0xLjI4MTI1IHogbSAtMTI3LjkwNjI1LDAuMzEyNSBjIDUuODExNzQsMC4wODE1IDExLjAyNDYyLDQuMTE1MjUgMTIuMzc1LDEwLjAzMTI1IDAuNjMyMTksMi43Njk1OCAwLjMyNDUsNS41MTM3NSAtMC43MTg3NSw3LjkzNzUgbCAwLjIxODc1LDAuMjgxMjUgLTI5LjI1LDcwLjY4NzUgYyAtMjcuMzQ3MTYsLTE3LjU0ODYgLTQ5LjEyOTI3LC00My44MjQwMyAtNjAuNzgxMjUsLTc2LjA2MjQ1IGwgNzUuNSwtMTIuODEyNSAwLjEyNSwwLjE1NjI1IGMgMC44NDQ1MSwtMC4xNTU0MSAxLjcwMSwtMC4yMzA0IDIuNTMxMjUsLTAuMjE4NzUgeiBtIDYzLjc4MTI1LDMwLjk2ODggYyAyLjAyNDQ1LC0wLjA3NDQgNC4wNzg2NSwwLjM0MDk4IDYuMDMxMjUsMS4yODEyNSAyLjU1OTUxLDEuMjMyNTMgNC41MzY3MywzLjE3MzE5IDUuNzgxMjUsNS41IGwgMC4yODEyNSwwIDM3LjIxODc1LDY3LjI1IGMgLTQuODMwMjksMS42MTkyMyAtOS43OTYwOSwzLjAwMzA4IC0xNC44NzUsNC4xNTYyNSAtMjguNDY0NTMsNi40NjI5IC01Ni44Mzg2Miw0LjUwNDY3IC04Mi41MzEyNSwtNC4yNSBsIDM3LjEyNSwtNjcuMTI1IDAuMDYyNSwwIGMgMi4yMjc2NywtNC4xNjQ0MSA2LjQ1MjQ3LC02LjY0ODg3IDEwLjkwNjI1LC02LjgxMjUgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTptZWRpdW07Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bGluZS1oZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7ZGlyZWN0aW9uOmx0cjtibG9jay1wcm9ncmVzc2lvbjp0Yjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7YmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7Y29sb3I6IzAwMDAwMDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuMjU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO2ZvbnQtZmFtaWx5OlNhbnM7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpTYW5zIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2Njc2NjY2NzY3NzY2NzY2NjY2NjY2NzY2Njc2NjY2NjY2NjY2NjY2Njc2NjY3Njc2Njc2NjY2NzY3Njc2NjY2NjY2Njc2NjY3Njc2NjY2NzY2NjY3Njc2NzY2NjY2NjY2NjY2NjY2Njc2NjY3NjY2NjY2NjY2NjY2NzY2NjY2NzY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NzY2Njc2NjY2NjY2NjY3NjY2NzY2NjYyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIuL3BhdGgzMDU5LnBuZyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Kubernetes",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kubernetes Pods Source",
        "description" : "Consume Events from Kubernetes Pods",
        "required" : [ "token", "masterUrl" ],
        "type" : "object",
        "properties" : {
          "token" : {
            "title" : "Oauth Token",
            "description" : "The Auth Token to connect to Kubernetes Cluster",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "masterUrl" : {
            "title" : "Kubernetes Master URL",
            "description" : "The Kubernetes Cluster Master URL",
            "type" : "string"
          },
          "resourceName" : {
            "title" : "Resource Name",
            "description" : "The Resource Name we want to watch",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:kubernetes", "camel:kamelet", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kubernetes-pods://{{masterUrl}}",
          "parameters" : {
            "oauthToken" : "{{token}}",
            "resourceName" : "{{?resourceName}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kubernetes Pods Source",
      "description" : "Consume Events from Kubernetes Pods",
      "required" : [ "token", "masterUrl" ],
      "properties" : {
        "token" : {
          "type" : "string",
          "title" : "Oauth Token",
          "description" : "The Auth Token to connect to Kubernetes Cluster",
          "format" : "password"
        },
        "masterUrl" : {
          "type" : "string",
          "title" : "Kubernetes Master URL",
          "description" : "The Kubernetes Cluster Master URL"
        },
        "resourceName" : {
          "type" : "string",
          "title" : "Resource Name",
          "description" : "The Resource Name we want to watch"
        }
      }
    }
  },
  "log-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "log-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZD0iTTQ0OCwwSDY0QzQ2LjMyOCwwLDMyLDE0LjMxMywzMiwzMnY0NDhjMCwxNy42ODgsMTQuMzI4LDMyLDMyLDMyaDM4NGMxNy42ODgsMCwzMi0xNC4zMTIsMzItMzJWMzINCgkJQzQ4MCwxNC4zMTMsNDY1LjY4OCwwLDQ0OCwweiBNNjQsNDgwVjEyOGg4MHY2NEg5NnYxNmg0OHY0OEg5NnYxNmg0OHY0OEg5NnYxNmg0OHY0OEg5NnYxNmg0OHY4MEg2NHogTTQ0OCw0ODBIMTYwdi04MGgyNTZ2LTE2DQoJCUgxNjB2LTQ4aDI1NnYtMTZIMTYwdi00OGgyNTZ2LTE2SDE2MHYtNDhoMjU2di0xNkgxNjB2LTY0aDI4OFY0ODB6Ii8+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Logging",
        "camel.apache.org/kamelet.namespace" : "Logging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Log Action",
        "description" : "Logs all data that flows between source and sink, useful for debugging purposes.",
        "type" : "object",
        "properties" : {
          "loggerName" : {
            "title" : "Logger Name",
            "description" : "Name of the logging category to use",
            "type" : "string",
            "default" : "log-action"
          },
          "level" : {
            "title" : "Log Level",
            "description" : "Logging level to use",
            "type" : "string",
            "default" : "INFO",
            "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
          },
          "logMask" : {
            "title" : "Log Mask",
            "description" : "Mask sensitive information like password or passphrase in the log",
            "type" : "boolean",
            "default" : false
          },
          "marker" : {
            "title" : "Marker",
            "description" : "An optional Marker name to use",
            "type" : "string"
          },
          "multiline" : {
            "title" : "Multiline",
            "description" : "If enabled then each information is outputted on a newline",
            "type" : "boolean",
            "default" : false
          },
          "showAllProperties" : {
            "title" : "Show All Properties",
            "description" : "Show all of the exchange properties (both internal and custom)",
            "type" : "boolean",
            "default" : false
          },
          "showBody" : {
            "title" : "Show Body",
            "description" : "Show the message body",
            "type" : "boolean",
            "default" : true
          },
          "showBodyType" : {
            "title" : "Show Body Type",
            "description" : "Show the body Java type",
            "type" : "boolean",
            "default" : true
          },
          "showExchangePattern" : {
            "title" : "Show Exchange Pattern",
            "description" : "Shows the Message Exchange Pattern (or MEP for short)",
            "type" : "boolean",
            "default" : true
          },
          "showHeaders" : {
            "title" : "Show Headers",
            "description" : "Show the headers received",
            "type" : "boolean",
            "default" : false
          },
          "showProperties" : {
            "title" : "Show Properties",
            "description" : "Show the exchange properties (only custom). Use showAllProperties to show both internal and custom properties.",
            "type" : "boolean",
            "default" : false
          },
          "showStreams" : {
            "title" : "Show Streams",
            "description" : "Show the stream bodies (they may not be available in following steps)",
            "type" : "boolean",
            "default" : false
          },
          "showCachedStreams" : {
            "title" : "Show Cached Streams",
            "description" : "Whether Camel should show cached stream bodies or not.",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:log" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "log:{{loggerName}}",
              "parameters" : {
                "level" : "{{?level}}",
                "logMask" : "{{?logMask}}",
                "marker" : "{{?marker}}",
                "multiline" : "{{?multiline}}",
                "showAllProperties" : "{{?showAllProperties}}",
                "showBody" : "{{?showBody}}",
                "showBodyType" : "{{?showBodyType}}",
                "showExchangePattern" : "{{?showExchangePattern}}",
                "showHeaders" : "{{?showHeaders}}",
                "showProperties" : "{{?showProperties}}",
                "showStreams" : "{{?showStreams}}",
                "showCachedStreams" : "{{?showCachedStreams}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Log Action",
      "description" : "Logs all data that flows between source and sink, useful for debugging purposes.",
      "properties" : {
        "loggerName" : {
          "type" : "string",
          "title" : "Logger Name",
          "description" : "Name of the logging category to use",
          "default" : "log-action"
        },
        "level" : {
          "type" : "string",
          "title" : "Log Level",
          "description" : "Logging level to use",
          "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ],
          "default" : "INFO"
        },
        "logMask" : {
          "type" : "boolean",
          "title" : "Log Mask",
          "description" : "Mask sensitive information like password or passphrase in the log",
          "default" : false
        },
        "marker" : {
          "type" : "string",
          "title" : "Marker",
          "description" : "An optional Marker name to use"
        },
        "multiline" : {
          "type" : "boolean",
          "title" : "Multiline",
          "description" : "If enabled then each information is outputted on a newline",
          "default" : false
        },
        "showAllProperties" : {
          "type" : "boolean",
          "title" : "Show All Properties",
          "description" : "Show all of the exchange properties (both internal and custom)",
          "default" : false
        },
        "showBody" : {
          "type" : "boolean",
          "title" : "Show Body",
          "description" : "Show the message body",
          "default" : true
        },
        "showBodyType" : {
          "type" : "boolean",
          "title" : "Show Body Type",
          "description" : "Show the body Java type",
          "default" : true
        },
        "showExchangePattern" : {
          "type" : "boolean",
          "title" : "Show Exchange Pattern",
          "description" : "Shows the Message Exchange Pattern (or MEP for short)",
          "default" : true
        },
        "showHeaders" : {
          "type" : "boolean",
          "title" : "Show Headers",
          "description" : "Show the headers received",
          "default" : false
        },
        "showProperties" : {
          "type" : "boolean",
          "title" : "Show Properties",
          "description" : "Show the exchange properties (only custom). Use showAllProperties to show both internal and custom properties.",
          "default" : false
        },
        "showStreams" : {
          "type" : "boolean",
          "title" : "Show Streams",
          "description" : "Show the stream bodies (they may not be available in following steps)",
          "default" : false
        },
        "showCachedStreams" : {
          "type" : "boolean",
          "title" : "Show Cached Streams",
          "description" : "Whether Camel should show cached stream bodies or not.",
          "default" : true
        }
      }
    }
  },
  "log-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "log-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZD0iTTQ0OCwwSDY0QzQ2LjMyOCwwLDMyLDE0LjMxMywzMiwzMnY0NDhjMCwxNy42ODgsMTQuMzI4LDMyLDMyLDMyaDM4NGMxNy42ODgsMCwzMi0xNC4zMTIsMzItMzJWMzINCgkJQzQ4MCwxNC4zMTMsNDY1LjY4OCwwLDQ0OCwweiBNNjQsNDgwVjEyOGg4MHY2NEg5NnYxNmg0OHY0OEg5NnYxNmg0OHY0OEg5NnYxNmg0OHY0OEg5NnYxNmg0OHY4MEg2NHogTTQ0OCw0ODBIMTYwdi04MGgyNTZ2LTE2DQoJCUgxNjB2LTQ4aDI1NnYtMTZIMTYwdi00OGgyNTZ2LTE2SDE2MHYtNDhoMjU2di0xNkgxNjB2LTY0aDI4OFY0ODB6Ii8+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Logging",
        "camel.apache.org/kamelet.namespace" : "Logging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Log Sink",
        "description" : "A sink that logs all data that it receives, useful for debugging purposes.",
        "type" : "object",
        "properties" : {
          "loggerName" : {
            "title" : "Logger Name",
            "description" : "Name of the logging category to use",
            "type" : "string",
            "default" : "log-sink"
          },
          "level" : {
            "title" : "Log Level",
            "description" : "Logging level to use",
            "type" : "string",
            "default" : "INFO",
            "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
          },
          "logMask" : {
            "title" : "Log Mask",
            "description" : "Mask sensitive information like password or passphrase in the log",
            "type" : "boolean",
            "default" : false
          },
          "marker" : {
            "title" : "Marker",
            "description" : "An optional Marker name to use",
            "type" : "string"
          },
          "multiline" : {
            "title" : "Multiline",
            "description" : "If enabled then each information is outputted on a newline",
            "type" : "boolean",
            "default" : false
          },
          "showAllProperties" : {
            "title" : "Show All Properties",
            "description" : "Show all of the exchange properties (both internal and custom)",
            "type" : "boolean",
            "default" : false
          },
          "showBody" : {
            "title" : "Show Body",
            "description" : "Show the message body",
            "type" : "boolean",
            "default" : true
          },
          "showBodyType" : {
            "title" : "Show Body Type",
            "description" : "Show the body Java type",
            "type" : "boolean",
            "default" : true
          },
          "showExchangePattern" : {
            "title" : "Show Exchange Pattern",
            "description" : "Shows the Message Exchange Pattern (or MEP for short)",
            "type" : "boolean",
            "default" : true
          },
          "showHeaders" : {
            "title" : "Show Headers",
            "description" : "Show the headers received",
            "type" : "boolean",
            "default" : false
          },
          "showProperties" : {
            "title" : "Show Properties",
            "description" : "Show the exchange properties (only custom). Use showAllProperties to show both internal and custom properties.",
            "type" : "boolean",
            "default" : false
          },
          "showStreams" : {
            "title" : "Show Streams",
            "description" : "Show the stream bodies (they may not be available in following steps)",
            "type" : "boolean",
            "default" : false
          },
          "showCachedStreams" : {
            "title" : "Show Cached Streams",
            "description" : "Whether Camel should show cached stream bodies or not.",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:log" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "log:{{loggerName}}",
              "parameters" : {
                "level" : "{{?level}}",
                "logMask" : "{{?logMask}}",
                "marker" : "{{?marker}}",
                "multiline" : "{{?multiline}}",
                "showAllProperties" : "{{?showAllProperties}}",
                "showBody" : "{{?showBody}}",
                "showBodyType" : "{{?showBodyType}}",
                "showExchangePattern" : "{{?showExchangePattern}}",
                "showHeaders" : "{{?showHeaders}}",
                "showProperties" : "{{?showProperties}}",
                "showStreams" : "{{?showStreams}}",
                "showCachedStreams" : "{{?showCachedStreams}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Log Sink",
      "description" : "A sink that logs all data that it receives, useful for debugging purposes.",
      "properties" : {
        "loggerName" : {
          "type" : "string",
          "title" : "Logger Name",
          "description" : "Name of the logging category to use",
          "default" : "log-sink"
        },
        "level" : {
          "type" : "string",
          "title" : "Log Level",
          "description" : "Logging level to use",
          "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ],
          "default" : "INFO"
        },
        "logMask" : {
          "type" : "boolean",
          "title" : "Log Mask",
          "description" : "Mask sensitive information like password or passphrase in the log",
          "default" : false
        },
        "marker" : {
          "type" : "string",
          "title" : "Marker",
          "description" : "An optional Marker name to use"
        },
        "multiline" : {
          "type" : "boolean",
          "title" : "Multiline",
          "description" : "If enabled then each information is outputted on a newline",
          "default" : false
        },
        "showAllProperties" : {
          "type" : "boolean",
          "title" : "Show All Properties",
          "description" : "Show all of the exchange properties (both internal and custom)",
          "default" : false
        },
        "showBody" : {
          "type" : "boolean",
          "title" : "Show Body",
          "description" : "Show the message body",
          "default" : true
        },
        "showBodyType" : {
          "type" : "boolean",
          "title" : "Show Body Type",
          "description" : "Show the body Java type",
          "default" : true
        },
        "showExchangePattern" : {
          "type" : "boolean",
          "title" : "Show Exchange Pattern",
          "description" : "Shows the Message Exchange Pattern (or MEP for short)",
          "default" : true
        },
        "showHeaders" : {
          "type" : "boolean",
          "title" : "Show Headers",
          "description" : "Show the headers received",
          "default" : false
        },
        "showProperties" : {
          "type" : "boolean",
          "title" : "Show Properties",
          "description" : "Show the exchange properties (only custom). Use showAllProperties to show both internal and custom properties.",
          "default" : false
        },
        "showStreams" : {
          "type" : "boolean",
          "title" : "Show Streams",
          "description" : "Show the stream bodies (they may not be available in following steps)",
          "default" : false
        },
        "showCachedStreams" : {
          "type" : "boolean",
          "title" : "Show Cached Streams",
          "description" : "Whether Camel should show cached stream bodies or not.",
          "default" : true
        }
      }
    }
  },
  "mail-imap-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mail-imap-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAwIDE2LjIwMDAwMSAxMi4yIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJCcmVlemVpY29ucy1wbGFjZXMtMTYtZm9sZGVyLW1haWwuc3ZnIgogICB3aWR0aD0iMTYuMjAwMDAxIgogICBoZWlnaHQ9IjEyLjIiCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMC4yIChlODZjODcwODc5LCAyMDIxLTAxLTE1KSI+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzciCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGZpdC1tYXJnaW4tdG9wPSIwLjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMC4xIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMC4xIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIwLjEiCiAgICAgaW5rc2NhcGU6em9vbT0iNTMuNSIKICAgICBpbmtzY2FwZTpjeD0iOC4xIgogICAgIGlua3NjYXBlOmN5PSIzLjEwOTM0NTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNSIgLz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzA1MSI+CiAgICA8c3R5bGUKICAgICAgIHR5cGU9InRleHQvY3NzIgogICAgICAgaWQ9ImN1cnJlbnQtY29sb3Itc2NoZW1lIj4KICAgICAgLkNvbG9yU2NoZW1lLVRleHQgewogICAgICAgIGNvbG9yOiM0ZDRkNGQ7CiAgICAgIH0KICAgICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGgKICAgICBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgZD0ibSAwLjEsMC4xIHYgMTIgaCAxNiB2IC0xMiB6IG0gMS40MTQwNjI1LDEgSCAxNC42ODU5MzggTCA4LjEsNy42ODU5Mzc1IFogTSAxLjEsMi4xIGwgNCw0IC00LDQgeiBtIDE0LDAgdiA4IGwgLTQsLTQgeiBNIDUuODA3MDMxMiw2LjgwNzAzMTIgOC4xLDkuMSAxMC4zOTI5NjksNi44MDcwMzEyIDE0LjY4NTkzOCwxMS4xIEggMS41MTQwNjI1IFoiCiAgICAgaWQ9InJlY3Q0MTQ0IgogICAgIGNsYXNzPSJDb2xvclNjaGVtZS1UZXh0IiAvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Mail",
        "camel.apache.org/kamelet.namespace" : "Mail"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Mail IMAP Source",
        "description" : "Receive unread emails from an IMAP mail server, marking them as read once they are received.\n\nThe Kamelet generates the following headers:\n\n- `subject` / `ce-subject`: the subject of the incoming mail\n\n- `from` / `ce-from`: the `from` field of the incoming mail\n\n- `to` / `ce-to`: the `to` field of the incoming mail\n\n- `cc` / `ce-cc`: the `cc` field of the incoming mail",
        "required" : [ "connectionHost", "connectionPort", "username", "password" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The IMAP server host",
            "type" : "string",
            "example" : "imap.gmail.com"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The IMAP server port",
            "type" : "string",
            "default" : 993
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the mail box",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the mail box",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "fetchSize" : {
            "title" : "Fetch Size",
            "description" : "The number of messages fetched for each poll (-1 for no limits)",
            "type" : "integer",
            "default" : 10
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The delay between fetches in milliseconds",
            "type" : "integer",
            "default" : 60000
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:mail", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "imaps:{{connectionHost}}:{{connectionPort}}",
          "parameters" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "fetchSize" : "{{fetchSize}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "ce-subject",
              "simple" : "${header.Subject}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-from",
              "simple" : "${header.From}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-to",
              "simple" : "${header.To}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-cc",
              "simple" : "${header.Cc}"
            }
          }, {
            "convertBodyTo" : {
              "type" : "java.lang.String"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Mail IMAP Source",
      "description" : "Receive unread emails from an IMAP mail server, marking them as read once they are received.\n\nThe Kamelet generates the following headers:\n\n- `subject` / `ce-subject`: the subject of the incoming mail\n\n- `from` / `ce-from`: the `from` field of the incoming mail\n\n- `to` / `ce-to`: the `to` field of the incoming mail\n\n- `cc` / `ce-cc`: the `cc` field of the incoming mail",
      "required" : [ "connectionHost", "connectionPort", "username", "password" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The IMAP server host"
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The IMAP server port",
          "default" : 993
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the mail box"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the mail box",
          "format" : "password"
        },
        "fetchSize" : {
          "type" : "integer",
          "title" : "Fetch Size",
          "description" : "The number of messages fetched for each poll (-1 for no limits)",
          "default" : 10
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The delay between fetches in milliseconds",
          "default" : 60000
        }
      }
    }
  },
  "mail-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mail-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAwIDE2LjIwMDAwMSAxMi4yIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJCcmVlemVpY29ucy1wbGFjZXMtMTYtZm9sZGVyLW1haWwuc3ZnIgogICB3aWR0aD0iMTYuMjAwMDAxIgogICBoZWlnaHQ9IjEyLjIiCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMC4yIChlODZjODcwODc5LCAyMDIxLTAxLTE1KSI+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzciCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGZpdC1tYXJnaW4tdG9wPSIwLjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMC4xIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMC4xIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIwLjEiCiAgICAgaW5rc2NhcGU6em9vbT0iNTMuNSIKICAgICBpbmtzY2FwZTpjeD0iOC4xIgogICAgIGlua3NjYXBlOmN5PSIzLjEwOTM0NTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNSIgLz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzA1MSI+CiAgICA8c3R5bGUKICAgICAgIHR5cGU9InRleHQvY3NzIgogICAgICAgaWQ9ImN1cnJlbnQtY29sb3Itc2NoZW1lIj4KICAgICAgLkNvbG9yU2NoZW1lLVRleHQgewogICAgICAgIGNvbG9yOiM0ZDRkNGQ7CiAgICAgIH0KICAgICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGgKICAgICBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgZD0ibSAwLjEsMC4xIHYgMTIgaCAxNiB2IC0xMiB6IG0gMS40MTQwNjI1LDEgSCAxNC42ODU5MzggTCA4LjEsNy42ODU5Mzc1IFogTSAxLjEsMi4xIGwgNCw0IC00LDQgeiBtIDE0LDAgdiA4IGwgLTQsLTQgeiBNIDUuODA3MDMxMiw2LjgwNzAzMTIgOC4xLDkuMSAxMC4zOTI5NjksNi44MDcwMzEyIDE0LjY4NTkzOCwxMS4xIEggMS41MTQwNjI1IFoiCiAgICAgaWQ9InJlY3Q0MTQ0IgogICAgIGNsYXNzPSJDb2xvclNjaGVtZS1UZXh0IiAvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Mail",
        "camel.apache.org/kamelet.namespace" : "Mail"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Mail Sink",
        "description" : "Send mails to given SMTP server.",
        "required" : [ "connectionHost", "username", "password" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "description" : "The mail server host",
            "example" : "smtp.gmail.com",
            "title" : "Host",
            "type" : "string"
          },
          "connectionPort" : {
            "description" : "The mail server port",
            "title" : "Port",
            "default" : 25,
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the mail box",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the mail box",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "from" : {
            "description" : "The `from` field of the outgoing mail",
            "title" : "From",
            "type" : "string"
          },
          "to" : {
            "description" : "The `to` field of the outgoing mail",
            "title" : "To",
            "type" : "string"
          },
          "subject" : {
            "description" : "The mail subject of the outgoing mail",
            "title" : "Subject",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:mail", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-subject]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "Subject",
                    "simple" : "${header[ce-subject]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-from]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "From",
                    "simple" : "${header[ce-from]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-to]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "To",
                    "simple" : "${header[ce-to]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[ce-cc]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "Cc",
                    "simple" : "${header[ce-cc]}"
                  }
                } ]
              } ]
            }
          }, {
            "removeHeaders" : {
              "pattern" : "ce-*"
            }
          }, {
            "to" : {
              "uri" : "smtp:{{connectionHost}}:{{connectionPort}}",
              "parameters" : {
                "subject" : "{{subject}}",
                "from" : "{{from}}",
                "to" : "{{to}}",
                "username" : "{{username}}",
                "password" : "{{password}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Mail Sink",
      "description" : "Send mails to given SMTP server.",
      "required" : [ "connectionHost", "username", "password" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Host",
          "description" : "The mail server host"
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Port",
          "description" : "The mail server port",
          "default" : 25
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the mail box"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the mail box",
          "format" : "password"
        },
        "from" : {
          "type" : "string",
          "title" : "From",
          "description" : "The `from` field of the outgoing mail"
        },
        "to" : {
          "type" : "string",
          "title" : "To",
          "description" : "The `to` field of the outgoing mail"
        },
        "subject" : {
          "type" : "string",
          "title" : "Subject",
          "description" : "The mail subject of the outgoing mail"
        }
      }
    }
  },
  "mariadb-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mariadb-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjExOC4xIiB2aWV3Qm94PSIwLDAsNDE2LjQsMTE4LjEiIHdpZHRoPSI0MTYuNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KIDxtZXRhZGF0YS8+CiA8c3dpdGNoIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy45MSAtMjMuOTUpIj4KICA8Zm9yZWlnbk9iamVjdCBoZWlnaHQ9IjEiIHJlcXVpcmVkRXh0ZW5zaW9ucz0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZUlsbHVzdHJhdG9yLzEwLjAvIiB3aWR0aD0iMSIvPgogIDxnPgogICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYxNCAtMTQuMTgpIj4KICAgIDxwYXRoIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibTE4MTIgMzguMTNjLTIuNzMuMDktMS45NCAxLjMyLTcuODUgMi43OC01Ljk3IDEuNDctMTMuMTkuNTctMTkuNjEgMy4yNy0xNi44IDcuMDQtMTkuNTIgMzQuMjYtMzkuNTMgNDQuNzktMTMuMTIgNy40MS0yNi41IDkuMTEtMzguNDYgMTIuODYtOS42IDMuODUtMTUuNTcgNi40LTIyLjYxIDEyLjQ3LTUuNDYgNC43MS02Ljc5IDkuMjgtMTIuNSAxNS4xOS01Ljc5IDcuODctMjcuNzQuODgtMzMuMzkgMTAuNzUgMi45OCAxLjkzIDQuNyAyLjQ2IDkuOTMgMS43Ny0xLjA4IDIuMDUtNy45NiA0Ljc1LTYuNzEgNy43NyAwIDAgMTYuNjMgMy4wMyAzMC42NS01LjQzIDYuNTQtMi42NiAxMi42Ny04LjI5IDIyLjgzLTkuNjQgMTMuMTYtMS43NSAyNy45OSAyLjc2IDQzLjkgNC4wMy0zLjI5IDYuNS02LjY4IDEwLjM0LTEwLjMxIDE1LjctMS4xMiAxLjIxLjk2IDIuMjggNC44MiAxLjU1IDYuOTQtMS43MiAxMS45Ny0zLjU4IDE2Ljk2LTcuMDMgNi41MS00LjQ5IDkuMzEtOC42IDE0LjgtMTUuMTEgNC43NyA3LjY1IDIxLjU5IDkuMzMgMjUuMDQgMi43Mi02LjQyLTIuNzItNy43OS0xNi44Ny01LjU5LTIyLjk4IDIuNi01LjgyIDQuNDctMTQuMDUgNi41Ny0yMS43IDEuODktNi44OSAzLjA2LTE3LjQgNS4zMi0yMi43OCAyLjctNi42OSA3Ljk1LTguNzggMTEuODktMTIuMzNzNy44Ni02LjUxIDcuNzQtMTQuNjNjLS4wNC0yLjY0LTEuNC00LjEtMy44OS00LjAyeiIgZmlsbD0iIzFmMzA1ZiIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBkPSJtMTY0MyAxNDguNGMxMC4zMS4zMSAxMy4xMS4wNCAyMS4yNi0zLjUgNi45My0zLjAxIDE2LjItMTEuMTIgMjQuMzktMTMuNzQgMTIuMDItMy44NiAyNC45MS0zLjI4IDM3LjctMS43NyA0LjI4LjUxIDguNTggMS4yMiAxMS42NS44OSA0Ljc5LTIuOTQgNS4wMi0xMC45MiA3Ljk5LTExLjU2LS44MSAxNS40NC03LjQzIDI1LjMyLTE0LjA1IDM0LjI4IDEzLjk1LTIuNDYgMjMuMjctMTEuMTcgMjguOTEtMjEuOTUgMS43MS0zLjI3IDQuNTUtOC42MiA1Ljg1LTEyLjMgMS4wMyAyLjQ0LTEuMzQgMy45OS0uMjMgNi42NSA4Ljk4LTcuNDEgMTMuMjItMTUuODUgMTYuODYtMjguMjEgNC4yMi0xNC4zIDguNTUtMjYuNTkgMTEuMjctMzAuODIgMi42NS00LjEzIDYuNzgtNi42OCAxMC41NS05LjMyIDQuMjgtMy4wMSA4LjExLTYuMTQgOC43Ny0xMS44Ny00LjUyLS40Mi01LjU2LTEuNDYtNi4yMy0zLjc0LTIuMjYgMS4yNy00LjM0IDEuNTUtNi42OSAxLjYyLTIuMDQuMDYtNC4yOC0uMDMtNy4wMi4yNS0yMi42MyAyLjMyLTIzLjY4IDI0LjQ0LTQwLjEzIDQwLjY4LTEuMDYgMS4wMy0yLjg3IDIuNTUtNC4wNyAzLjQ1LTUuMDggMy43OS0xMC41MiA1Ljg3LTE2LjI1IDguMDYtOS4yOCAzLjU0LTE4LjA4IDQuNTctMjYuNzggNy42My02LjM5IDIuMjQtMTIuMzMgNC44MS0xNy41OCA4LjQtMS4zMS45LTMuMDkgMi41LTQuMjMgMy40My0zLjA4IDIuNTItNS4xIDUuMzEtNy4wNiA4LjE5LTIuMDIgMi45Ni0zLjk2IDYuMDEtNi45MyA4LjkyLTQuODEgNC43Mi0yMi43NyAxLjM4LTI5LjEgNS43Ni0uNy40OS0xLjI3IDEuMDctMS42NSAxLjc3IDMuNDUgMS41NyA1Ljc2LjYxIDkuNzMgMS4wNC40OSAzLjc5LTguMjIgNi4wMy02LjkzIDcuNzZ6IiBmaWxsPSIjYzA3NjVhIi8+CiAgICA8cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xNzg3IDUyLjY1YzMuMiAyLjc4IDkuOTIuNTUgOC43Mi00Ljk4LTQuOTgtLjQyLTcuODYgMS4yNy04LjcyIDQuOTh6IiBmaWxsPSIjMWYzMDVmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz4KICAgIDxwYXRoIGQ9Im0xODA5IDQ2LjE4Yy0uODUgMS43OS0yLjQ4IDQuMDktMi40OCA4LjY0LS4wMS43OC0uNTkgMS4zMi0uNi4xMS4wNC00LjQ1IDEuMjItNi4zNyAyLjQ3LTguODkuNTctMS4wMy45Mi0uNjEuNjEuMTR6IiBmaWxsPSIjMWYzMDVmIi8+CiAgICA8cGF0aCBkPSJtMTgwOCA0NS41MWMtMS4wMSAxLjctMy40MyA0LjgxLTMuODIgOS4zNS0uMDcuNzgtLjcxIDEuMjYtLjYxLjA2LjQ0LTQuNDIgMi4zNy03LjE5IDMuODQtOS42LjY2LS45OC45Ny0uNTMuNTkuMTl6IiBmaWxsPSIjMWYzMDVmIi8+CiAgICA8cGF0aCBkPSJtMTgwNyA0NC42MmMtMS4xNSAxLjYxLTQuODcgNS4zNS01LjY1IDkuODMtLjE0Ljc3LS44MSAxLjE5LS42MS4wMS44MS00LjM3IDQuMDItNy44MSA1LjY4LTEwLjA4Ljc0LS45MyAxLjAyLS40NS41OC4yNHoiIGZpbGw9IiMxZjMwNWYiLz4KICAgIDxwYXRoIGQ9Im0xODA3IDQzLjYyYy0xLjM2IDEuNDQtNS44IDYuMi03LjIgMTAuNTMtLjI1Ljc0LS45NyAxLjA3LS42MS0uMDggMS40MS00LjIyIDUuMy04Ljc2IDcuMjctMTAuNzcuODctLjgxIDEuMDctLjI5LjU0LjMyeiIgZmlsbD0iIzFmMzA1ZiIvPgogICA8L2c+CiAgIDxwYXRoIGQ9Im00NDkuNy0xOS40NHYzMS4yMmgtMy45NHYtNS4zNWMtMy41NyA0LjI3LTcuNjQgNi40MS0xMi4yMyA2LjQxcy04LjQ3LTEuNjMtMTEuNjQtNC44OGMtMy4xNC0zLjI5LTQuNy03LjE5LTQuNy0xMS43IDAtNC41NSAxLjU5LTguNDMgNC43Ni0xMS42NCAzLjE3LTMuMjUgNi45OC00Ljg4IDExLjQxLTQuODggNS4xIDAgOS4yMyAyLjE4IDEyLjQxIDYuNTN2LTUuN2gzLjkzbS0zLjcgMTUuNzRjMC0zLjU3LTEuMi02LjU3LTMuNTktOS0yLjM5LTIuNDctNS4zMy0zLjctOC44Mi0zLjctMy40NSAwLTYuMzcgMS4yNy04Ljc2IDMuODItMi4zOSAyLjUxLTMuNTkgNS40OS0zLjU5IDguOTRzMS4yMiA2LjQ1IDMuNjUgOWMyLjQzIDIuNTEgNS4zMyAzLjc2IDguNyAzLjc2IDMuNDEgMCA2LjMzLTEuMjIgOC43Ni0zLjY1IDIuNDQtMi40MiAzLjY1LTUuNDggMy42NS05LjE3IiBmaWxsPSIjMWYzMDVmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODMuMDcgOTIuNTUpIi8+CiAgIDxwYXRoIGQ9Im00NTguNCAxMS43OHYtNDIuMjFoOC43NmM2IDAgMTAuMzkuNDUgMTMuMTcgMS4zNSAyLjgyLjg2IDUuMjUgMi4yNSA3LjI5IDQuMTcgMi4wNCAxLjg4IDMuNjEgNC4xOSA0LjcgNi45NCAxLjEgMi43NCAxLjY1IDUuOTYgMS42NSA5LjY0IDAgMy42NS0uODYgNy4wOS0yLjU5IDEwLjM1LTEuNjkgMy4yMS00IDUuNjQtNi45NCA3LjI5LTIuOSAxLjY1LTcuMDkgMi40Ny0xMi41OCAyLjQ3em00LjA2LTRoNC44OGM1LjEgMCA4Ljc4LS4yNSAxMS4wNS0uNzYgMi4zMS0uNTEgNC4zMy0xLjUxIDYuMDYtMyAxLjcyLTEuNTMgMy4wNC0zLjM3IDMuOTQtNS41M3MxLjM1LTQuNjIgMS4zNS03LjQxYzAtMi43OC0uNTMtNS4zNS0xLjU5LTcuNy0xLjAyLTIuMzUtMi40OS00LjI5LTQuNDEtNS44MnMtNC4xOS0yLjU1LTYuODItMy4wNmMtMi41OS0uNTUtNi40MS0uODItMTEuNDYtLjgyaC0zeiIgZmlsbD0iIzFmMzA1ZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgzLjgyIDkyLjU1KSIvPgogICA8cGF0aCBkPSJtNDA2LTI4LjE0YzAtLjkuMzEtMS42OS45NC0yLjM1LjY3LS42NyAxLjQ1LTEgMi4zNS0xIC45NCAwIDEuNzIuMzMgMi4zNSAxIC42Ny42MyAxIDEuNDEgMSAyLjM1IDAgLjktLjMzIDEuNjktMSAyLjM1LS42My42My0xLjQxLjk0LTIuMzUuOTQtLjkgMC0xLjY5LS4zMy0yLjM1LTEtLjYzLS42Ny0uOTQtMS40My0uOTQtMi4yOW0xLjI5IDguN2g0LjA2djMxLjIyaC00LjA2eiIgZmlsbD0iIzFmMzA1ZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgzLjgyIDkyLjU1KSIvPgogICA8cGF0aCBkPSJtMjk2LjcgMTEuNzggNi00Mi4yMWguNjVsMTcuMTYgMzQuNjIgMTcuMDUtMzQuNjNoLjY1bDYuMDYgNDIuMjFoLTQuMTdsLTQuMTItMzAuMjItMTQuOTMgMzAuMjJoLTEuMDZsLTE1LjExLTMwLjQ1LTQuMTIgMzAuNDVoLTQuMDYiIGZpbGw9IiMxZjMwNWYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NC4zMyA5Mi41NSkiLz4KICAgPHBhdGggZD0ibTM4MS4xLTE5LjQ0djMxLjIyaC0zLjk0di01LjM1Yy0zLjU3IDQuMjctNy42NCA2LjQxLTEyLjIzIDYuNDFzLTguNDctMS42My0xMS42NC00Ljg4Yy0zLjE0LTMuMjktNC43LTcuMTktNC43LTExLjcgMC00LjU1IDEuNTktOC40MyA0Ljc2LTExLjY0IDMuMTctMy4yNSA2Ljk4LTQuODggMTEuNDEtNC44OCA1LjEgMCA5LjIzIDIuMTggMTIuNDEgNi41M3YtNS43aDMuOTNtLTMuNyAxNS43NGMwLTMuNTctMS4yLTYuNTctMy41OS05LTIuMzktMi40Ny01LjMzLTMuNy04LjgyLTMuNy0zLjQ1IDAtNi4zNyAxLjI3LTguNzYgMy44Mi0yLjM5IDIuNTEtMy41OSA1LjQ5LTMuNTkgOC45NHMxLjIxIDYuNDUgMy42NSA5YzIuNDMgMi41MSA1LjMzIDMuNzYgOC43IDMuNzYgMy40MSAwIDYuMzMtMS4yMiA4Ljc2LTMuNjUgMi40My0yLjQyIDMuNjUtNS40OCAzLjY1LTkuMTciIGZpbGw9IiMxZjMwNWYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NC41OCA5Mi41NSkiLz4KICAgPHBhdGggZD0ibTM4OC43LTE5LjQ0aDQuMTJ2NC41M2MxLjEtMS44NCAyLjE2LTMuMTkgMy4xNy00LjA2IDEuMDYtLjg2IDIuMjEtMS4yOSAzLjQ3LTEuMjkgMS4yOSAwIDIuNTkuMzUgMy44OCAxLjA2bC0yLjEyIDMuNDFjLS41OS0uMzUtMS4yLS41My0xLjgyLS41My0xLjIxIDAtMi4zNy42My0zLjQ3IDEuODgtMS4wNiAxLjI1LTEuODQgMi44OC0yLjM1IDQuODgtLjUxIDEuOTYtLjc2IDUuNTUtLjc2IDEwLjc2djEwLjU4aC00LjEyeiIgZmlsbD0iIzFmMzA1ZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg1LjM0IDkyLjU1KSIvPgogICA8cGF0aCBkPSJtNDk4LjMtMzAuNDRoOC4zNWM0LjQzIDAgNy43OC45IDEwLjA1IDIuNyAyLjMxIDEuNzYgMy40NyA0LjMxIDMuNDcgNy42NCAwIDEuODQtLjQ3IDMuNTUtMS40MSA1LjExLS45IDEuNTMtMi4yMyAyLjc2LTQgMy43IDIuOS45NCA1LjEgMi4zNSA2LjU4IDQuMjMgMS41MyAxLjg4IDIuMjkgNC4xMiAyLjI5IDYuNyAwIDMuNDktMS4yNyA2LjM5LTMuODIgOC43LTIuNTUgMi4yNy01Ljg0IDMuNDEtOS44OCAzLjQxaC0xMS42M3ptNC4xNyA0LjEydjEzLjUyaDIuNDFjMy42OCAwIDYuNDMtLjU5IDguMjMtMS43NiAxLjgtMS4xOCAyLjctMy4wMiAyLjctNS41MyAwLTQuMTUtMi44Mi02LjIzLTguNDctNi4yM3ptMCAxNy43NnYxNi4yMmg1LjIzYzMuMDIgMCA1LjIzLS4yOSA2LjY0LS44OCAxLjQ1LS42MyAyLjYzLTEuNTcgMy41My0yLjgyLjktMS4yOSAxLjM1LTIuNjEgMS4zNS0zLjk0cy0uMjUtMi41MS0uNzYtMy41My0xLjI3LTEuOTItMi4yOS0yLjdjLS45OC0uNzgtMi4xOC0xLjM3LTMuNTktMS43Ni0xLjM3LS4zOS0zLjk2LS41OS03Ljc2LS41OXoiIGZpbGw9IiMxZjMwNWYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04My4zMiA5Mi41NSkiLz4KICA8L2c+CiA8L3N3aXRjaD4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MariaDB Sink",
        "description" : "Send data to a MariaDB Database.\n\nIn your Pipe file, you must explicitly declare the MariaDB Server driver dependency in spec->integration->dependencies.\n\n- \"mvn:org.mariadb.jdbc:mariadb-java-client:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 3306
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured MariaDB Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured MariaDB Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the MariaDB Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the MariaDB Database.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:mariadb://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "org.mariadb.jdbc.Driver"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "sql:{{query}}",
              "parameters" : {
                "dataSource" : "#bean:{{dsBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MariaDB Sink",
      "description" : "Send data to a MariaDB Database.\n\nIn your Pipe file, you must explicitly declare the MariaDB Server driver dependency in spec->integration->dependencies.\n\n- \"mvn:org.mariadb.jdbc:mariadb-java-client:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 3306
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured MariaDB Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured MariaDB Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the MariaDB Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the MariaDB Database."
        }
      }
    }
  },
  "mariadb-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mariadb-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjExOC4xIiB2aWV3Qm94PSIwLDAsNDE2LjQsMTE4LjEiIHdpZHRoPSI0MTYuNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KIDxtZXRhZGF0YS8+CiA8c3dpdGNoIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy45MSAtMjMuOTUpIj4KICA8Zm9yZWlnbk9iamVjdCBoZWlnaHQ9IjEiIHJlcXVpcmVkRXh0ZW5zaW9ucz0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZUlsbHVzdHJhdG9yLzEwLjAvIiB3aWR0aD0iMSIvPgogIDxnPgogICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYxNCAtMTQuMTgpIj4KICAgIDxwYXRoIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibTE4MTIgMzguMTNjLTIuNzMuMDktMS45NCAxLjMyLTcuODUgMi43OC01Ljk3IDEuNDctMTMuMTkuNTctMTkuNjEgMy4yNy0xNi44IDcuMDQtMTkuNTIgMzQuMjYtMzkuNTMgNDQuNzktMTMuMTIgNy40MS0yNi41IDkuMTEtMzguNDYgMTIuODYtOS42IDMuODUtMTUuNTcgNi40LTIyLjYxIDEyLjQ3LTUuNDYgNC43MS02Ljc5IDkuMjgtMTIuNSAxNS4xOS01Ljc5IDcuODctMjcuNzQuODgtMzMuMzkgMTAuNzUgMi45OCAxLjkzIDQuNyAyLjQ2IDkuOTMgMS43Ny0xLjA4IDIuMDUtNy45NiA0Ljc1LTYuNzEgNy43NyAwIDAgMTYuNjMgMy4wMyAzMC42NS01LjQzIDYuNTQtMi42NiAxMi42Ny04LjI5IDIyLjgzLTkuNjQgMTMuMTYtMS43NSAyNy45OSAyLjc2IDQzLjkgNC4wMy0zLjI5IDYuNS02LjY4IDEwLjM0LTEwLjMxIDE1LjctMS4xMiAxLjIxLjk2IDIuMjggNC44MiAxLjU1IDYuOTQtMS43MiAxMS45Ny0zLjU4IDE2Ljk2LTcuMDMgNi41MS00LjQ5IDkuMzEtOC42IDE0LjgtMTUuMTEgNC43NyA3LjY1IDIxLjU5IDkuMzMgMjUuMDQgMi43Mi02LjQyLTIuNzItNy43OS0xNi44Ny01LjU5LTIyLjk4IDIuNi01LjgyIDQuNDctMTQuMDUgNi41Ny0yMS43IDEuODktNi44OSAzLjA2LTE3LjQgNS4zMi0yMi43OCAyLjctNi42OSA3Ljk1LTguNzggMTEuODktMTIuMzNzNy44Ni02LjUxIDcuNzQtMTQuNjNjLS4wNC0yLjY0LTEuNC00LjEtMy44OS00LjAyeiIgZmlsbD0iIzFmMzA1ZiIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBkPSJtMTY0MyAxNDguNGMxMC4zMS4zMSAxMy4xMS4wNCAyMS4yNi0zLjUgNi45My0zLjAxIDE2LjItMTEuMTIgMjQuMzktMTMuNzQgMTIuMDItMy44NiAyNC45MS0zLjI4IDM3LjctMS43NyA0LjI4LjUxIDguNTggMS4yMiAxMS42NS44OSA0Ljc5LTIuOTQgNS4wMi0xMC45MiA3Ljk5LTExLjU2LS44MSAxNS40NC03LjQzIDI1LjMyLTE0LjA1IDM0LjI4IDEzLjk1LTIuNDYgMjMuMjctMTEuMTcgMjguOTEtMjEuOTUgMS43MS0zLjI3IDQuNTUtOC42MiA1Ljg1LTEyLjMgMS4wMyAyLjQ0LTEuMzQgMy45OS0uMjMgNi42NSA4Ljk4LTcuNDEgMTMuMjItMTUuODUgMTYuODYtMjguMjEgNC4yMi0xNC4zIDguNTUtMjYuNTkgMTEuMjctMzAuODIgMi42NS00LjEzIDYuNzgtNi42OCAxMC41NS05LjMyIDQuMjgtMy4wMSA4LjExLTYuMTQgOC43Ny0xMS44Ny00LjUyLS40Mi01LjU2LTEuNDYtNi4yMy0zLjc0LTIuMjYgMS4yNy00LjM0IDEuNTUtNi42OSAxLjYyLTIuMDQuMDYtNC4yOC0uMDMtNy4wMi4yNS0yMi42MyAyLjMyLTIzLjY4IDI0LjQ0LTQwLjEzIDQwLjY4LTEuMDYgMS4wMy0yLjg3IDIuNTUtNC4wNyAzLjQ1LTUuMDggMy43OS0xMC41MiA1Ljg3LTE2LjI1IDguMDYtOS4yOCAzLjU0LTE4LjA4IDQuNTctMjYuNzggNy42My02LjM5IDIuMjQtMTIuMzMgNC44MS0xNy41OCA4LjQtMS4zMS45LTMuMDkgMi41LTQuMjMgMy40My0zLjA4IDIuNTItNS4xIDUuMzEtNy4wNiA4LjE5LTIuMDIgMi45Ni0zLjk2IDYuMDEtNi45MyA4LjkyLTQuODEgNC43Mi0yMi43NyAxLjM4LTI5LjEgNS43Ni0uNy40OS0xLjI3IDEuMDctMS42NSAxLjc3IDMuNDUgMS41NyA1Ljc2LjYxIDkuNzMgMS4wNC40OSAzLjc5LTguMjIgNi4wMy02LjkzIDcuNzZ6IiBmaWxsPSIjYzA3NjVhIi8+CiAgICA8cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xNzg3IDUyLjY1YzMuMiAyLjc4IDkuOTIuNTUgOC43Mi00Ljk4LTQuOTgtLjQyLTcuODYgMS4yNy04LjcyIDQuOTh6IiBmaWxsPSIjMWYzMDVmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz4KICAgIDxwYXRoIGQ9Im0xODA5IDQ2LjE4Yy0uODUgMS43OS0yLjQ4IDQuMDktMi40OCA4LjY0LS4wMS43OC0uNTkgMS4zMi0uNi4xMS4wNC00LjQ1IDEuMjItNi4zNyAyLjQ3LTguODkuNTctMS4wMy45Mi0uNjEuNjEuMTR6IiBmaWxsPSIjMWYzMDVmIi8+CiAgICA8cGF0aCBkPSJtMTgwOCA0NS41MWMtMS4wMSAxLjctMy40MyA0LjgxLTMuODIgOS4zNS0uMDcuNzgtLjcxIDEuMjYtLjYxLjA2LjQ0LTQuNDIgMi4zNy03LjE5IDMuODQtOS42LjY2LS45OC45Ny0uNTMuNTkuMTl6IiBmaWxsPSIjMWYzMDVmIi8+CiAgICA8cGF0aCBkPSJtMTgwNyA0NC42MmMtMS4xNSAxLjYxLTQuODcgNS4zNS01LjY1IDkuODMtLjE0Ljc3LS44MSAxLjE5LS42MS4wMS44MS00LjM3IDQuMDItNy44MSA1LjY4LTEwLjA4Ljc0LS45MyAxLjAyLS40NS41OC4yNHoiIGZpbGw9IiMxZjMwNWYiLz4KICAgIDxwYXRoIGQ9Im0xODA3IDQzLjYyYy0xLjM2IDEuNDQtNS44IDYuMi03LjIgMTAuNTMtLjI1Ljc0LS45NyAxLjA3LS42MS0uMDggMS40MS00LjIyIDUuMy04Ljc2IDcuMjctMTAuNzcuODctLjgxIDEuMDctLjI5LjU0LjMyeiIgZmlsbD0iIzFmMzA1ZiIvPgogICA8L2c+CiAgIDxwYXRoIGQ9Im00NDkuNy0xOS40NHYzMS4yMmgtMy45NHYtNS4zNWMtMy41NyA0LjI3LTcuNjQgNi40MS0xMi4yMyA2LjQxcy04LjQ3LTEuNjMtMTEuNjQtNC44OGMtMy4xNC0zLjI5LTQuNy03LjE5LTQuNy0xMS43IDAtNC41NSAxLjU5LTguNDMgNC43Ni0xMS42NCAzLjE3LTMuMjUgNi45OC00Ljg4IDExLjQxLTQuODggNS4xIDAgOS4yMyAyLjE4IDEyLjQxIDYuNTN2LTUuN2gzLjkzbS0zLjcgMTUuNzRjMC0zLjU3LTEuMi02LjU3LTMuNTktOS0yLjM5LTIuNDctNS4zMy0zLjctOC44Mi0zLjctMy40NSAwLTYuMzcgMS4yNy04Ljc2IDMuODItMi4zOSAyLjUxLTMuNTkgNS40OS0zLjU5IDguOTRzMS4yMiA2LjQ1IDMuNjUgOWMyLjQzIDIuNTEgNS4zMyAzLjc2IDguNyAzLjc2IDMuNDEgMCA2LjMzLTEuMjIgOC43Ni0zLjY1IDIuNDQtMi40MiAzLjY1LTUuNDggMy42NS05LjE3IiBmaWxsPSIjMWYzMDVmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODMuMDcgOTIuNTUpIi8+CiAgIDxwYXRoIGQ9Im00NTguNCAxMS43OHYtNDIuMjFoOC43NmM2IDAgMTAuMzkuNDUgMTMuMTcgMS4zNSAyLjgyLjg2IDUuMjUgMi4yNSA3LjI5IDQuMTcgMi4wNCAxLjg4IDMuNjEgNC4xOSA0LjcgNi45NCAxLjEgMi43NCAxLjY1IDUuOTYgMS42NSA5LjY0IDAgMy42NS0uODYgNy4wOS0yLjU5IDEwLjM1LTEuNjkgMy4yMS00IDUuNjQtNi45NCA3LjI5LTIuOSAxLjY1LTcuMDkgMi40Ny0xMi41OCAyLjQ3em00LjA2LTRoNC44OGM1LjEgMCA4Ljc4LS4yNSAxMS4wNS0uNzYgMi4zMS0uNTEgNC4zMy0xLjUxIDYuMDYtMyAxLjcyLTEuNTMgMy4wNC0zLjM3IDMuOTQtNS41M3MxLjM1LTQuNjIgMS4zNS03LjQxYzAtMi43OC0uNTMtNS4zNS0xLjU5LTcuNy0xLjAyLTIuMzUtMi40OS00LjI5LTQuNDEtNS44MnMtNC4xOS0yLjU1LTYuODItMy4wNmMtMi41OS0uNTUtNi40MS0uODItMTEuNDYtLjgyaC0zeiIgZmlsbD0iIzFmMzA1ZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgzLjgyIDkyLjU1KSIvPgogICA8cGF0aCBkPSJtNDA2LTI4LjE0YzAtLjkuMzEtMS42OS45NC0yLjM1LjY3LS42NyAxLjQ1LTEgMi4zNS0xIC45NCAwIDEuNzIuMzMgMi4zNSAxIC42Ny42MyAxIDEuNDEgMSAyLjM1IDAgLjktLjMzIDEuNjktMSAyLjM1LS42My42My0xLjQxLjk0LTIuMzUuOTQtLjkgMC0xLjY5LS4zMy0yLjM1LTEtLjYzLS42Ny0uOTQtMS40My0uOTQtMi4yOW0xLjI5IDguN2g0LjA2djMxLjIyaC00LjA2eiIgZmlsbD0iIzFmMzA1ZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgzLjgyIDkyLjU1KSIvPgogICA8cGF0aCBkPSJtMjk2LjcgMTEuNzggNi00Mi4yMWguNjVsMTcuMTYgMzQuNjIgMTcuMDUtMzQuNjNoLjY1bDYuMDYgNDIuMjFoLTQuMTdsLTQuMTItMzAuMjItMTQuOTMgMzAuMjJoLTEuMDZsLTE1LjExLTMwLjQ1LTQuMTIgMzAuNDVoLTQuMDYiIGZpbGw9IiMxZjMwNWYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NC4zMyA5Mi41NSkiLz4KICAgPHBhdGggZD0ibTM4MS4xLTE5LjQ0djMxLjIyaC0zLjk0di01LjM1Yy0zLjU3IDQuMjctNy42NCA2LjQxLTEyLjIzIDYuNDFzLTguNDctMS42My0xMS42NC00Ljg4Yy0zLjE0LTMuMjktNC43LTcuMTktNC43LTExLjcgMC00LjU1IDEuNTktOC40MyA0Ljc2LTExLjY0IDMuMTctMy4yNSA2Ljk4LTQuODggMTEuNDEtNC44OCA1LjEgMCA5LjIzIDIuMTggMTIuNDEgNi41M3YtNS43aDMuOTNtLTMuNyAxNS43NGMwLTMuNTctMS4yLTYuNTctMy41OS05LTIuMzktMi40Ny01LjMzLTMuNy04LjgyLTMuNy0zLjQ1IDAtNi4zNyAxLjI3LTguNzYgMy44Mi0yLjM5IDIuNTEtMy41OSA1LjQ5LTMuNTkgOC45NHMxLjIxIDYuNDUgMy42NSA5YzIuNDMgMi41MSA1LjMzIDMuNzYgOC43IDMuNzYgMy40MSAwIDYuMzMtMS4yMiA4Ljc2LTMuNjUgMi40My0yLjQyIDMuNjUtNS40OCAzLjY1LTkuMTciIGZpbGw9IiMxZjMwNWYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NC41OCA5Mi41NSkiLz4KICAgPHBhdGggZD0ibTM4OC43LTE5LjQ0aDQuMTJ2NC41M2MxLjEtMS44NCAyLjE2LTMuMTkgMy4xNy00LjA2IDEuMDYtLjg2IDIuMjEtMS4yOSAzLjQ3LTEuMjkgMS4yOSAwIDIuNTkuMzUgMy44OCAxLjA2bC0yLjEyIDMuNDFjLS41OS0uMzUtMS4yLS41My0xLjgyLS41My0xLjIxIDAtMi4zNy42My0zLjQ3IDEuODgtMS4wNiAxLjI1LTEuODQgMi44OC0yLjM1IDQuODgtLjUxIDEuOTYtLjc2IDUuNTUtLjc2IDEwLjc2djEwLjU4aC00LjEyeiIgZmlsbD0iIzFmMzA1ZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg1LjM0IDkyLjU1KSIvPgogICA8cGF0aCBkPSJtNDk4LjMtMzAuNDRoOC4zNWM0LjQzIDAgNy43OC45IDEwLjA1IDIuNyAyLjMxIDEuNzYgMy40NyA0LjMxIDMuNDcgNy42NCAwIDEuODQtLjQ3IDMuNTUtMS40MSA1LjExLS45IDEuNTMtMi4yMyAyLjc2LTQgMy43IDIuOS45NCA1LjEgMi4zNSA2LjU4IDQuMjMgMS41MyAxLjg4IDIuMjkgNC4xMiAyLjI5IDYuNyAwIDMuNDktMS4yNyA2LjM5LTMuODIgOC43LTIuNTUgMi4yNy01Ljg0IDMuNDEtOS44OCAzLjQxaC0xMS42M3ptNC4xNyA0LjEydjEzLjUyaDIuNDFjMy42OCAwIDYuNDMtLjU5IDguMjMtMS43NiAxLjgtMS4xOCAyLjctMy4wMiAyLjctNS41MyAwLTQuMTUtMi44Mi02LjIzLTguNDctNi4yM3ptMCAxNy43NnYxNi4yMmg1LjIzYzMuMDIgMCA1LjIzLS4yOSA2LjY0LS44OCAxLjQ1LS42MyAyLjYzLTEuNTcgMy41My0yLjgyLjktMS4yOSAxLjM1LTIuNjEgMS4zNS0zLjk0cy0uMjUtMi41MS0uNzYtMy41My0xLjI3LTEuOTItMi4yOS0yLjdjLS45OC0uNzgtMi4xOC0xLjM3LTMuNTktMS43Ni0xLjM3LS4zOS0zLjk2LS41OS03Ljc2LS41OXoiIGZpbGw9IiMxZjMwNWYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04My4zMiA5Mi41NSkiLz4KICA8L2c+CiA8L3N3aXRjaD4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MariaDB Source",
        "description" : "Query data from a MariaDB Database.\n\nIn your Pipe file, you must explicitly declare the MariaDB Server driver dependency in spec->integration->dependencies\n\n- \"mvn:org.mariadb.jdbc:mariadb-java-client:<version>\"",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 3306
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured MariaDB Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured MariaDB Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the MariaDB Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the MariaDB Database.",
            "type" : "string"
          },
          "consumedQuery" : {
            "title" : "Consumed Query",
            "description" : "A query to run on a tuple consumed.",
            "type" : "string",
            "example" : "DELETE FROM accounts where user_id = :#user_id"
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:mariadb://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "org.mariadb.jdbc.Driver"
          }
        } ],
        "from" : {
          "uri" : "sql:{{query}}",
          "parameters" : {
            "dataSource" : "#bean:{{dsBean}}",
            "onConsume" : "{{?consumedQuery}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MariaDB Source",
      "description" : "Query data from a MariaDB Database.\n\nIn your Pipe file, you must explicitly declare the MariaDB Server driver dependency in spec->integration->dependencies\n\n- \"mvn:org.mariadb.jdbc:mariadb-java-client:<version>\"",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 3306
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured MariaDB Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured MariaDB Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the MariaDB Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the MariaDB Database."
        },
        "consumedQuery" : {
          "type" : "string",
          "title" : "Consumed Query",
          "description" : "A query to run on a tuple consumed."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        }
      }
    }
  },
  "mask-field-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mask-field-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Mask Fields Action",
        "description" : "Mask fields with a constant value in the message in transit",
        "required" : [ "fields", "replacement" ],
        "properties" : {
          "fields" : {
            "title" : "Fields",
            "description" : "Comma separated list of fields to mask",
            "type" : "string"
          },
          "replacement" : {
            "title" : "Replacement",
            "description" : "Replacement for the fields to be masked",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:jackson", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "deserialized",
                    "constant" : "true"
                  }
                }, {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "setProperty" : {
              "name" : "fields",
              "constant" : "{{fields}}"
            }
          }, {
            "setProperty" : {
              "name" : "replacement",
              "constant" : "{{replacement}}"
            }
          }, {
            "bean" : "org.apache.camel.kamelets.utils.transform.MaskField"
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty[deserialized]} == 'true'",
                "steps" : [ {
                  "marshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                }, {
                  "setHeader" : {
                    "name" : "Content-Type",
                    "constant" : "application/json"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Mask Fields Action",
      "description" : "Mask fields with a constant value in the message in transit",
      "required" : [ "fields", "replacement" ],
      "properties" : {
        "fields" : {
          "type" : "string",
          "title" : "Fields",
          "description" : "Comma separated list of fields to mask"
        },
        "replacement" : {
          "type" : "string",
          "title" : "Replacement",
          "description" : "Replacement for the fields to be masked"
        }
      }
    }
  },
  "message-timestamp-router-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "message-timestamp-router-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Message Timestamp Router Action",
        "description" : "Update the topic field as a function of the original topic name and the record's timestamp field.",
        "required" : [ "timestampKeys" ],
        "properties" : {
          "topicFormat" : {
            "title" : "Topic Format",
            "description" : "Format string which can contain '$[topic]' and '$[timestamp]' as placeholders for the topic and timestamp, respectively.",
            "type" : "string",
            "default" : "topic-$[timestamp]"
          },
          "timestampFormat" : {
            "title" : "Timestamp Format",
            "description" : "Format string for the timestamp that is compatible with java.text.SimpleDateFormat.",
            "type" : "string",
            "default" : "yyyyMMdd"
          },
          "timestampKeys" : {
            "title" : "Timestamp Keys",
            "description" : "Comma separated list of Timestamp keys. The timestamp is taken from the first found field.",
            "type" : "string"
          },
          "timestampKeyFormat" : {
            "title" : "Timestamp Keys Format",
            "description" : "Format of the timestamp keys. Possible values are 'timestamp' or any format string for the timestamp that is compatible with java.text.SimpleDateFormat. In case of 'timestamp' the field will be evaluated as milliseconds since 1970, so as a UNIX Timestamp.",
            "type" : "string",
            "default" : "timestamp"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:jackson", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "setProperty" : {
              "name" : "topicFormat",
              "constant" : "{{topicFormat}}"
            }
          }, {
            "setProperty" : {
              "name" : "timestampFormat",
              "constant" : "{{timestampFormat}}"
            }
          }, {
            "setProperty" : {
              "name" : "timestampKeys",
              "constant" : "{{timestampKeys}}"
            }
          }, {
            "setProperty" : {
              "name" : "timestampKeyFormat",
              "constant" : "{{timestampKeyFormat}}"
            }
          }, {
            "bean" : "org.apache.camel.kamelets.utils.transform.MessageTimestampRouter"
          }, {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
              }
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "application/json"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Message Timestamp Router Action",
      "description" : "Update the topic field as a function of the original topic name and the record's timestamp field.",
      "required" : [ "timestampKeys" ],
      "properties" : {
        "topicFormat" : {
          "type" : "string",
          "title" : "Topic Format",
          "description" : "Format string which can contain '$[topic]' and '$[timestamp]' as placeholders for the topic and timestamp, respectively.",
          "default" : "topic-$[timestamp]"
        },
        "timestampFormat" : {
          "type" : "string",
          "title" : "Timestamp Format",
          "description" : "Format string for the timestamp that is compatible with java.text.SimpleDateFormat.",
          "default" : "yyyyMMdd"
        },
        "timestampKeys" : {
          "type" : "string",
          "title" : "Timestamp Keys",
          "description" : "Comma separated list of Timestamp keys. The timestamp is taken from the first found field."
        },
        "timestampKeyFormat" : {
          "type" : "string",
          "title" : "Timestamp Keys Format",
          "description" : "Format of the timestamp keys. Possible values are 'timestamp' or any format string for the timestamp that is compatible with java.text.SimpleDateFormat. In case of 'timestamp' the field will be evaluated as milliseconds since 1970, so as a UNIX Timestamp.",
          "default" : "timestamp"
        }
      }
    }
  },
  "minio-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "minio-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2Mi42MTIgMjQuNDY1Ij48cGF0aCBkPSJNNTIuNzUxLjQxNGg5LjEwOHYyMy42M2gtOS4xMDh6TTQxLjcxMS43NGwtMTguNDg4IDkuOTJhLjkxOS45MTkgMCAwIDEtLjg1NiAwTDMuODc5Ljc0QTIuODA4IDIuODA4IDAgMCAwIDIuNTU4LjQxNGgtLjAyM0EyLjQgMi40IDAgMCAwIDAgMi42NDF2MjEuMzc2aDkuMVYxMy44NDJhLjkxOC45MTggMCAwIDEgMS4zODUtLjY4MmwxMC4zNjEgNS41NjhhMy42MzQgMy42MzQgMCAwIDAgMy4zMzYuMDI4bDEwLjkzMy01LjYzNGEuOTE3LjkxNyAwIDAgMSAxLjM3MS42OXYxMC4yMDVoOS4xVjIuNjQxQTIuNCAyLjQgMCAwIDAgNDMuMDU1LjQxNGgtLjAyM2EyLjgwOCAyLjgwOCAwIDAgMC0xLjMyMS4zMjZ6bTY1LjU2NC0uMzI2aC05LjIzN3YxMC43NTVhLjkxMy45MTMgMCAwIDEtMS4zMzguNzA2TDcyLjc2Mi42NzVhMi44MjQgMi44MjQgMCAwIDAtMS4xOTEtLjI2MWgtLjAxNmEyLjQgMi40IDAgMCAwLTIuNTM1IDIuMjI3djIxLjM3N2g5LjE2M1YxMy4yNzVhLjkxNC45MTQgMCAwIDEgMS4zMzctLjcwN2wyNC4wMzIgMTEuMmEyLjgxMyAyLjgxMyAwIDAgMCAxLjE4OC4yNiAyLjQgMi40IDAgMCAwIDIuNTM1LTIuMjI3em03LjE2MSAyMy42M1YuNDE0aDQuMTkxdjIzLjYzem0yOC44NTYuNDIxYy0xMS4yNzQgMC0xOS4yNzItNC43LTE5LjI3Mi0xMi4yMzJDMTI0LjAyIDQuNzQxIDEzMi4wNjYgMCAxNDMuMjkyIDBzMTkuMzIgNC43IDE5LjMyIDEyLjIzMy03LjkwMiAxMi4yMzItMTkuMzIgMTIuMjMyem0wLTIxLjMzM2MtOC4zODMgMC0xNC44NCAzLjIxNy0xNC44NCA5LjEgMCA1LjkyNiA2LjQ1NyA5LjEgMTQuODQgOS4xczE0Ljg4Ny0zLjE3NCAxNC44ODctOS4xYzAtNS44ODMtNi41MDQtOS4xLTE0Ljg4Ny05LjF6IiBmaWxsPSIjYzcyYzQ4Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Minio",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Minio Sink",
        "description" : "Upload data to MinIO.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
        "required" : [ "bucketName", "accessKey", "secretKey", "endpoint" ],
        "type" : "object",
        "properties" : {
          "bucketName" : {
            "title" : "Bucket Name",
            "description" : "The Minio Bucket name.",
            "type" : "string"
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from MinIO.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from MinIO.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "endpoint" : {
            "title" : "Endpoint",
            "description" : "The MinIO Endpoint. You can specify an URL, domain name, IPv4 address, or IPv6 address.",
            "type" : "string",
            "example" : "http://localhost:9000"
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specify to automatically create the MinIO bucket.",
            "type" : "boolean",
            "default" : false
          },
          "keyName" : {
            "title" : "Key Name",
            "description" : "The key name for saving an element in the bucket.",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:minio", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${propertiesExist:!keyName}",
                "steps" : [ {
                  "choice" : {
                    "when" : [ {
                      "simple" : "${header[file]}",
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelMinioObjectName",
                          "simple" : "${header[file]}"
                        }
                      } ]
                    }, {
                      "simple" : "${header[ce-file]}",
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelMinioObjectName",
                          "simple" : "${header[ce-file]}"
                        }
                      } ]
                    } ],
                    "otherwise" : {
                      "steps" : [ {
                        "setHeader" : {
                          "name" : "CamelMinioObjectName",
                          "simple" : "${exchangeId}"
                        }
                      } ]
                    }
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "minio:{{bucketName}}",
              "parameters" : {
                "autoCreateBucket" : "{{autoCreateBucket}}",
                "secretKey" : "{{secretKey}}",
                "accessKey" : "{{accessKey}}",
                "endpoint" : "{{endpoint}}",
                "keyName" : "{{?keyName}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Minio Sink",
      "description" : "Upload data to MinIO.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
      "required" : [ "bucketName", "accessKey", "secretKey", "endpoint" ],
      "properties" : {
        "bucketName" : {
          "type" : "string",
          "title" : "Bucket Name",
          "description" : "The Minio Bucket name."
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from MinIO.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from MinIO.",
          "format" : "password"
        },
        "endpoint" : {
          "type" : "string",
          "title" : "Endpoint",
          "description" : "The MinIO Endpoint. You can specify an URL, domain name, IPv4 address, or IPv6 address."
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specify to automatically create the MinIO bucket.",
          "default" : false
        },
        "keyName" : {
          "type" : "string",
          "title" : "Key Name",
          "description" : "The key name for saving an element in the bucket."
        }
      }
    }
  },
  "minio-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "minio-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2Mi42MTIgMjQuNDY1Ij48cGF0aCBkPSJNNTIuNzUxLjQxNGg5LjEwOHYyMy42M2gtOS4xMDh6TTQxLjcxMS43NGwtMTguNDg4IDkuOTJhLjkxOS45MTkgMCAwIDEtLjg1NiAwTDMuODc5Ljc0QTIuODA4IDIuODA4IDAgMCAwIDIuNTU4LjQxNGgtLjAyM0EyLjQgMi40IDAgMCAwIDAgMi42NDF2MjEuMzc2aDkuMVYxMy44NDJhLjkxOC45MTggMCAwIDEgMS4zODUtLjY4MmwxMC4zNjEgNS41NjhhMy42MzQgMy42MzQgMCAwIDAgMy4zMzYuMDI4bDEwLjkzMy01LjYzNGEuOTE3LjkxNyAwIDAgMSAxLjM3MS42OXYxMC4yMDVoOS4xVjIuNjQxQTIuNCAyLjQgMCAwIDAgNDMuMDU1LjQxNGgtLjAyM2EyLjgwOCAyLjgwOCAwIDAgMC0xLjMyMS4zMjZ6bTY1LjU2NC0uMzI2aC05LjIzN3YxMC43NTVhLjkxMy45MTMgMCAwIDEtMS4zMzguNzA2TDcyLjc2Mi42NzVhMi44MjQgMi44MjQgMCAwIDAtMS4xOTEtLjI2MWgtLjAxNmEyLjQgMi40IDAgMCAwLTIuNTM1IDIuMjI3djIxLjM3N2g5LjE2M1YxMy4yNzVhLjkxNC45MTQgMCAwIDEgMS4zMzctLjcwN2wyNC4wMzIgMTEuMmEyLjgxMyAyLjgxMyAwIDAgMCAxLjE4OC4yNiAyLjQgMi40IDAgMCAwIDIuNTM1LTIuMjI3em03LjE2MSAyMy42M1YuNDE0aDQuMTkxdjIzLjYzem0yOC44NTYuNDIxYy0xMS4yNzQgMC0xOS4yNzItNC43LTE5LjI3Mi0xMi4yMzJDMTI0LjAyIDQuNzQxIDEzMi4wNjYgMCAxNDMuMjkyIDBzMTkuMzIgNC43IDE5LjMyIDEyLjIzMy03LjkwMiAxMi4yMzItMTkuMzIgMTIuMjMyem0wLTIxLjMzM2MtOC4zODMgMC0xNC44NCAzLjIxNy0xNC44NCA5LjEgMCA1LjkyNiA2LjQ1NyA5LjEgMTQuODQgOS4xczE0Ljg4Ny0zLjE3NCAxNC44ODctOS4xYzAtNS44ODMtNi41MDQtOS4xLTE0Ljg4Ny05LjF6IiBmaWxsPSIjYzcyYzQ4Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Minio",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Minio Source",
        "description" : "Receive data from MinIO.",
        "required" : [ "bucketName", "accessKey", "secretKey", "endpoint" ],
        "type" : "object",
        "properties" : {
          "bucketName" : {
            "title" : "Bucket Name",
            "description" : "The MinIO Bucket name.",
            "type" : "string"
          },
          "deleteAfterRead" : {
            "title" : "Auto-delete Objects",
            "description" : "Delete objects after consuming them.",
            "type" : "boolean",
            "default" : true
          },
          "accessKey" : {
            "title" : "Access Key",
            "description" : "The access key obtained from MinIO.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "secretKey" : {
            "title" : "Secret Key",
            "description" : "The secret key obtained from MinIO.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "endpoint" : {
            "title" : "Endpoint",
            "description" : "The MinIO Endpoint. You can specify an URL, domain name, IPv4 address, or IPv6 address.",
            "type" : "string",
            "example" : "http://localhost:9000"
          },
          "autoCreateBucket" : {
            "title" : "Autocreate Bucket",
            "description" : "Specifies to automatically create the MinIO bucket.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:minio", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "minio:{{bucketName}}",
          "parameters" : {
            "autoCreateBucket" : "{{autoCreateBucket}}",
            "secretKey" : "{{secretKey}}",
            "accessKey" : "{{accessKey}}",
            "endpoint" : "{{endpoint}}",
            "deleteAfterRead" : "{{deleteAfterRead}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Minio Source",
      "description" : "Receive data from MinIO.",
      "required" : [ "bucketName", "accessKey", "secretKey", "endpoint" ],
      "properties" : {
        "bucketName" : {
          "type" : "string",
          "title" : "Bucket Name",
          "description" : "The MinIO Bucket name."
        },
        "deleteAfterRead" : {
          "type" : "boolean",
          "title" : "Auto-delete Objects",
          "description" : "Delete objects after consuming them.",
          "default" : true
        },
        "accessKey" : {
          "type" : "string",
          "title" : "Access Key",
          "description" : "The access key obtained from MinIO.",
          "format" : "password"
        },
        "secretKey" : {
          "type" : "string",
          "title" : "Secret Key",
          "description" : "The secret key obtained from MinIO.",
          "format" : "password"
        },
        "endpoint" : {
          "type" : "string",
          "title" : "Endpoint",
          "description" : "The MinIO Endpoint. You can specify an URL, domain name, IPv4 address, or IPv6 address."
        },
        "autoCreateBucket" : {
          "type" : "boolean",
          "title" : "Autocreate Bucket",
          "description" : "Specifies to automatically create the MinIO bucket.",
          "default" : false
        }
      }
    }
  },
  "mongodb-changes-stream-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mongodb-changes-stream-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzEgNjciIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9IjEiIHk9IjEiLz48c3ltYm9sIGlkPSJBIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgc3Ryb2tlPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xNC4xNzQuMTc1bDEuNzA4IDMuMjA4Yy4zNzEuNTc5LjgwNCAxLjExNyAxLjI5IDEuNjA0IDEuNDMgMS40MyAyLjc4OCAyLjkyOCA0LjAwOCA0LjUzMiAyLjg5NCAzLjggNC44NDYgOCA2LjI0IDEyLjU4NGEzMC45NCAzMC45NCAwIDAgMSAxLjMyNCA4LjU0Yy4xNCA4LjY0Ni0yLjgyNCAxNi4wNy04LjggMjIuMjQtLjk3Mi45NzgtMi4wMjIgMS44NzYtMy4xNCAyLjY4NC0uNTkyIDAtLjg3Mi0uNDU0LTEuMTE2LS44NzItLjQ1NC0uNzY2LS43MzItMS42NC0uODcyLTIuNTEtLjIxLTEuMDQ2LS4zNDgtMi4wOTItLjI4LTMuMTcydi0uNDg4Yy0uMDQ4LS4xMjQtLjU3LTQ4LjEyNC0uMzYyLTQ4LjM1eiIgZmlsbD0iIzU5OTYzNiIvPjxwYXRoIGQ9Ik0xNC4xNzQuMDY5Yy0uMDctLjE0LS4xNC0uMDM0LS4yMS4wMzQuMDM0LjctLjIxIDEuMzI0LS41OTIgMS45Mi0uNC41OTItLjk3NiAxLjA0Ni0xLjUzNCAxLjUzNC0zLjEgMi42ODQtNS41NCA1LjkyNi03LjQ5NCA5LjU1Mi0yLjYgNC44OC0zLjk0IDEwLjExLTQuMzIgMTUuNjE2LS4xNzQgMS45ODYuNjI4IDguOTk0IDEuMjU0IDExLjAxNiAxLjcwOCA1LjM2OCA0Ljc3NiA5Ljg2NiA4Ljc1IDEzLjc3YTM1LjA4IDM1LjA4IDAgMCAwIDMuMSAyLjY1Yy4zMTQgMCAuMzQ4LS4yOC40LS40ODhhOS41NyA5LjU3IDAgMCAwIC4zMTQtMS4zNmwuNy01LjIyOEwxNC4xNzQuMDY5eiIgZmlsbD0iIzZjYWM0OCIvPjxwYXRoIGQ9Ik0xNS44ODIgNTcuNjkxYy4wNy0uOC40NTQtMS40NjQuODcyLTIuMTI2LS40LS4xNzQtLjczMi0uNTItLjk3Ni0uOTA2YTYuNDcgNi40NyAwIDAgMS0uNTItMS4xNWMtLjQ4OC0xLjQ2NC0uNTkyLTMtLjczMi00LjQ5NnYtLjkwNmMtLjE3NC4xNC0uMjEgMS4zMjQtLjIxIDEuNS0uMTAyIDEuNTgxLS4zMTIgMy4xNTQtLjYyOCA0LjcwNi0uMTA0LjYyOC0uMTc0IDEuMjU0LS41NiAxLjgxMiAwIC4wNyAwIC4xNC4wMzQuMjQ0LjYyOCAxLjg0OC44IDMuNzMuOTA2IDUuNjQ4di43YzAgLjgzNi0uMDM0LjY2LjY2Ljk0LjI4LjEwNC41OTIuMTQuODcyLjM0OC4yMSAwIC4yNDQtLjE3NC4yNDQtLjMxNGwtLjEwNC0xLjE1di0zLjIwOGMtLjAzNC0uNTYuMDctMS4xMTYuMTQtMS42NHoiIGZpbGw9IiNjMmJmYmYiLz48L2c+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "MongoDB",
        "camel.apache.org/kamelet.namespace" : "Nosql"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MongoDB Changes Stream Source",
        "description" : "Consume Changes from MongoDB Collection in streaming mode.",
        "required" : [ "hosts", "collection", "database" ],
        "type" : "object",
        "properties" : {
          "hosts" : {
            "title" : "MongoDB Hosts",
            "description" : "Comma separated list of MongoDB Host Addresses in host:port format.",
            "type" : "string"
          },
          "collection" : {
            "title" : "MongoDB Collection",
            "description" : "Sets the name of the MongoDB collection to bind to this endpoint.",
            "type" : "string"
          },
          "password" : {
            "title" : "MongoDB Password",
            "description" : "User password for accessing MongoDB.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "username" : {
            "title" : "MongoDB Username",
            "description" : "Username for accessing MongoDB. The username must be present in the MongoDB's authentication database (authenticationDatabase). By default, the MongoDB authenticationDatabase is 'admin'.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "ssl" : {
            "title" : "Enable Ssl for Mongodb Connection",
            "description" : "whether to enable ssl connection to mongodb",
            "type" : "boolean",
            "default" : true
          },
          "sslValidationEnabled" : {
            "title" : "Enables Ssl Certificates Validation and Host name checks.",
            "description" : "IMPORTANT this should be disabled only in test environment since can pose security issues.",
            "type" : "boolean",
            "default" : true
          },
          "database" : {
            "title" : "MongoDB Database",
            "description" : "Sets the name of the MongoDB database to target.",
            "type" : "string"
          },
          "streamFilter" : {
            "title" : "Stream Filter",
            "description" : "Filter condition for change streams consumer.",
            "type" : "string",
            "example" : "{ '$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]} }"
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:mongodb", "camel:jackson", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1" ],
      "template" : {
        "beans" : [ {
          "name" : "local-mongodb",
          "type" : "#class:org.apache.camel.component.mongodb.MongoDbComponent"
        }, {
          "name" : "mongo-client",
          "type" : "#class:org.apache.camel.kamelets.utils.mongodb.SslAwareMongoClient",
          "properties" : {
            "password" : "{{?password}}",
            "username" : "{{?username}}",
            "hosts" : "{{hosts}}",
            "ssl" : "{{ssl}}",
            "sslValidationEnabled" : "{{sslValidationEnabled}}"
          }
        } ],
        "from" : {
          "uri" : "{{local-mongodb}}:test",
          "parameters" : {
            "collection" : "{{collection}}",
            "database" : "{{database}}",
            "consumerType" : "changeStreams",
            "streamFilter" : "{{?streamFilter}}",
            "mongoConnection" : "#{{mongo-client}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MongoDB Changes Stream Source",
      "description" : "Consume Changes from MongoDB Collection in streaming mode.",
      "required" : [ "hosts", "collection", "database" ],
      "properties" : {
        "hosts" : {
          "type" : "string",
          "title" : "MongoDB Hosts",
          "description" : "Comma separated list of MongoDB Host Addresses in host:port format."
        },
        "collection" : {
          "type" : "string",
          "title" : "MongoDB Collection",
          "description" : "Sets the name of the MongoDB collection to bind to this endpoint."
        },
        "password" : {
          "type" : "string",
          "title" : "MongoDB Password",
          "description" : "User password for accessing MongoDB.",
          "format" : "password"
        },
        "username" : {
          "type" : "string",
          "title" : "MongoDB Username",
          "description" : "Username for accessing MongoDB. The username must be present in the MongoDB's authentication database (authenticationDatabase). By default, the MongoDB authenticationDatabase is 'admin'."
        },
        "ssl" : {
          "type" : "boolean",
          "title" : "Enable Ssl for Mongodb Connection",
          "description" : "whether to enable ssl connection to mongodb",
          "default" : true
        },
        "sslValidationEnabled" : {
          "type" : "boolean",
          "title" : "Enables Ssl Certificates Validation and Host name checks.",
          "description" : "IMPORTANT this should be disabled only in test environment since can pose security issues.",
          "default" : true
        },
        "database" : {
          "type" : "string",
          "title" : "MongoDB Database",
          "description" : "Sets the name of the MongoDB database to target."
        },
        "streamFilter" : {
          "type" : "string",
          "title" : "Stream Filter",
          "description" : "Filter condition for change streams consumer."
        }
      }
    }
  },
  "mongodb-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mongodb-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzEgNjciIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9IjEiIHk9IjEiLz48c3ltYm9sIGlkPSJBIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgc3Ryb2tlPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xNC4xNzQuMTc1bDEuNzA4IDMuMjA4Yy4zNzEuNTc5LjgwNCAxLjExNyAxLjI5IDEuNjA0IDEuNDMgMS40MyAyLjc4OCAyLjkyOCA0LjAwOCA0LjUzMiAyLjg5NCAzLjggNC44NDYgOCA2LjI0IDEyLjU4NGEzMC45NCAzMC45NCAwIDAgMSAxLjMyNCA4LjU0Yy4xNCA4LjY0Ni0yLjgyNCAxNi4wNy04LjggMjIuMjQtLjk3Mi45NzgtMi4wMjIgMS44NzYtMy4xNCAyLjY4NC0uNTkyIDAtLjg3Mi0uNDU0LTEuMTE2LS44NzItLjQ1NC0uNzY2LS43MzItMS42NC0uODcyLTIuNTEtLjIxLTEuMDQ2LS4zNDgtMi4wOTItLjI4LTMuMTcydi0uNDg4Yy0uMDQ4LS4xMjQtLjU3LTQ4LjEyNC0uMzYyLTQ4LjM1eiIgZmlsbD0iIzU5OTYzNiIvPjxwYXRoIGQ9Ik0xNC4xNzQuMDY5Yy0uMDctLjE0LS4xNC0uMDM0LS4yMS4wMzQuMDM0LjctLjIxIDEuMzI0LS41OTIgMS45Mi0uNC41OTItLjk3NiAxLjA0Ni0xLjUzNCAxLjUzNC0zLjEgMi42ODQtNS41NCA1LjkyNi03LjQ5NCA5LjU1Mi0yLjYgNC44OC0zLjk0IDEwLjExLTQuMzIgMTUuNjE2LS4xNzQgMS45ODYuNjI4IDguOTk0IDEuMjU0IDExLjAxNiAxLjcwOCA1LjM2OCA0Ljc3NiA5Ljg2NiA4Ljc1IDEzLjc3YTM1LjA4IDM1LjA4IDAgMCAwIDMuMSAyLjY1Yy4zMTQgMCAuMzQ4LS4yOC40LS40ODhhOS41NyA5LjU3IDAgMCAwIC4zMTQtMS4zNmwuNy01LjIyOEwxNC4xNzQuMDY5eiIgZmlsbD0iIzZjYWM0OCIvPjxwYXRoIGQ9Ik0xNS44ODIgNTcuNjkxYy4wNy0uOC40NTQtMS40NjQuODcyLTIuMTI2LS40LS4xNzQtLjczMi0uNTItLjk3Ni0uOTA2YTYuNDcgNi40NyAwIDAgMS0uNTItMS4xNWMtLjQ4OC0xLjQ2NC0uNTkyLTMtLjczMi00LjQ5NnYtLjkwNmMtLjE3NC4xNC0uMjEgMS4zMjQtLjIxIDEuNS0uMTAyIDEuNTgxLS4zMTIgMy4xNTQtLjYyOCA0LjcwNi0uMTA0LjYyOC0uMTc0IDEuMjU0LS41NiAxLjgxMiAwIC4wNyAwIC4xNC4wMzQuMjQ0LjYyOCAxLjg0OC44IDMuNzMuOTA2IDUuNjQ4di43YzAgLjgzNi0uMDM0LjY2LjY2Ljk0LjI4LjEwNC41OTIuMTQuODcyLjM0OC4yMSAwIC4yNDQtLjE3NC4yNDQtLjMxNGwtLjEwNC0xLjE1di0zLjIwOGMtLjAzNC0uNTYuMDctMS4xMTYuMTQtMS42NHoiIGZpbGw9IiNjMmJmYmYiLz48L2c+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "MongoDB",
        "camel.apache.org/kamelet.namespace" : "Nosql"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MongoDB Sink",
        "description" : "Send data to MongoDB.\n\nThis Kamelet expects a JSON-formatted body.\n\nIn the header, you can set the `db-upsert` / `ce-dbupsert` property, a boolean value that specifies whether the database should create an element if it does not exist.",
        "required" : [ "hosts", "collection", "database" ],
        "type" : "object",
        "properties" : {
          "hosts" : {
            "title" : "MongoDB Hosts",
            "description" : "A comma-separated list of MongoDB host addresses in `host:port` format.",
            "type" : "string"
          },
          "collection" : {
            "title" : "MongoDB Collection",
            "description" : "The name of the MongoDB collection to bind to this endpoint.",
            "type" : "string"
          },
          "password" : {
            "title" : "MongoDB Password",
            "description" : "A user password for accessing MongoDB.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "username" : {
            "title" : "MongoDB Username",
            "description" : "A username for accessing MongoDB.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "ssl" : {
            "title" : "Enable Ssl for Mongodb Connection",
            "description" : "whether to enable ssl connection to mongodb",
            "type" : "boolean",
            "default" : true
          },
          "sslValidationEnabled" : {
            "title" : "Enables Ssl Certificates Validation and Host name checks.",
            "description" : "IMPORTANT this should be disabled only in test environment since can pose security issues.",
            "type" : "boolean",
            "default" : true
          },
          "database" : {
            "title" : "MongoDB Database",
            "description" : "The name of the MongoDB database.",
            "type" : "string"
          },
          "writeConcern" : {
            "title" : "Write Concern",
            "description" : "The level of acknowledgment requested from MongoDB for write operations.",
            "type" : "string",
            "enum" : [ "ACKNOWLEDGED", "W1", "W2", "W3", "UNACKNOWLEDGED", "JOURNALED", "MAJORITY" ]
          },
          "createCollection" : {
            "title" : "Collection",
            "description" : "Create a collection during initialization if it doesn't exist.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:mongodb", "camel:jackson", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1" ],
      "template" : {
        "beans" : [ {
          "name" : "local-mongodb",
          "type" : "#class:org.apache.camel.component.mongodb.MongoDbComponent"
        }, {
          "name" : "mongo-client",
          "type" : "#class:org.apache.camel.kamelets.utils.mongodb.SslAwareMongoClient",
          "properties" : {
            "password" : "{{?password}}",
            "username" : "{{?username}}",
            "hosts" : "{{hosts}}",
            "ssl" : "{{ssl}}",
            "sslValidationEnabled" : "{{sslValidationEnabled}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[db-upsert]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelMongoDbUpsert",
                    "simple" : "${header[db-upsert]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-dbupsert]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelMongoDbUpsert",
                    "simple" : "${header[ce-dbupsert]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "{{local-mongodb}}:test",
              "parameters" : {
                "createCollection" : "{{?createCollection}}",
                "writeConcern" : "{{?writeConcern}}",
                "collection" : "{{collection}}",
                "database" : "{{database}}",
                "operation" : "insert",
                "mongoConnection" : "#{{mongo-client}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MongoDB Sink",
      "description" : "Send data to MongoDB.\n\nThis Kamelet expects a JSON-formatted body.\n\nIn the header, you can set the `db-upsert` / `ce-dbupsert` property, a boolean value that specifies whether the database should create an element if it does not exist.",
      "required" : [ "hosts", "collection", "database" ],
      "properties" : {
        "hosts" : {
          "type" : "string",
          "title" : "MongoDB Hosts",
          "description" : "A comma-separated list of MongoDB host addresses in `host:port` format."
        },
        "collection" : {
          "type" : "string",
          "title" : "MongoDB Collection",
          "description" : "The name of the MongoDB collection to bind to this endpoint."
        },
        "password" : {
          "type" : "string",
          "title" : "MongoDB Password",
          "description" : "A user password for accessing MongoDB.",
          "format" : "password"
        },
        "username" : {
          "type" : "string",
          "title" : "MongoDB Username",
          "description" : "A username for accessing MongoDB."
        },
        "ssl" : {
          "type" : "boolean",
          "title" : "Enable Ssl for Mongodb Connection",
          "description" : "whether to enable ssl connection to mongodb",
          "default" : true
        },
        "sslValidationEnabled" : {
          "type" : "boolean",
          "title" : "Enables Ssl Certificates Validation and Host name checks.",
          "description" : "IMPORTANT this should be disabled only in test environment since can pose security issues.",
          "default" : true
        },
        "database" : {
          "type" : "string",
          "title" : "MongoDB Database",
          "description" : "The name of the MongoDB database."
        },
        "writeConcern" : {
          "type" : "string",
          "title" : "Write Concern",
          "description" : "The level of acknowledgment requested from MongoDB for write operations.",
          "enum" : [ "ACKNOWLEDGED", "W1", "W2", "W3", "UNACKNOWLEDGED", "JOURNALED", "MAJORITY" ]
        },
        "createCollection" : {
          "type" : "boolean",
          "title" : "Collection",
          "description" : "Create a collection during initialization if it doesn't exist.",
          "default" : false
        }
      }
    }
  },
  "mongodb-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mongodb-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzEgNjciIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9IjEiIHk9IjEiLz48c3ltYm9sIGlkPSJBIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgc3Ryb2tlPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xNC4xNzQuMTc1bDEuNzA4IDMuMjA4Yy4zNzEuNTc5LjgwNCAxLjExNyAxLjI5IDEuNjA0IDEuNDMgMS40MyAyLjc4OCAyLjkyOCA0LjAwOCA0LjUzMiAyLjg5NCAzLjggNC44NDYgOCA2LjI0IDEyLjU4NGEzMC45NCAzMC45NCAwIDAgMSAxLjMyNCA4LjU0Yy4xNCA4LjY0Ni0yLjgyNCAxNi4wNy04LjggMjIuMjQtLjk3Mi45NzgtMi4wMjIgMS44NzYtMy4xNCAyLjY4NC0uNTkyIDAtLjg3Mi0uNDU0LTEuMTE2LS44NzItLjQ1NC0uNzY2LS43MzItMS42NC0uODcyLTIuNTEtLjIxLTEuMDQ2LS4zNDgtMi4wOTItLjI4LTMuMTcydi0uNDg4Yy0uMDQ4LS4xMjQtLjU3LTQ4LjEyNC0uMzYyLTQ4LjM1eiIgZmlsbD0iIzU5OTYzNiIvPjxwYXRoIGQ9Ik0xNC4xNzQuMDY5Yy0uMDctLjE0LS4xNC0uMDM0LS4yMS4wMzQuMDM0LjctLjIxIDEuMzI0LS41OTIgMS45Mi0uNC41OTItLjk3NiAxLjA0Ni0xLjUzNCAxLjUzNC0zLjEgMi42ODQtNS41NCA1LjkyNi03LjQ5NCA5LjU1Mi0yLjYgNC44OC0zLjk0IDEwLjExLTQuMzIgMTUuNjE2LS4xNzQgMS45ODYuNjI4IDguOTk0IDEuMjU0IDExLjAxNiAxLjcwOCA1LjM2OCA0Ljc3NiA5Ljg2NiA4Ljc1IDEzLjc3YTM1LjA4IDM1LjA4IDAgMCAwIDMuMSAyLjY1Yy4zMTQgMCAuMzQ4LS4yOC40LS40ODhhOS41NyA5LjU3IDAgMCAwIC4zMTQtMS4zNmwuNy01LjIyOEwxNC4xNzQuMDY5eiIgZmlsbD0iIzZjYWM0OCIvPjxwYXRoIGQ9Ik0xNS44ODIgNTcuNjkxYy4wNy0uOC40NTQtMS40NjQuODcyLTIuMTI2LS40LS4xNzQtLjczMi0uNTItLjk3Ni0uOTA2YTYuNDcgNi40NyAwIDAgMS0uNTItMS4xNWMtLjQ4OC0xLjQ2NC0uNTkyLTMtLjczMi00LjQ5NnYtLjkwNmMtLjE3NC4xNC0uMjEgMS4zMjQtLjIxIDEuNS0uMTAyIDEuNTgxLS4zMTIgMy4xNTQtLjYyOCA0LjcwNi0uMTA0LjYyOC0uMTc0IDEuMjU0LS41NiAxLjgxMiAwIC4wNyAwIC4xNC4wMzQuMjQ0LjYyOCAxLjg0OC44IDMuNzMuOTA2IDUuNjQ4di43YzAgLjgzNi0uMDM0LjY2LjY2Ljk0LjI4LjEwNC41OTIuMTQuODcyLjM0OC4yMSAwIC4yNDQtLjE3NC4yNDQtLjMxNGwtLjEwNC0xLjE1di0zLjIwOGMtLjAzNC0uNTYuMDctMS4xMTYuMTQtMS42NHoiIGZpbGw9IiNjMmJmYmYiLz48L2c+PC9zeW1ib2w+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "MongoDB",
        "camel.apache.org/kamelet.namespace" : "Nosql"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MongoDB Source",
        "description" : "Consume data from MongoDB.\n\nIf you enable the `persistentTailTracking` property, the consumer keeps track of the last consumed message and, on the next restart, the consumption restarts from that message. If you enable `persistentTailTracking`, you must provide a value for the `tailTrackIncreasingField` property (by default it is optional).\n\nIf you disable the `persistentTailTracking` property, the consumer consumes the whole collection and waits in idle for new data to consume.\n\nThe collection that provides the data must be a capped collection.",
        "required" : [ "hosts", "collection", "database" ],
        "type" : "object",
        "properties" : {
          "hosts" : {
            "title" : "MongoDB Hosts",
            "description" : "A comma-separated list of MongoDB host addresses in `host:port` format.",
            "type" : "string"
          },
          "collection" : {
            "title" : "MongoDB Collection",
            "description" : "The name of the MongoDB collection to bind to this endpoint.",
            "type" : "string"
          },
          "password" : {
            "title" : "MongoDB Password",
            "description" : "The user password for accessing MongoDB.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "username" : {
            "title" : "MongoDB Username",
            "description" : "The username for accessing MongoDB. The username must be present in the MongoDB's authentication database (`authenticationDatabase`). By default, the MongoDB `authenticationDatabase` is 'admin'.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "ssl" : {
            "title" : "Enable Ssl for Mongodb Connection",
            "description" : "whether to enable ssl connection to mongodb",
            "type" : "boolean",
            "default" : true
          },
          "sslValidationEnabled" : {
            "title" : "Enables Ssl Certificates Validation and Host name checks.",
            "description" : "IMPORTANT this should be disabled only in test environment since can pose security issues.",
            "type" : "boolean",
            "default" : true
          },
          "database" : {
            "title" : "MongoDB Database",
            "description" : "The name of the MongoDB database.",
            "type" : "string"
          },
          "persistentTailTracking" : {
            "title" : "MongoDB Persistent Tail Tracking",
            "description" : "Specifies to enable persistent tail tracking, which is a mechanism to keep track of the last consumed data across system restarts. The next time the system is up, the endpoint recovers the cursor from the point where it last stopped consuimg data. This option will only work on capped collections.",
            "type" : "boolean",
            "default" : false
          },
          "tailTrackIncreasingField" : {
            "title" : "MongoDB Tail Track Increasing Field",
            "description" : "The correlation field in the incoming data which is of increasing nature and is used to position the tailing cursor every time it is generated.",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:mongodb", "camel:jackson", "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1" ],
      "template" : {
        "beans" : [ {
          "name" : "local-mongodb",
          "type" : "#class:org.apache.camel.component.mongodb.MongoDbComponent"
        }, {
          "name" : "mongo-client",
          "type" : "#class:org.apache.camel.kamelets.utils.mongodb.SslAwareMongoClient",
          "properties" : {
            "password" : "{{?password}}",
            "username" : "{{?username}}",
            "hosts" : "{{hosts}}",
            "ssl" : "{{ssl}}",
            "sslValidationEnabled" : "{{sslValidationEnabled}}"
          }
        } ],
        "from" : {
          "uri" : "{{local-mongodb}}:test",
          "parameters" : {
            "collection" : "{{collection}}",
            "database" : "{{database}}",
            "persistentTailTracking" : "{{persistentTailTracking}}",
            "tailTrackIncreasingField" : "{{?tailTrackIncreasingField}}",
            "mongoConnection" : "#{{mongo-client}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MongoDB Source",
      "description" : "Consume data from MongoDB.\n\nIf you enable the `persistentTailTracking` property, the consumer keeps track of the last consumed message and, on the next restart, the consumption restarts from that message. If you enable `persistentTailTracking`, you must provide a value for the `tailTrackIncreasingField` property (by default it is optional).\n\nIf you disable the `persistentTailTracking` property, the consumer consumes the whole collection and waits in idle for new data to consume.\n\nThe collection that provides the data must be a capped collection.",
      "required" : [ "hosts", "collection", "database" ],
      "properties" : {
        "hosts" : {
          "type" : "string",
          "title" : "MongoDB Hosts",
          "description" : "A comma-separated list of MongoDB host addresses in `host:port` format."
        },
        "collection" : {
          "type" : "string",
          "title" : "MongoDB Collection",
          "description" : "The name of the MongoDB collection to bind to this endpoint."
        },
        "password" : {
          "type" : "string",
          "title" : "MongoDB Password",
          "description" : "The user password for accessing MongoDB.",
          "format" : "password"
        },
        "username" : {
          "type" : "string",
          "title" : "MongoDB Username",
          "description" : "The username for accessing MongoDB. The username must be present in the MongoDB's authentication database (`authenticationDatabase`). By default, the MongoDB `authenticationDatabase` is 'admin'."
        },
        "ssl" : {
          "type" : "boolean",
          "title" : "Enable Ssl for Mongodb Connection",
          "description" : "whether to enable ssl connection to mongodb",
          "default" : true
        },
        "sslValidationEnabled" : {
          "type" : "boolean",
          "title" : "Enables Ssl Certificates Validation and Host name checks.",
          "description" : "IMPORTANT this should be disabled only in test environment since can pose security issues.",
          "default" : true
        },
        "database" : {
          "type" : "string",
          "title" : "MongoDB Database",
          "description" : "The name of the MongoDB database."
        },
        "persistentTailTracking" : {
          "type" : "boolean",
          "title" : "MongoDB Persistent Tail Tracking",
          "description" : "Specifies to enable persistent tail tracking, which is a mechanism to keep track of the last consumed data across system restarts. The next time the system is up, the endpoint recovers the cursor from the point where it last stopped consuimg data. This option will only work on capped collections.",
          "default" : false
        },
        "tailTrackIncreasingField" : {
          "type" : "string",
          "title" : "MongoDB Tail Track Increasing Field",
          "description" : "The correlation field in the incoming data which is of increasing nature and is used to position the tailing cursor every time it is generated."
        }
      }
    }
  },
  "mqtt-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mqtt-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMiIgYmFzZVByb2ZpbGU9InRpbnkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIKCSB5PSIwcHgiIHZpZXdCb3g9IjAgMCAzMjAgMzIwIiBvdmVyZmxvdz0idmlzaWJsZSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnIGlkPSJibGFja19iZyIgZGlzcGxheT0ibm9uZSI+Cgk8cmVjdCBkaXNwbGF5PSJpbmxpbmUiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIi8+CjwvZz4KPGcgaWQ9ImxvZ29zIj4KCTxnPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik03LjEsMTgwLjZ2MTE3LjFjMCw4LjQsNi44LDE1LjMsMTUuMywxNS4zSDE0MkMxNDEsMjM5LjgsODAuOSwxODAuNyw3LjEsMTgwLjZ6Ii8+CgkJPHBhdGggZmlsbD0iIzY2MDA2NiIgZD0iTTcuMSw4NC4xdjQ5LjhjOTksMC45LDE3OS40LDgwLjcsMTgwLjQsMTc5LjFoNTEuN0MyMzguMiwxODYuNiwxMzQuNSw4NC4yLDcuMSw4NC4xeiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0zMTIuOSwyOTcuNlYxOTMuNUMyNzguMSwxMDcuMiwyMDcuMywzOC45LDExOSw3LjFIMjIuNGMtOC40LDAtMTUuMyw2LjgtMTUuMywxNS4zdjE1CgkJCWMxNTIuNiwwLjksMjc2LjYsMTI0LDI3Ny42LDI3NS42aDEzQzMwNi4xLDMxMi45LDMxMi45LDMwNi4xLDMxMi45LDI5Ny42eiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0yNzIuNiw0OS44YzE0LjUsMTQuNCwyOC42LDMxLjcsNDAuNCw0Ny44VjIyLjRjMC04LjQtNi44LTE1LjMtMTUuMy0xNS4zaC03Ny4zCgkJCUMyMzguNCwxOS43LDI1Ni42LDMzLjksMjcyLjYsNDkuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "MQTT",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MQTT Sink",
        "description" : "Allows sending messages to any endpoint that supports the MQTT protocol, such as a message broker.",
        "required" : [ "topic", "brokerUrl" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic",
            "description" : "The topic to send messages to",
            "type" : "string",
            "example" : "mytopic"
          },
          "brokerUrl" : {
            "title" : "Broker URL",
            "description" : "The URL of the broker where to establish the connection",
            "type" : "string",
            "example" : "tcp://mosquitto:1883"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to use when connecting to the MQTT broker",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to use when connecting to the MQTT broker",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:paho", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "paho:{{topic}}",
              "parameters" : {
                "brokerUrl" : "{{brokerUrl}}",
                "userName" : "{{?username}}",
                "password" : "{{?password}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MQTT Sink",
      "description" : "Allows sending messages to any endpoint that supports the MQTT protocol, such as a message broker.",
      "required" : [ "topic", "brokerUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic",
          "description" : "The topic to send messages to"
        },
        "brokerUrl" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The URL of the broker where to establish the connection"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to use when connecting to the MQTT broker"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to use when connecting to the MQTT broker",
          "format" : "password"
        }
      }
    }
  },
  "mqtt-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mqtt-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMiIgYmFzZVByb2ZpbGU9InRpbnkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIKCSB5PSIwcHgiIHZpZXdCb3g9IjAgMCAzMjAgMzIwIiBvdmVyZmxvdz0idmlzaWJsZSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnIGlkPSJibGFja19iZyIgZGlzcGxheT0ibm9uZSI+Cgk8cmVjdCBkaXNwbGF5PSJpbmxpbmUiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIi8+CjwvZz4KPGcgaWQ9ImxvZ29zIj4KCTxnPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik03LjEsMTgwLjZ2MTE3LjFjMCw4LjQsNi44LDE1LjMsMTUuMywxNS4zSDE0MkMxNDEsMjM5LjgsODAuOSwxODAuNyw3LjEsMTgwLjZ6Ii8+CgkJPHBhdGggZmlsbD0iIzY2MDA2NiIgZD0iTTcuMSw4NC4xdjQ5LjhjOTksMC45LDE3OS40LDgwLjcsMTgwLjQsMTc5LjFoNTEuN0MyMzguMiwxODYuNiwxMzQuNSw4NC4yLDcuMSw4NC4xeiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0zMTIuOSwyOTcuNlYxOTMuNUMyNzguMSwxMDcuMiwyMDcuMywzOC45LDExOSw3LjFIMjIuNGMtOC40LDAtMTUuMyw2LjgtMTUuMywxNS4zdjE1CgkJCWMxNTIuNiwwLjksMjc2LjYsMTI0LDI3Ny42LDI3NS42aDEzQzMwNi4xLDMxMi45LDMxMi45LDMwNi4xLDMxMi45LDI5Ny42eiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0yNzIuNiw0OS44YzE0LjUsMTQuNCwyOC42LDMxLjcsNDAuNCw0Ny44VjIyLjRjMC04LjQtNi44LTE1LjMtMTUuMy0xNS4zaC03Ny4zCgkJCUMyMzguNCwxOS43LDI1Ni42LDMzLjksMjcyLjYsNDkuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "MQTT",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MQTT Source",
        "description" : "Allows receiving messages from any endpoint that supports the MQTT protocol, such as a message broker.",
        "required" : [ "topic", "brokerUrl" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic",
            "description" : "The topic to subscribe to",
            "type" : "string",
            "example" : "mytopic"
          },
          "brokerUrl" : {
            "title" : "Broker URL",
            "description" : "The URL of the broker where to establish the connection",
            "type" : "string",
            "example" : "tcp://mosquitto:1883"
          },
          "clientId" : {
            "title" : "Client ID",
            "description" : "The client ID to use when connecting to the resource",
            "type" : "string",
            "default" : "mqtt-source"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to use when connecting to the MQTT broker",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to use when connecting to the MQTT broker",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:paho", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "paho:{{topic}}",
          "parameters" : {
            "brokerUrl" : "{{brokerUrl}}",
            "clientId" : "{{clientId}}",
            "userName" : "{{?username}}",
            "password" : "{{?password}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MQTT Source",
      "description" : "Allows receiving messages from any endpoint that supports the MQTT protocol, such as a message broker.",
      "required" : [ "topic", "brokerUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic",
          "description" : "The topic to subscribe to"
        },
        "brokerUrl" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The URL of the broker where to establish the connection"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client ID",
          "description" : "The client ID to use when connecting to the resource",
          "default" : "mqtt-source"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to use when connecting to the MQTT broker"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to use when connecting to the MQTT broker",
          "format" : "password"
        }
      }
    }
  },
  "mqtt5-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mqtt5-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMiIgYmFzZVByb2ZpbGU9InRpbnkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIKCSB5PSIwcHgiIHZpZXdCb3g9IjAgMCAzMjAgMzIwIiBvdmVyZmxvdz0idmlzaWJsZSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnIGlkPSJibGFja19iZyIgZGlzcGxheT0ibm9uZSI+Cgk8cmVjdCBkaXNwbGF5PSJpbmxpbmUiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIi8+CjwvZz4KPGcgaWQ9ImxvZ29zIj4KCTxnPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik03LjEsMTgwLjZ2MTE3LjFjMCw4LjQsNi44LDE1LjMsMTUuMywxNS4zSDE0MkMxNDEsMjM5LjgsODAuOSwxODAuNyw3LjEsMTgwLjZ6Ii8+CgkJPHBhdGggZmlsbD0iIzY2MDA2NiIgZD0iTTcuMSw4NC4xdjQ5LjhjOTksMC45LDE3OS40LDgwLjcsMTgwLjQsMTc5LjFoNTEuN0MyMzguMiwxODYuNiwxMzQuNSw4NC4yLDcuMSw4NC4xeiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0zMTIuOSwyOTcuNlYxOTMuNUMyNzguMSwxMDcuMiwyMDcuMywzOC45LDExOSw3LjFIMjIuNGMtOC40LDAtMTUuMyw2LjgtMTUuMywxNS4zdjE1CgkJCWMxNTIuNiwwLjksMjc2LjYsMTI0LDI3Ny42LDI3NS42aDEzQzMwNi4xLDMxMi45LDMxMi45LDMwNi4xLDMxMi45LDI5Ny42eiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0yNzIuNiw0OS44YzE0LjUsMTQuNCwyOC42LDMxLjcsNDAuNCw0Ny44VjIyLjRjMC04LjQtNi44LTE1LjMtMTUuMy0xNS4zaC03Ny4zCgkJCUMyMzguNCwxOS43LDI1Ni42LDMzLjksMjcyLjYsNDkuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "MQTT v5",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MQTT v5 Sink",
        "description" : "Allows sending messages to any endpoint that supports the MQTT v5 protocol, such as a message broker.",
        "required" : [ "topic", "brokerUrl" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic",
            "description" : "The topic to send messages to",
            "type" : "string",
            "example" : "mytopic"
          },
          "brokerUrl" : {
            "title" : "Broker URL",
            "description" : "The URL of the broker where to establish the connection",
            "type" : "string",
            "example" : "tcp://mosquitto:1883"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to use when connecting to the MQTT v5 compliant broker",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to use when connecting to the MQTT v5 compliant broker",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:paho-mqtt5", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "paho-mqtt5:{{topic}}",
              "parameters" : {
                "brokerUrl" : "{{brokerUrl}}",
                "userName" : "{{?username}}",
                "password" : "{{?password}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MQTT v5 Sink",
      "description" : "Allows sending messages to any endpoint that supports the MQTT v5 protocol, such as a message broker.",
      "required" : [ "topic", "brokerUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic",
          "description" : "The topic to send messages to"
        },
        "brokerUrl" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The URL of the broker where to establish the connection"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to use when connecting to the MQTT v5 compliant broker"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to use when connecting to the MQTT v5 compliant broker",
          "format" : "password"
        }
      }
    }
  },
  "mqtt5-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mqtt5-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMiIgYmFzZVByb2ZpbGU9InRpbnkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIKCSB5PSIwcHgiIHZpZXdCb3g9IjAgMCAzMjAgMzIwIiBvdmVyZmxvdz0idmlzaWJsZSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnIGlkPSJibGFja19iZyIgZGlzcGxheT0ibm9uZSI+Cgk8cmVjdCBkaXNwbGF5PSJpbmxpbmUiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIi8+CjwvZz4KPGcgaWQ9ImxvZ29zIj4KCTxnPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik03LjEsMTgwLjZ2MTE3LjFjMCw4LjQsNi44LDE1LjMsMTUuMywxNS4zSDE0MkMxNDEsMjM5LjgsODAuOSwxODAuNyw3LjEsMTgwLjZ6Ii8+CgkJPHBhdGggZmlsbD0iIzY2MDA2NiIgZD0iTTcuMSw4NC4xdjQ5LjhjOTksMC45LDE3OS40LDgwLjcsMTgwLjQsMTc5LjFoNTEuN0MyMzguMiwxODYuNiwxMzQuNSw4NC4yLDcuMSw4NC4xeiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0zMTIuOSwyOTcuNlYxOTMuNUMyNzguMSwxMDcuMiwyMDcuMywzOC45LDExOSw3LjFIMjIuNGMtOC40LDAtMTUuMyw2LjgtMTUuMywxNS4zdjE1CgkJCWMxNTIuNiwwLjksMjc2LjYsMTI0LDI3Ny42LDI3NS42aDEzQzMwNi4xLDMxMi45LDMxMi45LDMwNi4xLDMxMi45LDI5Ny42eiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0yNzIuNiw0OS44YzE0LjUsMTQuNCwyOC42LDMxLjcsNDAuNCw0Ny44VjIyLjRjMC04LjQtNi44LTE1LjMtMTUuMy0xNS4zaC03Ny4zCgkJCUMyMzguNCwxOS43LDI1Ni42LDMzLjksMjcyLjYsNDkuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "MQTT 5",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MQTT 5 Source",
        "description" : "Allows receiving messages from any endpoint that supports the MQTT v5 protocol, such as a message broker.",
        "required" : [ "topic", "brokerUrl" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic",
            "description" : "The topic to subscribe to",
            "type" : "string",
            "example" : "mytopic"
          },
          "brokerUrl" : {
            "title" : "Broker URL",
            "description" : "The URL of the broker where to establish the connection",
            "type" : "string",
            "example" : "tcp://mosquitto:1883"
          },
          "clientId" : {
            "title" : "Client ID",
            "description" : "The client ID to use when connecting to the resource",
            "type" : "string",
            "default" : "mqtt-source"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username to use when connecting to the MQTT v5 compliant broker",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to use when connecting to the MQTT v5 compliant broker",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:paho-mqtt5", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "paho-mqtt5:{{topic}}",
          "parameters" : {
            "brokerUrl" : "{{brokerUrl}}",
            "clientId" : "{{clientId}}",
            "userName" : "{{?username}}",
            "password" : "{{?password}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MQTT 5 Source",
      "description" : "Allows receiving messages from any endpoint that supports the MQTT v5 protocol, such as a message broker.",
      "required" : [ "topic", "brokerUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic",
          "description" : "The topic to subscribe to"
        },
        "brokerUrl" : {
          "type" : "string",
          "title" : "Broker URL",
          "description" : "The URL of the broker where to establish the connection"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client ID",
          "description" : "The client ID to use when connecting to the resource",
          "default" : "mqtt-source"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to use when connecting to the MQTT v5 compliant broker"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to use when connecting to the MQTT v5 compliant broker",
          "format" : "password"
        }
      }
    }
  },
  "ms-exchange-online-imap-oauth-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ms-exchange-online-imap-oauth-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjQgOCA1NSA0OCI+PHRpdGxlPkV4Y2hhbmdlXzY0eDwvdGl0bGU+PHBhdGggZD0iTTU1LjUwOTc3LDhoLTEyLjIwN0EzLjQ4ODM1LDMuNDg4MzUsMCwwLDAsNDAuODM1LDkuMDIyNDZMMTIuMDIyNDYsMzcuODM1QTMuNDg4MzUsMy40ODgzNSwwLDAsMCwxMSw0MC4zMDI3M3YxMi4yMDdBMy40OTAwNiwzLjQ5MDA2LDAsMCwwLDE0LjQ5MDIzLDU2aDEyLjIwN0EzLjQ4ODM1LDMuNDg4MzUsMCwwLDAsMjkuMTY1LDU0Ljk3NzU0TDU3Ljk3OCwyNi4xNjVBMy40ODk5NCwzLjQ4OTk0LDAsMCwwLDU5LDIzLjY5NzI3di0xMi4yMDdBMy40OTAwNywzLjQ5MDA3LDAsMCwwLDU1LjUwOTc3LDhaIiBmaWxsPSIjMjhhOGVhIi8+PHBhdGggZD0iTTU1LjUxLDU2SDQzLjMwMjc1YTMuNDksMy40OSwwLDAsMS0yLjQ2NzgtMS4wMjIyTDM1LDQ5LjE0Mjg2VjM4LjI0QTYuMjQsNi4yNCwwLDAsMSw0MS4yNCwzMkg1Mi4xNDI4Nkw1Ny45Nzc4LDM3LjgzNUEzLjQ5LDMuNDksMCwwLDEsNTksNDAuMzAyNzVWNTIuNTFBMy40OSwzLjQ5LDAsMCwxLDU1LjUxLDU2WiIgZmlsbD0iIzAwNzhkNCIvPjxwYXRoIGQ9Ik0xNC40OSw4SDI2LjY5NzI1YTMuNDksMy40OSwwLDAsMSwyLjQ2NzgsMS4wMjIyTDM1LDE0Ljg1NzE0VjI1Ljc2QTYuMjQsNi4yNCwwLDAsMSwyOC43NiwzMkgxNy44NTcxNEwxMi4wMjIyLDI2LjE2NTA1QTMuNDksMy40OSwwLDAsMSwxMSwyMy42OTcyNVYxMS40OUEzLjQ5LDMuNDksMCwwLDEsMTQuNDksOFoiIGZpbGw9IiM1MGQ5ZmYiLz48cGF0aCBkPSJNMzMsMjAuMzMwMDhWNDYuNjY5OTJhMS43MzQ0NCwxLjczNDQ0LDAsMCwxLS4wNC4zOTk5QTIuMzEzNzgsMi4zMTM3OCwwLDAsMSwzMC42Njk5Miw0OUgxMVYxOEgzMC42Njk5MkEyLjMyNiwyLjMyNiwwLDAsMSwzMywyMC4zMzAwOFoiIG9wYWNpdHk9IjAuMiIvPjxwYXRoIGQ9Ik0zNCwyMC4zMzAwOFY0NC42Njk5MkEzLjM2MTcxLDMuMzYxNzEsMCwwLDEsMzAuNjY5OTIsNDhIMTFWMTdIMzAuNjY5OTJBMy4zNDE3NywzLjM0MTc3LDAsMCwxLDM0LDIwLjMzMDA4WiIgb3BhY2l0eT0iMC4xIi8+PHBhdGggZD0iTTMzLDIwLjMzMDA4VjQ0LjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDMwLjY2OTkyLDQ3SDExVjE4SDMwLjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDMzLDIwLjMzMDA4WiIgb3BhY2l0eT0iMC4yIi8+PHBhdGggZD0iTTMyLDIwLjMzMDA4VjQ0LjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDI5LjY2OTkyLDQ3SDExVjE4SDI5LjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDMyLDIwLjMzMDA4WiIgb3BhY2l0eT0iMC4xIi8+PHJlY3QgeD0iNC4wMDAyMiIgeT0iMTgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgcng9IjIuMzMzMzMiIGZpbGw9IiMwMDc4ZDQiLz48cGF0aCBkPSJNMjIuNTg1MzMsMjYuODgxMjFoLTYuNTQ3MlYzMC43MDk4aDYuMTQ1MzV2Mi40NTM3NUgxNi4wMzgxM1YzNy4xNDAxaDYuODk2MDl2Mi40NDM0aC05Ljg2OFYyNC40MTY1aDkuNTE5MVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Mail",
        "camel.apache.org/kamelet.namespace" : "Mail"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Microsoft Exchange IMAP OAuth2 Source",
        "description" : "Receive unread emails from an IMAP Microsoft Exchange mail server, marking them as read once they are received.\nIt uses OAuth2 to authenticate IMAP session.",
        "required" : [ "tenantId", "clientId", "clientSecret", "username" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The IMAP server host",
            "type" : "string",
            "default" : "outlook.office365.com"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The IMAP server port",
            "type" : "string",
            "default" : 993
          },
          "tenantId" : {
            "title" : "Tenant ID",
            "description" : "Azure Active Directory Tenant ID",
            "type" : "string"
          },
          "clientId" : {
            "title" : "Client ID",
            "description" : "Azure Active Directory Application Client ID",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Client Secret",
            "description" : "The Azure Active Directory Application Client Secret",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the mail box",
            "type" : "string",
            "example" : "arthur@mycompany.com",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "fetchSize" : {
            "title" : "Fetch Size",
            "description" : "The number of messages fetched for each poll (-1 for no limits)",
            "type" : "integer",
            "default" : 10
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The delay between fetches in milliseconds",
            "type" : "integer",
            "default" : 60000
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:mail-microsoft-oauth", "camel:mail" ],
      "template" : {
        "beans" : [ {
          "name" : "exchangeAuthenticator",
          "type" : "#class:org.apache.camel.component.mail.microsoft.authenticator.MicrosoftExchangeOnlineOAuth2MailAuthenticator({{tenantId}}, {{clientId}}, {{clientSecret}}, {{username}})"
        } ],
        "from" : {
          "uri" : "imaps:{{connectionHost}}:{{connectionPort}}",
          "parameters" : {
            "mail.imaps.auth.mechanisms" : "XOAUTH2",
            "username" : "{{username}}",
            "fetchSize" : "{{fetchSize}}",
            "delay" : "{{delay}}",
            "authenticator" : "#bean:{{exchangeAuthenticator}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Microsoft Exchange IMAP OAuth2 Source",
      "description" : "Receive unread emails from an IMAP Microsoft Exchange mail server, marking them as read once they are received.\nIt uses OAuth2 to authenticate IMAP session.",
      "required" : [ "tenantId", "clientId", "clientSecret", "username" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The IMAP server host",
          "default" : "outlook.office365.com"
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The IMAP server port",
          "default" : 993
        },
        "tenantId" : {
          "type" : "string",
          "title" : "Tenant ID",
          "description" : "Azure Active Directory Tenant ID"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Client ID",
          "description" : "Azure Active Directory Application Client ID"
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Client Secret",
          "description" : "The Azure Active Directory Application Client Secret",
          "format" : "password"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the mail box"
        },
        "fetchSize" : {
          "type" : "integer",
          "title" : "Fetch Size",
          "description" : "The number of messages fetched for each poll (-1 for no limits)",
          "default" : 10
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The delay between fetches in milliseconds",
          "default" : 60000
        }
      }
    }
  },
  "mustache-template-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mustache-template-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Mustache Template Action",
        "description" : "Apply a Mustache Template.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.mustache",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:mustache", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "mustache:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Mustache Template Action",
      "description" : "Apply a Mustache Template.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "mvel-template-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mvel-template-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Mvel Template Action",
        "description" : "Apply a Mvel Template.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.mvel",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:mvel", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "mvel:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Mvel Template Action",
      "description" : "Apply a Mvel Template.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "mysql-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mysql-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmVyc2lvbj0iMS4wIj4KIDxyZWN0IGZpbGw9IiMyNjU1N2MiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgeD0iLTMwIiB5PSItMzAiIHJ4PSIxLjQiIHJ5PSIxLjQiIHRyYW5zZm9ybT0ibWF0cml4KDAsLTEsLTEsMCwwLDApIi8+CiA8cGF0aCBvcGFjaXR5PSIuMiIgZD0ibTguMDI1NCA4LjAwMDFjLTAuNzgyNS0wLjAxNjYtMS4xNDk0IDAuNTI0NC0wLjk4ODMgMS40NTcgMC4wNTIgMC4zMDA2IDAuMzE1MiAwLjcyOTkgMC44ODI4IDEuNDQxOSAwLjYzMTIyIDAuNzkwOSAwLjg4NTE0IDEuMjIyNyAxLjE2MDIgMS45NzA3IDAuNDMzNiAxLjE3OTMgMC42MzQwMyAxLjU3NDggMC45ODYzMyAxLjk0MzQgMC4yNzM2NiAwLjI4NjMgMC4yNzM2OSAwLjI4NzEyIDAuMDg5ODQgMC44NzEwOS0wLjI4NTA3IDAuOTA1NTYtMC4zNDQwNyAyLjcyMDctMC4xMTUyMyAzLjU3NDIgMC4zNDI0OCAxLjI3NzQgMC43NjQwMiAxLjg1NzQgMS4zNTE2IDEuODU3NCAwLjQxOTY4IDAgMC43NjM2NC0wLjM1MDkyIDAuODg2NzItMC45MDQzIDAuMDQyNjgtMC4xOTE4NiAwLjEyMjQ5LTAuNDY2MDcgMC4xNzc3My0wLjYwOTM4IDAuMDk1MzUtMC4yNDcyOCAwLjEyMDkzLTAuMjI4MTggMC40OTQxNCAwLjM4MDg2IDAuMjE2MjggMC4zNTI5NiAwLjYyODY2IDAuODc4NjEgMC45MTYwMiAxLjE2OCAwLjY2MzggMC42Njg0NSAxLjU3NDkgMS40MjE3IDEuNjQwNiAxLjM1NzQgMC4wMjc3NS0wLjAyNzEzLTAuMjM4LTAuNDIxNzctMC41ODk4NC0wLjg3ODkxcy0xLjAxNTEtMS41MTg5LTEuNDc0Ni0yLjM1OTRjLTAuNTM1OTMtMC45ODAyOS0wLjg5OTctMS41Mjg2LTEuMDEzNy0xLjUyOTMtMC4zNzA0NS0wLjAwMjUtMC43MTU4OCAwLjU4MDA0LTAuOTE2MDIgMS41NDY5LTAuMjMwNTYgMS4xMTM4LTAuNjM2NzUgMC45MjcwOC0wLjk2NjgtMC40NDUzMS0wLjE5MDE5LTAuNzkwODUtMC4wOTEwNi0xLjg1NiAwLjI2MzY3LTIuODUzNSAwLjE2MTM3LTAuNDUzNzYgMC4yOTI5Ny0wLjg3MzczIDAuMjkyOTctMC45MzE2NHMtMC4yNTczMS0wLjU0MzQ4LTAuNTcyMjctMS4wODAxYy0wLjMxNS0wLjUzNy0wLjY4NTEtMS4yOTctMC44MjItMS42OS0wLjMzMjYtMC45NTQtMC40OTA1LTEuMjMyLTEuMTU4Mi0yLjA0My0wLjY4NzktMC44MzQ2LTAuNzUzLTEuMjIwMy0wLjIwNTEtMS4yMTY2IDAuNDI1NTQgMC4wMDI4MSAxLjExMjMgMC4yODk0NCAxLjgwMjcgMC43NTM5MSAwLjQzNzEgMC4yOTQwNCAwLjU4NTIzIDAuMzMzOTggMS4yODcxIDAuMzMzOTggMC44ODE0MiAwIDEuMDcwOSAwLjA3MjIgMi4yOTMgMC44NzY5NSAxLjI0NDUgMC44MTk1OCAyLjE3MjIgMS41ODEzIDIuODE0NSAyLjMxMjUgMC41NzA0IDAuNjQ5MzcgMC44ODIwMSAxLjIxMzggMi41NjA1IDQuNjU2MiAwLjY0NDMzIDEuMzIxNCAxLjIxNTggMS45NTkzIDIuMDAzOSAyLjIzMjQgMS4yMTczIDAuNDIxODUgMS42MzE3IDAuNjEzMTQgMi4xNjggMC45OTgwNWwwLjU2NjQxIDAuNDA2MjUtMC4zODA4NiAwLjA3NDIyYy0wLjIxMDMgMC4wNDAzMy0wLjY2ODQ3IDAuMTA2MTYtMS4wMTc2IDAuMTQ2NDgtMC43Mjc0MSAwLjA4NC0xLjIwMzEgMC4zODU3My0xLjIwMzEgMC43NjM2NyAwIDAuNDI1OTIgMS40NTEzIDEuNjQ1MyAyLjkwNjIgMi40NDE0IDAuNjk5MDMgMC4zODI0NyAxLjM3MTYgMC43NTkyNyAxLjQ5NDEgMC44Mzc4OSAwLjMyNTk4IDAuMjA5MjIgMC40MTQyNCAwLjE4Mzg5IDAuMzMwMDgtMC4wOTE4LTAuMTc2MjQtMC41NzczOC0wLjc3Mjc5LTEuMTM5OC0yLjQyOTctMi4yOTQ5LTAuOTcxOTctMC42Nzc2LTAuOTgxOTktMC42NTI0NCAwLjMxNjQxLTAuNzgxMjUgMC45MjUtMC4wOTEgMS4zOTItMC4yNDkgMS4zOTItMC40NzIgMC0wLjEwMi0wLjQ3LTAuNjQ0LTEuMDQ1LTEuMjAzLTAuOS0wLjg3Ni0xLjIwNC0xLjA5NC0yLjE5NS0xLjU3Ny0xLjM1LTAuNjU2LTEuODQyLTEuMTc3LTIuMTUzLTIuMjgzLTAuNDY0LTEuNjQ5LTEuNzEyLTMuNTg3LTMuMzcxLTUuMjMtMS43MTItMS42OTYtMy4zNDctMi42MzQ0LTQuODQ1LTIuNzgxNC0wLjYwOS0wLjA1OTgtMC45MjQtMC4xNTIyLTEuMjM5LTAuMzY1My0wLjUzMzItMC4zNjExLTEuNzcxNy0wLjc2ODQtMi4zNzY2LTAuNzgxMnptMi45NjI5IDMuMDAyYy0wLjEyMjY2LTAuMDA3OS0wLjIyOTQ1IDAuMDA4NS0wLjMwMjczIDAuMDU4NTktMC4yNzM0MSAwLjE4Njk5LTAuMjQwOTkgMC40MTUwNCAwLjA4MDA4IDAuNTU2NjQgMC4xNTA5MiAwLjA2NjU2IDAuMzY1MDEgMC4zMDE0NyAwLjQ3NjU2IDAuNTIxNDggMC4zNzUxIDAuNzM5NzggMC45NDk4NSAwLjI0NDUgMC42OTMzNi0wLjU5NzY2LTAuMDgwODUtMC4yNjU0Ni0wLjU3OTMtMC41MTU0Ny0wLjk0NzI3LTAuNTM5MDZ6Ii8+CiA8cGF0aCBmaWxsPSIjZmZmIiBkPSJtOC4wMjU0IDdjLTAuNzgyNS0wLjAxNjYtMS4xNDk0IDAuNTI0NC0wLjk4ODMgMS40NTcgMC4wNTIgMC4zMDA2IDAuMzE1MiAwLjczMDIgMC44ODI4IDEuNDQxNCAwLjYzMTIgMC43OTA2IDAuODg1MiAxLjIyMjYgMS4xNjAyIDEuOTcwNiAwLjQzMzYgMS4xNzkgMC42MzQgMS41NzUgMC45ODU5IDEuOTQzIDAuMjc0IDAuMjg3IDAuMjc0IDAuMjg4IDAuMDkgMC44NzItMC4yODQ4IDAuOTA1LTAuMzQzOCAyLjcyLTAuMTE1IDMuNTc0IDAuMzQyIDEuMjc3IDAuNzY0IDEuODU3IDEuMzUyIDEuODU3IDAuNDE5IDAgMC43NjMtMC4zNTEgMC44ODYtMC45MDQgMC4wNDMtMC4xOTIgMC4xMjMtMC40NjYgMC4xNzgtMC42MDkgMC4wOTUtMC4yNDggMC4xMjEtMC4yMjkgMC40OTQgMC4zOCAwLjIxNiAwLjM1MyAwLjYyOSAwLjg3OSAwLjkxNiAxLjE2OCAwLjY2NCAwLjY2OSAxLjU3NSAxLjQyMiAxLjY0MSAxLjM1OCAwLjAyOC0wLjAyNy0wLjIzOC0wLjQyMi0wLjU5LTAuODc5cy0xLjAxNS0xLjUxOS0xLjQ3NS0yLjM1OWMtMC41MzYtMC45ODEtMC44OTktMS41MjktMS4wMTMtMS41My0wLjM3MS0wLjAwMi0wLjcxNiAwLjU4LTAuOTE2IDEuNTQ3LTAuMjMxIDEuMTE0LTAuNjM3IDAuOTI3LTAuOTY3LTAuNDQ1LTAuMTktMC43OTEtMC4wOTEtMS44NTYgMC4yNjQtMi44NTQgMC4xNjEtMC40NTMgMC4yOTMtMC44NzMgMC4yOTMtMC45MzFzLTAuMjU4LTAuNTQ0LTAuNTczLTEuMDhjLTAuMzE1LTAuNTM3LTAuNjg1MS0xLjI5Ny0wLjgyMi0xLjY5LTAuMzMyNi0wLjk1NC0wLjQ5MDUtMS4yMzItMS4xNTgyLTIuMDQyOS0wLjY4NzktMC44MzQ4LTAuNzUzLTEuMjIwNC0wLjIwNTEtMS4yMTY4IDAuNDI1NSAwLjAwMjkgMS4xMTIzIDAuMjg5NSAxLjgwMjMgMC43NTM5IDAuNDM4IDAuMjk0MSAwLjU4NiAwLjMzNCAxLjI4OCAwLjMzNCAwLjg4MSAwIDEuMDcgMC4wNzIyIDIuMjkzIDAuODc3IDEuMjQ0IDAuODE5OCAyLjE3MiAxLjU4MTggMi44MTQgMi4zMTI4IDAuNTcgMC42NDkgMC44ODIgMS4yMTQgMi41NjEgNC42NTYgMC42NDQgMS4zMjEgMS4yMTUgMS45NTkgMi4wMDMgMi4yMzIgMS4yMTggMC40MjIgMS42MzIgMC42MTMgMi4xNjggMC45OThsMC41NjcgMC40MDctMC4zODEgMC4wNzRjLTAuMjEgMC4wNC0wLjY2OSAwLjEwNi0xLjAxOCAwLjE0Ni0wLjcyNyAwLjA4NC0xLjIwMyAwLjM4Ni0xLjIwMyAwLjc2NCAwIDAuNDI2IDEuNDUxIDEuNjQ1IDIuOTA2IDIuNDQxIDAuNyAwLjM4MyAxLjM3MiAwLjc2IDEuNDk1IDAuODM4IDAuMzI2IDAuMjEgMC40MTQgMC4xODQgMC4zMy0wLjA5MS0wLjE3Ny0wLjU3OC0wLjc3My0xLjE0LTIuNDMtMi4yOTUtMC45NzItMC42NzgtMC45ODItMC42NTMgMC4zMTYtMC43ODIgMC45MjYtMC4wOTIgMS4zOTMtMC4yNSAxLjM5My0wLjQ3MiAwLTAuMTAyLTAuNDctMC42NDQtMS4wNDUtMS4yMDMtMC45LTAuODc3LTEuMjA0LTEuMDk0LTIuMTk1LTEuNTc3LTEuMzUtMC42NTYtMS44NDItMS4xNzctMi4xNTMtMi4yODMtMC40NjQtMS42NS0xLjcxMi0zLjU4Ny0zLjM3MS01LjIzLTEuNzEyLTEuNjk2NS0zLjM0Ny0yLjYzNDUtNC44NDUtMi43ODE1LTAuNjA5LTAuMDU5OC0wLjkyNC0wLjE1MjItMS4yMzktMC4zNjUzLTAuNTMzMi0wLjM2MTEtMS43NzE3LTAuNzY4NC0yLjM3NjYtMC43ODEyem0yLjk2MjYgMy4wMDJjLTAuMTIyLTAuMDA3OS0wLjIyOSAwLjAwOC0wLjMwMiAwLjA1OS0wLjI3NCAwLjE4Ny0wLjI0MSAwLjQxNSAwLjA4IDAuNTU2IDAuMTUxIDAuMDY3IDAuMzY1IDAuMzAyIDAuNDc2IDAuNTIyIDAuMzc1IDAuNzM5IDAuOTUgMC4yNDQgMC42OTQtMC41OTgtMC4wODEtMC4yNjUtMC41OC0wLjUxNS0wLjk0OC0wLjUzOXoiLz4KIDxwYXRoIGZpbGw9IiNmZmYiIG9wYWNpdHk9Ii4xIiBkPSJtMy40MDA0IDJjLTAuNzc1NiAwLTEuNDAwNCAwLjYyNDgtMS40MDA0IDEuNDAwNHYxYzAtMC43NzU2IDAuNjI0OC0xLjQwMDQgMS40MDA0LTEuNDAwNGgyNS4yYzAuNzc1IDAgMS40IDAuNjI0OCAxLjQgMS40MDA0di0xYzAtMC43NzU2LTAuNjI1LTEuNDAwNC0xLjQtMS40MDA0aC0yNS4yeiIvPgogPHBhdGggb3BhY2l0eT0iLjIiIGQ9Im0yIDI4LjZ2MWMwIDAuNzc1IDAuNjI0OCAxLjQgMS40MDA0IDEuNGgyNS4yYzAuNzc1IDAgMS40LTAuNjI1IDEuNC0xLjR2LTFjMCAwLjc3NS0wLjYyNSAxLjQtMS40IDEuNGgtMjUuMmMtMC43NzUyIDAtMS40LTAuNjI1LTEuNC0xLjR6Ii8+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MySQL Sink",
        "description" : "Send data to a MySQL Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies.\n\n- \"mvn:mysql:mysql-connector-java:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 3306
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured MySQL Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured MySQL Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the MySQL Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the MySQL Database.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:mysql://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "com.mysql.cj.jdbc.Driver"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "sql:{{query}}",
              "parameters" : {
                "dataSource" : "#bean:{{dsBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MySQL Sink",
      "description" : "Send data to a MySQL Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies.\n\n- \"mvn:mysql:mysql-connector-java:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 3306
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured MySQL Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured MySQL Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the MySQL Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the MySQL Database."
        }
      }
    }
  },
  "mysql-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "mysql-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmVyc2lvbj0iMS4wIj4KIDxyZWN0IGZpbGw9IiMyNjU1N2MiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgeD0iLTMwIiB5PSItMzAiIHJ4PSIxLjQiIHJ5PSIxLjQiIHRyYW5zZm9ybT0ibWF0cml4KDAsLTEsLTEsMCwwLDApIi8+CiA8cGF0aCBvcGFjaXR5PSIuMiIgZD0ibTguMDI1NCA4LjAwMDFjLTAuNzgyNS0wLjAxNjYtMS4xNDk0IDAuNTI0NC0wLjk4ODMgMS40NTcgMC4wNTIgMC4zMDA2IDAuMzE1MiAwLjcyOTkgMC44ODI4IDEuNDQxOSAwLjYzMTIyIDAuNzkwOSAwLjg4NTE0IDEuMjIyNyAxLjE2MDIgMS45NzA3IDAuNDMzNiAxLjE3OTMgMC42MzQwMyAxLjU3NDggMC45ODYzMyAxLjk0MzQgMC4yNzM2NiAwLjI4NjMgMC4yNzM2OSAwLjI4NzEyIDAuMDg5ODQgMC44NzEwOS0wLjI4NTA3IDAuOTA1NTYtMC4zNDQwNyAyLjcyMDctMC4xMTUyMyAzLjU3NDIgMC4zNDI0OCAxLjI3NzQgMC43NjQwMiAxLjg1NzQgMS4zNTE2IDEuODU3NCAwLjQxOTY4IDAgMC43NjM2NC0wLjM1MDkyIDAuODg2NzItMC45MDQzIDAuMDQyNjgtMC4xOTE4NiAwLjEyMjQ5LTAuNDY2MDcgMC4xNzc3My0wLjYwOTM4IDAuMDk1MzUtMC4yNDcyOCAwLjEyMDkzLTAuMjI4MTggMC40OTQxNCAwLjM4MDg2IDAuMjE2MjggMC4zNTI5NiAwLjYyODY2IDAuODc4NjEgMC45MTYwMiAxLjE2OCAwLjY2MzggMC42Njg0NSAxLjU3NDkgMS40MjE3IDEuNjQwNiAxLjM1NzQgMC4wMjc3NS0wLjAyNzEzLTAuMjM4LTAuNDIxNzctMC41ODk4NC0wLjg3ODkxcy0xLjAxNTEtMS41MTg5LTEuNDc0Ni0yLjM1OTRjLTAuNTM1OTMtMC45ODAyOS0wLjg5OTctMS41Mjg2LTEuMDEzNy0xLjUyOTMtMC4zNzA0NS0wLjAwMjUtMC43MTU4OCAwLjU4MDA0LTAuOTE2MDIgMS41NDY5LTAuMjMwNTYgMS4xMTM4LTAuNjM2NzUgMC45MjcwOC0wLjk2NjgtMC40NDUzMS0wLjE5MDE5LTAuNzkwODUtMC4wOTEwNi0xLjg1NiAwLjI2MzY3LTIuODUzNSAwLjE2MTM3LTAuNDUzNzYgMC4yOTI5Ny0wLjg3MzczIDAuMjkyOTctMC45MzE2NHMtMC4yNTczMS0wLjU0MzQ4LTAuNTcyMjctMS4wODAxYy0wLjMxNS0wLjUzNy0wLjY4NTEtMS4yOTctMC44MjItMS42OS0wLjMzMjYtMC45NTQtMC40OTA1LTEuMjMyLTEuMTU4Mi0yLjA0My0wLjY4NzktMC44MzQ2LTAuNzUzLTEuMjIwMy0wLjIwNTEtMS4yMTY2IDAuNDI1NTQgMC4wMDI4MSAxLjExMjMgMC4yODk0NCAxLjgwMjcgMC43NTM5MSAwLjQzNzEgMC4yOTQwNCAwLjU4NTIzIDAuMzMzOTggMS4yODcxIDAuMzMzOTggMC44ODE0MiAwIDEuMDcwOSAwLjA3MjIgMi4yOTMgMC44NzY5NSAxLjI0NDUgMC44MTk1OCAyLjE3MjIgMS41ODEzIDIuODE0NSAyLjMxMjUgMC41NzA0IDAuNjQ5MzcgMC44ODIwMSAxLjIxMzggMi41NjA1IDQuNjU2MiAwLjY0NDMzIDEuMzIxNCAxLjIxNTggMS45NTkzIDIuMDAzOSAyLjIzMjQgMS4yMTczIDAuNDIxODUgMS42MzE3IDAuNjEzMTQgMi4xNjggMC45OTgwNWwwLjU2NjQxIDAuNDA2MjUtMC4zODA4NiAwLjA3NDIyYy0wLjIxMDMgMC4wNDAzMy0wLjY2ODQ3IDAuMTA2MTYtMS4wMTc2IDAuMTQ2NDgtMC43Mjc0MSAwLjA4NC0xLjIwMzEgMC4zODU3My0xLjIwMzEgMC43NjM2NyAwIDAuNDI1OTIgMS40NTEzIDEuNjQ1MyAyLjkwNjIgMi40NDE0IDAuNjk5MDMgMC4zODI0NyAxLjM3MTYgMC43NTkyNyAxLjQ5NDEgMC44Mzc4OSAwLjMyNTk4IDAuMjA5MjIgMC40MTQyNCAwLjE4Mzg5IDAuMzMwMDgtMC4wOTE4LTAuMTc2MjQtMC41NzczOC0wLjc3Mjc5LTEuMTM5OC0yLjQyOTctMi4yOTQ5LTAuOTcxOTctMC42Nzc2LTAuOTgxOTktMC42NTI0NCAwLjMxNjQxLTAuNzgxMjUgMC45MjUtMC4wOTEgMS4zOTItMC4yNDkgMS4zOTItMC40NzIgMC0wLjEwMi0wLjQ3LTAuNjQ0LTEuMDQ1LTEuMjAzLTAuOS0wLjg3Ni0xLjIwNC0xLjA5NC0yLjE5NS0xLjU3Ny0xLjM1LTAuNjU2LTEuODQyLTEuMTc3LTIuMTUzLTIuMjgzLTAuNDY0LTEuNjQ5LTEuNzEyLTMuNTg3LTMuMzcxLTUuMjMtMS43MTItMS42OTYtMy4zNDctMi42MzQ0LTQuODQ1LTIuNzgxNC0wLjYwOS0wLjA1OTgtMC45MjQtMC4xNTIyLTEuMjM5LTAuMzY1My0wLjUzMzItMC4zNjExLTEuNzcxNy0wLjc2ODQtMi4zNzY2LTAuNzgxMnptMi45NjI5IDMuMDAyYy0wLjEyMjY2LTAuMDA3OS0wLjIyOTQ1IDAuMDA4NS0wLjMwMjczIDAuMDU4NTktMC4yNzM0MSAwLjE4Njk5LTAuMjQwOTkgMC40MTUwNCAwLjA4MDA4IDAuNTU2NjQgMC4xNTA5MiAwLjA2NjU2IDAuMzY1MDEgMC4zMDE0NyAwLjQ3NjU2IDAuNTIxNDggMC4zNzUxIDAuNzM5NzggMC45NDk4NSAwLjI0NDUgMC42OTMzNi0wLjU5NzY2LTAuMDgwODUtMC4yNjU0Ni0wLjU3OTMtMC41MTU0Ny0wLjk0NzI3LTAuNTM5MDZ6Ii8+CiA8cGF0aCBmaWxsPSIjZmZmIiBkPSJtOC4wMjU0IDdjLTAuNzgyNS0wLjAxNjYtMS4xNDk0IDAuNTI0NC0wLjk4ODMgMS40NTcgMC4wNTIgMC4zMDA2IDAuMzE1MiAwLjczMDIgMC44ODI4IDEuNDQxNCAwLjYzMTIgMC43OTA2IDAuODg1MiAxLjIyMjYgMS4xNjAyIDEuOTcwNiAwLjQzMzYgMS4xNzkgMC42MzQgMS41NzUgMC45ODU5IDEuOTQzIDAuMjc0IDAuMjg3IDAuMjc0IDAuMjg4IDAuMDkgMC44NzItMC4yODQ4IDAuOTA1LTAuMzQzOCAyLjcyLTAuMTE1IDMuNTc0IDAuMzQyIDEuMjc3IDAuNzY0IDEuODU3IDEuMzUyIDEuODU3IDAuNDE5IDAgMC43NjMtMC4zNTEgMC44ODYtMC45MDQgMC4wNDMtMC4xOTIgMC4xMjMtMC40NjYgMC4xNzgtMC42MDkgMC4wOTUtMC4yNDggMC4xMjEtMC4yMjkgMC40OTQgMC4zOCAwLjIxNiAwLjM1MyAwLjYyOSAwLjg3OSAwLjkxNiAxLjE2OCAwLjY2NCAwLjY2OSAxLjU3NSAxLjQyMiAxLjY0MSAxLjM1OCAwLjAyOC0wLjAyNy0wLjIzOC0wLjQyMi0wLjU5LTAuODc5cy0xLjAxNS0xLjUxOS0xLjQ3NS0yLjM1OWMtMC41MzYtMC45ODEtMC44OTktMS41MjktMS4wMTMtMS41My0wLjM3MS0wLjAwMi0wLjcxNiAwLjU4LTAuOTE2IDEuNTQ3LTAuMjMxIDEuMTE0LTAuNjM3IDAuOTI3LTAuOTY3LTAuNDQ1LTAuMTktMC43OTEtMC4wOTEtMS44NTYgMC4yNjQtMi44NTQgMC4xNjEtMC40NTMgMC4yOTMtMC44NzMgMC4yOTMtMC45MzFzLTAuMjU4LTAuNTQ0LTAuNTczLTEuMDhjLTAuMzE1LTAuNTM3LTAuNjg1MS0xLjI5Ny0wLjgyMi0xLjY5LTAuMzMyNi0wLjk1NC0wLjQ5MDUtMS4yMzItMS4xNTgyLTIuMDQyOS0wLjY4NzktMC44MzQ4LTAuNzUzLTEuMjIwNC0wLjIwNTEtMS4yMTY4IDAuNDI1NSAwLjAwMjkgMS4xMTIzIDAuMjg5NSAxLjgwMjMgMC43NTM5IDAuNDM4IDAuMjk0MSAwLjU4NiAwLjMzNCAxLjI4OCAwLjMzNCAwLjg4MSAwIDEuMDcgMC4wNzIyIDIuMjkzIDAuODc3IDEuMjQ0IDAuODE5OCAyLjE3MiAxLjU4MTggMi44MTQgMi4zMTI4IDAuNTcgMC42NDkgMC44ODIgMS4yMTQgMi41NjEgNC42NTYgMC42NDQgMS4zMjEgMS4yMTUgMS45NTkgMi4wMDMgMi4yMzIgMS4yMTggMC40MjIgMS42MzIgMC42MTMgMi4xNjggMC45OThsMC41NjcgMC40MDctMC4zODEgMC4wNzRjLTAuMjEgMC4wNC0wLjY2OSAwLjEwNi0xLjAxOCAwLjE0Ni0wLjcyNyAwLjA4NC0xLjIwMyAwLjM4Ni0xLjIwMyAwLjc2NCAwIDAuNDI2IDEuNDUxIDEuNjQ1IDIuOTA2IDIuNDQxIDAuNyAwLjM4MyAxLjM3MiAwLjc2IDEuNDk1IDAuODM4IDAuMzI2IDAuMjEgMC40MTQgMC4xODQgMC4zMy0wLjA5MS0wLjE3Ny0wLjU3OC0wLjc3My0xLjE0LTIuNDMtMi4yOTUtMC45NzItMC42NzgtMC45ODItMC42NTMgMC4zMTYtMC43ODIgMC45MjYtMC4wOTIgMS4zOTMtMC4yNSAxLjM5My0wLjQ3MiAwLTAuMTAyLTAuNDctMC42NDQtMS4wNDUtMS4yMDMtMC45LTAuODc3LTEuMjA0LTEuMDk0LTIuMTk1LTEuNTc3LTEuMzUtMC42NTYtMS44NDItMS4xNzctMi4xNTMtMi4yODMtMC40NjQtMS42NS0xLjcxMi0zLjU4Ny0zLjM3MS01LjIzLTEuNzEyLTEuNjk2NS0zLjM0Ny0yLjYzNDUtNC44NDUtMi43ODE1LTAuNjA5LTAuMDU5OC0wLjkyNC0wLjE1MjItMS4yMzktMC4zNjUzLTAuNTMzMi0wLjM2MTEtMS43NzE3LTAuNzY4NC0yLjM3NjYtMC43ODEyem0yLjk2MjYgMy4wMDJjLTAuMTIyLTAuMDA3OS0wLjIyOSAwLjAwOC0wLjMwMiAwLjA1OS0wLjI3NCAwLjE4Ny0wLjI0MSAwLjQxNSAwLjA4IDAuNTU2IDAuMTUxIDAuMDY3IDAuMzY1IDAuMzAyIDAuNDc2IDAuNTIyIDAuMzc1IDAuNzM5IDAuOTUgMC4yNDQgMC42OTQtMC41OTgtMC4wODEtMC4yNjUtMC41OC0wLjUxNS0wLjk0OC0wLjUzOXoiLz4KIDxwYXRoIGZpbGw9IiNmZmYiIG9wYWNpdHk9Ii4xIiBkPSJtMy40MDA0IDJjLTAuNzc1NiAwLTEuNDAwNCAwLjYyNDgtMS40MDA0IDEuNDAwNHYxYzAtMC43NzU2IDAuNjI0OC0xLjQwMDQgMS40MDA0LTEuNDAwNGgyNS4yYzAuNzc1IDAgMS40IDAuNjI0OCAxLjQgMS40MDA0di0xYzAtMC43NzU2LTAuNjI1LTEuNDAwNC0xLjQtMS40MDA0aC0yNS4yeiIvPgogPHBhdGggb3BhY2l0eT0iLjIiIGQ9Im0yIDI4LjZ2MWMwIDAuNzc1IDAuNjI0OCAxLjQgMS40MDA0IDEuNGgyNS4yYzAuNzc1IDAgMS40LTAuNjI1IDEuNC0xLjR2LTFjMCAwLjc3NS0wLjYyNSAxLjQtMS40IDEuNGgtMjUuMmMtMC43NzUyIDAtMS40LTAuNjI1LTEuNC0xLjR6Ii8+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "MySQL Source",
        "description" : "Query data from a MySQL Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies.\n\n- \"mvn:mysql:mysql-connector-java:<version>\"",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 3306
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured MySQL Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured MySQL Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the MySQL Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the MySQL Database.",
            "type" : "string"
          },
          "consumedQuery" : {
            "title" : "Consumed Query",
            "description" : "A query to run on a tuple consumed.",
            "type" : "string",
            "example" : "DELETE FROM accounts where user_id = :#user_id"
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:mysql://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "com.mysql.cj.jdbc.Driver"
          }
        } ],
        "from" : {
          "uri" : "sql:{{query}}",
          "parameters" : {
            "dataSource" : "#bean:{{dsBean}}",
            "onConsume" : "{{?consumedQuery}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "MySQL Source",
      "description" : "Query data from a MySQL Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies.\n\n- \"mvn:mysql:mysql-connector-java:<version>\"",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 3306
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured MySQL Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured MySQL Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the MySQL Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the MySQL Database."
        },
        "consumedQuery" : {
          "type" : "string",
          "title" : "Consumed Query",
          "description" : "A query to run on a tuple consumed."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        }
      }
    }
  },
  "nats-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "nats-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NDQuMiIgaGVpZ2h0PSIxODEuODEiIHZpZXdCb3g9IjAgMCA3NDQuMiAxODEuODEiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMjlhOWRlO30uY2xzLTJ7ZmlsbDojZmZmO30uY2xzLTN7ZmlsbDojMzNhNjc1O30uY2xzLTR7ZmlsbDojMzY1YzkzO30uY2xzLTV7ZmlsbDojOGRjMzQxO308L3N0eWxlPjwvZGVmcz48dGl0bGU+bmF0cy1sb2dvLWZyZWVsb2dvdmVjdG9ycy5uZXQ8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIuOSwyODQuMUgxNzhjLS4wNiw0Ny4zNS4wOCw5NC43Mi0uMDcsMTQyLjA3LTE5LjA1LDAtMzguMSwwLTU3LjE0LDAtLjI0LDEzLjI1LS4wNiwyNi41LS4wOSwzOS43NXEtMjEuNDUtMTkuOC00Mi44My0zOS42N2MtMjUtLjE3LTUwLDAtNzUtLjA4di0xNDJtMjguMDUsMzNjMCwyNS40My4wOSw1MC44Ni0uMDUsNzYuMjgsNy4wNy4zLDE0LjE2LjA5LDIxLjI0LjEtLjE1LTIwLDAtMzkuOTEtLjA5LTU5Ljg2LDIwLjM0LDE5LjExLDQwLjgyLDM4LjA2LDYxLjE2LDU3LjE3LDEuMjQsMSwyLjE0LDIuNzksMy44OSwyLjcxLDEwLjI3LjA2LDIwLjU1LS4wOCwzMC44MS4wNy4xNC0yNS40OS4wNy01MSwwLTc2LjVIMTI2Ljg4Yy4wNiwxOS41MiwwLDM5LjA1LDAsNTguNTdxLTMxLjQ3LTI5LjEzLTYyLjczLTU4LjUxQzUzLjExLDMxNy4wNiw0MiwzMTcuMTEsMzEsMzE3LjE1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuOSAtMjg0LjEpIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNjM0LjMzLDMxNy4wN2ExOTUuMDYsMTk1LjA2LDAsMCwxLDUzLjU4LjkzQTEwMS41NiwxMDEuNTYsMCwwLDEsNzA3LDMyMi43MmMwLDYsMCwxMi4wOCwwLDE4LjEyLTE4LTctMzcuNjctOS01Ni44OS04LjQ0LTYuMDguMzEtMTIuMzMuMTktMTguMTUsMi4yNGE0Ljc3LDQuNzcsMCwwLDAtMi44OCw2LjQ3YzEuMjUsMi43NCw0LjYyLDMsNy4yMSwzLjQ3LDE5LjQsMi4xMSwzOS4xNC4yNyw1OC4zNyw0LjEyLDUuOTMsMS4zNCwxMi41LDMuNDcsMTUuODMsOSwzLjYyLDYuMjgsMy42NSwxNC4xOCwxLjM1LDIwLjkyLTIsNS44NS03LjQ3LDkuNjctMTMuMDksMTEuNjItMTAuNjIsMy43My0yMiw0LjI2LTMzLjE3LDQuNi0yMC4wNy4xOC00MC41OC0xLjIyLTU5LjYxLTguMDYsMC01LjksMC0xMS44MSwwLTE3LjcxLDMuNzUuNjIsNy4xNiwyLjM4LDEwLjg1LDMuMjJhMTc3Ljg0LDE3Ny44NCwwLDAsMCw1Mi4yLDUuODZjNi4yOSwwLDEyLjY2LS4yNywxOC44MS0xLjc2LDIuNTktLjU0LDUuMTYtMi42Niw0Ljg2LTUuNTYtLjEyLTMuMjgtMy42My00LjYtNi4zOS00Ljg1LTIwLjU0LTIuODEtNDEuNjctLjM0LTYxLjkxLTUuNDctNi4zLTEuNjEtMTMuMDctNS4wNi0xNS4yMS0xMS42Ni0yLjQ5LTcuNzMtMS43Mi0xNy4yOCw0LjI1LTIzLjI4QzYxOC44LDMxOS45LDYyNi45MSwzMTguMyw2MzQuMzMsMzE3LjA3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuOSAtMjg0LjEpIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzEsMzE3LjE1YzExLjA4LDAsMjIuMTYtLjA5LDMzLjI0LDBxMzEuMjYsMjkuMzcsNjIuNzMsNTguNTFjMC0xOS41MiwwLTM5LjA1LDAtNTguNTdIMTQ4YzAsMjUuNTEuMSw1MSwwLDc2LjUtMTAuMjYtLjE1LTIwLjU0LDAtMzAuODEtLjA3LTEuNzUuMDgtMi42NS0xLjc2LTMuODktMi43MS0yMC4zNC0xOS4xMS00MC44Mi0zOC4wNi02MS4xNi01Ny4xNy4xMywxOS45NS0uMDYsMzkuOS4wOSw1OS44Ni03LjA4LDAtMTQuMTcuMi0yMS4yNC0uMUMzMSwzNjgsMzAuOTQsMzQyLjU4LDMxLDMxNy4xNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTI2NC42LDMxNy41NGMuNjgtMS4yOSwyLjMxLS43MiwzLjQ3LS44Nyw4LjM5LjA3LDE2Ljc4LDAsMjUuMTYsMCwxOC4zMiwyNS42LDM2LjcxLDUxLjE1LDU0Ljg0LDc2Ljg3cS0xMi42MS0uMTMtMjUuMjIsMC01LjIxLTcuMzYtMTAuMzQtMTQuNzhjLTIyLjUxLS4xMy00NSwwLTY3LjUzLS4wNy0zLjU4LDQuODYtNi44OSw5LjkxLTEwLjM3LDE0LjgyLTguMDktLjA1LTE2LjE3LDAtMjQuMjQsMCwxOC0yNS4zNywzNi4xNS01MC42NSw1NC4yMy03Nm0tOC4zOCw0NS4xMmMxNS0uMDgsMjkuOTIuMDcsNDQuODgtLjA2LTcuNDMtMTAuNjUtMTUtMjEuMjYtMjIuMjUtMzJDMjcxLjA4LDM0MS4xMSwyNjMuNjQsMzUxLjksMjU2LjIyLDM2Mi42NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQwOS44LDMxNy4yMXE1OS4xOSwwLDExOC4zOSwwYzAsNS43NCwwLDExLjQ3LDAsMTcuMjJxLTI0LjE1LDAtNDguMzIsMGMwLDE5LjY4LDAsMzkuMzYsMCw1OS03LjI0LDAtMTQuNDctLjA1LTIxLjcsMHEtLjA4LTI5LjUyLDAtNTljLTE2LjExLDAtMzIuMjIsMC00OC4zMywwUTQwOS43MywzMjUuODMsNDA5LjgsMzE3LjIxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuOSAtMjg0LjEpIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMTkyLjYxLDI4NC4xaDE3NS4xcTAsNzEsMCwxNDItODcuNTQsMC0xNzUuMDgsMC0uMS03MSwwLTE0Mi4wNm03MiwzMy40NGMtMTguMDgsMjUuMzMtMzYuMjMsNTAuNjEtNTQuMjMsNzYsOC4wNywwLDE2LjE1LDAsMjQuMjQsMCwzLjQ4LTQuOTEsNi43OS0xMCwxMC4zNy0xNC44MiwyMi41MS4wNyw0NS0uMDYsNjcuNTMuMDdxNS4xMiw3LjQzLDEwLjM0LDE0Ljc4LDEyLjYtLjEyLDI1LjIyLDBjLTE4LjEzLTI1LjcyLTM2LjUyLTUxLjI3LTU0Ljg0LTc2Ljg3LTguMzgsMC0xNi43NywwLTI1LjE2LDBDMjY2LjkxLDMxNi44MiwyNjUuMjgsMzE2LjI1LDI2NC42LDMxNy41NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI1Ni4yMiwzNjIuNjZjNy40Mi0xMC43NiwxNC44Ni0yMS41NSwyMi42My0zMi4wNyw3LjMsMTAuNzUsMTQuODIsMjEuMzYsMjIuMjUsMzJDMjg2LjE0LDM2Mi43MywyNzEuMTgsMzYyLjU4LDI1Ni4yMiwzNjIuNjZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMi45IC0yODQuMSkiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0zODIuMywyODQuMUg1NTcuNHEwLDcxLDAsMTQyLTg3LjU3LjE2LTE3NS4xNCwwLDAtNzEsMC0xNDJtMjcuNSwzMy4xMXEtLjA3LDguNjMsMCwxNy4yNWMxNi4xMSwwLDMyLjIyLDAsNDguMzMsMHEwLDI5LjUyLDAsNTljNy4yMy0uMDYsMTQuNDYsMCwyMS43LDAsLjA4LTE5LjY3LDAtMzkuMzUsMC01OXEyNC4xNywwLDQ4LjMyLDBjMC01Ljc1LDAtMTEuNDgsMC0xNy4yMlE0NjksMzE3LjE1LDQwOS44LDMxNy4yMVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTU3MiwyODQuMUg3NDcuMVY0MjZjLTcuMTYuMzktMTQuMzMuMDYtMjEuNDguMTZxLTc2LjgyLDAtMTUzLjY0LDAsMC03MSwwLTE0Mm02Mi4zNCwzM2MtNy40MiwxLjIzLTE1LjUzLDIuODMtMjAuOTQsOC40OC02LDYtNi43NCwxNS41NS00LjI1LDIzLjI4LDIuMTQsNi42LDguOTEsMTAuMDUsMTUuMjEsMTEuNjYsMjAuMjQsNS4xMyw0MS4zNywyLjY2LDYxLjkxLDUuNDcsMi43Ni4yNSw2LjI3LDEuNTcsNi4zOSw0Ljg1LjMsMi45LTIuMjcsNS00Ljg2LDUuNTYtNi4xNSwxLjQ5LTEyLjUyLDEuNzItMTguODEsMS43NmExNzcuODQsMTc3Ljg0LDAsMCwxLTUyLjItNS44NmMtMy42OS0uODQtNy4xLTIuNi0xMC44NS0zLjIyLDAsNS45LDAsMTEuODEsMCwxNy43MSwxOSw2Ljg0LDM5LjU0LDguMjQsNTkuNjEsOC4wNiwxMS4xNS0uMzQsMjIuNTUtLjg3LDMzLjE3LTQuNiw1LjYyLTIsMTEuMTEtNS43NywxMy4wOS0xMS42MiwyLjMtNi43NCwyLjI3LTE0LjY0LTEuMzUtMjAuOTItMy4zMy01LjUxLTkuOS03LjY0LTE1LjgzLTktMTkuMjMtMy44NS0zOS0yLTU4LjM3LTQuMTItMi41OS0uNTEtNi0uNzMtNy4yMS0zLjQ3YTQuNzcsNC43NywwLDAsMSwyLjg4LTYuNDdjNS44Mi0yLjA1LDEyLjA3LTEuOTMsMTguMTUtMi4yNCwxOS4yMi0uNTIsMzguODgsMS40Miw1Ni44OSw4LjQ0LDAtNiwwLTEyLjA4LDAtMTguMTJBMTAxLjU2LDEwMS41NiwwLDAsMCw2ODcuOTEsMzE4LDE5NS4wNiwxOTUuMDYsMCwwLDAsNjM0LjMzLDMxNy4wN1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "NATS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "NATS Sink",
        "description" : "Send data to NATS topics.",
        "required" : [ "topic", "servers" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic",
            "description" : "NATS Topic name",
            "type" : "string"
          },
          "servers" : {
            "title" : "Servers",
            "description" : "Comma separated list of NATS Servers",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "dependencies" : [ "camel:nats", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "nats:{{topic}}",
              "parameters" : {
                "servers" : "{{servers}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "NATS Sink",
      "description" : "Send data to NATS topics.",
      "required" : [ "topic", "servers" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic",
          "description" : "NATS Topic name"
        },
        "servers" : {
          "type" : "string",
          "title" : "Servers",
          "description" : "Comma separated list of NATS Servers",
          "format" : "password"
        }
      }
    }
  },
  "nats-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "nats-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NDQuMiIgaGVpZ2h0PSIxODEuODEiIHZpZXdCb3g9IjAgMCA3NDQuMiAxODEuODEiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMjlhOWRlO30uY2xzLTJ7ZmlsbDojZmZmO30uY2xzLTN7ZmlsbDojMzNhNjc1O30uY2xzLTR7ZmlsbDojMzY1YzkzO30uY2xzLTV7ZmlsbDojOGRjMzQxO308L3N0eWxlPjwvZGVmcz48dGl0bGU+bmF0cy1sb2dvLWZyZWVsb2dvdmVjdG9ycy5uZXQ8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIuOSwyODQuMUgxNzhjLS4wNiw0Ny4zNS4wOCw5NC43Mi0uMDcsMTQyLjA3LTE5LjA1LDAtMzguMSwwLTU3LjE0LDAtLjI0LDEzLjI1LS4wNiwyNi41LS4wOSwzOS43NXEtMjEuNDUtMTkuOC00Mi44My0zOS42N2MtMjUtLjE3LTUwLDAtNzUtLjA4di0xNDJtMjguMDUsMzNjMCwyNS40My4wOSw1MC44Ni0uMDUsNzYuMjgsNy4wNy4zLDE0LjE2LjA5LDIxLjI0LjEtLjE1LTIwLDAtMzkuOTEtLjA5LTU5Ljg2LDIwLjM0LDE5LjExLDQwLjgyLDM4LjA2LDYxLjE2LDU3LjE3LDEuMjQsMSwyLjE0LDIuNzksMy44OSwyLjcxLDEwLjI3LjA2LDIwLjU1LS4wOCwzMC44MS4wNy4xNC0yNS40OS4wNy01MSwwLTc2LjVIMTI2Ljg4Yy4wNiwxOS41MiwwLDM5LjA1LDAsNTguNTdxLTMxLjQ3LTI5LjEzLTYyLjczLTU4LjUxQzUzLjExLDMxNy4wNiw0MiwzMTcuMTEsMzEsMzE3LjE1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuOSAtMjg0LjEpIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNjM0LjMzLDMxNy4wN2ExOTUuMDYsMTk1LjA2LDAsMCwxLDUzLjU4LjkzQTEwMS41NiwxMDEuNTYsMCwwLDEsNzA3LDMyMi43MmMwLDYsMCwxMi4wOCwwLDE4LjEyLTE4LTctMzcuNjctOS01Ni44OS04LjQ0LTYuMDguMzEtMTIuMzMuMTktMTguMTUsMi4yNGE0Ljc3LDQuNzcsMCwwLDAtMi44OCw2LjQ3YzEuMjUsMi43NCw0LjYyLDMsNy4yMSwzLjQ3LDE5LjQsMi4xMSwzOS4xNC4yNyw1OC4zNyw0LjEyLDUuOTMsMS4zNCwxMi41LDMuNDcsMTUuODMsOSwzLjYyLDYuMjgsMy42NSwxNC4xOCwxLjM1LDIwLjkyLTIsNS44NS03LjQ3LDkuNjctMTMuMDksMTEuNjItMTAuNjIsMy43My0yMiw0LjI2LTMzLjE3LDQuNi0yMC4wNy4xOC00MC41OC0xLjIyLTU5LjYxLTguMDYsMC01LjksMC0xMS44MSwwLTE3LjcxLDMuNzUuNjIsNy4xNiwyLjM4LDEwLjg1LDMuMjJhMTc3Ljg0LDE3Ny44NCwwLDAsMCw1Mi4yLDUuODZjNi4yOSwwLDEyLjY2LS4yNywxOC44MS0xLjc2LDIuNTktLjU0LDUuMTYtMi42Niw0Ljg2LTUuNTYtLjEyLTMuMjgtMy42My00LjYtNi4zOS00Ljg1LTIwLjU0LTIuODEtNDEuNjctLjM0LTYxLjkxLTUuNDctNi4zLTEuNjEtMTMuMDctNS4wNi0xNS4yMS0xMS42Ni0yLjQ5LTcuNzMtMS43Mi0xNy4yOCw0LjI1LTIzLjI4QzYxOC44LDMxOS45LDYyNi45MSwzMTguMyw2MzQuMzMsMzE3LjA3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuOSAtMjg0LjEpIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzEsMzE3LjE1YzExLjA4LDAsMjIuMTYtLjA5LDMzLjI0LDBxMzEuMjYsMjkuMzcsNjIuNzMsNTguNTFjMC0xOS41MiwwLTM5LjA1LDAtNTguNTdIMTQ4YzAsMjUuNTEuMSw1MSwwLDc2LjUtMTAuMjYtLjE1LTIwLjU0LDAtMzAuODEtLjA3LTEuNzUuMDgtMi42NS0xLjc2LTMuODktMi43MS0yMC4zNC0xOS4xMS00MC44Mi0zOC4wNi02MS4xNi01Ny4xNy4xMywxOS45NS0uMDYsMzkuOS4wOSw1OS44Ni03LjA4LDAtMTQuMTcuMi0yMS4yNC0uMUMzMSwzNjgsMzAuOTQsMzQyLjU4LDMxLDMxNy4xNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTI2NC42LDMxNy41NGMuNjgtMS4yOSwyLjMxLS43MiwzLjQ3LS44Nyw4LjM5LjA3LDE2Ljc4LDAsMjUuMTYsMCwxOC4zMiwyNS42LDM2LjcxLDUxLjE1LDU0Ljg0LDc2Ljg3cS0xMi42MS0uMTMtMjUuMjIsMC01LjIxLTcuMzYtMTAuMzQtMTQuNzhjLTIyLjUxLS4xMy00NSwwLTY3LjUzLS4wNy0zLjU4LDQuODYtNi44OSw5LjkxLTEwLjM3LDE0LjgyLTguMDktLjA1LTE2LjE3LDAtMjQuMjQsMCwxOC0yNS4zNywzNi4xNS01MC42NSw1NC4yMy03Nm0tOC4zOCw0NS4xMmMxNS0uMDgsMjkuOTIuMDcsNDQuODgtLjA2LTcuNDMtMTAuNjUtMTUtMjEuMjYtMjIuMjUtMzJDMjcxLjA4LDM0MS4xMSwyNjMuNjQsMzUxLjksMjU2LjIyLDM2Mi42NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQwOS44LDMxNy4yMXE1OS4xOSwwLDExOC4zOSwwYzAsNS43NCwwLDExLjQ3LDAsMTcuMjJxLTI0LjE1LDAtNDguMzIsMGMwLDE5LjY4LDAsMzkuMzYsMCw1OS03LjI0LDAtMTQuNDctLjA1LTIxLjcsMHEtLjA4LTI5LjUyLDAtNTljLTE2LjExLDAtMzIuMjIsMC00OC4zMywwUTQwOS43MywzMjUuODMsNDA5LjgsMzE3LjIxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuOSAtMjg0LjEpIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMTkyLjYxLDI4NC4xaDE3NS4xcTAsNzEsMCwxNDItODcuNTQsMC0xNzUuMDgsMC0uMS03MSwwLTE0Mi4wNm03MiwzMy40NGMtMTguMDgsMjUuMzMtMzYuMjMsNTAuNjEtNTQuMjMsNzYsOC4wNywwLDE2LjE1LDAsMjQuMjQsMCwzLjQ4LTQuOTEsNi43OS0xMCwxMC4zNy0xNC44MiwyMi41MS4wNyw0NS0uMDYsNjcuNTMuMDdxNS4xMiw3LjQzLDEwLjM0LDE0Ljc4LDEyLjYtLjEyLDI1LjIyLDBjLTE4LjEzLTI1LjcyLTM2LjUyLTUxLjI3LTU0Ljg0LTc2Ljg3LTguMzgsMC0xNi43NywwLTI1LjE2LDBDMjY2LjkxLDMxNi44MiwyNjUuMjgsMzE2LjI1LDI2NC42LDMxNy41NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI1Ni4yMiwzNjIuNjZjNy40Mi0xMC43NiwxNC44Ni0yMS41NSwyMi42My0zMi4wNyw3LjMsMTAuNzUsMTQuODIsMjEuMzYsMjIuMjUsMzJDMjg2LjE0LDM2Mi43MywyNzEuMTgsMzYyLjU4LDI1Ni4yMiwzNjIuNjZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMi45IC0yODQuMSkiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0zODIuMywyODQuMUg1NTcuNHEwLDcxLDAsMTQyLTg3LjU3LjE2LTE3NS4xNCwwLDAtNzEsMC0xNDJtMjcuNSwzMy4xMXEtLjA3LDguNjMsMCwxNy4yNWMxNi4xMSwwLDMyLjIyLDAsNDguMzMsMHEwLDI5LjUyLDAsNTljNy4yMy0uMDYsMTQuNDYsMCwyMS43LDAsLjA4LTE5LjY3LDAtMzkuMzUsMC01OXEyNC4xNywwLDQ4LjMyLDBjMC01Ljc1LDAtMTEuNDgsMC0xNy4yMlE0NjksMzE3LjE1LDQwOS44LDMxNy4yMVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTU3MiwyODQuMUg3NDcuMVY0MjZjLTcuMTYuMzktMTQuMzMuMDYtMjEuNDguMTZxLTc2LjgyLDAtMTUzLjY0LDAsMC03MSwwLTE0Mm02Mi4zNCwzM2MtNy40MiwxLjIzLTE1LjUzLDIuODMtMjAuOTQsOC40OC02LDYtNi43NCwxNS41NS00LjI1LDIzLjI4LDIuMTQsNi42LDguOTEsMTAuMDUsMTUuMjEsMTEuNjYsMjAuMjQsNS4xMyw0MS4zNywyLjY2LDYxLjkxLDUuNDcsMi43Ni4yNSw2LjI3LDEuNTcsNi4zOSw0Ljg1LjMsMi45LTIuMjcsNS00Ljg2LDUuNTYtNi4xNSwxLjQ5LTEyLjUyLDEuNzItMTguODEsMS43NmExNzcuODQsMTc3Ljg0LDAsMCwxLTUyLjItNS44NmMtMy42OS0uODQtNy4xLTIuNi0xMC44NS0zLjIyLDAsNS45LDAsMTEuODEsMCwxNy43MSwxOSw2Ljg0LDM5LjU0LDguMjQsNTkuNjEsOC4wNiwxMS4xNS0uMzQsMjIuNTUtLjg3LDMzLjE3LTQuNiw1LjYyLTIsMTEuMTEtNS43NywxMy4wOS0xMS42MiwyLjMtNi43NCwyLjI3LTE0LjY0LTEuMzUtMjAuOTItMy4zMy01LjUxLTkuOS03LjY0LTE1LjgzLTktMTkuMjMtMy44NS0zOS0yLTU4LjM3LTQuMTItMi41OS0uNTEtNi0uNzMtNy4yMS0zLjQ3YTQuNzcsNC43NywwLDAsMSwyLjg4LTYuNDdjNS44Mi0yLjA1LDEyLjA3LTEuOTMsMTguMTUtMi4yNCwxOS4yMi0uNTIsMzguODgsMS40Miw1Ni44OSw4LjQ0LDAtNiwwLTEyLjA4LDAtMTguMTJBMTAxLjU2LDEwMS41NiwwLDAsMCw2ODcuOTEsMzE4LDE5NS4wNiwxOTUuMDYsMCwwLDAsNjM0LjMzLDMxNy4wN1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjkgLTI4NC4xKSIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "NATS",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "NATS Source",
        "description" : "Receive data from NATS topics.",
        "required" : [ "topic", "servers" ],
        "type" : "object",
        "properties" : {
          "topic" : {
            "title" : "Topic",
            "description" : "NATS Topic name",
            "type" : "string"
          },
          "servers" : {
            "title" : "Servers",
            "description" : "Comma separated list of NATS Servers",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:nats", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "nats:{{topic}}",
          "parameters" : {
            "servers" : "{{servers}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "NATS Source",
      "description" : "Receive data from NATS topics.",
      "required" : [ "topic", "servers" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic",
          "description" : "NATS Topic name"
        },
        "servers" : {
          "type" : "string",
          "title" : "Servers",
          "description" : "Comma separated list of NATS Servers",
          "format" : "password"
        }
      }
    }
  },
  "nominatim-geocode-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "nominatim-geocode-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjU2IgogICBoZWlnaHQ9IjI1NiIKICAgaWQ9InN2ZzMwMzgiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjIgKDBhMDBjZjUzMzksIDIwMjItMDItMDQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJPcGVuU3RyZWV0TWFwIGxvZ28gMjAxMS5zdmciCiAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iL2hvbWUvZnJlZC9ibGEucG5nIgogICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTgwIgogICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTgwIgogICBzb2RpcG9kaTp2ZXJzaW9uPSIwLjMyIgogICBpbmtzY2FwZTpvdXRwdXRfZXh0ZW5zaW9uPSJvcmcuaW5rc2NhcGUub3V0cHV0LnN2Zy5pbmtzY2FwZSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogIDx0aXRsZQogICAgIGlkPSJ0aXRsZTM1OTQiPk9wZW5TdHJlZXRNYXAgbG9nbyAyMDExPC90aXRsZT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzA0MCI+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDY4NDYiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY4NDgiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjAuOTMwNTAxOTQ7IgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgaWQ9InN0b3A2ODUyIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY4NTAiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1ODYyIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTI5NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1ODY0IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzYiCiAgICAgICAgIG9mZnNldD0iMC4xMjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmN2RkODQ7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzQiCiAgICAgICAgIG9mZnNldD0iMC4yMDU4MDU4MiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3MCIKICAgICAgICAgb2Zmc2V0PSIwLjMwMTEyNjIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjRjZTUxO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTdhYTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC4zNDEyMDM5IgogICAgICAgICBpZD0ic3RvcDU4NzIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlZmJiMGU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNTg2NiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmQzMzM1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU3NjQiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTc3MCIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0YzQ2NGE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzg0MDQyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU3NjYiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1NzQ1Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1NzQ3IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU3NTMiCiAgICAgICAgIG9mZnNldD0iMC44MzkzMjc1MSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkMGU5ZjI7c3RvcC1vcGFjaXR5OjAuMjgxODUzMjk7IgogICAgICAgICBvZmZzZXQ9IjAuOTQzMDg1MDciCiAgICAgICAgIGlkPSJzdG9wNTc1NSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1NzQ5IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY4MCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0Njg0IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF96PSI2NCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIzMiA6IDIxLjMzMzMzMyA6IDEiCiAgICAgICBpZD0icGVyc3BlY3RpdmUzMDQ2IiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmUzMDU2IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTM4NDQiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlMzg3MSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmUzODk3IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTM5MjYiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlMzk1MyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmUzOTc5IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQwMDUiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDAyOCIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0MDU0IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQwODMiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDEzMiIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0MTU4IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQxODQiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDIxOSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0Mjc2IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQzMDIiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDMyOCIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0MzU0IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQzODYiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDQxMyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0NDM5IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQ0NjUiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDQ5NyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0NTIzIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQ1NDkiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDU3NSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0NjAxIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQ2MjciCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDY1MyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0ODM3IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2ODAtNyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4Mi0yIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQ2ODQtNyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4NDYiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ4NDgiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDg1MCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4NTMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ4NTUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDg1NyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4NjAiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ4NjIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDg2NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4NjciPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ4NjkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDg3MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4NzQiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ4NzYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDg3OCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4ODEiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ4ODMiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDg4NSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4ODgiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ4OTAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDg5MiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ3NDQtOSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDc0Ni0zIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQ3NDgtOCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ3NzQtOSIKICAgICAgIHgxPSIyMTMuNSIKICAgICAgIHkxPSItNzYiCiAgICAgICB4Mj0iMTgxLjc1MDA1IgogICAgICAgeTI9Ii01LjY1NjMwMDEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNTE0OCIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1MTc5IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTUyMDEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNTIwMS03IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTUyMDEtNzIiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNTIwMS0wIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTUyNjAiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNTI5NiIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1MzM5IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8Y2xpcFBhdGgKICAgICAgIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImNsaXBQYXRoNTM4MyI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gOSwxMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw1NC43NSAyNyw2NS41IDI3LDY1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEzMC41IDIxOCwxMTYgMjE4LDExNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDc5IDIzNSw2NS41IDIzNSw2NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwyMS4yNSAyMTkuMjUsMTAgMjE5LjI1LDEwIGMgMCwwIC0yNC4yNSw5IC0zMS43NSwxMC41IC03LjUsMS41IC0yMSw1LjI1IC0yMSw1LjI1IDAsMCAtOS43NSwtNC4yNSAtMjIsLTguNSAtMTIuMjUsLTQuMjUgLTI5Ljc1LC01LjUgLTI5Ljc1LC01LjUgMCwwIC0zLjI1LDMuNSAtMjIsOCAtMTguNzUsNC41IC0yNy41LDUuNzUgLTI3LjUsNS43NSAwLDAgLTE4LjUsLTkgLTMxLjUsLTExLjUgLTEzLC0yLjUgLTI0LC0yIC0yNC43NSwtMS43NSB6IgogICAgICAgICBpZD0icGF0aDUzODUiIC8+CiAgICA8L2NsaXBQYXRoPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1NDEyIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8Y2xpcFBhdGgKICAgICAgIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImNsaXBQYXRoNTQyNiI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gOSwxMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw1NC43NSAyNyw2NS41IDI3LDY1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEzMC41IDIxOCwxMTYgMjE4LDExNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDc5IDIzNSw2NS41IDIzNSw2NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwyMS4yNSAyMTkuMjUsMTAgMjE5LjI1LDEwIGMgMCwwIC0yNC4yNSw5IC0zMS43NSwxMC41IC03LjUsMS41IC0yMSw1LjI1IC0yMSw1LjI1IDAsMCAtOS43NSwtNC4yNSAtMjIsLTguNSAtMTIuMjUsLTQuMjUgLTI5Ljc1LC01LjUgLTI5Ljc1LC01LjUgMCwwIC0zLjI1LDMuNSAtMjIsOCAtMTguNzUsNC41IC0yNy41LDUuNzUgLTI3LjUsNS43NSAwLDAgLTE4LjUsLTkgLTMxLjUsLTExLjUgLTEzLC0yLjUgLTI0LC0yIC0yNC43NSwtMS43NSB6IgogICAgICAgICBpZD0icGF0aDU0MjgiIC8+CiAgICA8L2NsaXBQYXRoPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1NDUyIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8Y2xpcFBhdGgKICAgICAgIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImNsaXBQYXRoNTQ2NiI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gOSwxMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw1NC43NSAyNyw2NS41IDI3LDY1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEzMC41IDIxOCwxMTYgMjE4LDExNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDc5IDIzNSw2NS41IDIzNSw2NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwyMS4yNSAyMTkuMjUsMTAgMjE5LjI1LDEwIGMgMCwwIC0yNC4yNSw5IC0zMS43NSwxMC41IC03LjUsMS41IC0yMSw1LjI1IC0yMSw1LjI1IDAsMCAtOS43NSwtNC4yNSAtMjIsLTguNSAtMTIuMjUsLTQuMjUgLTI5Ljc1LC01LjUgLTI5Ljc1LC01LjUgMCwwIC0zLjI1LDMuNSAtMjIsOCAtMTguNzUsNC41IC0yNy41LDUuNzUgLTI3LjUsNS43NSAwLDAgLTE4LjUsLTkgLTMxLjUsLTExLjUgLTEzLC0yLjUgLTI0LC0yIC0yNC43NSwtMS43NSB6IgogICAgICAgICBpZD0icGF0aDU0NjgiIC8+CiAgICA8L2NsaXBQYXRoPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1NjE0IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTU2MzgiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNTYzOC0xIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTU2MzgtMyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1Njc5IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTU3MDEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNTcyMyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1Nzg4IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDU3NjItOSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjgtMSIKICAgICAgIHgxPSIxMjMiCiAgICAgICB5MT0iMTUwLjM3NSIKICAgICAgIHgyPSIxMzMiCiAgICAgICB5Mj0iMTUwLjM3NSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMSwwLDAsMSwyNTYsMCkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjItOSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyZDMzMzU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTc2NC02IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU3NzAtMyIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0YzQ2NGE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzg0MDQyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU3NjYtNiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTU4MjkiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjE1MC4zNzUiCiAgICAgICB4Mj0iMTMzIgogICAgICAgeTE9IjE1MC4zNzUiCiAgICAgICB4MT0iMTIzIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMiwwLDAsMS43Njk5MTE1LDM4NCwtODYuNjUwNDQpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1Nzk4LTQiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1NzYyLTktNiIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTc2Mi05LTYiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmQzMzM1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU3NjQtNi02IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU3NzAtMy03IgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzRjNDY0YTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzODQwNDI7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNTc2Ni02LTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1ODg2IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDU4NjItMSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU4NjgtNCIKICAgICAgIHgxPSIxMjAiCiAgICAgICB5MT0iMTg2LjUiCiAgICAgICB4Mj0iMTM2IgogICAgICAgeTI9IjE4Ni41IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU4NjItMSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmOWUyOTU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTg2NC0wIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzYtMCIKICAgICAgICAgb2Zmc2V0PSIwLjEyNSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y3ZGQ4NDtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3NC02IgogICAgICAgICBvZmZzZXQ9IjAuMjA1ODA1ODIiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzAtNCIKICAgICAgICAgb2Zmc2V0PSIwLjMwMTEyNjIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjRjZTUxO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTdhYTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC4zNDEyMDM5IgogICAgICAgICBpZD0ic3RvcDU4NzItNCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2VmYmIwZTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1ODY2LTMiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU1OTM2IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSIxODYuNSIKICAgICAgIHgyPSIxMzYiCiAgICAgICB5MT0iMTg2LjUiCiAgICAgICB4MT0iMTIwIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1ODk5LTMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1ODYyLTEtNCIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCw2OSkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU4NjItMS00Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTI5NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1ODY0LTAtNyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1ODc2LTAtMiIKICAgICAgICAgb2Zmc2V0PSIwLjEyNSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y3ZGQ4NDtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3NC02LTEiCiAgICAgICAgIG9mZnNldD0iMC4yMDU4MDU4MiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3MC00LTciCiAgICAgICAgIG9mZnNldD0iMC4zMDExMjYyMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y0Y2U1MTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmOWU3YWE7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAuMzQxMjAzOSIKICAgICAgICAgaWQ9InN0b3A1ODcyLTQtOSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2VmYmIwZTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1ODY2LTMtNSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTU5MzYtOCIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICB5Mj0iMTg2LjUiCiAgICAgICB4Mj0iMTM2IgogICAgICAgeTE9IjE4Ni41IgogICAgICAgeDE9IjEyMCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTg5OS05IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTg2Mi0xLTUiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNjkpIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1ODYyLTEtNSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmOWUyOTU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTg2NC0wLTUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3Ni0wLTIxIgogICAgICAgICBvZmZzZXQ9IjAuMTI1IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjdkZDg0O3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1ODc0LTYtNSIKICAgICAgICAgb2Zmc2V0PSIwLjIwNTgwNTgyIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1ODcwLTQtOSIKICAgICAgICAgb2Zmc2V0PSIwLjMwMTEyNjIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjRjZTUxO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTdhYTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC4zNDEyMDM5IgogICAgICAgICBpZD0ic3RvcDU4NzItNC05MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2VmYmIwZTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1ODY2LTMtNiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTYwMTQiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjE4Ni41IgogICAgICAgeDI9IjEzNiIKICAgICAgIHkxPSIxODYuNSIKICAgICAgIHgxPSIxMjAiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU4OTktMCIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDU4NjItMS01MyIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCw2NykiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU4NjItMS01MyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmOWUyOTU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTg2NC0wLTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3Ni0wLTEiCiAgICAgICAgIG9mZnNldD0iMC4xMjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmN2RkODQ7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzQtNi05IgogICAgICAgICBvZmZzZXQ9IjAuMjA1ODA1ODIiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzAtNC03NiIKICAgICAgICAgb2Zmc2V0PSIwLjMwMTEyNjIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjRjZTUxO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTdhYTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC4zNDEyMDM5IgogICAgICAgICBpZD0ic3RvcDU4NzItNC04IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWZiYjBlO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU4NjYtMy0yIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNjA4MCIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1NzQ1LTMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDBlOWYyO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU3NDctMyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1NzUzLTYiCiAgICAgICAgIG9mZnNldD0iMC44MzkzMjc1MSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkMGU5ZjI7c3RvcC1vcGFjaXR5OjAuMjgxODUzMjk7IgogICAgICAgICBvZmZzZXQ9IjAuOTQzMDg1MDciCiAgICAgICAgIGlkPSJzdG9wNTc1NS05IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDBlOWYyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU3NDktMCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjItOCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyZDMzMzU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTc2NC01IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU3NzAtMSIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0YzQ2NGE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzg0MDQyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU3NjYtMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDYwOTYiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmQzMzM1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDYwOTgiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNjEwMCIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0YzQ2NGE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzg0MDQyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDYxMDIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1ODYyLTMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjllMjk1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU4NjQtOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1ODc2LTA5IgogICAgICAgICBvZmZzZXQ9IjAuMTI1IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjdkZDg0O3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1ODc0LTIiCiAgICAgICAgIG9mZnNldD0iMC4yMDU4MDU4MiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3MC0zIgogICAgICAgICBvZmZzZXQ9IjAuMzAxMTI2MjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmNGNlNTE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjllN2FhO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwLjM0MTIwMzkiCiAgICAgICAgIGlkPSJzdG9wNTg3Mi0xIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWZiYjBlO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU4NjYtOCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjItOS00Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzJkMzMzNTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1NzY0LTYtMSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1NzcwLTMtNiIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0YzQ2NGE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzg0MDQyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU3NjYtNi0zIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTg2Mi0xLTU1Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTI5NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1ODY0LTAtMCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1ODc2LTAtMTIiCiAgICAgICAgIG9mZnNldD0iMC4xMjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmN2RkODQ7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzQtNi02IgogICAgICAgICBvZmZzZXQ9IjAuMjA1ODA1ODIiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzAtNC00IgogICAgICAgICBvZmZzZXQ9IjAuMzAxMTI2MjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmNGNlNTE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjllN2FhO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwLjM0MTIwMzkiCiAgICAgICAgIGlkPSJzdG9wNTg3Mi00LTg1IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWZiYjBlO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU4NjYtMy02MiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDU3NjItOCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDYyNTAiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTAuOTg0MjcxNzksLTAuOTg0MjcxNzksLTAuOTg0MjcxNzksMC45ODQyNzE3OSwzODQuOTExOTQsMTI2LjgxMTY4KSIKICAgICAgIHgxPSIxMjMiCiAgICAgICB5MT0iMTUwLjM3NSIKICAgICAgIHgyPSIxMzMiCiAgICAgICB5Mj0iMTUwLjM3NSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTc2Mi04IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NjI1MyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NDI3MTc5LDAuOTg0MjcxNzksLTAuOTg0MjcxNzksMC45ODQyNzE3OSwxMzIuOTM4MzYsLTEyNS4xNjE5KSIKICAgICAgIHgxPSIxMjgiCiAgICAgICB5MT0iMTM0LjM1OTM4IgogICAgICAgeDI9IjEzMC44NzUiCiAgICAgICB5Mj0iMTQzLjM1OTM4IiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU2MjY5IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDU3NjItOS00LTYiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2MjQ0LTQiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEuOTY4NTQzNiwtMS45Njg1NDM2LC0xLjc0MjA3NCwxLjc0MjA3NCw1OTYuMTg2MzIsMTc3LjUxMDg5KSIKICAgICAgIHgxPSIxMjMiCiAgICAgICB5MT0iMTUwLjM3NSIKICAgICAgIHgyPSIxMzMiCiAgICAgICB5Mj0iMTUwLjM3NSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTc2Mi05LTQtNiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyZDMzMzU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTc2NC02LTEtMCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1NzcwLTMtNi03IgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzRjNDY0YTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzODQwNDI7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNTc2Ni02LTMtNCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTYzMTQiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNjQzNyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktOSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY0MjctOCIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjkyMDkyMTYsLTEuNDE0MjEzNiwxNy43NTQzMTMpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ3NDQtOS05Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NzQ2LTMtOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0NzQ4LTgtMyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS05IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjQ0NSIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjkyMDkyMTYsLTEuNDE0MjEzNiwxNy43NTQzMTMpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS05IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjQ1MyIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjkyMDkyMTYsLTEuNDE0MjEzNiwxNy43NTQzMTMpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS05IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjQ2MSIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjkyMDkyMTYsLTEuNDE0MjEzNiwxNy43NTQzMTMpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS05IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjQ2OSIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjkyMDkyMTYsLTEuNDE0MjEzNiwxNy43NTQzMTMpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTY1NTEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTc0NS0zLTMiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2MjU2LTYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4wMDUyMTM3LDEuMDA1MjEzNywxLjAwNTIxMzcsLTEuMDA1MjEzNywtNDAuODM3OTYsNTMuMjUzMjk2KSIKICAgICAgIGN4PSIxMjgiCiAgICAgICBjeT0iODYiCiAgICAgICBmeD0iMTI4IgogICAgICAgZnk9Ijg2IgogICAgICAgcj0iNDciIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NDUtMy0zIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1NzQ3LTMtMCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1NzUzLTYtMSIKICAgICAgICAgb2Zmc2V0PSIwLjgzOTMyNzUxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDBlOWYyO3N0b3Atb3BhY2l0eTowOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MC4yODE4NTMyOTsiCiAgICAgICAgIG9mZnNldD0iMC45NDMwODUwNyIKICAgICAgICAgaWQ9InN0b3A1NzU1LTktNCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1NzQ5LTAtOCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTY2MDUiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjU4OS02IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NjU5NS02IgogICAgICAgeDE9IjEyNi42NDI5NSIKICAgICAgIHkxPSIyOS44MTQ4OTQiCiAgICAgICB4Mj0iMTc5Ljk2MTE1IgogICAgICAgeTI9IjEzNy4xOTU2NSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2NTg5LTYiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDY1OTEtNiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A2NTkzLTEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU2NjQzIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY1ODktMiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDY1OTUtOCIKICAgICAgIHgxPSIxMjYuNjQyOTUiCiAgICAgICB5MT0iMjkuODE0ODk0IgogICAgICAgeDI9IjE3OS45NjExNSIKICAgICAgIHkyPSIxMzcuMTk1NjUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NjU4OS0yIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A2NTkxLTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNjU5My02IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNjY4MSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktNCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY0MjctOSIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMjEyNDc3OCwwLDAsMC44MzkxNDYzNSwtNDcuODk1NDk0LDM0LjQwODAxNykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDc0NC05LTQiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ3NDYtMy0zIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQ3NDgtOC03IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDc0NC05LTQiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2Njg5IgogICAgICAgY3g9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBmeD0iMTU5LjYxMzE3IgogICAgICAgZnk9IjcyLjU4ODMwMyIKICAgICAgIHI9IjM4LjQxNjkwNCIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMTI0Nzc4LDAsMCwwLjgzOTE0NjM1LC00Ny44OTU0OTQsMzQuNDA4MDE3KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktNCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY2OTciCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3Ljg5NTQ5NCwzNC40MDgwMTcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS00IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjcwNSIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMjEyNDc3OCwwLDAsMC44MzkxNDYzNSwtNDcuODk1NDk0LDM0LjQwODAxNykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDc0NC05LTQiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2NzEzIgogICAgICAgY3g9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBmeD0iMTU5LjYxMzE3IgogICAgICAgZnk9IjcyLjU4ODMwMyIKICAgICAgIHI9IjM4LjQxNjkwNCIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMTI0Nzc4LDAsMCwwLjgzOTE0NjM1LC00Ny44OTU0OTQsMzQuNDA4MDE3KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzQsLTQ3Ljg5NTQ5MiwzNC40MDgwMTgpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2NzI2IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDc0NC05LTQiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTY2ODEtNiIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktNDkiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2NDI3LTAiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3Ljg5NTQ5NCwzNC40MDgwMTcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ3NDQtOS00OSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDc0Ni0zLTEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDc0OC04LTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktNDkiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2Njg5LTIiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3Ljg5NTQ5NCwzNC40MDgwMTcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS00OSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY2OTctMiIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMjEyNDc3OCwwLDAsMC44MzkxNDYzNSwtNDcuODk1NDk0LDM0LjQwODAxNykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDc0NC05LTQ5IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjcwNS00IgogICAgICAgY3g9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBmeD0iMTU5LjYxMzE3IgogICAgICAgZnk9IjcyLjU4ODMwMyIKICAgICAgIHI9IjM4LjQxNjkwNCIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMTI0Nzc4LDAsMCwwLjgzOTE0NjM1LC00Ny44OTU0OTQsMzQuNDA4MDE3KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktNDkiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2NzEzLTYiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3Ljg5NTQ5NCwzNC40MDgwMTcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIHI9IjM4LjQxNjkwNCIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICBmeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMjEyNDc3OCwwLDAsMC44MzkxNDYzNCwtNDcuODk1NDkyLDM0LjQwODAxOCkiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY3MjYtMCIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS00OSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNjg2MyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2NTg5LTYtOSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNjU5MS02LTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNjU5My0xLTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2ODQ2LTgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2NDI3LTYiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzQsLTQ3Ljg5NTQ5MywzNC40MDgwMTkpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDY4NDYtOCI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNjg0OC04IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowLjkzMDUwMTk0OyIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIGlkPSJzdG9wNjg1Mi05IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY4NTAtOCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowOyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY4NDYtOCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY4NzYiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3Ljg5NTQ5NCwzNC40MDgwMTcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDY4NzgiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY4ODAiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjAuOTMwNTAxOTQ7IgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgaWQ9InN0b3A2ODgyIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY4ODQiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2ODQ2LTgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2ODg2IgogICAgICAgY3g9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBmeD0iMTU5LjYxMzE3IgogICAgICAgZnk9IjcyLjU4ODMwMyIKICAgICAgIHI9IjM4LjQxNjkwNCIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMTI0Nzc4LDAsMCwwLjgzOTE0NjM1LC00Ny44OTU0OTQsMzQuNDA4MDE3KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2ODg4Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A2ODkwIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowLjkzMDUwMTk0OyIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIGlkPSJzdG9wNjg5MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A2ODk0IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjA7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Njg0Ni04IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50Njg5NiIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMjEyNDc3OCwwLDAsMC44MzkxNDYzNSwtNDcuODk1NDk0LDM0LjQwODAxNykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Njg5OCI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNjkwMCIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MC45MzA1MDE5NDsiCiAgICAgICAgIG9mZnNldD0iMC41IgogICAgICAgICBpZD0ic3RvcDY5MDIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNjkwNCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowOyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY4NDYtOCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY5MDYiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3Ljg5NTQ5NCwzNC40MDgwMTcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDY5MDgiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY5MTAiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjAuOTMwNTAxOTQ7IgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgaWQ9InN0b3A2OTEyIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY5MTQiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzQsLTQ3LjQ2NjgyNSwzNS42OTQwNDgpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2NDgyLTgiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktOS0xIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0NzQ0LTktOS0xIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NzQ2LTMtOC02IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQ3NDgtOC0zLTgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3LjQ2NjgyNiwzNS42OTQwNDYpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2OTIwIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDc0NC05LTktMSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgcj0iMzguNDE2OTA0IgogICAgICAgZnk9IjcyLjU4ODMwMyIKICAgICAgIGZ4PSIxNTkuNjEzMTciCiAgICAgICBjeT0iNzIuNTg4MzAzIgogICAgICAgY3g9IjE1OS42MTMxNyIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMTI0Nzc4LDAsMCwwLjgzOTE0NjM1LC00Ny40NjY4MjYsMzUuNjk0MDQ2KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjkyOCIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ3NDQtOS05LTEiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIHI9IjM4LjQxNjkwNCIKICAgICAgIGZ5PSI3Mi41ODgzMDMiCiAgICAgICBmeD0iMTU5LjYxMzE3IgogICAgICAgY3k9IjcyLjU4ODMwMyIKICAgICAgIGN4PSIxNTkuNjEzMTciCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMjEyNDc3OCwwLDAsMC44MzkxNDYzNSwtNDcuNDY2ODI2LDM1LjY5NDA0NikiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDY5MzYiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NzQ0LTktOS0xIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICByPSIzOC40MTY5MDQiCiAgICAgICBmeT0iNzIuNTg4MzAzIgogICAgICAgZng9IjE1OS42MTMxNyIKICAgICAgIGN5PSI3Mi41ODgzMDMiCiAgICAgICBjeD0iMTU5LjYxMzE3IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjIxMjQ3NzgsMCwwLDAuODM5MTQ2MzUsLTQ3LjQ2NjgyNiwzNS42OTQwNDYpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2OTQ0IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDc0NC05LTktMSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTg2Mi0xLTU1LTIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjllMjk1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU4NjQtMC0wLTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3Ni0wLTEyLTYiCiAgICAgICAgIG9mZnNldD0iMC4xMjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmN2RkODQ7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzQtNi02LTQiCiAgICAgICAgIG9mZnNldD0iMC4yMDU4MDU4MiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3MC00LTQtNSIKICAgICAgICAgb2Zmc2V0PSIwLjMwMTEyNjIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjRjZTUxO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTdhYTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC4zNDEyMDM5IgogICAgICAgICBpZD0ic3RvcDU4NzItNC04NS01IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWZiYjBlO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU4NjYtMy02Mi00IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY4MC0wIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NjgyLTUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDY4NC03NiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjItOS00LTUiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmQzMzM1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU3NjQtNi0xLTMiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTc3MC0zLTYtNzMiCiAgICAgICAgIG9mZnNldD0iMC41IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNGM0NjRhO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzM4NDA0MjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1NzY2LTYtMy0yIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTg2Mi0zLTMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjllMjk1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU4NjQtOC0wIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzYtMDktOCIKICAgICAgICAgb2Zmc2V0PSIwLjEyNSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y3ZGQ4NDtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3NC0yLTYiCiAgICAgICAgIG9mZnNldD0iMC4yMDU4MDU4MiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3MC0zLTYiCiAgICAgICAgIG9mZnNldD0iMC4zMDExMjYyMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y0Y2U1MTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmOWU3YWE7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAuMzQxMjAzOSIKICAgICAgICAgaWQ9InN0b3A1ODcyLTEtOSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2VmYmIwZTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1ODY2LTgtNyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjItOC05Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzJkMzMzNTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1NzY0LTUtMyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1NzcwLTEtNyIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0YzQ2NGE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzg0MDQyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU3NjYtMi0xIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Njk4NyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyZDMzMzU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNjk4OSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A2OTkxIgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzRjNDY0YTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzODQwNDI7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNjk5MyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NDUtMy01Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1NzQ3LTMtNyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1NzUzLTYtMCIKICAgICAgICAgb2Zmc2V0PSIwLjgzOTMyNzUxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDBlOWYyO3N0b3Atb3BhY2l0eTowOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MC4yODE4NTMyOTsiCiAgICAgICAgIG9mZnNldD0iMC45NDMwODUwNyIKICAgICAgICAgaWQ9InN0b3A1NzU1LTktMiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1NzQ5LTAtNiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTcyOTgiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDY4MC02IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTE2OC02IgogICAgICAgeDE9IjIxMC4xNzE4OCIKICAgICAgIHkxPSI3Mi4wNjQxMjUiCiAgICAgICB4Mj0iOSIKICAgICAgIHkyPSItMjEzLjI1MzQ2IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2ODAtNiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4Mi0zIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQ2ODQtMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTcyOTgtMyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NjgwLTQiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MTY4LTYwIgogICAgICAgeDE9IjIxMC4xNzE4OCIKICAgICAgIHkxPSI3Mi4wNjQxMjUiCiAgICAgICB4Mj0iOSIKICAgICAgIHkyPSItMjEzLjI1MzQ2IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2ODAtNCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4Mi0zNiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0Njg0LTMiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU3Mjk4LTkiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDY4MC0yIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTE2OC00IgogICAgICAgeDE9IjIxMC4xNzE4OCIKICAgICAgIHkxPSI3Mi4wNjQxMjUiCiAgICAgICB4Mj0iOSIKICAgICAgIHkyPSItMjEzLjI1MzQ2IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2ODAtMiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4Mi05IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQ2ODQtMzgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NjgwLTIiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ3Mzc2IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsLTAuMDgwODc3NjcsMCwxLDAsMjAzLjA1NjMpIgogICAgICAgeDE9IjIxMC4xNzE4OCIKICAgICAgIHkxPSI3Mi4wNjQxMjUiCiAgICAgICB4Mj0iOSIKICAgICAgIHkyPSItMjEzLjI1MzQ2IiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU3NzE2IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2ODAtNy0zIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NjgyLTItMiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0Njg0LTctMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDc3MjUiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDc3MjciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNzcyOSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDc3MzIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDc3MzQiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNzczNiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDc3MzkiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDc3NDEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNzc0MyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDc3NDYiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDc3NDgiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNzc1MCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDc3NTMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDc3NTUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNzc1NyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDc3NjAiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDc3NjIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNzc2NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDc3NjciPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDc3NjkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNzc3MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2ODAtMjIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ2ODItMjciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDY4NC0zNiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8Y2xpcFBhdGgKICAgICAgIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImNsaXBQYXRoNTQyNi0xIj4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9ImZpbGw6I2NlZWVhYjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSA5LDEyLjI1IGMgMCwwIDcuNSwxMyAxMS43NSwyNy43NSBDIDI1LDU0Ljc1IDI3LDY1LjUgMjcsNjUuNSBjIDAsMCAtNS41LDEyLjc1IC04LjI1LDI0Ljc1IC0yLjc1LDEyIC01Ljc1LDIzIC01Ljc1LDIzIDAsMCA1Ljc1LDE2IDkuMjUsMzAgMy41LDE0IDMuNzUsMjQuMjUgMy43NSwyNC4yNSAwLDAgLTQsMTAuMjUgLTcuNSwyNC4yNSAtMy41LDE0IC01LDMwLjc1IC01LDMwLjc1IDAsMCA5LjI1LC0yIDI4LjUsMS4yNSAxOS4yNSwzLjI1IDMyLjI1LDYgMzIuMjUsNiAwLDAgMTIuNzUsLTIuNzUgMjQsLTYuMjUgMTEuMjUsLTMuNSAxNi4yNSwtNi41IDE2LjI1LC02LjUgMCwwIDUuNSwwLjUgMjIuNSw2LjI1IDE3LDUuNzUgMjkuMjUsOC41IDI5LjI1LDguNSAwLDAgMTMsLTIuNzUgMjYsLTUuNzUgMTMsLTMgMjYuNSwtOCAyNi41LC04IDAsMCAtMC43NSwtNSA0LjI1LC0yNC41IDUsLTE5LjUgOC43NSwtMjggOC43NSwtMjggMCwwIC0wLjUsLTQuNSAtMy43NSwtMTkuNzUgQyAyMjQuNzUsMTMwLjUgMjE4LDExNiAyMTgsMTE2IGMgMCwwIDEuNzUsLTEwLjUgNi43NSwtMjMuNzUgQyAyMjkuNzUsNzkgMjM1LDY1LjUgMjM1LDY1LjUgYyAwLDAgLTQuNzUsLTE1LjI1IC03LjUsLTI5Ljc1IEMgMjI0Ljc1LDIxLjI1IDIxOS4yNSwxMCAyMTkuMjUsMTAgYyAwLDAgLTI0LjI1LDkgLTMxLjc1LDEwLjUgLTcuNSwxLjUgLTIxLDUuMjUgLTIxLDUuMjUgMCwwIC05Ljc1LC00LjI1IC0yMiwtOC41IC0xMi4yNSwtNC4yNSAtMjkuNzUsLTUuNSAtMjkuNzUsLTUuNSAwLDAgLTMuMjUsMy41IC0yMiw4IC0xOC43NSw0LjUgLTI3LjUsNS43NSAtMjcuNSw1Ljc1IDAsMCAtMTguNSwtOSAtMzEuNSwtMTEuNSAtMTMsLTIuNSAtMjQsLTIgLTI0Ljc1LC0xLjc1IHoiCiAgICAgICAgIGlkPSJwYXRoNTQyOC0wIiAvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aAogICAgICAgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0iY2xpcFBhdGg1MzgzLTAiPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iZmlsbDojY2VlZWFiO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDksMTIuMjUgYyAwLDAgNy41LDEzIDExLjc1LDI3Ljc1IEMgMjUsNTQuNzUgMjcsNjUuNSAyNyw2NS41IGMgMCwwIC01LjUsMTIuNzUgLTguMjUsMjQuNzUgLTIuNzUsMTIgLTUuNzUsMjMgLTUuNzUsMjMgMCwwIDUuNzUsMTYgOS4yNSwzMCAzLjUsMTQgMy43NSwyNC4yNSAzLjc1LDI0LjI1IDAsMCAtNCwxMC4yNSAtNy41LDI0LjI1IC0zLjUsMTQgLTUsMzAuNzUgLTUsMzAuNzUgMCwwIDkuMjUsLTIgMjguNSwxLjI1IDE5LjI1LDMuMjUgMzIuMjUsNiAzMi4yNSw2IDAsMCAxMi43NSwtMi43NSAyNCwtNi4yNSAxMS4yNSwtMy41IDE2LjI1LC02LjUgMTYuMjUsLTYuNSAwLDAgNS41LDAuNSAyMi41LDYuMjUgMTcsNS43NSAyOS4yNSw4LjUgMjkuMjUsOC41IDAsMCAxMywtMi43NSAyNiwtNS43NSAxMywtMyAyNi41LC04IDI2LjUsLTggMCwwIC0wLjc1LC01IDQuMjUsLTI0LjUgNSwtMTkuNSA4Ljc1LC0yOCA4Ljc1LC0yOCAwLDAgLTAuNSwtNC41IC0zLjc1LC0xOS43NSBDIDIyNC43NSwxMzAuNSAyMTgsMTE2IDIxOCwxMTYgYyAwLDAgMS43NSwtMTAuNSA2Ljc1LC0yMy43NSBDIDIyOS43NSw3OSAyMzUsNjUuNSAyMzUsNjUuNSBjIDAsMCAtNC43NSwtMTUuMjUgLTcuNSwtMjkuNzUgQyAyMjQuNzUsMjEuMjUgMjE5LjI1LDEwIDIxOS4yNSwxMCBjIDAsMCAtMjQuMjUsOSAtMzEuNzUsMTAuNSAtNy41LDEuNSAtMjEsNS4yNSAtMjEsNS4yNSAwLDAgLTkuNzUsLTQuMjUgLTIyLC04LjUgLTEyLjI1LC00LjI1IC0yOS43NSwtNS41IC0yOS43NSwtNS41IDAsMCAtMy4yNSwzLjUgLTIyLDggLTE4Ljc1LDQuNSAtMjcuNSw1Ljc1IC0yNy41LDUuNzUgMCwwIC0xOC41LC05IC0zMS41LC0xMS41IC0xMywtMi41IC0yNCwtMiAtMjQuNzUsLTEuNzUgeiIKICAgICAgICAgaWQ9InBhdGg1Mzg1LTciIC8+CiAgICA8L2NsaXBQYXRoPgogICAgPGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwUGF0aDU0NjYtMiI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gOSwxMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw1NC43NSAyNyw2NS41IDI3LDY1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEzMC41IDIxOCwxMTYgMjE4LDExNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDc5IDIzNSw2NS41IDIzNSw2NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwyMS4yNSAyMTkuMjUsMTAgMjE5LjI1LDEwIGMgMCwwIC0yNC4yNSw5IC0zMS43NSwxMC41IC03LjUsMS41IC0yMSw1LjI1IC0yMSw1LjI1IDAsMCAtOS43NSwtNC4yNSAtMjIsLTguNSAtMTIuMjUsLTQuMjUgLTI5Ljc1LC01LjUgLTI5Ljc1LC01LjUgMCwwIC0zLjI1LDMuNSAtMjIsOCAtMTguNzUsNC41IC0yNy41LDUuNzUgLTI3LjUsNS43NSAwLDAgLTE4LjUsLTkgLTMxLjUsLTExLjUgLTEzLC0yLjUgLTI0LC0yIC0yNC43NSwtMS43NSB6IgogICAgICAgICBpZD0icGF0aDU0NjgtMyIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTgxODMiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxjbGlwUGF0aAogICAgICAgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0iY2xpcFBhdGg1NDY2LTItMyI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gOSwxMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw1NC43NSAyNyw2NS41IDI3LDY1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEzMC41IDIxOCwxMTYgMjE4LDExNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDc5IDIzNSw2NS41IDIzNSw2NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwyMS4yNSAyMTkuMjUsMTAgMjE5LjI1LDEwIGMgMCwwIC0yNC4yNSw5IC0zMS43NSwxMC41IC03LjUsMS41IC0yMSw1LjI1IC0yMSw1LjI1IDAsMCAtOS43NSwtNC4yNSAtMjIsLTguNSAtMTIuMjUsLTQuMjUgLTI5Ljc1LC01LjUgLTI5Ljc1LC01LjUgMCwwIC0zLjI1LDMuNSAtMjIsOCAtMTguNzUsNC41IC0yNy41LDUuNzUgLTI3LjUsNS43NSAwLDAgLTE4LjUsLTkgLTMxLjUsLTExLjUgLTEzLC0yLjUgLTI0LC0yIC0yNC43NSwtMS43NSB6IgogICAgICAgICBpZD0icGF0aDU0NjgtMy0yIiAvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aAogICAgICAgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0iY2xpcFBhdGg1MzgzLTAtMCI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gOSwxMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw1NC43NSAyNyw2NS41IDI3LDY1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEzMC41IDIxOCwxMTYgMjE4LDExNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDc5IDIzNSw2NS41IDIzNSw2NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwyMS4yNSAyMTkuMjUsMTAgMjE5LjI1LDEwIGMgMCwwIC0yNC4yNSw5IC0zMS43NSwxMC41IC03LjUsMS41IC0yMSw1LjI1IC0yMSw1LjI1IDAsMCAtOS43NSwtNC4yNSAtMjIsLTguNSAtMTIuMjUsLTQuMjUgLTI5Ljc1LC01LjUgLTI5Ljc1LC01LjUgMCwwIC0zLjI1LDMuNSAtMjIsOCAtMTguNzUsNC41IC0yNy41LDUuNzUgLTI3LjUsNS43NSAwLDAgLTE4LjUsLTkgLTMxLjUsLTExLjUgLTEzLC0yLjUgLTI0LC0yIC0yNC43NSwtMS43NSB6IgogICAgICAgICBpZD0icGF0aDUzODUtNy04IiAvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aAogICAgICAgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0iY2xpcFBhdGg1NDI2LTEtNiI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gOSwxMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw1NC43NSAyNyw2NS41IDI3LDY1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEzMC41IDIxOCwxMTYgMjE4LDExNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDc5IDIzNSw2NS41IDIzNSw2NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwyMS4yNSAyMTkuMjUsMTAgMjE5LjI1LDEwIGMgMCwwIC0yNC4yNSw5IC0zMS43NSwxMC41IC03LjUsMS41IC0yMSw1LjI1IC0yMSw1LjI1IDAsMCAtOS43NSwtNC4yNSAtMjIsLTguNSAtMTIuMjUsLTQuMjUgLTI5Ljc1LC01LjUgLTI5Ljc1LC01LjUgMCwwIC0zLjI1LDMuNSAtMjIsOCAtMTguNzUsNC41IC0yNy41LDUuNzUgLTI3LjUsNS43NSAwLDAgLTE4LjUsLTkgLTMxLjUsLTExLjUgLTEzLC0yLjUgLTI0LC0yIC0yNC43NSwtMS43NSB6IgogICAgICAgICBpZD0icGF0aDU0MjgtMC05IiAvPgogICAgPC9jbGlwUGF0aD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY4MC0yMi0yIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NjgyLTI3LTMiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDY4NC0zNi01IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY4MC03LTMtNiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4Mi0yLTItNyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0Njg0LTctMi03IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODI1NSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wODI1NyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A4MjU5IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODI2MiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wODI2NCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A4MjY2IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODI2OSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wODI3MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A4MjczIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODI3NiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wODI3OCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A4MjgwIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODI4MyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wODI4NSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A4Mjg3IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODI5MCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wODI5MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A4Mjk0IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODI5NyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wODI5OSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A4MzAxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlODU4MSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1NzQ1LTMtMSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDYyNTYtNSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjAwNTIxMzcsMS4wMDUyMTM3LDEuMDA1MjEzNywtMS4wMDUyMTM3LC00MC44Mzc5Niw1My4yNTMyOTYpIgogICAgICAgY3g9IjEyOCIKICAgICAgIGN5PSI4NiIKICAgICAgIGZ4PSIxMjgiCiAgICAgICBmeT0iODYiCiAgICAgICByPSI0NyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTc0NS0zLTEiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDBlOWYyO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU3NDctMy03MyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1NzUzLTYtMDgiCiAgICAgICAgIG9mZnNldD0iMC44MzkzMjc1MSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkMGU5ZjI7c3RvcC1vcGFjaXR5OjAuMjgxODUzMjk7IgogICAgICAgICBvZmZzZXQ9IjAuOTQzMDg1MDciCiAgICAgICAgIGlkPSJzdG9wNTc1NS05LTUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkMGU5ZjI7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNTc0OS0wLTQiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwUGF0aDg2MTciPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50ODYyMSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMTIzLjYyMjg5LDE0MS4wNjE5MyBjIDIwLjgzMTkxLDIwLjI0MzE3IDU0LjYwNzEsMTkuMjg4NjMgNzUuNDM5LC0yLjEzMiAyMC44MzE5LC0yMS40MjA2NCAyMC44MzE5LC01NS4xOTU4MTYgMCwtNzUuNDM4OTg0IC0yMC44MzE5MSwtMjAuMjQzMTY3IC01NC42MDcwOSwtMTkuMjg4NjQzIC03NS40MzksMi4xMzE5OTkgLTIwLjgzMTg5LDIxLjQyMDYzIC0yMC44MzE5LDU1LjE5NTgxNSAwLDc1LjQzODk4NSB6IgogICAgICAgICBpZD0icGF0aDg2MTkiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc2MiIC8+CiAgICA8L2NsaXBQYXRoPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1NzQ1LTMtMSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDg2MjEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC44MDI1NDIzOCwwLjc3OTg2MTU0LDAuODAyNTQyMzgsLTAuODI1MjIzMjEsLTEwLjQwMTY4NCw3My40MjMzNjMpIgogICAgICAgY3g9IjEyOCIKICAgICAgIGN5PSI4NiIKICAgICAgIGZ4PSIxMjgiCiAgICAgICBmeT0iODYiCiAgICAgICByPSI0NyIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlODYzMSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU4NjczIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ2ODAtNjIiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MTY4LTgiCiAgICAgICB4MT0iMjEwLjE3MTg4IgogICAgICAgeTE9IjcyLjA2NDEyNSIKICAgICAgIHgyPSI5IgogICAgICAgeTI9Ii0yMTMuMjUzNDYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY4MC02MiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4Mi03IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQ2ODQtMCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTg3MTEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDY4MC0yIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50ODc0MiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwLDE4MS45OTk5OSkiCiAgICAgICB4MT0iMjEwLjE3MTg4IgogICAgICAgeTE9IjcyLjA2NDEyNSIKICAgICAgIHgyPSI5IgogICAgICAgeTI9Ii0yMTMuMjUzNDYiIC8+CiAgICA8Y2xpcFBhdGgKICAgICAgIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImNsaXBQYXRoODc1MCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGlkPSJwYXRoODc1MiIKICAgICAgICAgZD0ibSA5LDIyLjU3ODQwNiBjIDAsMCA3LjUsMTIuMzkzNDE3IDExLjc1LDI2Ljc5OTY4NyBDIDI1LDYzLjc4NDM2MyAyNyw3NC4zNzI2MDggMjcsNzQuMzcyNjA4IGMgMCwwIC01LjUsMTMuMTk0ODI3IC04LjI1LDI1LjQxNzI0MSBDIDE2LDExMi4wMTIyNiAxMywxMjMuMjU0OSAxMywxMjMuMjU0OSBjIDAsMCA1Ljc1LDE1LjUzNDk1IDkuMjUsMjkuMjUxODggMy41LDEzLjcxNjkyIDMuNzUsMjMuOTQ2NzEgMy43NSwyMy45NDY3MSAwLDAgLTQsMTAuNTczNTEgLTcuNSwyNC44NTY1OCAtMy41LDE0LjI4MzA3IC01LDMxLjE1NDM5IC01LDMxLjE1NDM5IDAsMCA5LjI1LC0yLjc0ODEyIDI4LjUsLTEuMDU1MDIgMTkuMjUsMS42OTMxMSAzMi4yNSwzLjM5MTcgMzIuMjUsMy4zOTE3IDAsMCAxMi43NSwtMy43ODExOSAyNCwtOC4xOTEwNyAxMS4yNSwtNC40MDk4NyAxNi4yNSwtNy44MTQyNiAxNi4yNSwtNy44MTQyNiAwLDAgNS41LDAuMDU1MiAyMi41LDQuNDMwMjUgMTcsNC4zNzUwOCAyOS4yNSw2LjEzNDMzIDI5LjI1LDYuMTM0MzMgMCwwIDEzLC0zLjgwMTQxIDI2LC03Ljg1MjgyIDEzLC00LjA1MTQxIDI2LjUsLTEwLjE0MzI2IDI2LjUsLTEwLjE0MzI2IDAsMCAtMC43NSwtNC45MzkzNCA0LjI1LC0yNC44NDM3MyA1LC0xOS45MDQzOCA4Ljc1LC0yOC43MDc2OCA4Ljc1LC0yOC43MDc2OCAwLDAgLTAuNTE0NSwtNC40NTUzIC0zLjc1LC0xOS40NDY3IC0xLjc1LC04LjEwODQ3IC0yLjI1LC00LjA2ODAzIC0yLjI1LC00LjA2ODAzIDAsMCAxNi4yNjQsLTI2LjE1NTM1IDE2LjUsLTQwLjMzNDQ4MSBDIDI0Mi41LDc4Ljk0MzQ3IDIzNSw1Ny41NTAwNTMgMjM1LDU3LjU1MDA1MyBjIDAsMCAtNC43NSwtMTQuODY1ODMyIC03LjUsLTI5LjE0MzQxOCAtMi43NSwtMTQuMjc3NTg2IC04LjI1LC0yNS4wODI3NTkxIC04LjI1LC0yNS4wODI3NTkxIDAsMCAtMjQuMjUsMTAuOTYxMjgzMSAtMzEuNzUsMTMuMDY3ODY2MSAtNy41LDIuMTA2NTgyIC0yMSw2Ljk0ODQzMSAtMjEsNi45NDg0MzEgMCwwIC05Ljc1LC0zLjQ2MTQ0MyAtMjIsLTYuNzIwNjkxIC0xMi4yNSwtMy4yNTkyNDkgLTI5Ljc1LC0zLjA5Mzg5IC0yOS43NSwtMy4wOTM4OSAwLDAgLTMuMjUsMy43NjI4NTMgLTIyLDkuNzc5MzA5IC0xOC43NSw2LjAxNjQ1NiAtMjcuNSw3Ljk3NDEzNiAtMjcuNSw3Ljk3NDEzNiAwLDAgLTE4LjUsLTcuNTAzNzYzIC0zMS41LC04Ljk1MjM1MyAtMTMsLTEuNDQ4NTkxIC0yNCwtMC4wNTg5NCAtMjQuNzUsMC4yNTE3MjIgeiIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MC4wMzkxMzA0MjtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQ4NzU0KTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2MiIC8+CiAgICA8L2NsaXBQYXRoPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NjgwLTIiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ4NzU0IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsLTAuMDgwODc3NjcsMCwxLDAsMjAzLjA1NjI5KSIKICAgICAgIHgxPSIyMTAuMTcxODgiCiAgICAgICB5MT0iNzIuMDY0MTI1IgogICAgICAgeDI9IjkiCiAgICAgICB5Mj0iLTIxMy4yNTM0NiIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTc2MiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDYyNDQiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEuOTY4NTQzNiwtMS45Njg1NDM2LC0xLjc0MjA3NCwxLjc0MjA3NCw2MDUuNDg0MTcsMTYyLjM4MzE3KSIKICAgICAgIHgxPSIxMjMiCiAgICAgICB5MT0iMTUwLjM3NSIKICAgICAgIHgyPSIxMzMiCiAgICAgICB5Mj0iMTUwLjM3NSIgLz4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjEuODA2NjU1NiIKICAgICBpbmtzY2FwZTpjeD0iMTYuODgyMDIyIgogICAgIGlua3NjYXBlOmN5PSIxNjQuMzkyMTUiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXI0IgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpncmlkLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwNDMiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTMwNDMiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPk9wZW5TdHJlZXRNYXAgbG9nbyAyMDExPC9kYzp0aXRsZT4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPktlbiBWZXJtZXR0ZTwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8Y2M6bGljZW5zZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL2FydGxpYnJlLm9yZy9saWNlbmNlL2xhbCIgLz4KICAgICAgICA8ZGM6ZGF0ZT5BcHJpbCAyMDExPC9kYzpkYXRlPgogICAgICAgIDxkYzpwdWJsaXNoZXI+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5PcGVuU3RyZWV0TWFwLm9yZzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxkYzpkZXNjcmlwdGlvbj5SZXBsYWNlbWVudCBsb2dvIGZvciBPcGVuU3RyZWV0TWFwIEZvdW5kYXRpb248L2RjOmRlc2NyaXB0aW9uPgogICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgIDxyZGY6bGk+T1NNIG9wZW5zdHJlZXRtYXAgbG9nbzwvcmRmOmxpPgogICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICA8ZGM6c291cmNlPmh0dHA6Ly93aWtpLm9wZW5zdHJlZXRtYXAub3JnL3dpa2kvRmlsZTpQdWJsaWMtaW1hZ2VzLW9zbV9sb2dvLnN2ZzwvZGM6c291cmNlPgogICAgICA8L2NjOldvcms+CiAgICAgIDxjYzpMaWNlbnNlCiAgICAgICAgIHJkZjphYm91dD0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wLyI+CiAgICAgICAgPGNjOnBlcm1pdHMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI1JlcHJvZHVjdGlvbiIgLz4KICAgICAgICA8Y2M6cGVybWl0cwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjRGlzdHJpYnV0aW9uIiAvPgogICAgICAgIDxjYzpyZXF1aXJlcwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjTm90aWNlIiAvPgogICAgICAgIDxjYzpyZXF1aXJlcwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjQXR0cmlidXRpb24iIC8+CiAgICAgICAgPGNjOnBlcm1pdHMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI0Rlcml2YXRpdmVXb3JrcyIgLz4KICAgICAgICA8Y2M6cmVxdWlyZXMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI1NoYXJlQWxpa2UiIC8+CiAgICAgIDwvY2M6TGljZW5zZT4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXI0IgogICAgIGlua3NjYXBlOmxhYmVsPSJtYXBfZGV0YWlscyIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNjZWVlYWI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDksMi4yNSBjIDAsMCA3LjUsMTMgMTEuNzUsMjcuNzUgQyAyNSw0NC43NSAyNyw1NS41IDI3LDU1LjUgYyAwLDAgLTUuNSwxMi43NSAtOC4yNSwyNC43NSAtMi43NSwxMiAtNS43NSwyMyAtNS43NSwyMyAwLDAgNS43NSwxNiA5LjI1LDMwIDMuNSwxNCAzLjc1LDI0LjI1IDMuNzUsMjQuMjUgMCwwIC00LDEwLjI1IC03LjUsMjQuMjUgLTMuNSwxNCAtNSwzMC43NSAtNSwzMC43NSAwLDAgOS4yNSwtMiAyOC41LDEuMjUgMTkuMjUsMy4yNSAzMi4yNSw2IDMyLjI1LDYgMCwwIDEyLjc1LC0yLjc1IDI0LC02LjI1IDExLjI1LC0zLjUgMTYuMjUsLTYuNSAxNi4yNSwtNi41IDAsMCA1LjUsMC41IDIyLjUsNi4yNSAxNyw1Ljc1IDI5LjI1LDguNSAyOS4yNSw4LjUgMCwwIDEzLC0yLjc1IDI2LC01Ljc1IDEzLC0zIDI2LjUsLTggMjYuNSwtOCAwLDAgLTAuNzUsLTUgNC4yNSwtMjQuNSA1LC0xOS41IDguNzUsLTI4IDguNzUsLTI4IDAsMCAtMC41LC00LjUgLTMuNzUsLTE5Ljc1IEMgMjI0Ljc1LDEyMC41IDIxOCwxMDYgMjE4LDEwNiBjIDAsMCAxLjc1LC0xMC41IDYuNzUsLTIzLjc1IEMgMjI5Ljc1LDY5IDIzNSw1NS41IDIzNSw1NS41IGMgMCwwIC00Ljc1LC0xNS4yNSAtNy41LC0yOS43NSBDIDIyNC43NSwxMS4yNSAyMTkuMjUsMCAyMTkuMjUsMCBjIDAsMCAtMjQuMjUsOSAtMzEuNzUsMTAuNSAtNy41LDEuNSAtMjEsNS4yNSAtMjEsNS4yNSAwLDAgLTkuNzUsLTQuMjUgLTIyLC04LjUgLTEyLjI1LC00LjI1IC0yOS43NSwtNS41IC0yOS43NSwtNS41IDAsMCAtMy4yNSwzLjUgLTIyLDggLTE4Ljc1LDQuNSAtMjcuNSw1Ljc1IC0yNy41LDUuNzUgMCwwIC0xOC41LC05IC0zMS41LC0xMS41IEMgMjAuNzUsMS41IDkuNzUsMiA5LDIuMjUgWiIKICAgICAgIGlkPSJwYXRoMzgzNC05IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNhYWMzZTc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJNIDE1OC41MzEyNSw3NS4zNDM3NSBDIDE1My43NzE0Miw3NS4zMjk0MDcgMTQ5LjUsNzYuMzEyNSAxNDcsNzguNSBjIC04LDcgLTM1LDAuNzUgLTQ4LjUsNyAtMTMuNSw2LjI1IC0xMy4yNSwzOCAtMTQuNzUsNDQuNSAtMS41LDYuNSAtMTcuNSwyMC43NSAtMjAsMjMuNSAtMi41LDIuNzUgLTEzLjI1LDcuMjUgLTE5LjUsOC41IC02LjI1LDEuMjUgLTEyLjc1LDcuMjUgLTE1LjUsMTEgLTIuMDIxMTI0LDIuNzU2MDggLTcuNDA2MDE5LDYuNDUwMzEgLTEwLjEyNSw4LjIxODc1IC0wLjA0NTgsMC4xODEyOCAtMC4wNzkzNiwwLjM0ODY4IC0wLjEyNSwwLjUzMTI1IC0wLjEzMzY4OSwwLjUzNDc1IC0wLjI0NzEyLDEuMDgzMzEgLTAuMzc1LDEuNjI1IDQuOTc5NTEzLC0xLjYwNDgyIDExLjE3OTUwOCwtOC4xNzk1MSAxNi42MjUsLTEzLjYyNSA2LjI1LC02LjI1IDIwLC03Ljc1IDI3Ljc1LC0xMS41IDcuNzUsLTMuNzUgMTQuMjUsLTE5Ljc1IDI2LjUsLTIzLjc1IDEyLjI1LC00IDIxLjI1LDExLjc1IDI0LjI1LDE4LjUgMyw2Ljc1IDEuNzUsMTIuNzUgMy43NSwxNyAyLDQuMjUgMTEsMTEuNzUgMTEuNSwxMy41IDAuNSwxLjc1IC01LDYuNSAtNi4yNSw4LjUgLTEuMjUsMiAtMTAuNSw3IC0xMS43NSw4Ljc1IC0wLjk2NTY4LDEuMzUxOTUgLTEuOTIzMTYsNi43NzMxNCAtMi4zMTI1LDkuMjE4NzUgMC40MTMwMywtMC4xNjkyIDAuNzU0MTgsLTAuMzEwNTMgMS4xMjUsLTAuNDY4NzUgMC40ODQsLTIuNTI5MzMgMS41MTU0OSwtNy4wNzc5OSAyLjkzNzUsLTguNSAyLC0yIDExLjI1LC00LjUgMTIuNSwtOC41IDEuMjUsLTQgNywtNi41IDcsLTYuNSAwLDAgMi43NSw0IDE2LDE0IDguODMzMzMsNi42NjY2NyAxMi43NTgxLDE1LjUzMzU2IDE0LjQwNjI1LDIwLjcxODc1IDAuNjczNiwwLjE3MDY1IDEuNTMyOTUsMC40MDk0IDIuMDMxMjUsMC41MzEyNSAtMS4yMjExNSwtNC4zMTg3MSAtNC44MzY0NiwtMTYuMjM4ODUgLTguOTM3NSwtMjAuNzUgLTUsLTUuNSAtMTguNSwtMTAuNzUgLTIyLjc1LC0yMiAtNC4yNSwtMTEuMjUgLTI0LjUsLTM0LjI1IC0xNy41LC00MC4yNSA3LC02IDE2LjUsLTQgMjguNSw3LjUgMTIsMTEuNSA0Ni4yNSw1Ljc1IDU3Ljc1LDMuNzUgOS45NTQ1MywtMS43MzEyMiAyMC44MzQ0NSwxNC44ODMyMSAyMy45MDYyNSwyNi4wMzEyNSAwLjU4OSwtMi4wOTU2NyAxLjEyNjYzLC00LjAwMjE5IDEuNjU2MjUsLTUuNzUgLTEuNzM4MDYsLTEuOTI1OCAtMy42OTcyMiwtNC42MTk5NiAtNS4zMTI1LC04LjI4MTI1IC0zLjc1LC04LjUgLTEyLC0xMy4yNSAtMTIsLTEzLjI1IDAsMCA4Ljc1LC01IDE0Ljc1LC03Ljc1IDEuNjE3MDMsLTAuNzQxMTQgMy4wMDYyNywtMS42NzcxMyA0LjE4NzUsLTIuNjU2MjUgLTAuMTYyMzQsLTAuNzc0MDMgLTAuMjU4OTMsLTEuMjU1ODUgLTAuNDM3NSwtMi4wOTM3NSAtMC4wMzExLC0wLjE0NjExIC0wLjA2MiwtMC4yOTE1NCAtMC4wOTM3LC0wLjQzNzUgLTQuNzY1NjUsNS41NjI0IC0xOS4yMzIyNiw5LjYxNTMyIC0yMS42NTYyNSwxMC45Mzc1IC0yLjc1LDEuNSAtMTguMjUsMyAtMzUuNzUsNC41IC0xNy41LDEuNSAtMjYuNzUsLTcuNSAtMzQuMjUsLTE0Ljc1IC03LjUsLTcuMjUgLTEzLC0zNiAtMywtMzggMTAsLTIgMjAsMTMuNzUgMzAsMTcgMTAsMy4yNSAyMS41LC0xNS43NSAxOS43NSwtMjcgQyAxODEuNzk2OTMsODAuMjY1NjI1IDE2OS4wMDI5Miw3NS4zNzUzMDUgMTU4LjUzMTMsNzUuMzQzNzUgWiBNIDEwNS4xODc1LDg4LjYyNSBjIDEuMjc1MzMsMC4wMDE1IDUuODU5MzgsMS41OTM3NSA2LjU2MjUsMi4zNzUgMi4yNSwyLjUgMiw3LjI1IDAsOCAtMiwwLjc1IC0xMi43NSw4IC0xMC41LDE0LjI1IDIuMjUsNi4yNSAxLjc1LDE4IC0zLjUsMTggLTUuMjUsMCAtOCwwIC0xMCwtMi41IC0yLC0yLjUgLTIsLTEyIDAsLTE5Ljc1IDIsLTcuNzUgMy41LC0xNSA4LC0xOC4yNSAzLjA5Mzc1LC0yLjIzNDM4IDYuNjMxNzcsLTIuMTI4MzU3IDkuNDM3NSwtMi4xMjUgeiBtIDEzLjU5Mzc1LDczLjA5Mzc1IGMgMC4yMDMyNSwwLjAxMzcgMS45MDYyNSwzLjUxNTYzIDQuNzE4NzUsNy4wMzEyNSAzLDMuNzUgMy4yNSw4LjI1IDMuMjUsOC4yNSAwLDAgLTQuMjUsLTQuNzUgLTYsLTggLTEuNzUsLTMuMjUgLTIsLTcuMjUgLTIsLTcuMjUgMCwtMC4wMzEyIDAuMDE3OCwtMC4wMzIzIDAuMDMxMiwtMC4wMzEyIHoiCiAgICAgICBpZD0icGF0aDUyODAiIC8+CiAgICA8ZwogICAgICAgaWQ9Imc1NDAwIgogICAgICAgY2xpcC1wYXRoPSJ1cmwoI2NsaXBQYXRoNTQyNikiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0xMCkiPgogICAgICA8cGF0aAogICAgICAgICBpZD0icGF0aDUzODciCiAgICAgICAgIGQ9Im0gNTcuNzUsMjAgLTguNSwyOC4yNSAxOCw2LjI1IEwgNzUsOTAuNzUgNTQsMTEzIGwgOSwxMC41IC0xMiwxMS41IDAuNSw0LjUgMjAuMjUsMjQuNSAxNCwtNi43NSAyMC41LDE4LjUgLTEwLjUsMjguMjUgMTAuMjUsOC41IC0yLjc1LDEzIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZDM4NDg0O3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBpZD0icGF0aDUzODkiCiAgICAgICAgIGQ9Im0gMTA1Ljc1LDIxMi4yNSAxMi41LC0yNy43NSAxMSwtNyAyNy41LDE1Ljc1IDIwLjUsLTMuNzUgLTAuMjUsLTE1Ljc1IC0xMC4yNSwtNiAxMi43NSwtMjYuMjUgNS43NSwtMy43NSAzOC43NSwtMTAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNkMzg0ODQ7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8L2c+CiAgPC9nPgogIDxnCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXI1IgogICAgIGlua3NjYXBlOmxhYmVsPSJNYWduaWZ5aW5nIEdhbHNzIgogICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzJkMzMzNTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMTI1LjA2NDE5LDEzNC42ODU4NiBjIC0yNS42MzUxNzYsLTI0LjM0MzgyIC0yNy4xMjY1MDksLTY4Ljc3MTYwNyAtMy4zOTQsLTk0LjkzOTQ2NCAyMS40NzU3OCwtMjUuMzYwOTI4IDYxLjgzMDE1LC0zMS41NjQxMjk5IDg5LjcyNTI1LC0xMy4yODczMjkgMjcuNTE2MjgsMTYuOTYxNzU1IDQwLjE1ODM0LDU0LjE5MzA3NiAyNy44NzE2Miw4NC4yNTMzOTMgLTExLjY1NDE5LDMwLjg3MTI0IC00Ny4xMjUxNSw1MC41OTA2MSAtNzkuNDU5MzksNDIuODUzNTEgLTEzLjA3MTUyLC0yLjc4MDAxIC0yNS4zMzIzMiwtOS4zNzY4NyAtMzQuNzQzNDgsLTE4Ljg4MDExIHogbSAyLjk1MjgyLC0yLjk1MjgyIGMgMjIuNDQ4MjcsMjMuODU3OSA2My40MzQzNywyNy4wMzE4NyA4OC41NzYyOSw1LjU3MTk4IDIzLjM3MjE3LC0xOC41MDE0MiAzMC45ODQ3NSwtNTMuNzM3ODI4IDE3LjAyMjg0LC04MC4xNTU3NjIgLTE0LjI3Njk0LC0yOS40MjQ5MTEgLTUxLjQ3NDUsLTQ2LjA2NjM1NyAtODIuNTQ1MTcsLTM0LjMyNTUzMSAtMjkuOTUwNDIsMTAuMzg4Njc5IC00OS40ODgzOSw0NC42NzQ3MTYgLTQxLjUxNDA5LDc1LjY3ODIzNCAyLjgzNDQ5LDEyLjUyOTU4OSA5LjM0NTQ5LDI0LjE4NjY1OSAxOC40NjAxMywzMy4yMzEwNzkgeiIKICAgICAgIGlkPSJwYXRoNTYwNC0yNiIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc2Njc3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NjI1Myk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDExNi4wNTE5NSwxMTUuMjc3MjUgYyAtMTIuMjcyOSw3LjEzOTUzIDYuNjYxMTUsMTkuNTk4MjIgMTIuMDQ2NzQsMjUuOTM4MDQgMy44MzgwOSw0Ljc1Mjc1IDE3Ljk2NDIxLDEyLjY1NDgzIDE0LjEwNDQ2LDEuMDU4NTYgLTExLjIxMjI5LC02LjAyNjgzIC0yMC4zNzEwNiwtMTUuNjEwNDEgLTI2LjE1MTIsLTI2Ljk5NjYgeiIKICAgICAgIGlkPSJwYXRoNTYwNC05LTEtOC04LTEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDYyNTApO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAxMjQuODE4MTIsMTM0LjkzMTkyIGMgOC41ODE2Miw1LjU0MzgyIC0yLjY2ODU5LDExLjc5NDA4IC02LjY1MjM4LDE2LjQ5NTEgLTUuMTQ0MDcsNS4xNDQwNyAtMTAuMjg4MTUsMTAuMjg4MTUgLTE1LjQzMjIyLDE1LjQzMjIyIC04LjkwNzQzOSwtMi43Nzk3MSAtMTEuMTIzMTQsLTEyLjgxNDIzIC0yLjUxNDUxLC0xNy4xNzA5MiA2LjI5MjY3LC02LjI5MjY3IDEyLjU4NTM1LC0xMi41ODUzNSAxOC44NzgwMywtMTguODc4MDMgMi4xMDYxNiwxLjA2NCA0LjA1MjkyLDIuNDUwNjcgNS43MjEwOCw0LjEyMTYzIHoiCiAgICAgICBpZD0icmVjdDU3NTctNSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NjI0NCk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDExNS4wNzY2OSwxNDguOTkwMjUgYyAxMC43ODYwMiw1LjY3ODk5IDYuOTkwMzksMTYuMTE1MDggLTEuNzk1NDQsMjEuMzM0MTIgLTE3LjkyODI4LDE3LjkyODI4IC0zNS44NTY1NjUsMzUuODU2NTUgLTUzLjc4NDg0Myw1My43ODQ4MyAtNS4yNTk5NiwtNi42Nzc3NyAtMjMuNzA1NTQ1LC0xNC41NDgyIC0xNS40NDU4MiwtMjMuOTI1MDUgMTkuOTUzMzMzLC0xOS45NTMzMyAzOS45MDY2NzMsLTM5LjkwNjY2IDU5Ljg2MDAwMywtNTkuODYgNC44OTM4OCwxLjAwMjkxIDcuNzA1MzIsNS41MzQ5MiAxMS4xNjYxLDguNjY2MSB6IgogICAgICAgaWQ9InJlY3Q1NzU3LTgtNiIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjYyIgLz4KICA8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Geospatial",
        "camel.apache.org/kamelet.namespace" : "Geo"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Nominatim GeoCode Action",
        "description" : "Find locations on Earth by name and address. \nThis Kamelet expects in the body the `address` to find.\nThe return message will also contain the following headers with the geolocation info:\n \n- `CamelGeoCoderAddress`\n- `CamelGeoCoderCity`\n- `CamelGeoCoderCountryLong`\n- `CamelGeoCoderCountryShort`\n- `CamelGeoCoderLat`\n- `CamelGeoCoderLng`\n- `CamelGeoCoderLatlng`\n- `CamelGeoCoderPostalCode`\n- `CamelGeoCoderRegionCode`\n- `CamelGeoCoderRegionName`\n- `CamelGeoCoderStatus`\n\nThe body will be returned in JSON format.",
        "required" : [ "serverUrl" ],
        "type" : "object",
        "properties" : {
          "serverUrl" : {
            "title" : "Server URL",
            "description" : "Url of the Nominatim server",
            "example" : "https://nominatim.openstreetmap.org",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "text/plain"
        },
        "out" : {
          "mediaType" : "application/json",
          "schema" : {
            "type" : "object",
            "required" : [ "place_id" ],
            "properties" : {
              "place_id" : {
                "type" : "numeric"
              },
              "licence" : {
                "type" : "string"
              },
              "osm_type" : {
                "type" : "string"
              },
              "osm_id" : {
                "type" : "numeric"
              },
              "boundingbox" : {
                "type" : "array"
              },
              "lat" : {
                "type" : "numeric"
              },
              "lon" : {
                "type" : "numeric"
              },
              "display_name" : {
                "type" : "string"
              },
              "place_rank" : {
                "type" : "numeric"
              },
              "category" : {
                "type" : "string"
              },
              "address" : {
                "type" : "object"
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:geocoder", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setHeader" : {
              "name" : "CamelGeoCoderAddress",
              "simple" : "${body}"
            }
          }, {
            "to" : {
              "uri" : "geocoder:address:toOverride",
              "parameters" : {
                "type" : "NOMINATIM",
                "serverUrl" : "RAW({{serverUrl}})"
              }
            }
          }, {
            "marshal" : {
              "json" : { }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Nominatim GeoCode Action",
      "description" : "Find locations on Earth by name and address. \nThis Kamelet expects in the body the `address` to find.\nThe return message will also contain the following headers with the geolocation info:\n \n- `CamelGeoCoderAddress`\n- `CamelGeoCoderCity`\n- `CamelGeoCoderCountryLong`\n- `CamelGeoCoderCountryShort`\n- `CamelGeoCoderLat`\n- `CamelGeoCoderLng`\n- `CamelGeoCoderLatlng`\n- `CamelGeoCoderPostalCode`\n- `CamelGeoCoderRegionCode`\n- `CamelGeoCoderRegionName`\n- `CamelGeoCoderStatus`\n\nThe body will be returned in JSON format.",
      "required" : [ "serverUrl" ],
      "properties" : {
        "serverUrl" : {
          "type" : "string",
          "title" : "Server URL",
          "description" : "Url of the Nominatim server"
        }
      }
    }
  },
  "ogcapi-features-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ogcapi-features-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjIxMDAiCiAgIGhlaWdodD0iMjEwMCIKICAgdmlld0JveD0iMCAwIDIxMDAgMjEwMCIKICAgdmVyc2lvbj0iMS4xIgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjIiCiAgIGlkPSJzdmcxMTEwIgogICBzb2RpcG9kaTpkb2NuYW1lPSJPcGVuX0dlb3NwYXRpYWxfQ29uc29ydGl1bV9sb2dvLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjIgKDBhMDBjZjUzMzksIDIwMjItMDItMDQpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iPjxkZWZzCiAgIGlkPSJkZWZzMTExNCIgLz48c29kaXBvZGk6bmFtZWR2aWV3CiAgIGlkPSJuYW1lZHZpZXcxMTEyIgogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iMC4xMjgzNzUiCiAgIGlua3NjYXBlOmN4PSIxNDkxLjcyMzUiCiAgIGlua3NjYXBlOmN5PSIxNDA5LjkzMTgiCiAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iOTgzIgogICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgaW5rc2NhcGU6d2luZG93LXk9IjAiCiAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9Ik9HQy0yRC1Mb2NrdXAtdy0tVHJhZGVtYXJrIiAvPgogICAgPGcKICAgaWQ9Ik9HQy0yRC1Mb2NrdXAtdy0tVHJhZGVtYXJrIgogICBzZXJpZjppZD0iT0dDIDJEIExvY2t1cCB3LyBUcmFkZW1hcmsiCiAgIHRyYW5zZm9ybT0ibWF0cml4KDIwLjA2NTEsMCwwLDIwLjA2NTEsLTE0MzUuMDksLTEwMjQuMTQpIj4KICAgICAgICAKICAgICAgICA8ZwogICBpZD0iQ3ViZSIKICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTM1LjkyNzA1NiwtNDkuNDQ2NTI0KSI+CiAgICAgICAgICAgIDxnCiAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE1Ni4yMTcsMTYxLjU2OSkiCiAgIGlkPSJnMTA5OCI+CiAgICAgICAgICAgICAgICA8cGF0aAogICBkPSJNIDAsMTQuNjUzIDAuMDAxLDQzLjk4MyAtNDIuMzEyLDE5LjU1NCAtNDIuMzEzLC0yOS4zMyAwLC00LjkwMSB2IDkuNzc2IGwgLTguNDQ2LC00Ljg3NCAtNC4yMzMsLTIuNDQ1IC0yMS4xNjcsLTEyLjIyMSB2IDI5LjMzIGwgMjUuNCwxNC42NjYgdiAtOS43NzcgbCAtMTIuNywtNy4zMzMgMC4wMDEsLTQuODg4IGggLTAuMDAxIFYgMi40NDUgWiIKICAgc3R5bGU9ImZpbGw6IzAwYjFmZjtmaWxsLXJ1bGU6bm9uemVybyIKICAgaWQ9InBhdGgxMDk2IiAvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxnCiAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MC40NTUsMTEwLjI2MSkiCiAgIGlkPSJnMTEwMiI+CiAgICAgICAgICAgICAgICA8cGF0aAogICBkPSJNIDAsMjkuMzMgLTI1LjQwMywxNC42NjUgMCwtMC4wMDEgMjUuMzk5LDE0LjY2NSAyMS4xNjcsMTcuMTA5IFogTSAtMC4wMDEsLTkuNzc3IC00Mi4zMzYsMTQuNjY1IC0wLjAwMSwzOS4xMDcgNDIuMzMzLDE0LjY2NSBaIgogICBzdHlsZT0iZmlsbDojMDBiMWZmO2ZpbGwtcnVsZTpub256ZXJvIgogICBpZD0icGF0aDExMDAiIC8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPGcKICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgxLjY2LDE4MS4yMzkpIgogICBpZD0iZzExMDYiPgogICAgICAgICAgICAgICAgPHBhdGgKICAgZD0ibSAwLC0yNC42ODggOC40NjgsLTQuODg4IDguNDY2LC00Ljg4OSAxMGUtNCw5Ljc3NyA4LjQ0NCwtNC44NzUgdiAtMTkuNDQ0IGwgLTQyLjMxMiwyNC40MjkgdiA5LjY2NiBoIDAuMDAxIGwgLTAuMDAxLDIuOTE4IDAuMDAxLDM2LjE5IC0wLjAyMiwtMC4wMTMgdiAwLjEzNiBMIDI1LjM3OSwtMC4xMjMgdiAtMTkuNjY1IGwgLTguNDQ0LDQuODc3IHYgOS43NzYgTCAtOC40NjYsOS41MyAtOC40NjUsLTE5Ljc5OSBaIgogICBzdHlsZT0iZmlsbDojMDBiMWZmO2ZpbGwtcnVsZTpub256ZXJvIgogICBpZD0icGF0aDExMDQiIC8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Geospatial",
        "camel.apache.org/kamelet.namespace" : "Geo"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "OGC Api Feature Get Item Action",
        "description" : "Returns the items of the collection provided of an OGC API Features server. \nThe collection must be a valid collection name on the server.\n\nQuery can be defined in the body too.\n\nSee https://www.ogc.org/standards/ogcapi-features",
        "required" : [ "url", "collection" ],
        "type" : "object",
        "properties" : {
          "url" : {
            "title" : "URL",
            "description" : "The URL to fetch for data",
            "type" : "string",
            "example" : "https://emotional.byteroad.net",
            "pattern" : "^(http|https)://.*"
          },
          "collection" : {
            "title" : "Collection",
            "description" : "Name of the collection we want to extract items from.",
            "type" : "string"
          },
          "bbox" : {
            "title" : "Bounding Box",
            "description" : "Bounding Box of the items we want to retrieve.",
            "example" : "160.6,-55.95,-170,-25.89",
            "default" : "-180,-90,180,90",
            "type" : "string"
          },
          "limit" : {
            "title" : "Limit",
            "description" : "Maximum number of items to retrieve. Must be a number between 1 and 10 000.",
            "type" : "integer",
            "default" : 10
          },
          "split" : {
            "title" : "Split by Feature",
            "description" : "When true, instead of returning the full geojson, split the message into each feature.",
            "type" : "boolean",
            "default" : false
          },
          "query" : {
            "title" : "Query",
            "description" : "Separated list by `&` of properties we want to query.",
            "example" : "property1=1&property2=dos",
            "default" : "",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "text/plain"
        },
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:http", "camel:kamelet", "camel:jsonpath", "camel:jackson" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setHeader" : {
              "name" : "Accept",
              "constant" : "application/geo+json"
            }
          }, {
            "setHeader" : {
              "name" : "CamelHttpQuery",
              "simple" : "limit={{limit}}&bbox={{bbox}}&{{?query}}&${body}"
            }
          }, {
            "setBody" : {
              "simple" : ""
            }
          }, {
            "to" : {
              "uri" : "{{url}}/collections/{{collection}}/items"
            }
          }, {
            "removeHeader" : {
              "name" : "Accept"
            }
          }, {
            "removeHeader" : {
              "name" : "CamelHttpQuery"
            }
          }, {
            "convertBodyTo" : {
              "type" : "java.lang.String"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "{{split}}",
                "steps" : [ {
                  "split" : {
                    "jsonpath" : "$.features[*]",
                    "steps" : [ {
                      "marshal" : {
                        "json" : { }
                      }
                    }, {
                      "to" : "kamelet:sink"
                    } ]
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "to" : "kamelet:sink"
                } ]
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "OGC Api Feature Get Item Action",
      "description" : "Returns the items of the collection provided of an OGC API Features server. \nThe collection must be a valid collection name on the server.\n\nQuery can be defined in the body too.\n\nSee https://www.ogc.org/standards/ogcapi-features",
      "required" : [ "url", "collection" ],
      "properties" : {
        "url" : {
          "type" : "string",
          "title" : "URL",
          "description" : "The URL to fetch for data"
        },
        "collection" : {
          "type" : "string",
          "title" : "Collection",
          "description" : "Name of the collection we want to extract items from."
        },
        "bbox" : {
          "type" : "string",
          "title" : "Bounding Box",
          "description" : "Bounding Box of the items we want to retrieve.",
          "default" : "-180,-90,180,90"
        },
        "limit" : {
          "type" : "integer",
          "title" : "Limit",
          "description" : "Maximum number of items to retrieve. Must be a number between 1 and 10 000.",
          "default" : 10
        },
        "split" : {
          "type" : "boolean",
          "title" : "Split by Feature",
          "description" : "When true, instead of returning the full geojson, split the message into each feature.",
          "default" : false
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "Separated list by `&` of properties we want to query.",
          "default" : ""
        }
      }
    }
  },
  "openai-classification-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "openai-classification-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODk0IiBoZWlnaHQ9IjE3MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNjI1LjU1IDM1LjIyYy0xMy43NSAwLTIzLjU3IDQuNy0yOC4zOSAxMy41OWwtMi41OSA0Ljc5VjM3LjU0aC0yMi40djk3Ljg1aDIzLjU2Vjc3LjE4YzAtMTMuOTEgNy41NS0yMS44OSAyMC43My0yMS44OSAxMi41NiAwIDE5Ljc2IDcuNzYgMTkuNzYgMjEuMzF2NTguNzloMjMuNTZ2LTYzYzAtMjMuMjYtMTIuOC0zNy4xNy0zNC4yMy0zNy4xN3ptLTExNC4yMiAwYy0yNy43OSAwLTQ1LjA2IDE3LjMzLTQ1LjA2IDQ1LjI1djEzLjc0YzAgMjYuODMgMTcuNDIgNDMuNTEgNDUuNDUgNDMuNTEgMTguNzQgMCAzMS44OC02Ljg4IDQwLjE1LTIxbC0xNC42MS04LjM5Yy02LjExIDguMTUtMTUuODYgMTMuMTktMjUuNTQgMTMuMTktMTQuMTkgMC0yMi42Ny04Ljc2LTIyLjY3LTIzLjQ0di0zLjg5aDY1Ljc5Vjc3Ljk1YzAtMjYtMTcuMDgtNDIuNzMtNDMuNTEtNDIuNzN6bTIyLjA4IDQzLjE0aC00NC4zNnYtMi4zNGMwLTE2LjEyIDcuOTEtMjUgMjIuMjgtMjUgMTMuODMgMCAyMi4wOCA4Ljc2IDIyLjA4IDIzLjQ0djMuOXptMzYwLjI0LTU2LjkzVjIuNzFIODEyLjJ2MTguNzJoMjguNTZ2OTUuMjVIODEyLjJ2MTguNzFoODEuNDV2LTE4LjcxaC0yOC41NlYyMS40M2gyOC41NnpNMjc2IDBjLTM2LjM5IDAtNTkgMjIuNjgtNTkgNTkuMTh2MTkuNzRjMCAzNi41MSAyMi42IDU5LjE4IDU5IDU5LjE4czU5LTIyLjY3IDU5LTU5LjE4VjU5LjE4QzMzNC45OSAyMi42OCAzMTIuMzggMCAyNzYgMHptMzQuNjYgODAuMjdjMCAyNC4yNC0xMi42MyAzOC4xNS0zNC42NiAzOC4xNS0yMi4wMyAwLTM0LjY3LTEzLjkxLTM0LjY3LTM4LjE1VjU3LjgzYzAtMjQuMjQgMTIuNjMtMzguMTUgMzQuNjYtMzguMTUgMjIuMDMgMCAzNC42NiAxMy45MSAzNC42NiAzOC4xNWwuMDEgMjIuNDR6bTk4LjMxLTQ1Yy0xMi4zNiAwLTIzLjA3IDUuMTEtMjguNjQgMTMuNjlsLTIuNTQgMy45VjM3LjU0SDM1NS40djEzMS41MmgyMy41NXYtNDcuNjNsMi41MyAzLjc0YzUuMyA3Ljg1IDE1LjY1IDEyLjU1IDI3LjY4IDEyLjU1IDIwLjMxIDAgNDAuOC0xMy4yOCA0MC44LTQyLjkzVjc4LjEzYzAtMjEuMzUtMTIuNjMtNDIuOTEtNDEtNDIuOTFsLjAxLjA1em0xNy40NCA1OC40YzAgMTUuNzctOS4yIDI1LjU3LTI0IDI1LjU3LTEzLjggMC0yMy40NC0xMC4zNS0yMy40NC0yNS4xOHYtMTQuN2MwLTE1LjA2IDkuNzItMjUuNTcgMjMuNjMtMjUuNTcgMTQuNyAwIDIzLjgzIDkuOCAyMy44MyAyNS41N2wtLjAyIDE0LjMxek03MjQuODggMi43NmwtNDcuNTUgMTMyLjYzaDIzLjlsOS4xLTI4LjQ0aDU0LjY1bC4wOS4yOCA5IDI4LjE2SDc5OEw3NTAuNDEgMi43MWwtMjUuNTMuMDV6bS04LjY3IDg1LjUybDIxLjQ0LTY3LjE1IDIxLjIzIDY3LjA3LTQyLjY3LjA4ek0xNTUuODA4IDY5LjE4MmE0Mi4xNTcgNDIuMTU3IDAgMCAwLTMuNjMyLTM0LjU5MmMtOS4yMjItMTYuMDUxLTI3Ljc1Ni0yNC4zMDgtNDUuODU2LTIwLjQyOWE0Mi43MjQgNDIuNzI0IDAgMCAwLTcyLjM4NCAxNS4yOTcgNDIuMTU3IDQyLjE1NyAwIDAgMC0yOC4xNiAyMC40MjljLTkuMzIyIDE2LjAyNS03LjIwNiAzNi4yNCA1LjIzMiA0OS45ODhhNDIuMTI0IDQyLjEyNCAwIDAgMCAzLjYgMzQuNTkyYzkuMjMyIDE2LjA1NyAyNy43NzggMjQuMzEzIDQ1Ljg4OSAyMC40MjlhNDIuMTU3IDQyLjE1NyAwIDAgMCAzMS43NiAxNC4xNjNjMTguNTUyLjAxNyAzNC45OS0xMS45NiA0MC42NTYtMjkuNjI2YTQyLjE5IDQyLjE5IDAgMCAwIDI4LjE2LTIwLjQyOWM5LjIxLTE1Ljk5NyA3LjA4NS0zNi4xMDMtNS4yNjUtNDkuODIyem0tNjMuNTUyIDg4LjgxM2EzMS41MjYgMzEuNTI2IDAgMCAxLTIwLjI2Mi03LjMzMWwxLS41NjcgMzMuNjU5LTE5LjQyOWE1LjU5OSA1LjU5OSAwIDAgMCAyLjc2Ni00Ljc5OVY3OC40MTNsMTQuMjMgOC4yMzJhLjUuNSAwIDAgMSAuMjY3LjM2NnYzOS4zMjVjLS4wMzcgMTcuNDctMTQuMTkgMzEuNjIzLTMxLjY2IDMxLjY2em0tNjguMDUxLTI5LjA2YTMxLjQ5MyAzMS40OTMgMCAwIDEtMy43NjYtMjEuMjI4bDEgLjYgMzMuNjkyIDE5LjQyOGE1LjQzMiA1LjQzMiAwIDAgMCA1LjQ5OSAwbDQxLjE1Ny0yMy43Mjd2MTYuNDNhLjU2Ny41NjcgMCAwIDEtLjIzMy40MzJsLTM0LjA5MiAxOS42NjNjLTE1LjE1IDguNzI3LTM0LjUwNSAzLjUzOC00My4yNTctMTEuNTk4ek0xNS4zNCA1NS42MmEzMS41OTMgMzEuNTkzIDAgMCAxIDE2LjY2My0xMy44OTd2MzkuOTlhNS4zOTkgNS4zOTkgMCAwIDAgMi43MzMgNC43NjZsNDAuOTU3IDIzLjYyOC0xNC4yMyA4LjIzMmEuNTMzLjUzMyAwIDAgMS0uNSAwbC0zNC4wMjUtMTkuNjNDMTEuODE4IDg5Ljk0NiA2LjYzMyA3MC42MDUgMTUuMzQgNTUuNDUzdi4xNjd6bTExNi45MDcgMjcuMTZsLTQxLjA5LTIzLjg2MSAxNC4xOTYtOC4xOThhLjUzMy41MzMgMCAwIDEgLjUgMGwzNC4wMjYgMTkuNjYyYTMxLjY2IDMxLjY2IDAgMCAxLTQuNzY2IDU3LjA4N1Y4Ny40NzhhNS41NjUgNS41NjUgMCAwIDAtMi44NjYtNC42OTl6bTE0LjE2My0yMS4yOTVsLTEtLjYtMzMuNjI1LTE5LjU5NWE1LjQ2NSA1LjQ2NSAwIDAgMC01LjUzMiAwTDY1LjEyOSA2NS4wMTZ2LTE2LjQzYS40NjcuNDY3IDAgMCAxIC4yLS40MzJsMzQuMDI1LTE5LjYzYTMxLjY5MyAzMS42OTMgMCAwIDEgNDcuMDU2IDMyLjgyN3YuMTMzek01Ny4zNjQgOTAuNjExbC0xNC4yMy04LjE5OGEuNTY3LjU2NyAwIDAgMS0uMjY3LS40VjQyLjc4OEEzMS42OTMgMzEuNjkzIDAgMCAxIDk0LjgyMiAxOC40NmwtMSAuNTY3LTMzLjY1OSAxOS40MjlhNS41OTkgNS41OTkgMCAwIDAtMi43NjYgNC43OTlsLS4wMzMgNDcuMzU2em03LjczMi0xNi42NjNsMTguMzI5LTEwLjU2NCAxOC4zNjIgMTAuNTY0djIxLjEyOGwtMTguMjk2IDEwLjU2NUw2NS4xMyA5NS4wNzZsLS4wMzMtMjEuMTI4eiIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "OpenAI",
        "camel.apache.org/kamelet.namespace" : "AI"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "OpenAI Classification Action",
        "description" : "Classifies a sentence using the OpenAI API.\n\nIt requires an OpenAI account (beta accounts available at https://beta.openai.com/).\n\nTraining data for classification can be provided in advance by uploading a file with purpose=\"classifications\", see: https://beta.openai.com/docs/api-reference/files/upload.\n\nThe Kamelet accepts data in:\n\n- `text/plain` format (default)\n- `application/json` format: see reference at https://beta.openai.com/docs/api-reference/classifications/create\n",
        "required" : [ "authorizationToken" ],
        "type" : "object",
        "properties" : {
          "authorizationToken" : {
            "title" : "Authorization Token",
            "description" : "The authorization token to use to contact the openAI API",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "format" : {
            "title" : "Format",
            "description" : "The response format ('text/plain' or 'application/json' are supported)",
            "type" : "string",
            "default" : "text/plain"
          },
          "engine" : {
            "title" : "Engine",
            "description" : "The OpenAI engine to use",
            "type" : "string",
            "default" : "davinci"
          },
          "file" : {
            "title" : "Examples File",
            "description" : "The ID of an uploaded file containing examples for classification",
            "type" : "string",
            "example" : "file-9HbeJXxtG7pg1YTXRx1v1fmn"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "text/plain"
        },
        "out" : {
          "mediaType" : "text/plain"
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:jackson", "camel:jsonpath", "camel:core", "camel:kamelet", "camel:http" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == null || ${header[Content-Type]} == 'text/plain'",
                "steps" : [ {
                  "convertBodyTo" : {
                    "type" : "java.lang.String"
                  }
                }, {
                  "transform" : {
                    "simple" : "${bean:type:java.util.Map?method=of('query', ${body})}"
                  }
                }, {
                  "marshal" : {
                    "json" : { }
                  }
                } ]
              } ]
            }
          }, {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${body.has('model')} == false",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "field",
                    "constant" : "model"
                  }
                }, {
                  "setProperty" : {
                    "name" : "value",
                    "constant" : "{{engine}}"
                  }
                }, {
                  "bean" : "org.apache.camel.kamelets.utils.transform.InsertField"
                } ]
              } ]
            }
          }, {
            "setProperty" : {
              "name" : "file",
              "constant" : "{{file:}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${body.has('file')} == false && ${exchangeProperty.file} != null",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "field",
                    "constant" : "file"
                  }
                }, {
                  "setProperty" : {
                    "name" : "value",
                    "simple" : "${exchangeProperty.file}"
                  }
                }, {
                  "bean" : "org.apache.camel.kamelets.utils.transform.InsertField"
                } ]
              } ]
            }
          }, {
            "marshal" : {
              "json" : { }
            }
          }, {
            "setHeader" : {
              "name" : "Authorization",
              "simple" : "Bearer {{authorizationToken}}"
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "application/json"
            }
          }, {
            "to" : "https://api.openai.com/v1/classifications"
          }, {
            "removeHeader" : {
              "name" : "Authorization"
            }
          }, {
            "setProperty" : {
              "name" : "format",
              "constant" : "{{format}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty.format} == 'text/plain'",
                "steps" : [ {
                  "transform" : {
                    "jsonpath" : "$.label"
                  }
                }, {
                  "setHeader" : {
                    "name" : "Content-Type",
                    "constant" : "text/plain"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "OpenAI Classification Action",
      "description" : "Classifies a sentence using the OpenAI API.\n\nIt requires an OpenAI account (beta accounts available at https://beta.openai.com/).\n\nTraining data for classification can be provided in advance by uploading a file with purpose=\"classifications\", see: https://beta.openai.com/docs/api-reference/files/upload.\n\nThe Kamelet accepts data in:\n\n- `text/plain` format (default)\n- `application/json` format: see reference at https://beta.openai.com/docs/api-reference/classifications/create\n",
      "required" : [ "authorizationToken" ],
      "properties" : {
        "authorizationToken" : {
          "type" : "string",
          "title" : "Authorization Token",
          "description" : "The authorization token to use to contact the openAI API",
          "format" : "password"
        },
        "format" : {
          "type" : "string",
          "title" : "Format",
          "description" : "The response format ('text/plain' or 'application/json' are supported)",
          "default" : "text/plain"
        },
        "engine" : {
          "type" : "string",
          "title" : "Engine",
          "description" : "The OpenAI engine to use",
          "default" : "davinci"
        },
        "file" : {
          "type" : "string",
          "title" : "Examples File",
          "description" : "The ID of an uploaded file containing examples for classification"
        }
      }
    }
  },
  "openai-completion-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "openai-completion-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODk0IiBoZWlnaHQ9IjE3MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNjI1LjU1IDM1LjIyYy0xMy43NSAwLTIzLjU3IDQuNy0yOC4zOSAxMy41OWwtMi41OSA0Ljc5VjM3LjU0aC0yMi40djk3Ljg1aDIzLjU2Vjc3LjE4YzAtMTMuOTEgNy41NS0yMS44OSAyMC43My0yMS44OSAxMi41NiAwIDE5Ljc2IDcuNzYgMTkuNzYgMjEuMzF2NTguNzloMjMuNTZ2LTYzYzAtMjMuMjYtMTIuOC0zNy4xNy0zNC4yMy0zNy4xN3ptLTExNC4yMiAwYy0yNy43OSAwLTQ1LjA2IDE3LjMzLTQ1LjA2IDQ1LjI1djEzLjc0YzAgMjYuODMgMTcuNDIgNDMuNTEgNDUuNDUgNDMuNTEgMTguNzQgMCAzMS44OC02Ljg4IDQwLjE1LTIxbC0xNC42MS04LjM5Yy02LjExIDguMTUtMTUuODYgMTMuMTktMjUuNTQgMTMuMTktMTQuMTkgMC0yMi42Ny04Ljc2LTIyLjY3LTIzLjQ0di0zLjg5aDY1Ljc5Vjc3Ljk1YzAtMjYtMTcuMDgtNDIuNzMtNDMuNTEtNDIuNzN6bTIyLjA4IDQzLjE0aC00NC4zNnYtMi4zNGMwLTE2LjEyIDcuOTEtMjUgMjIuMjgtMjUgMTMuODMgMCAyMi4wOCA4Ljc2IDIyLjA4IDIzLjQ0djMuOXptMzYwLjI0LTU2LjkzVjIuNzFIODEyLjJ2MTguNzJoMjguNTZ2OTUuMjVIODEyLjJ2MTguNzFoODEuNDV2LTE4LjcxaC0yOC41NlYyMS40M2gyOC41NnpNMjc2IDBjLTM2LjM5IDAtNTkgMjIuNjgtNTkgNTkuMTh2MTkuNzRjMCAzNi41MSAyMi42IDU5LjE4IDU5IDU5LjE4czU5LTIyLjY3IDU5LTU5LjE4VjU5LjE4QzMzNC45OSAyMi42OCAzMTIuMzggMCAyNzYgMHptMzQuNjYgODAuMjdjMCAyNC4yNC0xMi42MyAzOC4xNS0zNC42NiAzOC4xNS0yMi4wMyAwLTM0LjY3LTEzLjkxLTM0LjY3LTM4LjE1VjU3LjgzYzAtMjQuMjQgMTIuNjMtMzguMTUgMzQuNjYtMzguMTUgMjIuMDMgMCAzNC42NiAxMy45MSAzNC42NiAzOC4xNWwuMDEgMjIuNDR6bTk4LjMxLTQ1Yy0xMi4zNiAwLTIzLjA3IDUuMTEtMjguNjQgMTMuNjlsLTIuNTQgMy45VjM3LjU0SDM1NS40djEzMS41MmgyMy41NXYtNDcuNjNsMi41MyAzLjc0YzUuMyA3Ljg1IDE1LjY1IDEyLjU1IDI3LjY4IDEyLjU1IDIwLjMxIDAgNDAuOC0xMy4yOCA0MC44LTQyLjkzVjc4LjEzYzAtMjEuMzUtMTIuNjMtNDIuOTEtNDEtNDIuOTFsLjAxLjA1em0xNy40NCA1OC40YzAgMTUuNzctOS4yIDI1LjU3LTI0IDI1LjU3LTEzLjggMC0yMy40NC0xMC4zNS0yMy40NC0yNS4xOHYtMTQuN2MwLTE1LjA2IDkuNzItMjUuNTcgMjMuNjMtMjUuNTcgMTQuNyAwIDIzLjgzIDkuOCAyMy44MyAyNS41N2wtLjAyIDE0LjMxek03MjQuODggMi43NmwtNDcuNTUgMTMyLjYzaDIzLjlsOS4xLTI4LjQ0aDU0LjY1bC4wOS4yOCA5IDI4LjE2SDc5OEw3NTAuNDEgMi43MWwtMjUuNTMuMDV6bS04LjY3IDg1LjUybDIxLjQ0LTY3LjE1IDIxLjIzIDY3LjA3LTQyLjY3LjA4ek0xNTUuODA4IDY5LjE4MmE0Mi4xNTcgNDIuMTU3IDAgMCAwLTMuNjMyLTM0LjU5MmMtOS4yMjItMTYuMDUxLTI3Ljc1Ni0yNC4zMDgtNDUuODU2LTIwLjQyOWE0Mi43MjQgNDIuNzI0IDAgMCAwLTcyLjM4NCAxNS4yOTcgNDIuMTU3IDQyLjE1NyAwIDAgMC0yOC4xNiAyMC40MjljLTkuMzIyIDE2LjAyNS03LjIwNiAzNi4yNCA1LjIzMiA0OS45ODhhNDIuMTI0IDQyLjEyNCAwIDAgMCAzLjYgMzQuNTkyYzkuMjMyIDE2LjA1NyAyNy43NzggMjQuMzEzIDQ1Ljg4OSAyMC40MjlhNDIuMTU3IDQyLjE1NyAwIDAgMCAzMS43NiAxNC4xNjNjMTguNTUyLjAxNyAzNC45OS0xMS45NiA0MC42NTYtMjkuNjI2YTQyLjE5IDQyLjE5IDAgMCAwIDI4LjE2LTIwLjQyOWM5LjIxLTE1Ljk5NyA3LjA4NS0zNi4xMDMtNS4yNjUtNDkuODIyem0tNjMuNTUyIDg4LjgxM2EzMS41MjYgMzEuNTI2IDAgMCAxLTIwLjI2Mi03LjMzMWwxLS41NjcgMzMuNjU5LTE5LjQyOWE1LjU5OSA1LjU5OSAwIDAgMCAyLjc2Ni00Ljc5OVY3OC40MTNsMTQuMjMgOC4yMzJhLjUuNSAwIDAgMSAuMjY3LjM2NnYzOS4zMjVjLS4wMzcgMTcuNDctMTQuMTkgMzEuNjIzLTMxLjY2IDMxLjY2em0tNjguMDUxLTI5LjA2YTMxLjQ5MyAzMS40OTMgMCAwIDEtMy43NjYtMjEuMjI4bDEgLjYgMzMuNjkyIDE5LjQyOGE1LjQzMiA1LjQzMiAwIDAgMCA1LjQ5OSAwbDQxLjE1Ny0yMy43Mjd2MTYuNDNhLjU2Ny41NjcgMCAwIDEtLjIzMy40MzJsLTM0LjA5MiAxOS42NjNjLTE1LjE1IDguNzI3LTM0LjUwNSAzLjUzOC00My4yNTctMTEuNTk4ek0xNS4zNCA1NS42MmEzMS41OTMgMzEuNTkzIDAgMCAxIDE2LjY2My0xMy44OTd2MzkuOTlhNS4zOTkgNS4zOTkgMCAwIDAgMi43MzMgNC43NjZsNDAuOTU3IDIzLjYyOC0xNC4yMyA4LjIzMmEuNTMzLjUzMyAwIDAgMS0uNSAwbC0zNC4wMjUtMTkuNjNDMTEuODE4IDg5Ljk0NiA2LjYzMyA3MC42MDUgMTUuMzQgNTUuNDUzdi4xNjd6bTExNi45MDcgMjcuMTZsLTQxLjA5LTIzLjg2MSAxNC4xOTYtOC4xOThhLjUzMy41MzMgMCAwIDEgLjUgMGwzNC4wMjYgMTkuNjYyYTMxLjY2IDMxLjY2IDAgMCAxLTQuNzY2IDU3LjA4N1Y4Ny40NzhhNS41NjUgNS41NjUgMCAwIDAtMi44NjYtNC42OTl6bTE0LjE2My0yMS4yOTVsLTEtLjYtMzMuNjI1LTE5LjU5NWE1LjQ2NSA1LjQ2NSAwIDAgMC01LjUzMiAwTDY1LjEyOSA2NS4wMTZ2LTE2LjQzYS40NjcuNDY3IDAgMCAxIC4yLS40MzJsMzQuMDI1LTE5LjYzYTMxLjY5MyAzMS42OTMgMCAwIDEgNDcuMDU2IDMyLjgyN3YuMTMzek01Ny4zNjQgOTAuNjExbC0xNC4yMy04LjE5OGEuNTY3LjU2NyAwIDAgMS0uMjY3LS40VjQyLjc4OEEzMS42OTMgMzEuNjkzIDAgMCAxIDk0LjgyMiAxOC40NmwtMSAuNTY3LTMzLjY1OSAxOS40MjlhNS41OTkgNS41OTkgMCAwIDAtMi43NjYgNC43OTlsLS4wMzMgNDcuMzU2em03LjczMi0xNi42NjNsMTguMzI5LTEwLjU2NCAxOC4zNjIgMTAuNTY0djIxLjEyOGwtMTguMjk2IDEwLjU2NUw2NS4xMyA5NS4wNzZsLS4wMzMtMjEuMTI4eiIvPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "OpenAI",
        "camel.apache.org/kamelet.namespace" : "AI"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "OpenAI Completion Action",
        "description" : "Completes a sentence using the OpenAI API.\n\nIt requires an OpenAI account (beta accounts available at https://beta.openai.com/).\n\nThe Kamelet accepts data in:\n\n- `text/plain` format (default)\n- `application/json` format: see reference at https://beta.openai.com/docs/api-reference/completions/create\n",
        "required" : [ "authorizationToken" ],
        "type" : "object",
        "properties" : {
          "authorizationToken" : {
            "title" : "Authorization Token",
            "description" : "The authorization token to use to contact the openAI API",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "format" : {
            "title" : "Format",
            "description" : "The response format ('text/plain' or 'application/json' are supported)",
            "type" : "string",
            "default" : "text/plain"
          },
          "engine" : {
            "title" : "Engine",
            "description" : "The OpenAI engine to use",
            "type" : "string",
            "default" : "davinci"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "text/plain"
        },
        "out" : {
          "mediaType" : "text/plain"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:jsonpath", "camel:core", "camel:kamelet", "camel:http" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == null || ${header[Content-Type]} == 'text/plain'",
                "steps" : [ {
                  "convertBodyTo" : {
                    "type" : "java.lang.String"
                  }
                }, {
                  "transform" : {
                    "simple" : "${bean:type:java.util.Map?method=of('prompt', ${body})}"
                  }
                }, {
                  "marshal" : {
                    "json" : { }
                  }
                } ]
              } ]
            }
          }, {
            "setHeader" : {
              "name" : "Authorization",
              "simple" : "Bearer {{authorizationToken}}"
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "application/json"
            }
          }, {
            "to" : "https://api.openai.com/v1/engines/{{engine}}/completions"
          }, {
            "removeHeader" : {
              "name" : "Authorization"
            }
          }, {
            "setProperty" : {
              "name" : "format",
              "constant" : "{{format}}"
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty.format} == 'text/plain'",
                "steps" : [ {
                  "transform" : {
                    "jsonpath" : "$.choices[0].text"
                  }
                }, {
                  "setHeader" : {
                    "name" : "Content-Type",
                    "constant" : "text/plain"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "OpenAI Completion Action",
      "description" : "Completes a sentence using the OpenAI API.\n\nIt requires an OpenAI account (beta accounts available at https://beta.openai.com/).\n\nThe Kamelet accepts data in:\n\n- `text/plain` format (default)\n- `application/json` format: see reference at https://beta.openai.com/docs/api-reference/completions/create\n",
      "required" : [ "authorizationToken" ],
      "properties" : {
        "authorizationToken" : {
          "type" : "string",
          "title" : "Authorization Token",
          "description" : "The authorization token to use to contact the openAI API",
          "format" : "password"
        },
        "format" : {
          "type" : "string",
          "title" : "Format",
          "description" : "The response format ('text/plain' or 'application/json' are supported)",
          "default" : "text/plain"
        },
        "engine" : {
          "type" : "string",
          "title" : "Engine",
          "description" : "The OpenAI engine to use",
          "default" : "davinci"
        }
      }
    }
  },
  "opensearch-index-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "opensearch-index-sink",
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "OpenSearch",
        "camel.apache.org/kamelet.namespace" : "Search",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzNzIgNzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cjx0aXRsZT5PcGVuU2VhcmNoIGxvZ288L3RpdGxlPgo8ZGVzYz5TZWFyY2ggZW5naW5lIHNvZnR3YXJlIGZvcmsgb2YgRWxhc3RpY3NlYXJjaDwvZGVzYz4KIDxwYXRoIGQ9Im02MS43Mzc0IDI2LjVjLTEuMjQ5NiAwLTIuMjYyNiAxLjAxMy0yLjI2MjYgMi4yNjI2IDAgMTguNjE4OC0xNS4wOTM0IDMzLjcxMjItMzMuNzEyMiAzMy43MTIyLTEuMjQ5NiAwLTIuMjYyNiAxLjAxMy0yLjI2MjYgMi4yNjI2czEuMDEzIDIuMjYyNiAyLjI2MjYgMi4yNjI2YzIxLjExNzkgMCAzOC4yMzc0LTE3LjExOTUgMzguMjM3NC0zOC4yMzc0IDAtMS4yNDk2LTEuMDEzLTIuMjYyNi0yLjI2MjYtMi4yNjI2eiIgZmlsbD0iIzAwQTNFMCIvPgogPHBhdGggZD0ibTQ4LjA4MTQgNDFjMi4xNzU4LTMuNTQ5NSA0LjI4MDEtOC4yODIyIDMuODY2MS0xNC45MDc5LTAuODU3Ni0xMy43MjQ4LTEzLjI4ODYtMjQuMTM2NzMtMjUuMDI2OS0yMy4wMDgzNy00LjU5NTMgMC40NDE3NC05LjMxMzggNC4xODc0Ny04Ljg5NDYgMTAuODk2NzcgMC4xODIyIDIuOTE1NiAxLjYwOTIgNC42MzY0IDMuOTI4NCA1Ljk1OTQgMi4yMDc0IDEuMjU5MyA1LjA0MzQgMi4wNTcgOC4yNTg0IDIuOTYxMiAzLjg4MzQgMS4wOTIzIDguMzg4MSAyLjMxOTIgMTEuODUwMyA0Ljg3MDYgNC4xNDk0IDMuMDU3OSA2Ljk4NiA2LjYwMjYgNi4wMTgzIDEzLjIyODN6IiBmaWxsPSIjQjlEOUVCIi8+CiA8cGF0aCBkPSJtMy45MTg2MSAxN2MtMi4xNzU4NSAzLjU0OTUtNC4yODAxMTYgOC4yODIyLTMuODY2MTE3IDE0LjkwNzkgMC44NTc1Nzg5IDEzLjcyNDggMTMuMjg4NjEgMjQuMTM2NyAyNS4wMjY5MSAyMy4wMDg0IDQuNTk1My0wLjQ0MTggOS4zMTM4LTQuMTg3NSA4Ljg5NDYtMTAuODk2OC0wLjE4MjItMi45MTU2LTEuNjA5My00LjYzNjQtMy45Mjg0LTUuOTU5NC0yLjIwNzQtMS4yNTkzLTUuMDQzNC0yLjA1Ny04LjI1ODQtMi45NjEyLTMuODgzNC0xLjA5MjMtOC4zODgxLTIuMzE5Mi0xMS44NTAyNS00Ljg3MDYtNC4xNDk0OC0zLjA1NzktNi45ODYwMy02LjYwMjYtNi4wMTgzNC0xMy4yMjgzeiIgZmlsbD0iIzAwQTNFMCIvPgogPHBhdGggZD0ibTM2Mi41IDMxdjIzaDl2LTI1YzAtNC42MDczLTAuOS04LjA4NzktMi43MDEtMTAuNDQ4OS0xLjgwMS0yLjM4MzktNC41MTctMy41NTExLTguMDQ5LTMuNTUxMS0zLjgzMiAwLTYuOTAzIDIuMjQwOC04Ljc1IDZoLTAuNWMwLjEzNi0xLjk0MDkgMC4yNi0zLjA1MjggMC4zNS0zLjg2NDcgMC4wOTMtMC44MzczIDAuMTUtMS4zNTU2IDAuMTUtMi4xMzUzdi0xNC41aC05djUzLjVoOS41di0xOC41YzAtNC4xNDg5IDAuMTM5LTcuMjE4NSAwLjk5My05LjQxOSAwLjg1NC0yLjIyMzUgMi4zNDMtMy4zMzUyIDQuNDY3LTMuMzM1MiAyLjgzOSAwIDQuNTQgMi42MzgzIDQuNTQgOC4yNTQyem0tMTMwLjY0OCAyMC4yMjg5YzIuNDMyLTIuNTE0MSAzLjY0OC02LjEzNTMgMy42NDgtMTAuODYzNiAwLTIuOTUyNC0wLjY2Ni01LjU4MTgtMS45OTktNy44ODgzLTEuMzEtMi4zMDY1LTMuNjM2LTQuNTY2OC02Ljk4LTYuNzgxMS0yLjQ3OS0xLjYxNDUtNC4yMjEtMy4wNTYxLTUuMjI3LTQuMzI0Ni0wLjk4Mi0xLjI2ODYtMS40NzMtMi43NTYzLTEuNDczLTQuNDYzMSAwLTEuNzI5OSAwLjQwOS0zLjA5MDcgMS4yMjgtNC4wODI1IDAuODQyLTEuMDE0OSAyLjAzNC0xLjUyMjMgMy41NzgtMS41MjIzIDEuNDAzIDAgMi43MTIgMC4yNTM3IDMuOTI4IDAuNzYxMSAxLjIzOSAwLjUwNzUgMi40MiAxLjA4NDEgMy41NDMgMS43Mjk5bDMuMTU2LTcuNTQyMjRjLTMuNjI0LTIuMTY4MTEtNy40LTMuMjUyMTYtMTEuMzI5LTMuMjUyMTYtNC4xMTYgMC03LjQwMSAxLjI2ODU3LTkuODU2IDMuODA1NzItMi40MzIgMi41MzcxNS0zLjY0OCA1Ljk3Mzg4LTMuNjQ4IDEwLjMxMDA4IDAgMi4yNjAzIDAuMzA0IDQuMjQzOSAwLjkxMiA1Ljk1MDcgMC42MzEgMS43MDY4IDEuNTA4IDMuMjUyMiAyLjYzMSA0LjYzNjEgMS4xNDUgMS4zNjA4IDIuODE3IDIuNzkwOSA1LjAxNSA0LjI5MDEgMi41MjYgMS43MDY4IDQuMzM4IDMuMjYzNyA1LjQzNyA0LjY3MDYgMS4wOTkgMS4zODM5IDEuNjQ5IDIuOTE3OCAxLjY0OSA0LjYwMTUgMCAxLjcwNjgtMC40NjggMy4wNTYxLTEuNDAzIDQuMDQ3OS0wLjkxMiAwLjk5MTgtMi4yOCAxLjQ4NzctNC4xMDQgMS40ODc3LTMuMjA0IDAtNi43MjMtMS4yMzQtMTAuNTU4LTMuNzAxOXY5LjMwNjdjMy4xMzMgMS43Mjk5IDYuOTMzIDIuNTk0OCAxMS40IDIuNTk0OCA0LjU1OSAwIDguMDQ0LTEuMjU3IDEwLjQ1Mi0zLjc3MTF6bTkuODIyLTEuMzU0NGMyLjgwNiAzLjQxNyA2LjYzMiA1LjEyNTUgMTEuNDc4IDUuMTI1NSA0LjE1MSAwIDcuNzEtMC44ODg5IDEwLjY3OC0yLjY2Njd2LTcuNTg0NGMtMy4xNTMgMS44NzAxLTYuMjM3IDIuODA1Mi05LjI1MiAyLjgwNTItMi4zNjUgMC00LjIyLTAuODMxMi01LjU2NS0yLjQ5MzUtMS4zNDUtMS42ODU0LTEuOTQzLTQuMTIwNS0yLjAxMy03LjU2MDZoMTguNXYtNS4wNDU1YzAtNS41MTgtMS4yMTctOS44MDA4LTMuNjUyLTEyLjg0ODQtMi40MzUtMy4wNzA3LTUuNzYyLTQuNjA2MS05Ljk4My00LjYwNjEtNC41MjIgMC04LjA0NiAxLjc4OTMtMTAuNTc0IDUuMzY4LTIuNTI3IDMuNTc4Ni0zLjc5MSA4LjU1NDEtMy43OTEgMTQuOTI2NCAwIDYuMjc5OSAxLjM5MSAxMS4xMzk5IDQuMTc0IDE0LjU4MDF6bTYuODUyLTI1LjY2MjRjMC44NTgtMS40MDgzIDEuOTQ4LTIuMTEyNSAzLjI3LTIuMTEyNSAxLjQxNCAwIDIuNTI3IDAuNzI3MiAzLjMzOSAyLjE4MTggMC44MTEgMS40NTQ1IDEuMzE5IDMuOTAxOSAxLjM2NSA2LjcxODZoLTkuNWMwLjEzOS0yLjkzMjIgMC42NjgtNS40MDI2IDEuNTI2LTYuNzg3OXptMzkuNDc0IDI5Ljc4NzktMS41LTVoLTAuNWMtMS4zNzggMi4yNTg3LTIuNzA1IDMuODY4LTQuMTc2IDQuNzIwOC0xLjQ3MiAwLjg1MjgtMy4zMyAxLjI3OTItNS41NzIgMS4yNzkyLTIuODc0IDAtNS4xNC0xLjA2MDItNi43OTktMy4xODA2LTEuNjM1LTIuMTIwNS0yLjQ1My01LjA3MDYtMi40NTMtOC44NTA1IDAtNC4wNTY1IDEuMTIxLTcuMDY0MyAzLjM2NC05LjAyMzQgMi4yNjYtMS45ODIxIDUuNjQyLTMuMDc2OSAxMC4xMjgtMy4yODQzbDUuMTg2LTAuMjA3NHYtMi43NjU4YzAtMy41OTU1LTEuNTc3LTUuMzkzMy00LjczMS01LjM5MzMtMi4zMzYgMC01LjAyMyAwLjg5ODktOC4wNiAyLjY5NjdsLTMuMjI0LTYuMzYxM2MzLjg3OC0yLjQyMDEgOC4wMzEtMy42MzAxIDEyLjU4Ny0zLjYzMDEgNC4xMzUgMCA3LjM0MiAxLjE3NTUgOS40OTEgMy41MjY0IDIuMTczIDIuMzI3OCAzLjI1OSA1LjYzNTIgMy4yNTkgOS45MjIydjI1LjU1MTRoLTd6bS03LjkyOS02LjE5MWMxLjcwNiAwIDMuMDYxLTAuNzQ5MSA0LjA2NS0yLjI0NzIgMS4wMjgtMS41MjEyIDEuNTQyLTMuNTM3OSAxLjU0Mi02LjA1MDF2LTMuMjQ5OGwtMi44NzMgMC4xMzgzYy0yLjEyNiAwLjExNTItMy42OTIgMC43MTQ1LTQuNjk2IDEuNzk3Ny0wLjk4MSAxLjA4MzMtMS40NzIgMi42OTY3LTEuNDcyIDQuODQwMSAwIDMuMTgwNyAxLjE0NSA0Ljc3MSAzLjQzNCA0Ljc3MXptMzcuOTI5LTMyLjA1OWMtMS4wNy0wLjM0NS0yLjY2My0wLjc1LTMuNzc4LTAuNzUtMS41NzEgMC0yLjk0OSAwLjUxNzQtNC4xMzMgMS41NTIzcy0yLjA4NyAyLjAzMy0zLjA4OSA0LjQ0NzdoLTAuNWwtMS41LTVoLTd2MzhoOS40NjN2LTIwYzAtMy4zNTc2IDAuMjEzLTUuNTIzNyAxLjM5Ny03LjI3MTUgMS4xODQtMS43NzA4IDIuODgtMi42NTYyIDUuMDg4LTIuNjU2MiAxLjAyNSAwIDEuOTE1IDAuMTk3NyAyLjU1MiAwLjQyNzdsMS41LTguNzV6bTE0IDM5LjI1Yy00LjU1NyAwLTguMDQ2LTEuNTIyLTEwLjQyNy00Ljg2OTgtMi4zODItMy4zNDc4LTMuNTczLTguMjY1NS0zLjU3My0xNC43NTMyIDAtNi43ODc5IDEuMTIyLTExLjg1NTcgMy4zNjYtMTUuMjAzNSAyLjI2OC0zLjM0NzggNS42NTEtNS4xNzM1IDEwLjM2OS01LjE3MzUgMS40MTkgMCAzLjAxNyAwLjM1OTYgNC41NzQgMC43NzUyczMuNDU0IDAuOTM5OCA0LjY5MSAxLjcyNDhsLTMuMTExIDcuMjQ0OWMtMS45LTEuMTMxMy0zLjU4NC0xLjY5NjktNS4wNDktMS42OTY5LTEuOTQ3IDAtMy4zNTUgMS4wMjc0LTQuMjI2IDMuMDgyMi0wLjg0NyAyLjAzMTgtMS4yNyA1LjA5MDktMS4yNyA5LjE3NzUgMCAzLjk5NDIgMC40MjMgNi45ODQxIDEuMjcgOC45Njk3IDAuODQ4IDEuOTYyNSAyLjIzMyAyLjk0MzcgNC4xNTcgMi45NDM3IDIuMjkgMCA0LjY4My0wLjgwODEgNy4xNzktMi40MjQydjguMTAzOWMtMi40MDQgMS41MDA3LTUuMDQyIDIuMDk5Mi03Ljk1IDIuMDk5MnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0I5RDlFQiIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiA8cGF0aCBkPSJtMTA3Ljc3NyA0OC4yNjI1YzMuMTQ5LTQuNDkxNyA0LjcyMy0xMC45MTgzIDQuNzIzLTE5LjI3OTggMC04LjM2MTQtMS41NjMtMTQuNzc2NS00LjY4OC0xOS4yNDUxNi0zLjEyNi00LjQ5MTY5LTcuNjE4LTYuNzM3NTQtMTMuNDc1Mi02LjczNzU0LTUuOTI3IDAtMTAuNDY0OSAyLjIzNDMzLTEzLjYxMzcgNi43MDI5OS0zLjE0ODcgNC40NDU2MS00LjcyMzEgMTAuODQ5MjEtNC43MjMxIDE5LjIxMDYxIDAgOC40MzA2IDEuNTc0NCAxNC44OTE3IDQuNzIzMSAxOS4zODM0IDMuMTQ4OCA0LjQ2ODcgNy42NjM1IDYuNzAzIDEzLjU0NDMgNi43MDMgNS44NTc2IDAgMTAuMzYwNi0yLjI0NTggMTMuNTA5Ni02LjczNzV6bS0xOS45MzQ1LTYuMTE1N2MtMS40NTg2LTMuMDE3NS0yLjE4NzktNy40MDU1LTIuMTg3OS0xMy4xNjQxIDAtNS43ODE2IDAuNzI5My0xMC4xNjk2IDIuMTg3OS0xMy4xNjQxIDEuNDU4Ni0zLjAxNzUgMy42MjM0LTQuNTI2MiA2LjQ5NDMtNC41MjYyIDUuNjQ5MiAwIDguNDc0MiA1Ljg5NjcgOC40NzQyIDE3LjY5MDNzLTIuODQ4MSAxNy42OTA0LTguNTQzNiAxNy42OTA0Yy0yLjgyNDYgMC00Ljk2NjMtMS41MDg4LTYuNDI0OS00LjUyNjN6bTQwLjM0MzUgMTEuODUxMWMxLjI4MyAwLjc0MDggMi42NjQgMS4wMDIxIDQuMzE0IDEuMDAyMSAzLjUzIDAgNi40LTEuNjczNSA4LjQ0LTUuMjM4OCAyLjA0LTMuNTY1MiAzLjA2LTguNDg0OCAzLjA2LTE0Ljc1ODcgMC02LjM2NjYtMC45ODYtMTEuMjg2MS0yLjk1Ny0xNC43NTg4LTEuOTcxLTMuNDk1OC00LjY5OC01LjI0MzctOC4xODItNS4yNDM3LTMuNjIxIDAtNi40NTkgMi4xNTY5LTguMzYxIDZoLTAuNWwtMS41LTVoLTd2NTUuNWg5di0xNi41YzAtMC42NDgyLTAuMTMzLTIuODUxNS0wLjUtNmgwLjVjMC43NSAyLjI1IDIuNDI1IDQuMjMzOSAzLjY4NiA0Ljk5Nzl6bS0yLjMwNC0yOC42MTQ3YzAuODAzLTEuNjkgMi4wOTctMi41MzUgMy44ODUtMi41MzUgMS42NzMgMCAyLjg5OSAwLjk5NTUgMy42NzkgMi45ODY1IDAuODAyIDEuOTkxIDEuMjAzIDUuMDAwNiAxLjIwMyA5LjAyODkgMCA4LjE5NTQtMS42MDQgMTIuMjkzMS00LjgxMyAxMi4yOTMxLTEuODU3IDAtMy4xODYtMC45NzIzLTMuOTg4LTIuOTE3cy0xLjIwMy01LjA0NjktMS4yMDMtOS4zMDY3di0xLjIxNTRjMC4wNDYtMy44ODk0IDAuNDU4LTYuNjY3NSAxLjIzNy04LjMzNDR6bTM1Ljc3IDI5LjYxNjhjLTQuODQ2IDAtOC42NzItMS43MDg1LTExLjQ3OC01LjEyNTUtMi43ODMtMy40NDAyLTQuMTc0LTguMzAwMi00LjE3NC0xNC41ODAxIDAtNi4zNzIzIDEuMjY0LTExLjM0NzggMy43OTEtMTQuOTI2NCAyLjUyOC0zLjU3ODcgNi4wNTItNS4zNjggMTAuNTc0LTUuMzY4IDQuMjIgMCA3LjU0OCAxLjUzNTQgOS45ODMgNC42MDYxIDIuNDM1IDMuMDQ3NiAzLjY1MiA3LjMzMDQgMy42NTIgMTIuODQ4NHY1LjA0NTVoLTE4LjVjMC4wNyAzLjQ0MDEgMC42NjggNS44NzUyIDIuMDEzIDcuNTYwNiAxLjM0NSAxLjY2MjMgMy4yIDIuNDkzNSA1LjU2NSAyLjQ5MzUgMy4wMTUgMCA2LjA5OS0wLjkzNTEgOS4yNTItMi44MDUydjcuNTg0NGMtMi45NjggMS43Nzc4LTYuNTI3IDIuNjY2Ny0xMC42NzggMi42NjY3em0tMS4zNTYtMzIuOTAwNGMtMS4zMjIgMC0yLjQxMiAwLjcwNDItMy4yNyAyLjExMjUtMC44NTggMS4zODUzLTEuMzg3IDMuODU1Ny0xLjUyNiA2Ljc4NzloOS41Yy0wLjA0Ni0yLjgxNjctMC41NTQtNS4yNjQxLTEuMzY1LTYuNzE4Ni0wLjgxMi0xLjQ1NDYtMS45MjUtMi4xODE4LTMuMzM5LTIuMTgxOHptMzYuMjA0IDguOTAwNHYyM2g5di0yNC44MDA5YzAtNC42NDAyLTAuODc3LTguMTY2OC0yLjYzMi0xMC41Nzk3LTEuNzMxLTIuNDEyOS00LjM1Mi0zLjYxOTQtNy44NjEtMy42MTk0LTIuMDc3IDAtMy44OSAwLjUxMDQtNS40MzcgMS41MzEzLTEuNTQ2IDAuOTk3Ni0yLjczOSAyLjY4MjItMy41NyA0LjQ2ODdoLTAuNWwtMS4yNS01aC03LjI1djM4aDkuNXYtMTguMjVjMC00LjcwOTggMC4xNzMtNy45MTk4IDEuMDk3LTkuODkxOCAwLjkyMy0xLjk5NTQgMi4zNzctMi45OTMgNC4zNjMtMi45OTMgMS41IDAgMi41ODYgMC43MTkyIDMuMjU1IDIuMTU3NyAwLjY3IDEuNDM4NSAxLjI4NSAzLjE2OTggMS4yODUgNS45NzcxeiIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjMDBBM0UwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz4KPC9zdmc+"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "OpenSearch Index Sink",
        "description" : "Stores JSON-formatted data into Opensearch.\n\nThe input data must be formatted in JSON according to the requirements of the index.\n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.\n\nIn the header, you can set the following properties:\n\n- `indexId` / `ce-indexid`: The index ID for OpenSearch.\n\n- `indexName` / `ce-indexname`: The index name for OpenSearch.\n\nIf you do not set a property in the header, the Kamelet uses the exchange ID for the index setting.",
        "required" : [ "clusterName", "hostAddresses" ],
        "type" : "object",
        "properties" : {
          "user" : {
            "title" : "Username",
            "description" : "The username to connect to OpenSearch.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to connect to OpenSearch.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "enableSSL" : {
            "title" : "Enable SSL",
            "description" : "Specifies to connect by using SSL.",
            "type" : "boolean",
            "default" : false
          },
          "hostAddresses" : {
            "title" : "Host Addresses",
            "description" : "A comma-separated list of remote transport addresses in `ip:port format`.",
            "type" : "string",
            "example" : "quickstart-es-http:9200"
          },
          "clusterName" : {
            "title" : "OpenSearch Cluster Name",
            "description" : "The name of the OpenSearch cluster.",
            "type" : "string",
            "example" : "quickstart"
          },
          "indexName" : {
            "title" : "Index in OpenSearch",
            "description" : "The name of the OpenSearch index.",
            "type" : "string",
            "example" : "data"
          },
          "certificate" : {
            "title" : "Certificate",
            "description" : "The Certificate for accessing the OpenSearch cluster. You must encode this value in base64.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "text/plain"
        },
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:kamelet", "camel:opensearch", "camel:gson", "camel:bean" ],
      "template" : {
        "beans" : [ {
          "name" : "local-opensearch",
          "type" : "#class:org.apache.camel.component.opensearch.OpensearchComponent",
          "properties" : {
            "user" : "{{?user}}",
            "password" : "{{?password}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[indexId]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexId",
                    "simple" : "${header[indexId]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-indexid]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexId",
                    "simple" : "${header[ce-indexid]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[indexName]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexName",
                    "simple" : "${header[indexName]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-indexname]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "indexName",
                    "simple" : "${header[ce-indexname]}"
                  }
                } ]
              } ]
            }
          }, {
            "unmarshal" : {
              "json" : { }
            }
          }, {
            "to" : {
              "uri" : "{{local-opensearch}}:{{clusterName}}",
              "parameters" : {
                "operation" : "INDEX",
                "hostAddresses" : "{{hostAddresses}}",
                "enableSSL" : "{{enableSSL}}",
                "indexName" : "{{?indexName}}",
                "certificatePath" : "base64:{{?certificate}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "OpenSearch Index Sink",
      "description" : "Stores JSON-formatted data into Opensearch.\n\nThe input data must be formatted in JSON according to the requirements of the index.\n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.\n\nIn the header, you can set the following properties:\n\n- `indexId` / `ce-indexid`: The index ID for OpenSearch.\n\n- `indexName` / `ce-indexname`: The index name for OpenSearch.\n\nIf you do not set a property in the header, the Kamelet uses the exchange ID for the index setting.",
      "required" : [ "clusterName", "hostAddresses" ],
      "properties" : {
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to connect to OpenSearch."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to connect to OpenSearch.",
          "format" : "password"
        },
        "enableSSL" : {
          "type" : "boolean",
          "title" : "Enable SSL",
          "description" : "Specifies to connect by using SSL.",
          "default" : false
        },
        "hostAddresses" : {
          "type" : "string",
          "title" : "Host Addresses",
          "description" : "A comma-separated list of remote transport addresses in `ip:port format`."
        },
        "clusterName" : {
          "type" : "string",
          "title" : "OpenSearch Cluster Name",
          "description" : "The name of the OpenSearch cluster."
        },
        "indexName" : {
          "type" : "string",
          "title" : "Index in OpenSearch",
          "description" : "The name of the OpenSearch index."
        },
        "certificate" : {
          "type" : "string",
          "title" : "Certificate",
          "description" : "The Certificate for accessing the OpenSearch cluster. You must encode this value in base64."
        }
      }
    }
  },
  "opensearch-search-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "opensearch-search-source",
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.group" : "OpenSearch",
        "camel.apache.org/kamelet.namespace" : "Search",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzNzIgNzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cjx0aXRsZT5PcGVuU2VhcmNoIGxvZ288L3RpdGxlPgo8ZGVzYz5TZWFyY2ggZW5naW5lIHNvZnR3YXJlIGZvcmsgb2YgRWxhc3RpY3NlYXJjaDwvZGVzYz4KIDxwYXRoIGQ9Im02MS43Mzc0IDI2LjVjLTEuMjQ5NiAwLTIuMjYyNiAxLjAxMy0yLjI2MjYgMi4yNjI2IDAgMTguNjE4OC0xNS4wOTM0IDMzLjcxMjItMzMuNzEyMiAzMy43MTIyLTEuMjQ5NiAwLTIuMjYyNiAxLjAxMy0yLjI2MjYgMi4yNjI2czEuMDEzIDIuMjYyNiAyLjI2MjYgMi4yNjI2YzIxLjExNzkgMCAzOC4yMzc0LTE3LjExOTUgMzguMjM3NC0zOC4yMzc0IDAtMS4yNDk2LTEuMDEzLTIuMjYyNi0yLjI2MjYtMi4yNjI2eiIgZmlsbD0iIzAwQTNFMCIvPgogPHBhdGggZD0ibTQ4LjA4MTQgNDFjMi4xNzU4LTMuNTQ5NSA0LjI4MDEtOC4yODIyIDMuODY2MS0xNC45MDc5LTAuODU3Ni0xMy43MjQ4LTEzLjI4ODYtMjQuMTM2NzMtMjUuMDI2OS0yMy4wMDgzNy00LjU5NTMgMC40NDE3NC05LjMxMzggNC4xODc0Ny04Ljg5NDYgMTAuODk2NzcgMC4xODIyIDIuOTE1NiAxLjYwOTIgNC42MzY0IDMuOTI4NCA1Ljk1OTQgMi4yMDc0IDEuMjU5MyA1LjA0MzQgMi4wNTcgOC4yNTg0IDIuOTYxMiAzLjg4MzQgMS4wOTIzIDguMzg4MSAyLjMxOTIgMTEuODUwMyA0Ljg3MDYgNC4xNDk0IDMuMDU3OSA2Ljk4NiA2LjYwMjYgNi4wMTgzIDEzLjIyODN6IiBmaWxsPSIjQjlEOUVCIi8+CiA8cGF0aCBkPSJtMy45MTg2MSAxN2MtMi4xNzU4NSAzLjU0OTUtNC4yODAxMTYgOC4yODIyLTMuODY2MTE3IDE0LjkwNzkgMC44NTc1Nzg5IDEzLjcyNDggMTMuMjg4NjEgMjQuMTM2NyAyNS4wMjY5MSAyMy4wMDg0IDQuNTk1My0wLjQ0MTggOS4zMTM4LTQuMTg3NSA4Ljg5NDYtMTAuODk2OC0wLjE4MjItMi45MTU2LTEuNjA5My00LjYzNjQtMy45Mjg0LTUuOTU5NC0yLjIwNzQtMS4yNTkzLTUuMDQzNC0yLjA1Ny04LjI1ODQtMi45NjEyLTMuODgzNC0xLjA5MjMtOC4zODgxLTIuMzE5Mi0xMS44NTAyNS00Ljg3MDYtNC4xNDk0OC0zLjA1NzktNi45ODYwMy02LjYwMjYtNi4wMTgzNC0xMy4yMjgzeiIgZmlsbD0iIzAwQTNFMCIvPgogPHBhdGggZD0ibTM2Mi41IDMxdjIzaDl2LTI1YzAtNC42MDczLTAuOS04LjA4NzktMi43MDEtMTAuNDQ4OS0xLjgwMS0yLjM4MzktNC41MTctMy41NTExLTguMDQ5LTMuNTUxMS0zLjgzMiAwLTYuOTAzIDIuMjQwOC04Ljc1IDZoLTAuNWMwLjEzNi0xLjk0MDkgMC4yNi0zLjA1MjggMC4zNS0zLjg2NDcgMC4wOTMtMC44MzczIDAuMTUtMS4zNTU2IDAuMTUtMi4xMzUzdi0xNC41aC05djUzLjVoOS41di0xOC41YzAtNC4xNDg5IDAuMTM5LTcuMjE4NSAwLjk5My05LjQxOSAwLjg1NC0yLjIyMzUgMi4zNDMtMy4zMzUyIDQuNDY3LTMuMzM1MiAyLjgzOSAwIDQuNTQgMi42MzgzIDQuNTQgOC4yNTQyem0tMTMwLjY0OCAyMC4yMjg5YzIuNDMyLTIuNTE0MSAzLjY0OC02LjEzNTMgMy42NDgtMTAuODYzNiAwLTIuOTUyNC0wLjY2Ni01LjU4MTgtMS45OTktNy44ODgzLTEuMzEtMi4zMDY1LTMuNjM2LTQuNTY2OC02Ljk4LTYuNzgxMS0yLjQ3OS0xLjYxNDUtNC4yMjEtMy4wNTYxLTUuMjI3LTQuMzI0Ni0wLjk4Mi0xLjI2ODYtMS40NzMtMi43NTYzLTEuNDczLTQuNDYzMSAwLTEuNzI5OSAwLjQwOS0zLjA5MDcgMS4yMjgtNC4wODI1IDAuODQyLTEuMDE0OSAyLjAzNC0xLjUyMjMgMy41NzgtMS41MjIzIDEuNDAzIDAgMi43MTIgMC4yNTM3IDMuOTI4IDAuNzYxMSAxLjIzOSAwLjUwNzUgMi40MiAxLjA4NDEgMy41NDMgMS43Mjk5bDMuMTU2LTcuNTQyMjRjLTMuNjI0LTIuMTY4MTEtNy40LTMuMjUyMTYtMTEuMzI5LTMuMjUyMTYtNC4xMTYgMC03LjQwMSAxLjI2ODU3LTkuODU2IDMuODA1NzItMi40MzIgMi41MzcxNS0zLjY0OCA1Ljk3Mzg4LTMuNjQ4IDEwLjMxMDA4IDAgMi4yNjAzIDAuMzA0IDQuMjQzOSAwLjkxMiA1Ljk1MDcgMC42MzEgMS43MDY4IDEuNTA4IDMuMjUyMiAyLjYzMSA0LjYzNjEgMS4xNDUgMS4zNjA4IDIuODE3IDIuNzkwOSA1LjAxNSA0LjI5MDEgMi41MjYgMS43MDY4IDQuMzM4IDMuMjYzNyA1LjQzNyA0LjY3MDYgMS4wOTkgMS4zODM5IDEuNjQ5IDIuOTE3OCAxLjY0OSA0LjYwMTUgMCAxLjcwNjgtMC40NjggMy4wNTYxLTEuNDAzIDQuMDQ3OS0wLjkxMiAwLjk5MTgtMi4yOCAxLjQ4NzctNC4xMDQgMS40ODc3LTMuMjA0IDAtNi43MjMtMS4yMzQtMTAuNTU4LTMuNzAxOXY5LjMwNjdjMy4xMzMgMS43Mjk5IDYuOTMzIDIuNTk0OCAxMS40IDIuNTk0OCA0LjU1OSAwIDguMDQ0LTEuMjU3IDEwLjQ1Mi0zLjc3MTF6bTkuODIyLTEuMzU0NGMyLjgwNiAzLjQxNyA2LjYzMiA1LjEyNTUgMTEuNDc4IDUuMTI1NSA0LjE1MSAwIDcuNzEtMC44ODg5IDEwLjY3OC0yLjY2Njd2LTcuNTg0NGMtMy4xNTMgMS44NzAxLTYuMjM3IDIuODA1Mi05LjI1MiAyLjgwNTItMi4zNjUgMC00LjIyLTAuODMxMi01LjU2NS0yLjQ5MzUtMS4zNDUtMS42ODU0LTEuOTQzLTQuMTIwNS0yLjAxMy03LjU2MDZoMTguNXYtNS4wNDU1YzAtNS41MTgtMS4yMTctOS44MDA4LTMuNjUyLTEyLjg0ODQtMi40MzUtMy4wNzA3LTUuNzYyLTQuNjA2MS05Ljk4My00LjYwNjEtNC41MjIgMC04LjA0NiAxLjc4OTMtMTAuNTc0IDUuMzY4LTIuNTI3IDMuNTc4Ni0zLjc5MSA4LjU1NDEtMy43OTEgMTQuOTI2NCAwIDYuMjc5OSAxLjM5MSAxMS4xMzk5IDQuMTc0IDE0LjU4MDF6bTYuODUyLTI1LjY2MjRjMC44NTgtMS40MDgzIDEuOTQ4LTIuMTEyNSAzLjI3LTIuMTEyNSAxLjQxNCAwIDIuNTI3IDAuNzI3MiAzLjMzOSAyLjE4MTggMC44MTEgMS40NTQ1IDEuMzE5IDMuOTAxOSAxLjM2NSA2LjcxODZoLTkuNWMwLjEzOS0yLjkzMjIgMC42NjgtNS40MDI2IDEuNTI2LTYuNzg3OXptMzkuNDc0IDI5Ljc4NzktMS41LTVoLTAuNWMtMS4zNzggMi4yNTg3LTIuNzA1IDMuODY4LTQuMTc2IDQuNzIwOC0xLjQ3MiAwLjg1MjgtMy4zMyAxLjI3OTItNS41NzIgMS4yNzkyLTIuODc0IDAtNS4xNC0xLjA2MDItNi43OTktMy4xODA2LTEuNjM1LTIuMTIwNS0yLjQ1My01LjA3MDYtMi40NTMtOC44NTA1IDAtNC4wNTY1IDEuMTIxLTcuMDY0MyAzLjM2NC05LjAyMzQgMi4yNjYtMS45ODIxIDUuNjQyLTMuMDc2OSAxMC4xMjgtMy4yODQzbDUuMTg2LTAuMjA3NHYtMi43NjU4YzAtMy41OTU1LTEuNTc3LTUuMzkzMy00LjczMS01LjM5MzMtMi4zMzYgMC01LjAyMyAwLjg5ODktOC4wNiAyLjY5NjdsLTMuMjI0LTYuMzYxM2MzLjg3OC0yLjQyMDEgOC4wMzEtMy42MzAxIDEyLjU4Ny0zLjYzMDEgNC4xMzUgMCA3LjM0MiAxLjE3NTUgOS40OTEgMy41MjY0IDIuMTczIDIuMzI3OCAzLjI1OSA1LjYzNTIgMy4yNTkgOS45MjIydjI1LjU1MTRoLTd6bS03LjkyOS02LjE5MWMxLjcwNiAwIDMuMDYxLTAuNzQ5MSA0LjA2NS0yLjI0NzIgMS4wMjgtMS41MjEyIDEuNTQyLTMuNTM3OSAxLjU0Mi02LjA1MDF2LTMuMjQ5OGwtMi44NzMgMC4xMzgzYy0yLjEyNiAwLjExNTItMy42OTIgMC43MTQ1LTQuNjk2IDEuNzk3Ny0wLjk4MSAxLjA4MzMtMS40NzIgMi42OTY3LTEuNDcyIDQuODQwMSAwIDMuMTgwNyAxLjE0NSA0Ljc3MSAzLjQzNCA0Ljc3MXptMzcuOTI5LTMyLjA1OWMtMS4wNy0wLjM0NS0yLjY2My0wLjc1LTMuNzc4LTAuNzUtMS41NzEgMC0yLjk0OSAwLjUxNzQtNC4xMzMgMS41NTIzcy0yLjA4NyAyLjAzMy0zLjA4OSA0LjQ0NzdoLTAuNWwtMS41LTVoLTd2MzhoOS40NjN2LTIwYzAtMy4zNTc2IDAuMjEzLTUuNTIzNyAxLjM5Ny03LjI3MTUgMS4xODQtMS43NzA4IDIuODgtMi42NTYyIDUuMDg4LTIuNjU2MiAxLjAyNSAwIDEuOTE1IDAuMTk3NyAyLjU1MiAwLjQyNzdsMS41LTguNzV6bTE0IDM5LjI1Yy00LjU1NyAwLTguMDQ2LTEuNTIyLTEwLjQyNy00Ljg2OTgtMi4zODItMy4zNDc4LTMuNTczLTguMjY1NS0zLjU3My0xNC43NTMyIDAtNi43ODc5IDEuMTIyLTExLjg1NTcgMy4zNjYtMTUuMjAzNSAyLjI2OC0zLjM0NzggNS42NTEtNS4xNzM1IDEwLjM2OS01LjE3MzUgMS40MTkgMCAzLjAxNyAwLjM1OTYgNC41NzQgMC43NzUyczMuNDU0IDAuOTM5OCA0LjY5MSAxLjcyNDhsLTMuMTExIDcuMjQ0OWMtMS45LTEuMTMxMy0zLjU4NC0xLjY5NjktNS4wNDktMS42OTY5LTEuOTQ3IDAtMy4zNTUgMS4wMjc0LTQuMjI2IDMuMDgyMi0wLjg0NyAyLjAzMTgtMS4yNyA1LjA5MDktMS4yNyA5LjE3NzUgMCAzLjk5NDIgMC40MjMgNi45ODQxIDEuMjcgOC45Njk3IDAuODQ4IDEuOTYyNSAyLjIzMyAyLjk0MzcgNC4xNTcgMi45NDM3IDIuMjkgMCA0LjY4My0wLjgwODEgNy4xNzktMi40MjQydjguMTAzOWMtMi40MDQgMS41MDA3LTUuMDQyIDIuMDk5Mi03Ljk1IDIuMDk5MnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0I5RDlFQiIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiA8cGF0aCBkPSJtMTA3Ljc3NyA0OC4yNjI1YzMuMTQ5LTQuNDkxNyA0LjcyMy0xMC45MTgzIDQuNzIzLTE5LjI3OTggMC04LjM2MTQtMS41NjMtMTQuNzc2NS00LjY4OC0xOS4yNDUxNi0zLjEyNi00LjQ5MTY5LTcuNjE4LTYuNzM3NTQtMTMuNDc1Mi02LjczNzU0LTUuOTI3IDAtMTAuNDY0OSAyLjIzNDMzLTEzLjYxMzcgNi43MDI5OS0zLjE0ODcgNC40NDU2MS00LjcyMzEgMTAuODQ5MjEtNC43MjMxIDE5LjIxMDYxIDAgOC40MzA2IDEuNTc0NCAxNC44OTE3IDQuNzIzMSAxOS4zODM0IDMuMTQ4OCA0LjQ2ODcgNy42NjM1IDYuNzAzIDEzLjU0NDMgNi43MDMgNS44NTc2IDAgMTAuMzYwNi0yLjI0NTggMTMuNTA5Ni02LjczNzV6bS0xOS45MzQ1LTYuMTE1N2MtMS40NTg2LTMuMDE3NS0yLjE4NzktNy40MDU1LTIuMTg3OS0xMy4xNjQxIDAtNS43ODE2IDAuNzI5My0xMC4xNjk2IDIuMTg3OS0xMy4xNjQxIDEuNDU4Ni0zLjAxNzUgMy42MjM0LTQuNTI2MiA2LjQ5NDMtNC41MjYyIDUuNjQ5MiAwIDguNDc0MiA1Ljg5NjcgOC40NzQyIDE3LjY5MDNzLTIuODQ4MSAxNy42OTA0LTguNTQzNiAxNy42OTA0Yy0yLjgyNDYgMC00Ljk2NjMtMS41MDg4LTYuNDI0OS00LjUyNjN6bTQwLjM0MzUgMTEuODUxMWMxLjI4MyAwLjc0MDggMi42NjQgMS4wMDIxIDQuMzE0IDEuMDAyMSAzLjUzIDAgNi40LTEuNjczNSA4LjQ0LTUuMjM4OCAyLjA0LTMuNTY1MiAzLjA2LTguNDg0OCAzLjA2LTE0Ljc1ODcgMC02LjM2NjYtMC45ODYtMTEuMjg2MS0yLjk1Ny0xNC43NTg4LTEuOTcxLTMuNDk1OC00LjY5OC01LjI0MzctOC4xODItNS4yNDM3LTMuNjIxIDAtNi40NTkgMi4xNTY5LTguMzYxIDZoLTAuNWwtMS41LTVoLTd2NTUuNWg5di0xNi41YzAtMC42NDgyLTAuMTMzLTIuODUxNS0wLjUtNmgwLjVjMC43NSAyLjI1IDIuNDI1IDQuMjMzOSAzLjY4NiA0Ljk5Nzl6bS0yLjMwNC0yOC42MTQ3YzAuODAzLTEuNjkgMi4wOTctMi41MzUgMy44ODUtMi41MzUgMS42NzMgMCAyLjg5OSAwLjk5NTUgMy42NzkgMi45ODY1IDAuODAyIDEuOTkxIDEuMjAzIDUuMDAwNiAxLjIwMyA5LjAyODkgMCA4LjE5NTQtMS42MDQgMTIuMjkzMS00LjgxMyAxMi4yOTMxLTEuODU3IDAtMy4xODYtMC45NzIzLTMuOTg4LTIuOTE3cy0xLjIwMy01LjA0NjktMS4yMDMtOS4zMDY3di0xLjIxNTRjMC4wNDYtMy44ODk0IDAuNDU4LTYuNjY3NSAxLjIzNy04LjMzNDR6bTM1Ljc3IDI5LjYxNjhjLTQuODQ2IDAtOC42NzItMS43MDg1LTExLjQ3OC01LjEyNTUtMi43ODMtMy40NDAyLTQuMTc0LTguMzAwMi00LjE3NC0xNC41ODAxIDAtNi4zNzIzIDEuMjY0LTExLjM0NzggMy43OTEtMTQuOTI2NCAyLjUyOC0zLjU3ODcgNi4wNTItNS4zNjggMTAuNTc0LTUuMzY4IDQuMjIgMCA3LjU0OCAxLjUzNTQgOS45ODMgNC42MDYxIDIuNDM1IDMuMDQ3NiAzLjY1MiA3LjMzMDQgMy42NTIgMTIuODQ4NHY1LjA0NTVoLTE4LjVjMC4wNyAzLjQ0MDEgMC42NjggNS44NzUyIDIuMDEzIDcuNTYwNiAxLjM0NSAxLjY2MjMgMy4yIDIuNDkzNSA1LjU2NSAyLjQ5MzUgMy4wMTUgMCA2LjA5OS0wLjkzNTEgOS4yNTItMi44MDUydjcuNTg0NGMtMi45NjggMS43Nzc4LTYuNTI3IDIuNjY2Ny0xMC42NzggMi42NjY3em0tMS4zNTYtMzIuOTAwNGMtMS4zMjIgMC0yLjQxMiAwLjcwNDItMy4yNyAyLjExMjUtMC44NTggMS4zODUzLTEuMzg3IDMuODU1Ny0xLjUyNiA2Ljc4NzloOS41Yy0wLjA0Ni0yLjgxNjctMC41NTQtNS4yNjQxLTEuMzY1LTYuNzE4Ni0wLjgxMi0xLjQ1NDYtMS45MjUtMi4xODE4LTMuMzM5LTIuMTgxOHptMzYuMjA0IDguOTAwNHYyM2g5di0yNC44MDA5YzAtNC42NDAyLTAuODc3LTguMTY2OC0yLjYzMi0xMC41Nzk3LTEuNzMxLTIuNDEyOS00LjM1Mi0zLjYxOTQtNy44NjEtMy42MTk0LTIuMDc3IDAtMy44OSAwLjUxMDQtNS40MzcgMS41MzEzLTEuNTQ2IDAuOTk3Ni0yLjczOSAyLjY4MjItMy41NyA0LjQ2ODdoLTAuNWwtMS4yNS01aC03LjI1djM4aDkuNXYtMTguMjVjMC00LjcwOTggMC4xNzMtNy45MTk4IDEuMDk3LTkuODkxOCAwLjkyMy0xLjk5NTQgMi4zNzctMi45OTMgNC4zNjMtMi45OTMgMS41IDAgMi41ODYgMC43MTkyIDMuMjU1IDIuMTU3NyAwLjY3IDEuNDM4NSAxLjI4NSAzLjE2OTggMS4yODUgNS45NzcxeiIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjMDBBM0UwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz4KPC9zdmc+"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "OpenSearch Search Source",
        "description" : "Search data on OpenSearch\n\nThe `query` parameter must be formatted in JSON.\n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.",
        "required" : [ "query", "clusterName", "indexName", "hostAddresses" ],
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period",
            "description" : "The time interval between two searches",
            "type" : "integer",
            "default" : 1000
          },
          "query" : {
            "title" : "Query",
            "description" : "The query we want to use to search on OpenSearch.",
            "type" : "string"
          },
          "user" : {
            "title" : "Username",
            "description" : "Username to connect to OpenSearch.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "Password to connect to OpenSearch.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "enableSSL" : {
            "title" : "Enable SSL",
            "description" : "Do we want to connect using SSL?",
            "type" : "boolean",
            "default" : false
          },
          "hostAddresses" : {
            "title" : "Host Addresses",
            "description" : "Comma separated list with ip:port formatted remote transport addresses to use.",
            "type" : "string"
          },
          "indexName" : {
            "title" : "Index in OpenSearch",
            "description" : "The name of the index to act against.",
            "type" : "string"
          },
          "clusterName" : {
            "title" : "OpenSearch Cluster Name",
            "description" : "The name of the cluster.",
            "type" : "string"
          },
          "certificate" : {
            "title" : "Certificate",
            "description" : "The Certificate for accessing the Opensearch cluster. You must encode this value in base64.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:timer", "camel:opensearch", "camel:gson" ],
      "template" : {
        "beans" : [ {
          "name" : "local-opensearch",
          "type" : "#class:org.apache.camel.component.opensearch.OpensearchComponent",
          "properties" : {
            "user" : "{{?user}}",
            "password" : "{{?password}}"
          }
        } ],
        "from" : {
          "uri" : "timer:tick",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "setBody" : {
              "constant" : "{{query?nested=false}}"
            }
          }, {
            "to" : {
              "uri" : "{{local-opensearch}}:{{clusterName}}",
              "parameters" : {
                "operation" : "SEARCH",
                "indexName" : "{{indexName}}",
                "hostAddresses" : "{{hostAddresses}}",
                "enableSSL" : "{{enableSSL}}",
                "certificatePath" : "base64:{{?certificate}}"
              }
            }
          }, {
            "marshal" : {
              "json" : {
                "library" : "Gson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "OpenSearch Search Source",
      "description" : "Search data on OpenSearch\n\nThe `query` parameter must be formatted in JSON.\n\nIf you specify the `certificate` property, you must base64 encode it before you pass it as a parameter.",
      "required" : [ "query", "clusterName", "indexName", "hostAddresses" ],
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period",
          "description" : "The time interval between two searches",
          "default" : 1000
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query we want to use to search on OpenSearch."
        },
        "user" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username to connect to OpenSearch."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password to connect to OpenSearch.",
          "format" : "password"
        },
        "enableSSL" : {
          "type" : "boolean",
          "title" : "Enable SSL",
          "description" : "Do we want to connect using SSL?",
          "default" : false
        },
        "hostAddresses" : {
          "type" : "string",
          "title" : "Host Addresses",
          "description" : "Comma separated list with ip:port formatted remote transport addresses to use."
        },
        "indexName" : {
          "type" : "string",
          "title" : "Index in OpenSearch",
          "description" : "The name of the index to act against."
        },
        "clusterName" : {
          "type" : "string",
          "title" : "OpenSearch Cluster Name",
          "description" : "The name of the cluster."
        },
        "certificate" : {
          "type" : "string",
          "title" : "Certificate",
          "description" : "The Certificate for accessing the Opensearch cluster. You must encode this value in base64."
        }
      }
    }
  },
  "oracle-database-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "oracle-database-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTI1NiwzMUMxMzEuNywzMSwzMSw2Mi41LDMxLDEwMS4zdjU2LjJjMCwzOC44LDEwMC43LDcwLjMsMjI1LDcwLjNzMjI1LTMxLjUsMjI1LTcwLjN2LTU2LjJDNDgxLDYyLjUsMzgwLjMsMzEsMjU2LDMxeiIvPgoJPHBhdGggZD0iTTI1NiwyNzAuMWMtMTI0LjMsMC0yMjUtMzEuNS0yMjUtNzAuM3Y4NC40YzAsMzguOCwxMDAuNyw3MC4zLDIyNSw3MC4zczIyNS0zMS41LDIyNS03MC4zdi04NC40CgkJQzQ4MSwyMzguNiwzODAuMywyNzAuMSwyNTYsMjcwLjF6Ii8+Cgk8cGF0aCBkPSJNMjU2LDM5Ni42Yy0xMjQuMywwLTIyNS0zMS41LTIyNS03MC4zdjg0LjRjMCwzOC44LDEwMC43LDcwLjMsMjI1LDcwLjNzMjI1LTMxLjUsMjI1LTcwLjN2LTg0LjQKCQlDNDgxLDM2NS4yLDM4MC4zLDM5Ni42LDI1NiwzOTYuNnoiLz4KPC9nPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Oracle Database Sink",
        "description" : "Send data to an Oracle Database.\n\nIn your Pipe file, you must explicitly declare the Oracle Database driver dependency in spec->integration->dependencies.\n\n- \"mvn:com.oracle.database.jdbc:ojdbc11:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 1521
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured Oracle Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured Oracle Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the Oracle Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the Oracle Database.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:oracle:thin:@{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "oracle.jdbc.driver.OracleDriver"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "sql:{{query}}",
              "parameters" : {
                "dataSource" : "#bean:{{dsBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Oracle Database Sink",
      "description" : "Send data to an Oracle Database.\n\nIn your Pipe file, you must explicitly declare the Oracle Database driver dependency in spec->integration->dependencies.\n\n- \"mvn:com.oracle.database.jdbc:ojdbc11:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 1521
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured Oracle Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured Oracle Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the Oracle Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the Oracle Database."
        }
      }
    }
  },
  "oracle-database-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "oracle-database-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTI1NiwzMUMxMzEuNywzMSwzMSw2Mi41LDMxLDEwMS4zdjU2LjJjMCwzOC44LDEwMC43LDcwLjMsMjI1LDcwLjNzMjI1LTMxLjUsMjI1LTcwLjN2LTU2LjJDNDgxLDYyLjUsMzgwLjMsMzEsMjU2LDMxeiIvPgoJPHBhdGggZD0iTTI1NiwyNzAuMWMtMTI0LjMsMC0yMjUtMzEuNS0yMjUtNzAuM3Y4NC40YzAsMzguOCwxMDAuNyw3MC4zLDIyNSw3MC4zczIyNS0zMS41LDIyNS03MC4zdi04NC40CgkJQzQ4MSwyMzguNiwzODAuMywyNzAuMSwyNTYsMjcwLjF6Ii8+Cgk8cGF0aCBkPSJNMjU2LDM5Ni42Yy0xMjQuMywwLTIyNS0zMS41LTIyNS03MC4zdjg0LjRjMCwzOC44LDEwMC43LDcwLjMsMjI1LDcwLjNzMjI1LTMxLjUsMjI1LTcwLjN2LTg0LjQKCQlDNDgxLDM2NS4yLDM4MC4zLDM5Ni42LDI1NiwzOTYuNnoiLz4KPC9nPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Oracle Database Source",
        "description" : "Query data from an Oracle Database.\n\nIn your Pipe file, you must explicitly declare the Oracle Database driver dependency in spec->integration->dependencies.\n\n- \"mvn:com.oracle.database.jdbc:ojdbc11:<version>\"",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 1521
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured Oracle Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured Oracle Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the Oracle Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the Oracle Database.",
            "type" : "string"
          },
          "consumedQuery" : {
            "title" : "Consumed Query",
            "description" : "A query to run on a tuple consumed.",
            "type" : "string",
            "example" : "DELETE FROM accounts where user_id = :#user_id"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:oracle:thin:@{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "oracle.jdbc.driver.OracleDriver"
          }
        } ],
        "from" : {
          "uri" : "sql:{{query}}",
          "parameters" : {
            "dataSource" : "#bean:{{dsBean}}",
            "onConsume" : "{{?consumedQuery}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Oracle Database Source",
      "description" : "Query data from an Oracle Database.\n\nIn your Pipe file, you must explicitly declare the Oracle Database driver dependency in spec->integration->dependencies.\n\n- \"mvn:com.oracle.database.jdbc:ojdbc11:<version>\"",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 1521
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured Oracle Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured Oracle Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the Oracle Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the Oracle Database."
        },
        "consumedQuery" : {
          "type" : "string",
          "title" : "Consumed Query",
          "description" : "A query to run on a tuple consumed."
        }
      }
    }
  },
  "pdf-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "pdf-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDMwMy4xODggMzAzLjE4OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzAzLjE4OCAzMDMuMTg4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cG9seWdvbiBzdHlsZT0iZmlsbDojRThFOEU4OyIgcG9pbnRzPSIyMTkuODIxLDAgMzIuODQyLDAgMzIuODQyLDMwMy4xODggMjcwLjM0NiwzMDMuMTg4IDI3MC4zNDYsNTAuNTI1IAkiLz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojRkIzNDQ5OyIgZD0iTTIzMC4wMTMsMTQ5LjkzNWMtMy42NDMtNi40OTMtMTYuMjMxLTguNTMzLTIyLjAwNi05LjQ1MWMtNC41NTItMC43MjQtOS4xOTktMC45NC0xMy44MDMtMC45MzYNCgkJYy0zLjYxNS0wLjAyNC03LjE3NywwLjE1NC0xMC42OTMsMC4zNTRjLTEuMjk2LDAuMDg3LTIuNTc5LDAuMTk5LTMuODYxLDAuMzFjLTEuMzE0LTEuMzYtMi41ODQtMi43NjUtMy44MTMtNC4yMDINCgkJYy03LjgyLTkuMjU3LTE0LjEzNC0xOS43NTUtMTkuMjc5LTMwLjY2NGMxLjM2Ni01LjI3MSwyLjQ1OS0xMC43NzIsMy4xMTktMTYuNDg1YzEuMjA1LTEwLjQyNywxLjYxOS0yMi4zMS0yLjI4OC0zMi4yNTENCgkJYy0xLjM0OS0zLjQzMS00Ljk0Ni03LjYwOC05LjA5Ni01LjUyOGMtNC43NzEsMi4zOTItNi4xMTMsOS4xNjktNi41MDIsMTMuOTczYy0wLjMxMywzLjg4My0wLjA5NCw3Ljc3NiwwLjU1OCwxMS41OTQNCgkJYzAuNjY0LDMuODQ0LDEuNzMzLDcuNDk0LDIuODk3LDExLjEzOWMxLjA4NiwzLjM0MiwyLjI4Myw2LjY1OCwzLjU4OCw5Ljk0M2MtMC44MjgsMi41ODYtMS43MDcsNS4xMjctMi42Myw3LjYwMw0KCQljLTIuMTUyLDUuNjQzLTQuNDc5LDExLjAwNC02LjcxNywxNi4xNjFjLTEuMTgsMi41NTctMi4zMzUsNS4wNi0zLjQ2NSw3LjUwN2MtMy41NzYsNy44NTUtNy40NTgsMTUuNTY2LTExLjgxNSwyMy4wMg0KCQljLTEwLjE2MywzLjU4NS0xOS4yODMsNy43NDEtMjYuODU3LDEyLjYyNWMtNC4wNjMsMi42MjUtNy42NTIsNS40NzYtMTAuNjQxLDguNjAzYy0yLjgyMiwyLjk1Mi01LjY5LDYuNzgzLTUuOTQxLDExLjAyNA0KCQljLTAuMTQxLDIuMzk0LDAuODA3LDQuNzE3LDIuNzY4LDYuMTM3YzIuNjk3LDIuMDE1LDYuMjcxLDEuODgxLDkuNCwxLjIyNWMxMC4yNS0yLjE1LDE4LjEyMS0xMC45NjEsMjQuODI0LTE4LjM4Nw0KCQljNC42MTctNS4xMTUsOS44NzItMTEuNjEsMTUuMzY5LTE5LjQ2NWMwLjAxMi0wLjAxOCwwLjAyNC0wLjAzNiwwLjAzNy0wLjA1NGM5LjQyOC0yLjkyMywxOS42ODktNS4zOTEsMzAuNTc5LTcuMjA1DQoJCWM0Ljk3NS0wLjgyNSwxMC4wODItMS41LDE1LjI5MS0xLjk3NGMzLjY2MywzLjQzMSw3LjYyMSw2LjU1NSwxMS45MzksOS4xNjRjMy4zNjMsMi4wNjksNi45NCwzLjgxNiwxMC42ODQsNS4xMTkNCgkJYzMuNzg2LDEuMjM3LDcuNTk1LDIuMjQ3LDExLjUyOCwyLjg4NmMxLjk4NiwwLjI4NCw0LjAxNywwLjQxMyw2LjA5MiwwLjMzNWM0LjYzMS0wLjE3NSwxMS4yNzgtMS45NTEsMTEuNzE0LTcuNTcNCgkJQzIzMS4xMjcsMTUyLjc2NSwyMzAuNzU2LDE1MS4yNTcsMjMwLjAxMywxNDkuOTM1eiBNMTE5LjE0NCwxNjAuMjQ1Yy0yLjE2OSwzLjM2LTQuMjYxLDYuMzgyLTYuMjMyLDkuMDQxDQoJCWMtNC44MjcsNi41NjgtMTAuMzQsMTQuMzY5LTE4LjMyMiwxNy4yODZjLTEuNTE2LDAuNTU0LTMuNTEyLDEuMTI2LTUuNjE2LDEuMDAyYy0xLjg3NC0wLjExLTMuNzIyLTAuOTM3LTMuNjM3LTMuMDY1DQoJCWMwLjA0Mi0xLjExNCwwLjU4Ny0yLjUzNSwxLjQyMy0zLjkzMWMwLjkxNS0xLjUzMSwyLjA0OC0yLjkzNSwzLjI3NS00LjIyNmMyLjYyOS0yLjc2Miw1Ljk1My01LjQzOSw5Ljc3Ny03LjkxOA0KCQljNS44NjUtMy44MDUsMTIuODY3LTcuMjMsMjAuNjcyLTEwLjI4NkMxMjAuMDM1LDE1OC44NTgsMTE5LjU4NywxNTkuNTY0LDExOS4xNDQsMTYwLjI0NXogTTE0Ni4zNjYsNzUuOTg1DQoJCWMtMC42MDItMy41MTQtMC42OTMtNy4wNzctMC4zMjMtMTAuNTAzYzAuMTg0LTEuNzEzLDAuNTMzLTMuMzg1LDEuMDM4LTQuOTUyYzAuNDI4LTEuMzMsMS4zNTItNC41NzYsMi44MjYtNC45OTMNCgkJYzIuNDMtMC42ODgsMy4xNzcsNC41MjksMy40NTIsNi4wMDVjMS41NjYsOC4zOTYsMC4xODYsMTcuNzMzLTEuNjkzLDI1Ljk2OWMtMC4yOTksMS4zMS0wLjYzMiwyLjU5OS0wLjk3MywzLjg4Mw0KCQljLTAuNTgyLTEuNjAxLTEuMTM3LTMuMjA3LTEuNjQ4LTQuODIxQzE0Ny45NDUsODMuMDQ4LDE0Ni45MzksNzkuNDgyLDE0Ni4zNjYsNzUuOTg1eiBNMTYzLjA0OSwxNDIuMjY1DQoJCWMtOS4xMywxLjQ4LTE3LjgxNSwzLjQxOS0yNS45NzksNS43MDhjMC45ODMtMC4yNzUsNS40NzUtOC43ODgsNi40NzctMTAuNTU1YzQuNzIxLTguMzE1LDguNTgzLTE3LjA0MiwxMS4zNTgtMjYuMTk3DQoJCWM0LjksOS42OTEsMTAuODQ3LDE4Ljk2MiwxOC4xNTMsMjcuMjE0YzAuNjczLDAuNzQ5LDEuMzU3LDEuNDg5LDIuMDUzLDIuMjJDMTcxLjAxNywxNDEuMDk2LDE2Ni45ODgsMTQxLjYzMywxNjMuMDQ5LDE0Mi4yNjV6DQoJCSBNMjI0Ljc5MywxNTMuOTU5Yy0wLjMzNCwxLjgwNS00LjE4OSwyLjgzNy01Ljk4OCwzLjEyMWMtNS4zMTYsMC44MzYtMTAuOTQsMC4xNjctMTYuMDI4LTEuNTQyDQoJCWMtMy40OTEtMS4xNzItNi44NTgtMi43NjgtMTAuMDU3LTQuNjg4Yy0zLjE4LTEuOTIxLTYuMTU1LTQuMTgxLTguOTM2LTYuNjczYzMuNDI5LTAuMjA2LDYuOS0wLjM0MSwxMC4zODgtMC4yNzUNCgkJYzMuNDg4LDAuMDM1LDcuMDAzLDAuMjExLDEwLjQ3NSwwLjY2NGM2LjUxMSwwLjcyNiwxMy44MDcsMi45NjEsMTguOTMyLDcuMTg2QzIyNC41ODgsMTUyLjU4NSwyMjQuOTEsMTUzLjMyMSwyMjQuNzkzLDE1My45NTl6Ii8+DQoJPHBvbHlnb24gc3R5bGU9ImZpbGw6I0ZCMzQ0OTsiIHBvaW50cz0iMjI3LjY0LDI1LjI2MyAzMi44NDIsMjUuMjYzIDMyLjg0MiwwIDIxOS44MjEsMCAJIi8+DQoJPGc+DQoJCTxwYXRoIHN0eWxlPSJmaWxsOiNBNEE5QUQ7IiBkPSJNMTI2Ljg0MSwyNDEuMTUyYzAsNS4zNjEtMS41OCw5LjUwMS00Ljc0MiwxMi40MjFjLTMuMTYyLDIuOTIxLTcuNjUyLDQuMzgxLTEzLjQ3Miw0LjM4MWgtMy42NDMNCgkJCXYxNS45MTdIOTIuMDIydi00Ny45NzloMTYuNjA2YzYuMDYsMCwxMC42MTEsMS4zMjQsMTMuNjUyLDMuOTcxQzEyNS4zMjEsMjMyLjUxLDEyNi44NDEsMjM2LjI3MywxMjYuODQxLDI0MS4xNTJ6DQoJCQkgTTEwNC45ODUsMjQ3LjM4N2gyLjM2M2MxLjk0NywwLDMuNDk1LTAuNTQ2LDQuNjQ0LTEuNjQxYzEuMTQ5LTEuMDk0LDEuNzIzLTIuNjA0LDEuNzIzLTQuNTI5YzAtMy4yMzgtMS43OTQtNC44NTctNS4zODItNC44NTcNCgkJCWgtMy4zNDhDMTA0Ljk4NSwyMzYuMzYsMTA0Ljk4NSwyNDcuMzg3LDEwNC45ODUsMjQ3LjM4N3oiLz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6I0E0QTlBRDsiIGQ9Ik0xNzUuMjE1LDI0OC44NjRjMCw4LjAwNy0yLjIwNSwxNC4xNzctNi42MTMsMTguNTA5cy0xMC42MDYsNi40OTgtMTguNTkxLDYuNDk4aC0xNS41MjN2LTQ3Ljk3OQ0KCQkJaDE2LjYwNmM3LjcwMSwwLDEzLjY0NiwxLjk2OSwxNy44MzYsNS45MDdDMTczLjExOSwyMzUuNzM3LDE3NS4yMTUsMjQxLjQyNiwxNzUuMjE1LDI0OC44NjR6IE0xNjEuNzYsMjQ5LjMyNA0KCQkJYzAtNC4zOTgtMC44Ny03LjY1Ny0yLjYwOS05Ljc4Yy0xLjczOS0yLjEyMi00LjM4MS0zLjE4My03LjkyNi0zLjE4M2gtMy43NzN2MjYuODc3aDIuODg4YzMuOTM5LDAsNi44MjYtMS4xNDMsOC42NjQtMy40Mw0KCQkJQzE2MC44NDEsMjU3LjUyMywxNjEuNzYsMjU0LjAyOCwxNjEuNzYsMjQ5LjMyNHoiLz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6I0E0QTlBRDsiIGQ9Ik0xOTYuNTc5LDI3My44NzFoLTEyLjc2NnYtNDcuOTc5aDI4LjM1NXYxMC40MDNoLTE1LjU4OXY5LjE1NmgxNC4zNzR2MTAuNDAzaC0xNC4zNzQNCgkJCUwxOTYuNTc5LDI3My44NzFMMTk2LjU3OSwyNzMuODcxeiIvPg0KCTwvZz4NCgk8cG9seWdvbiBzdHlsZT0iZmlsbDojRDFEM0QzOyIgcG9pbnRzPSIyMTkuODIxLDUwLjUyNSAyNzAuMzQ2LDUwLjUyNSAyMTkuODIxLDAgCSIvPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "PDF",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "PDF Action",
        "description" : "Create a PDF",
        "required" : [ "font", "fontSize", "pageSize" ],
        "type" : "object",
        "properties" : {
          "font" : {
            "title" : "Font",
            "description" : "The font to use while generating the PDF. One of Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique, Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique, Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic, Symbol, ZapfDingbats",
            "type" : "string",
            "default" : "Helvetica"
          },
          "fontSize" : {
            "title" : "Font Size",
            "description" : "The Font size to use while generating the PDF",
            "type" : "string",
            "default" : 14.0
          },
          "pageSize" : {
            "title" : "Page Size",
            "description" : "The Page size to use while generating the PDF. One of LETTER, LEGAL, A0, A1, A2, A3, A4, A5, A6",
            "type" : "string",
            "default" : "A4"
          }
        }
      },
      "dependencies" : [ "camel:pdf", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "pdf://create",
              "parameters" : {
                "font" : "{{font}}",
                "fontSize" : "{{fontSize}}",
                "pageSize" : "{{pageSize}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "PDF Action",
      "description" : "Create a PDF",
      "required" : [ "font", "fontSize", "pageSize" ],
      "properties" : {
        "font" : {
          "type" : "string",
          "title" : "Font",
          "description" : "The font to use while generating the PDF. One of Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique, Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique, Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic, Symbol, ZapfDingbats",
          "default" : "Helvetica"
        },
        "fontSize" : {
          "type" : "string",
          "title" : "Font Size",
          "description" : "The Font size to use while generating the PDF",
          "default" : 14.0
        },
        "pageSize" : {
          "type" : "string",
          "title" : "Page Size",
          "description" : "The Page size to use while generating the PDF. One of LETTER, LEGAL, A0, A1, A2, A3, A4, A5, A6",
          "default" : "A4"
        }
      }
    }
  },
  "postgresql-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "postgresql-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+UG9zdGdyZVNRTCBpY29uPC90aXRsZT48cGF0aCBkPSJNMTcuMTI4IDBhMTAuMTM0IDEwLjEzNCAwIDAgMC0yLjc1NS40MDNsLS4wNjMuMDJBMTAuOTIyIDEwLjkyMiAwIDAgMCAxMi42LjI1OEMxMS40MjIuMjM4IDEwLjQxLjUyNCA5LjU5NCAxIDguNzkuNzIxIDcuMTIyLjI0IDUuMzY0LjMzNiA0LjE0LjQwMyAyLjgwNC43NzUgMS44MTQgMS44Mi44MjcgMi44NjUuMzA1IDQuNDgyLjQxNSA2LjY4MmMuMDMuNjA3LjIwMyAxLjU5Ny40OSAyLjg3OXMuNjkgMi43ODMgMS4xOTMgNC4xNTJjLjUwMyAxLjM3IDEuMDU0IDIuNiAxLjkxNSAzLjQzNi40My40MTkgMS4wMjIuNzcxIDEuNzIuNzQyLjQ5LS4wMi45MzMtLjIzNSAxLjMxNS0uNTUyLjE4Ni4yNDUuMzg1LjM1Mi41NjYuNDUxLjIyOC4xMjUuNDUuMjEuNjguMjY2LjQxMy4xMDMgMS4xMi4yNDEgMS45NDguMS4yODItLjA0Ny41NzktLjEzOS44NzUtLjI3LjAxMS4zMy4wMjQuNjUzLjAzNy45OC4wNDEgMS4wMzYuMDY3IDEuOTkzLjM3OCAyLjgzMi4wNS4xMzcuMTg3Ljg0My43MjcgMS40NjYuNTQuNjI0IDEuNTk4IDEuMDEzIDIuODAzLjc1NS44NS0uMTgyIDEuOTMxLS41MSAyLjY0OS0xLjUzMi43MS0xLjAxIDEuMDMtMi40NTkgMS4wOTMtNC44MDkuMDE2LS4xMjcuMDM1LS4yMzUuMDU1LS4zMzZsLjE2OS4wMTVoLjAyYy45MDcuMDQxIDEuODkxLS4wODggMi43MTMtLjQ3LjcyOC0uMzM3IDEuMjc5LS42NzggMS42OC0xLjI4My4xLS4xNS4yMS0uMzMxLjI0LS42NDNzLS4xNDktLjgtLjQ0Ni0xLjAyNWMtLjU5NS0uNDUyLS45NjktLjI4LTEuMzctLjE5N2E2LjI3IDYuMjcgMCAwIDEtMS4yMDIuMTQ2YzEuMTU2LTEuOTQ3IDEuOTg1LTQuMDE1IDIuNDU4LTUuODQ1LjI4LTEuMDguNDM3LTIuMDc2LjQ1LTIuOTQ3LjAxMy0uODcxLS4wNTgtMS42NDItLjU4LTIuMzA5QzIxLjM2LjYgMTkuMDY3LjAyNCAxNy4yOTMuMDA0Yy0uMDU1LS4wMDEtLjExLS4wMDItLjE2NS0uMDAxem0tLjA0Ny42NGMxLjY3OC0uMDE2IDMuODIyLjQ1NSA1LjM2MSAyLjQyMi4zNDYuNDQyLjQ0OSAxLjA4OC40MzcgMS44ODQtLjAxMy43OTUtLjE2IDEuNzQ3LS40MjkgMi43OS0uNTIyIDIuMDItMS41MDggNC4zNzUtMi44OTcgNi40ODhhLjc1Ni43NTYgMCAwIDAgLjE1OC4wODZjLjI5LjEyLjk1MS4yMjMgMi4yNy0uMDQ4LjMzMi0uMDcuNTc1LS4xMTcuODI3LjA3NWEuNTIuNTIgMCAwIDEgLjE4My40MjUuNzA0LjcwNCAwIDAgMS0uMTMuMzM2Yy0uMjU1LjM4My0uNzU4Ljc0Ni0xLjQwMyAxLjA0NS0uNTcxLjI2Ni0xLjM5LjQwNS0yLjExNi40MTMtLjM2NC4wMDQtLjctLjAyNC0uOTg1LS4xMTNsLS4wMTgtLjAwN2MtLjExIDEuMDYtLjM2MyAzLjE1My0uNTI4IDQuMTA4LS4xMzIuNzctLjM2MyAxLjM4Mi0uODA0IDEuODQtLjQ0LjQ1OC0xLjA2My43MzQtMS45MDEuOTE0LTEuMDM4LjIyMy0xLjc5NS0uMDE3LTIuMjgzLS40MjgtLjQ4Ny0uNDEtLjcxLS45NTQtLjg0NC0xLjI4Ny0uMDkyLS4yMy0uMTQtLjUyOC0uMTg2LS45MjYtLjA0Ni0uMzk4LS4wOC0uODg1LS4xMDMtMS40MzRhNTEuNDI2IDUxLjQyNiAwIDAgMS0uMDMtMi41MjMgMy4wNjEgMy4wNjEgMCAwIDEtMS41NTIuNzZjLS42ODkuMTE3LTEuMzA0LjAwMi0xLjY3MS0uMDlhMi4yNzYgMi4yNzYgMCAwIDEtLjUyLS4yMDFjLS4xNy0uMDkxLS4zMzItLjE5NC0uNDQtLjM5N2EuNTYuNTYgMCAwIDEtLjA1Ny0uMzgxLjYxLjYxIDAgMCAxIC4yMTgtLjMzMWMuMTk4LS4xNjEuNDYtLjI1MS44NTUtLjMzMy43MTktLjE0OC45Ny0uMjQ5IDEuMTIzLS4zNy4xMy0uMTA0LjI3Ny0uMzE0LjUzNy0uNjIyYTEuMTYgMS4xNiAwIDAgMS0uMDAzLS4wNDEgMi45NiAyLjk2IDAgMCAxLTEuMzMtLjM1OGMtLjE1LjE1OC0uOTE2Ljk2OC0xLjg1IDIuMDkyLS4zOTMuNDctLjgyNy43NC0xLjI4NS43NTktLjQ1OC4wMi0uODcyLS4yMTEtMS4yMjQtLjU1Mi0uNzAzLS42ODMtMS4yNjQtMS44NTgtMS43NTMtMy4xODYtLjQ4OC0xLjMyOC0uODg1LTIuODA3LTEuMTY3LTQuMDY3LS4yODMtMS4yNi0uNDUtMi4yNzYtLjQ3NC0yLjc2Ni0uMTA1LTIuMDgyLjM4Mi0zLjQ4NSAxLjIxNy00LjM3LjgzNi0uODg1IDEuOTgyLTEuMjIgMy4wOTktMS4yODQgMi4wMDUtLjExNSAzLjkwOS41ODQgNC4yOTQuNzM0Ljc0Mi0uNTA0IDEuNjk4LS44MTggMi44OTItLjc5OGE3LjM5IDcuMzkgMCAwIDEgMS42ODEuMjE4bC4wMi0uMDA5YTYuODU0IDYuODU0IDAgMCAxIC43MzktLjIxNEE5LjYyNiA5LjYyNiAwIDAgMSAxNy4wOC42NDJ6bS4xNTIuNjdoLS4xNDZhOC43NCA4Ljc0IDAgMCAwLTEuNzA0LjE5MmMxLjI0Ni41NTIgMi4xODcgMS40MDIgMi44NSAyLjI1YTguNDQgOC40NCAwIDAgMSAxLjEzMiAxLjkyYy4xMS4yNjQuMTg0LjQ4Ny4yMjYuNjYuMDIxLjA4Ny4wMzUuMTYuMDQuMjM2LjAwMi4wMzguMDA0LjA3Ny0uMDEyLjE0NCAwIC4wMDMtLjAwNS4wMS0uMDA2LjAxMy4wMy44NzYtLjE4NyAxLjQ3LS4yMTMgMi4zMDYtLjAyLjYwNi4xMzUgMS4zMTguMTczIDIuMDk1LjAzNi43My0uMDUyIDEuNTMyLS41MjYgMi4zMTkuMDQuMDQ4LjA3Ni4wOTYuMTE0LjE0NCAxLjI1NC0xLjk3NSAyLjE1OC00LjE2IDIuNjQtNi4wMjMuMjU4LTEuMDAzLjM5NS0xLjkxMi40MDctMi42MzIuMDEtLjcyLS4xMjQtMS4yNDItLjI5NS0xLjQ2LTEuMzQyLTEuNzE2LTMuMTU4LTIuMTUzLTQuNjgtMi4xNjV6bS00Ljc5LjI1NmMtMS4xODIuMDAzLTIuMDMuMzYtMi42NzMuODk1LS42NjMuNTUzLTEuMTA4IDEuMzEtMS40IDIuMDg1LS4zNDcuOTItLjQ2NiAxLjgxLS41MTMgMi40MTRsLjAxMy0uMDA4Yy4zNTctLjIuODI2LS40IDEuMzI4LS41MTYuNTAyLS4xMTUgMS4wNDMtLjE1MSAxLjUzMy4wMzlzLjg5NS42MzcgMS4wNDIgMS4zMTVjLjcwNCAzLjI1Ny0uMjE5IDQuNDY4LS41NTkgNS4zODJhOS42MSA5LjYxIDAgMCAwLS4zMzEgMS4wMTNjLjA0My0uMDEuMDg2LS4wMjIuMTI5LS4wMjYuMjQtLjAyLjQyOC4wNi41NC4xMDguMzQyLjE0Mi41NzcuNDQuNzA0Ljc4LjAzMy4wODkuMDU3LjE4NS4wNzEuMjg0YS4zMzYuMzM2IDAgMCAxIC4wMi4xMjcgNTUuMTQgNTUuMTQgMCAwIDAgLjAxMyAzLjczOGMuMDIzLjUzOC4wNTcgMS4wMTIuMSAxLjM4Ni4wNDMuMzczLjEwNC42NTcuMTQzLjc1My4xMjguMzIuMzE1LjczOS42NTMgMS4wMjQuMzM4LjI4NC44MjMuNDc0IDEuNzA5LjI4NC43NjgtLjE2NSAxLjI0Mi0uMzk0IDEuNTU5LS43MjMuMzE2LS4zMjkuNTA1LS43ODcuNjI2LTEuNDg4LjE4MS0xLjA1LjU0NS00LjA5NS41ODktNC42NjgtLjAyLS40MzIuMDQ0LS43NjQuMTgyLTEuMDE3LjE0Mi0uMjYuMzYyLS40MTkuNTUyLS41MDUuMDk1LS4wNDMuMTg0LS4wNzIuMjU3LS4wOTNhNS45NTYgNS45NTYgMCAwIDAtLjI0My0uMzI1IDQuNDU2IDQuNDU2IDAgMCAxLS42NjYtMS4wOTkgOC4yOTYgOC4yOTYgMCAwIDAtLjI1Ny0uNDgzYy0uMTMzLS4yNC0uMzAxLS41NC0uNDc3LS44NzctLjM1Mi0uNjc1LS43MzUtMS40OTMtLjkzNC0yLjI5LS4xOTgtLjc5Ni0uMjI3LTEuNjIuMjgxLTIuMjAxLjQ1LS41MTYgMS4yNC0uNzMgMi40MjYtLjYxLS4wMzUtLjEwNS0uMDU2LS4xOTItLjExNS0uMzMyYTcuODE3IDcuODE3IDAgMCAwLTEuMDQxLTEuNzY0Yy0xLjAwNS0xLjI4NS0yLjYzMi0yLjU1OS01LjE0Ni0yLjZoLS4xMTV6bS02LjY0Mi4wNTJjLS4xMjcgMC0uMjU0LjAwNC0uMzguMDExLTEuMDEuMDU4LTEuOTY1LjM1MS0yLjY0OCAxLjA3NS0uNjg0LjcyNC0xLjEzNCAxLjkxMS0xLjAzNiAzLjg3Ni4wMTkuMzcyLjE4MSAxLjQxNC40NTkgMi42NTIuMjc3IDEuMjM4LjY3IDIuNjk1IDEuMTQyIDMuOTgyLjQ3MyAxLjI4NyAxLjA0NiAyLjQwNyAxLjU5IDIuOTM3LjI3NC4yNjUuNTEyLjM3Mi43MjguMzYzLjIxNy0uMDEuNDc4LS4xMzUuNzk3LS41MThhNDMuMjQ0IDQzLjI0NCAwIDAgMSAxLjgxLTIuMDQ4IDMuNDk3IDMuNDk3IDAgMCAxLTEuMTY3LTMuMTVjLjEwMy0uNzM5LjExNy0xLjQzLjEwNS0xLjk3Ni0uMDEyLS41MzItLjA1LS44ODYtLjA1LTEuMTA3YS4zMzYuMzM2IDAgMCAxIDAtLjAxOXYtLjAwNWwtLjAwMS0uMDA2di0uMDAxYTkuODkzIDkuODkzIDAgMCAxIC41OTItMy4zNzZjLjI4LS43NDQuNjk3LTEuNSAxLjMyMi0yLjExMi0uNjE0LS4yMDItMS43MDQtLjUxLTIuODg0LS41NjhhNy42MDMgNy42MDMgMCAwIDAtLjM4LS4wMXpNMTguMTk5IDYuOWMtLjY3OS4wMDktMS4wNi4xODQtMS4yNi40MTMtLjI4My4zMjUtLjMxLjg5NS0uMTM0IDEuNTk3LjE3NS43MDMuNTM3IDEuNDg5Ljg3NyAyLjE0Mi4xNy4zMjcuMzM1LjYyMS40NjguODYuMTM0LjI0LjIzMi40MS4yOTIuNTU1LjA1NS4xMzQuMTE2LjI1Mi4xNzguMzYyLjI2My0uNTU1LjMxLTEuMS4yODMtMS42NjgtLjAzNS0uNzAzLS4xOTgtMS40MjItLjE3NC0yLjE1LjAyNy0uODUxLjE5NS0xLjQwNS4yMS0yLjA2M2E1Ljc5MyA1Ljc5MyAwIDAgMC0uNzQtLjA0OHptLTguMjM0LjExNWEyLjgyIDIuODIgMCAwIDAtLjYxNi4wNzQgNC42NjUgNC42NjUgMCAwIDAtMS4xNTMuNDQ5IDIuNDE3IDIuNDE3IDAgMCAwLS4zNDkuMjI4bC0uMDIyLjAyYy4wMDYuMTQ2LjAzNS41LjA0NyAxLjAyMS4wMTIuNTctLjAwMiAxLjI5Ny0uMTEyIDIuMDg0LS4yMzkgMS43MSAxLjAwMiAzLjEyNiAyLjQ2IDMuMTI4LjA4NS0uMzUxLjIyNS0uNzA3LjM2NS0xLjA4Mi40MDYtMS4wOTQgMS4yMDUtMS44OTIuNTMyLTUuMDA2LS4xMS0uNTEtLjMyOC0uNzE2LS42MjgtLjgzMmExLjQ3NCAxLjQ3NCAwIDAgMC0uNTI0LS4wODR6bTcuOTE3LjIwNGguMDVjLjA2Ni4wMDIuMTI3LjAwOS4xOC4wMjIuMDU0LjAxMi4xLjAzLjEzOC4wNTVhLjE2NC4xNjQgMCAwIDEgLjA3NS4xMWwtLjAwMS4wMDhoLjAwMS0uMDAxYS4yNC4yNCAwIDAgMS0uMDM1LjEzNS42NjguNjY4IDAgMCAxLS4xMS4xNS42NzcuNjc3IDAgMCAxLS4zODYuMjEyLjU5LjU5IDAgMCAxLS40MS0uMTAzLjYwOC42MDggMCAwIDEtLjEzLS4xMTguMjYuMjYgMCAwIDEtLjA2My0uMTI3LjE3LjE3IDAgMCAxIC4wNDItLjEyOC4zODQuMzg0IDAgMCAxIC4xMTctLjA5Yy4wOTYtLjA1NC4yMjYtLjA5NC4zNzMtLjExNi4wNTUtLjAwOC4xMDktLjAxMi4xNi0uMDEzem0tNy44Mi4xNjhjLjA1MyAwIC4xMDkuMDA1LjE2Ni4wMTMuMTUzLjAyMS4yODkuMDYyLjM5My4xMjJhLjQ0Ni40NDYgMCAwIDEgLjEzMy4xMDYuMjIzLjIyMyAwIDAgMSAuMDU0LjE3LjMwMi4zMDIgMCAwIDEtLjA3NS4xNTQuNjQ5LjY0OSAwIDAgMS0uMTQzLjEzLjY0LjY0IDAgMCAxLS40NDguMTEzLjcyOC43MjggMCAwIDEtLjQyLS4yMjguNzEuNzEgMCAwIDEtLjExOC0uMTY0LjI4LjI4IDAgMCAxLS4wNDEtLjE3N2MuMDE1LS4xMDguMTA0LS4xNjQuMTkxLS4xOTVhLjg2Ni44NjYgMCAwIDEgLjMwNy0uMDR6bTkuMDYgNy4zNDNsLS4wMDMuMDAxYy0uMTQ3LjA1My0uMjY4LjA3NS0uMzcuMTJhLjQ1Mi40NTIgMCAwIDAtLjIzOS4yMTRjLS4wNjMuMTE1LS4xMTcuMzE5LS4xMDEuNjY2YS41MS41MSAwIDAgMCAuMTQ4LjA3Yy4xNzEuMDUyLjQ1OC4wODYuNzc4LjA4MS42MzgtLjAwNyAxLjQyMy0uMTU2IDEuODQtLjM1YTMuOTUgMy45NSAwIDAgMCAuOTQzLS42MTVoLS4wMDFjLTEuMzkzLjI4OC0yLjE4LjIxMS0yLjY2My4wMTJhMS4zMTUgMS4zMTUgMCAwIDEtLjMzMi0uMnptLTguMDMxLjA5NGgtLjAyMWMtLjA1My4wMDUtLjEzLjAyMy0uMjc5LjE4OC0uMzQ4LjM5LS40Ny42MzUtLjc1Ny44NjQtLjI4Ny4yMjgtLjY2LjM1LTEuNDA1LjUwMy0uMjM2LjA0OC0uMzcxLjEwMS0uNDYxLjE0NC4wMjkuMDI0LjAyNi4wMy4wNy4wNTMuMTA5LjA2LjI0OS4xMTMuMzYyLjE0Mi4zMi4wOC44NDYuMTczIDEuMzk1LjA4LjU0OS0uMDk0IDEuMTItLjM1NyAxLjYwNy0xLjA0LjA4NC0uMTE4LjA5My0uMjkyLjAyNC0uNDc5LS4wNy0uMTg3LS4yMjMtLjM0OC0uMzMxLS4zOTNhLjY1My42NTMgMCAwIDAtLjIwNC0uMDZ6Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "PostgreSQL Sink",
        "description" : "Send data to a PostgreSQL Database.\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 5432
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured PostgreSQL Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured PostgreSQL Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the PostgreSQL Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the PostgreSQL Database.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.postgresql:postgresql:42.7.1", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:postgresql://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "org.postgresql.Driver"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "sql:{{query}}",
              "parameters" : {
                "dataSource" : "#bean:{{dsBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "PostgreSQL Sink",
      "description" : "Send data to a PostgreSQL Database.\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 5432
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured PostgreSQL Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured PostgreSQL Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the PostgreSQL Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the PostgreSQL Database."
        }
      }
    }
  },
  "postgresql-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "postgresql-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+UG9zdGdyZVNRTCBpY29uPC90aXRsZT48cGF0aCBkPSJNMTcuMTI4IDBhMTAuMTM0IDEwLjEzNCAwIDAgMC0yLjc1NS40MDNsLS4wNjMuMDJBMTAuOTIyIDEwLjkyMiAwIDAgMCAxMi42LjI1OEMxMS40MjIuMjM4IDEwLjQxLjUyNCA5LjU5NCAxIDguNzkuNzIxIDcuMTIyLjI0IDUuMzY0LjMzNiA0LjE0LjQwMyAyLjgwNC43NzUgMS44MTQgMS44Mi44MjcgMi44NjUuMzA1IDQuNDgyLjQxNSA2LjY4MmMuMDMuNjA3LjIwMyAxLjU5Ny40OSAyLjg3OXMuNjkgMi43ODMgMS4xOTMgNC4xNTJjLjUwMyAxLjM3IDEuMDU0IDIuNiAxLjkxNSAzLjQzNi40My40MTkgMS4wMjIuNzcxIDEuNzIuNzQyLjQ5LS4wMi45MzMtLjIzNSAxLjMxNS0uNTUyLjE4Ni4yNDUuMzg1LjM1Mi41NjYuNDUxLjIyOC4xMjUuNDUuMjEuNjguMjY2LjQxMy4xMDMgMS4xMi4yNDEgMS45NDguMS4yODItLjA0Ny41NzktLjEzOS44NzUtLjI3LjAxMS4zMy4wMjQuNjUzLjAzNy45OC4wNDEgMS4wMzYuMDY3IDEuOTkzLjM3OCAyLjgzMi4wNS4xMzcuMTg3Ljg0My43MjcgMS40NjYuNTQuNjI0IDEuNTk4IDEuMDEzIDIuODAzLjc1NS44NS0uMTgyIDEuOTMxLS41MSAyLjY0OS0xLjUzMi43MS0xLjAxIDEuMDMtMi40NTkgMS4wOTMtNC44MDkuMDE2LS4xMjcuMDM1LS4yMzUuMDU1LS4zMzZsLjE2OS4wMTVoLjAyYy45MDcuMDQxIDEuODkxLS4wODggMi43MTMtLjQ3LjcyOC0uMzM3IDEuMjc5LS42NzggMS42OC0xLjI4My4xLS4xNS4yMS0uMzMxLjI0LS42NDNzLS4xNDktLjgtLjQ0Ni0xLjAyNWMtLjU5NS0uNDUyLS45NjktLjI4LTEuMzctLjE5N2E2LjI3IDYuMjcgMCAwIDEtMS4yMDIuMTQ2YzEuMTU2LTEuOTQ3IDEuOTg1LTQuMDE1IDIuNDU4LTUuODQ1LjI4LTEuMDguNDM3LTIuMDc2LjQ1LTIuOTQ3LjAxMy0uODcxLS4wNTgtMS42NDItLjU4LTIuMzA5QzIxLjM2LjYgMTkuMDY3LjAyNCAxNy4yOTMuMDA0Yy0uMDU1LS4wMDEtLjExLS4wMDItLjE2NS0uMDAxem0tLjA0Ny42NGMxLjY3OC0uMDE2IDMuODIyLjQ1NSA1LjM2MSAyLjQyMi4zNDYuNDQyLjQ0OSAxLjA4OC40MzcgMS44ODQtLjAxMy43OTUtLjE2IDEuNzQ3LS40MjkgMi43OS0uNTIyIDIuMDItMS41MDggNC4zNzUtMi44OTcgNi40ODhhLjc1Ni43NTYgMCAwIDAgLjE1OC4wODZjLjI5LjEyLjk1MS4yMjMgMi4yNy0uMDQ4LjMzMi0uMDcuNTc1LS4xMTcuODI3LjA3NWEuNTIuNTIgMCAwIDEgLjE4My40MjUuNzA0LjcwNCAwIDAgMS0uMTMuMzM2Yy0uMjU1LjM4My0uNzU4Ljc0Ni0xLjQwMyAxLjA0NS0uNTcxLjI2Ni0xLjM5LjQwNS0yLjExNi40MTMtLjM2NC4wMDQtLjctLjAyNC0uOTg1LS4xMTNsLS4wMTgtLjAwN2MtLjExIDEuMDYtLjM2MyAzLjE1My0uNTI4IDQuMTA4LS4xMzIuNzctLjM2MyAxLjM4Mi0uODA0IDEuODQtLjQ0LjQ1OC0xLjA2My43MzQtMS45MDEuOTE0LTEuMDM4LjIyMy0xLjc5NS0uMDE3LTIuMjgzLS40MjgtLjQ4Ny0uNDEtLjcxLS45NTQtLjg0NC0xLjI4Ny0uMDkyLS4yMy0uMTQtLjUyOC0uMTg2LS45MjYtLjA0Ni0uMzk4LS4wOC0uODg1LS4xMDMtMS40MzRhNTEuNDI2IDUxLjQyNiAwIDAgMS0uMDMtMi41MjMgMy4wNjEgMy4wNjEgMCAwIDEtMS41NTIuNzZjLS42ODkuMTE3LTEuMzA0LjAwMi0xLjY3MS0uMDlhMi4yNzYgMi4yNzYgMCAwIDEtLjUyLS4yMDFjLS4xNy0uMDkxLS4zMzItLjE5NC0uNDQtLjM5N2EuNTYuNTYgMCAwIDEtLjA1Ny0uMzgxLjYxLjYxIDAgMCAxIC4yMTgtLjMzMWMuMTk4LS4xNjEuNDYtLjI1MS44NTUtLjMzMy43MTktLjE0OC45Ny0uMjQ5IDEuMTIzLS4zNy4xMy0uMTA0LjI3Ny0uMzE0LjUzNy0uNjIyYTEuMTYgMS4xNiAwIDAgMS0uMDAzLS4wNDEgMi45NiAyLjk2IDAgMCAxLTEuMzMtLjM1OGMtLjE1LjE1OC0uOTE2Ljk2OC0xLjg1IDIuMDkyLS4zOTMuNDctLjgyNy43NC0xLjI4NS43NTktLjQ1OC4wMi0uODcyLS4yMTEtMS4yMjQtLjU1Mi0uNzAzLS42ODMtMS4yNjQtMS44NTgtMS43NTMtMy4xODYtLjQ4OC0xLjMyOC0uODg1LTIuODA3LTEuMTY3LTQuMDY3LS4yODMtMS4yNi0uNDUtMi4yNzYtLjQ3NC0yLjc2Ni0uMTA1LTIuMDgyLjM4Mi0zLjQ4NSAxLjIxNy00LjM3LjgzNi0uODg1IDEuOTgyLTEuMjIgMy4wOTktMS4yODQgMi4wMDUtLjExNSAzLjkwOS41ODQgNC4yOTQuNzM0Ljc0Mi0uNTA0IDEuNjk4LS44MTggMi44OTItLjc5OGE3LjM5IDcuMzkgMCAwIDEgMS42ODEuMjE4bC4wMi0uMDA5YTYuODU0IDYuODU0IDAgMCAxIC43MzktLjIxNEE5LjYyNiA5LjYyNiAwIDAgMSAxNy4wOC42NDJ6bS4xNTIuNjdoLS4xNDZhOC43NCA4Ljc0IDAgMCAwLTEuNzA0LjE5MmMxLjI0Ni41NTIgMi4xODcgMS40MDIgMi44NSAyLjI1YTguNDQgOC40NCAwIDAgMSAxLjEzMiAxLjkyYy4xMS4yNjQuMTg0LjQ4Ny4yMjYuNjYuMDIxLjA4Ny4wMzUuMTYuMDQuMjM2LjAwMi4wMzguMDA0LjA3Ny0uMDEyLjE0NCAwIC4wMDMtLjAwNS4wMS0uMDA2LjAxMy4wMy44NzYtLjE4NyAxLjQ3LS4yMTMgMi4zMDYtLjAyLjYwNi4xMzUgMS4zMTguMTczIDIuMDk1LjAzNi43My0uMDUyIDEuNTMyLS41MjYgMi4zMTkuMDQuMDQ4LjA3Ni4wOTYuMTE0LjE0NCAxLjI1NC0xLjk3NSAyLjE1OC00LjE2IDIuNjQtNi4wMjMuMjU4LTEuMDAzLjM5NS0xLjkxMi40MDctMi42MzIuMDEtLjcyLS4xMjQtMS4yNDItLjI5NS0xLjQ2LTEuMzQyLTEuNzE2LTMuMTU4LTIuMTUzLTQuNjgtMi4xNjV6bS00Ljc5LjI1NmMtMS4xODIuMDAzLTIuMDMuMzYtMi42NzMuODk1LS42NjMuNTUzLTEuMTA4IDEuMzEtMS40IDIuMDg1LS4zNDcuOTItLjQ2NiAxLjgxLS41MTMgMi40MTRsLjAxMy0uMDA4Yy4zNTctLjIuODI2LS40IDEuMzI4LS41MTYuNTAyLS4xMTUgMS4wNDMtLjE1MSAxLjUzMy4wMzlzLjg5NS42MzcgMS4wNDIgMS4zMTVjLjcwNCAzLjI1Ny0uMjE5IDQuNDY4LS41NTkgNS4zODJhOS42MSA5LjYxIDAgMCAwLS4zMzEgMS4wMTNjLjA0My0uMDEuMDg2LS4wMjIuMTI5LS4wMjYuMjQtLjAyLjQyOC4wNi41NC4xMDguMzQyLjE0Mi41NzcuNDQuNzA0Ljc4LjAzMy4wODkuMDU3LjE4NS4wNzEuMjg0YS4zMzYuMzM2IDAgMCAxIC4wMi4xMjcgNTUuMTQgNTUuMTQgMCAwIDAgLjAxMyAzLjczOGMuMDIzLjUzOC4wNTcgMS4wMTIuMSAxLjM4Ni4wNDMuMzczLjEwNC42NTcuMTQzLjc1My4xMjguMzIuMzE1LjczOS42NTMgMS4wMjQuMzM4LjI4NC44MjMuNDc0IDEuNzA5LjI4NC43NjgtLjE2NSAxLjI0Mi0uMzk0IDEuNTU5LS43MjMuMzE2LS4zMjkuNTA1LS43ODcuNjI2LTEuNDg4LjE4MS0xLjA1LjU0NS00LjA5NS41ODktNC42NjgtLjAyLS40MzIuMDQ0LS43NjQuMTgyLTEuMDE3LjE0Mi0uMjYuMzYyLS40MTkuNTUyLS41MDUuMDk1LS4wNDMuMTg0LS4wNzIuMjU3LS4wOTNhNS45NTYgNS45NTYgMCAwIDAtLjI0My0uMzI1IDQuNDU2IDQuNDU2IDAgMCAxLS42NjYtMS4wOTkgOC4yOTYgOC4yOTYgMCAwIDAtLjI1Ny0uNDgzYy0uMTMzLS4yNC0uMzAxLS41NC0uNDc3LS44NzctLjM1Mi0uNjc1LS43MzUtMS40OTMtLjkzNC0yLjI5LS4xOTgtLjc5Ni0uMjI3LTEuNjIuMjgxLTIuMjAxLjQ1LS41MTYgMS4yNC0uNzMgMi40MjYtLjYxLS4wMzUtLjEwNS0uMDU2LS4xOTItLjExNS0uMzMyYTcuODE3IDcuODE3IDAgMCAwLTEuMDQxLTEuNzY0Yy0xLjAwNS0xLjI4NS0yLjYzMi0yLjU1OS01LjE0Ni0yLjZoLS4xMTV6bS02LjY0Mi4wNTJjLS4xMjcgMC0uMjU0LjAwNC0uMzguMDExLTEuMDEuMDU4LTEuOTY1LjM1MS0yLjY0OCAxLjA3NS0uNjg0LjcyNC0xLjEzNCAxLjkxMS0xLjAzNiAzLjg3Ni4wMTkuMzcyLjE4MSAxLjQxNC40NTkgMi42NTIuMjc3IDEuMjM4LjY3IDIuNjk1IDEuMTQyIDMuOTgyLjQ3MyAxLjI4NyAxLjA0NiAyLjQwNyAxLjU5IDIuOTM3LjI3NC4yNjUuNTEyLjM3Mi43MjguMzYzLjIxNy0uMDEuNDc4LS4xMzUuNzk3LS41MThhNDMuMjQ0IDQzLjI0NCAwIDAgMSAxLjgxLTIuMDQ4IDMuNDk3IDMuNDk3IDAgMCAxLTEuMTY3LTMuMTVjLjEwMy0uNzM5LjExNy0xLjQzLjEwNS0xLjk3Ni0uMDEyLS41MzItLjA1LS44ODYtLjA1LTEuMTA3YS4zMzYuMzM2IDAgMCAxIDAtLjAxOXYtLjAwNWwtLjAwMS0uMDA2di0uMDAxYTkuODkzIDkuODkzIDAgMCAxIC41OTItMy4zNzZjLjI4LS43NDQuNjk3LTEuNSAxLjMyMi0yLjExMi0uNjE0LS4yMDItMS43MDQtLjUxLTIuODg0LS41NjhhNy42MDMgNy42MDMgMCAwIDAtLjM4LS4wMXpNMTguMTk5IDYuOWMtLjY3OS4wMDktMS4wNi4xODQtMS4yNi40MTMtLjI4My4zMjUtLjMxLjg5NS0uMTM0IDEuNTk3LjE3NS43MDMuNTM3IDEuNDg5Ljg3NyAyLjE0Mi4xNy4zMjcuMzM1LjYyMS40NjguODYuMTM0LjI0LjIzMi40MS4yOTIuNTU1LjA1NS4xMzQuMTE2LjI1Mi4xNzguMzYyLjI2My0uNTU1LjMxLTEuMS4yODMtMS42NjgtLjAzNS0uNzAzLS4xOTgtMS40MjItLjE3NC0yLjE1LjAyNy0uODUxLjE5NS0xLjQwNS4yMS0yLjA2M2E1Ljc5MyA1Ljc5MyAwIDAgMC0uNzQtLjA0OHptLTguMjM0LjExNWEyLjgyIDIuODIgMCAwIDAtLjYxNi4wNzQgNC42NjUgNC42NjUgMCAwIDAtMS4xNTMuNDQ5IDIuNDE3IDIuNDE3IDAgMCAwLS4zNDkuMjI4bC0uMDIyLjAyYy4wMDYuMTQ2LjAzNS41LjA0NyAxLjAyMS4wMTIuNTctLjAwMiAxLjI5Ny0uMTEyIDIuMDg0LS4yMzkgMS43MSAxLjAwMiAzLjEyNiAyLjQ2IDMuMTI4LjA4NS0uMzUxLjIyNS0uNzA3LjM2NS0xLjA4Mi40MDYtMS4wOTQgMS4yMDUtMS44OTIuNTMyLTUuMDA2LS4xMS0uNTEtLjMyOC0uNzE2LS42MjgtLjgzMmExLjQ3NCAxLjQ3NCAwIDAgMC0uNTI0LS4wODR6bTcuOTE3LjIwNGguMDVjLjA2Ni4wMDIuMTI3LjAwOS4xOC4wMjIuMDU0LjAxMi4xLjAzLjEzOC4wNTVhLjE2NC4xNjQgMCAwIDEgLjA3NS4xMWwtLjAwMS4wMDhoLjAwMS0uMDAxYS4yNC4yNCAwIDAgMS0uMDM1LjEzNS42NjguNjY4IDAgMCAxLS4xMS4xNS42NzcuNjc3IDAgMCAxLS4zODYuMjEyLjU5LjU5IDAgMCAxLS40MS0uMTAzLjYwOC42MDggMCAwIDEtLjEzLS4xMTguMjYuMjYgMCAwIDEtLjA2My0uMTI3LjE3LjE3IDAgMCAxIC4wNDItLjEyOC4zODQuMzg0IDAgMCAxIC4xMTctLjA5Yy4wOTYtLjA1NC4yMjYtLjA5NC4zNzMtLjExNi4wNTUtLjAwOC4xMDktLjAxMi4xNi0uMDEzem0tNy44Mi4xNjhjLjA1MyAwIC4xMDkuMDA1LjE2Ni4wMTMuMTUzLjAyMS4yODkuMDYyLjM5My4xMjJhLjQ0Ni40NDYgMCAwIDEgLjEzMy4xMDYuMjIzLjIyMyAwIDAgMSAuMDU0LjE3LjMwMi4zMDIgMCAwIDEtLjA3NS4xNTQuNjQ5LjY0OSAwIDAgMS0uMTQzLjEzLjY0LjY0IDAgMCAxLS40NDguMTEzLjcyOC43MjggMCAwIDEtLjQyLS4yMjguNzEuNzEgMCAwIDEtLjExOC0uMTY0LjI4LjI4IDAgMCAxLS4wNDEtLjE3N2MuMDE1LS4xMDguMTA0LS4xNjQuMTkxLS4xOTVhLjg2Ni44NjYgMCAwIDEgLjMwNy0uMDR6bTkuMDYgNy4zNDNsLS4wMDMuMDAxYy0uMTQ3LjA1My0uMjY4LjA3NS0uMzcuMTJhLjQ1Mi40NTIgMCAwIDAtLjIzOS4yMTRjLS4wNjMuMTE1LS4xMTcuMzE5LS4xMDEuNjY2YS41MS41MSAwIDAgMCAuMTQ4LjA3Yy4xNzEuMDUyLjQ1OC4wODYuNzc4LjA4MS42MzgtLjAwNyAxLjQyMy0uMTU2IDEuODQtLjM1YTMuOTUgMy45NSAwIDAgMCAuOTQzLS42MTVoLS4wMDFjLTEuMzkzLjI4OC0yLjE4LjIxMS0yLjY2My4wMTJhMS4zMTUgMS4zMTUgMCAwIDEtLjMzMi0uMnptLTguMDMxLjA5NGgtLjAyMWMtLjA1My4wMDUtLjEzLjAyMy0uMjc5LjE4OC0uMzQ4LjM5LS40Ny42MzUtLjc1Ny44NjQtLjI4Ny4yMjgtLjY2LjM1LTEuNDA1LjUwMy0uMjM2LjA0OC0uMzcxLjEwMS0uNDYxLjE0NC4wMjkuMDI0LjAyNi4wMy4wNy4wNTMuMTA5LjA2LjI0OS4xMTMuMzYyLjE0Mi4zMi4wOC44NDYuMTczIDEuMzk1LjA4LjU0OS0uMDk0IDEuMTItLjM1NyAxLjYwNy0xLjA0LjA4NC0uMTE4LjA5My0uMjkyLjAyNC0uNDc5LS4wNy0uMTg3LS4yMjMtLjM0OC0uMzMxLS4zOTNhLjY1My42NTMgMCAwIDAtLjIwNC0uMDZ6Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "PostgreSQL Source",
        "description" : "Query data from a PostgreSQL Database.",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 5432
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured PostgreSQL Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured PostgreSQL Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the PostgreSQL Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the PostgreSQL Database.",
            "type" : "string"
          },
          "consumedQuery" : {
            "title" : "Consumed Query",
            "description" : "A query to run on a tuple consumed.",
            "type" : "string",
            "example" : "DELETE FROM accounts where user_id = :#user_id"
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.postgresql:postgresql:42.7.1", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:postgresql://{{serverName}}:{{serverPort}}/{{databaseName}}",
            "driverClassName" : "org.postgresql.Driver"
          }
        } ],
        "from" : {
          "uri" : "sql:{{query}}",
          "parameters" : {
            "dataSource" : "#bean:{{dsBean}}",
            "onConsume" : "{{?consumedQuery}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "PostgreSQL Source",
      "description" : "Query data from a PostgreSQL Database.",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 5432
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured PostgreSQL Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured PostgreSQL Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the PostgreSQL Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the PostgreSQL Database."
        },
        "consumedQuery" : {
          "type" : "string",
          "title" : "Consumed Query",
          "description" : "A query to run on a tuple consumed."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        }
      }
    }
  },
  "predicate-filter-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "predicate-filter-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Predicate Filter Action",
        "description" : "Filter based on a JsonPath Expression. Since this is a filter, the expression will be a negation, this means that if the foo field of the example is equals to John, the message will go ahead, otherwise it will be filtered out.",
        "required" : [ "expression" ],
        "properties" : {
          "expression" : {
            "title" : "Expression",
            "description" : "The JsonPath Expression to evaluate, without the external parenthesis. Since this is a filter, the expression will be a negation, this means that if the foo field of the example is equals to John, the message will go ahead, otherwise it will be filtered out.",
            "type" : "string",
            "example" : "@.foo =~ /.*John/"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet", "camel:jsonpath" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "filter" : {
              "jsonpath" : "$[?(!({{expression}}))]",
              "steps" : [ {
                "stop" : { }
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Predicate Filter Action",
      "description" : "Filter based on a JsonPath Expression. Since this is a filter, the expression will be a negation, this means that if the foo field of the example is equals to John, the message will go ahead, otherwise it will be filtered out.",
      "required" : [ "expression" ],
      "properties" : {
        "expression" : {
          "type" : "string",
          "title" : "Expression",
          "description" : "The JsonPath Expression to evaluate, without the external parenthesis. Since this is a filter, the expression will be a negation, this means that if the foo field of the example is equals to John, the message will go ahead, otherwise it will be filtered out."
        }
      }
    }
  },
  "protobuf-deserialize-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "protobuf-deserialize-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Protobuf Deserialize Action",
        "description" : "Deserialize payload to Protobuf",
        "type" : "object",
        "properties" : {
          "schema" : {
            "title" : "Schema",
            "description" : "The Protobuf schema to use during serialization (as single-line)",
            "type" : "string",
            "example" : "message Person { required string first = 1; required string last = 2; }"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core", "camel:jackson-protobuf" ],
      "template" : {
        "beans" : [ {
          "name" : "schemaResolver",
          "type" : "#class:org.apache.camel.kamelets.utils.format.schema.protobuf.ProtobufSchemaResolver",
          "property" : [ {
            "key" : "schema",
            "value" : "{{schema:}}"
          } ]
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "protobuf" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode",
                "schemaResolver" : "#bean:{{schemaResolver}}"
              }
            }
          }, {
            "removeHeader" : {
              "name" : "Content-Type"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Protobuf Deserialize Action",
      "description" : "Deserialize payload to Protobuf",
      "properties" : {
        "schema" : {
          "type" : "string",
          "title" : "Schema",
          "description" : "The Protobuf schema to use during serialization (as single-line)"
        }
      }
    }
  },
  "protobuf-serialize-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "protobuf-serialize-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Protobuf Serialize Action",
        "description" : "Serialize payload to Protobuf",
        "type" : "object",
        "properties" : {
          "schema" : {
            "title" : "Schema",
            "description" : "The Protobuf schema to use during serialization (as single-line)",
            "type" : "string",
            "example" : "message Person { required string first = 1; required string last = 2; }"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core", "camel:jackson-protobuf" ],
      "template" : {
        "beans" : [ {
          "name" : "schemaResolver",
          "type" : "#class:org.apache.camel.kamelets.utils.format.schema.protobuf.ProtobufSchemaResolver",
          "property" : [ {
            "key" : "schema",
            "value" : "{{schema:}}"
          } ]
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "marshal" : {
              "protobuf" : {
                "library" : "Jackson",
                "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode",
                "schemaResolver" : "#bean:{{schemaResolver}}"
              }
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "application/protobuf"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Protobuf Serialize Action",
      "description" : "Serialize payload to Protobuf",
      "properties" : {
        "schema" : {
          "type" : "string",
          "title" : "Schema",
          "description" : "The Protobuf schema to use during serialization (as single-line)"
        }
      }
    }
  },
  "pulsar-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "pulsar-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgdmlld0JveD0iMCAwIDYwLjk3Mzk5OSA0My4wOSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjQiCiAgIHNvZGlwb2RpOmRvY25hbWU9InB1bHNhci1sb2dvLnN2ZyIKICAgd2lkdGg9IjYwLjk3Mzk5OSIKICAgaGVpZ2h0PSI0My4wOSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjEgKDNiZjVhZTBkMjUsIDIwMjEtMDktMjApIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzI2IgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIHVuaXRzPSJweCIKICAgICBpbmtzY2FwZTp6b29tPSIzLjAwNDM2NjIiCiAgICAgaW5rc2NhcGU6Y3g9IjMxLjQ1NDIyMSIKICAgICBpbmtzY2FwZTpjeT0iNDMuNDM2NzgyIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDgwIgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMjQiIC8+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiPgogICAgPHN0eWxlCiAgICAgICBpZD0ic3R5bGUyIj4uY2xzLTF7ZmlsbDojMTg4ZmZmO30uY2xzLTJ7ZmlsbDojNDY0ZTU2O308L3N0eWxlPgogICAgPGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwUGF0aDMxNiI+CiAgICAgIDxyZWN0CiAgICAgICAgIGlkPSJyZWN0MzE4IgogICAgICAgICB3aWR0aD0iNjAuOTczOTQ2IgogICAgICAgICBoZWlnaHQ9IjQzLjUxMzExMSIKICAgICAgICAgeD0iNC4wOTY2MDMzZS0xMCIKICAgICAgICAgeT0iLTAuNDIzMTExMTEiIC8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KICA8dGl0bGUKICAgICBpZD0idGl0bGU2Ij5Bc3NldCAyPC90aXRsZT4KICA8ZwogICAgIGlkPSJMYXllcl8yIgogICAgIGRhdGEtbmFtZT0iTGF5ZXIgMiIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjI5NzE0NDIsMC4wNjg0ODA4NSkiCiAgICAgY2xpcC1wYXRoPSJ1cmwoI2NsaXBQYXRoMzE2KSI+CiAgICA8ZwogICAgICAgaWQ9IkxheWVyXzEtMiIKICAgICAgIGRhdGEtbmFtZT0iTGF5ZXIgMSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGNsYXNzPSJjbHMtMSIKICAgICAgICAgZD0iTSA2MSwxMy43MyBIIDQ2LjA5IEMgNDIuMDYsNiAzNy44LDAgMzIsMCAyNC40NSwwIDIwLjksNi41OSAxNy40NywxMyBsIC0wLjMsMC41NiBIIDAgdiAzLjgxIGggMTAgYyAzLjUzLDAgNC4yNSwxLjE5IDQuMjUsMS4xOSAtMi43Nyw0LjMgLTYuMSw4LjU1IC0xMS42NSw4LjU1IEggMCB2IDQgaCAyLjYyIGMgMTAuNzYsMCAxNS40NiwtOC43MyAxOS4yMywtMTUuNzQgQyAyNS4zMSw4LjkxIDI3LjcyLDUgMzIsNSBjIDQuNDQsMCA5LjExLDkuNjYgMTMuMjIsMTguMTkgMC42LDEuMjQgMS4yMSwyLjUxIDEuODMsMy43NyAtMTUuNzYsMC41IC0yMy4yNyw0LjE5IC0yOS4zOCw3LjIgLTQuNDcsMi4yIC04LDQuOTMgLTEzLjgxLDQuOTMgSCAwIHYgNCBoIDMuODMgYyA3LDAgMTEuMzYsLTIuMTYgMTYsLTQuNDUgNi40MywtMy4xNiAxMy43MiwtNi43NCAzMC45LC02Ljc0IGggOS45MyB2IC00IGggLTUuNjEgYSAzLDMgMCAwIDEgLTIuNDcsLTEgQyA1MS42LDI1IDUwLjY0LDIzIDQ5LjcsMjEgbCAtMS4zLC0yLjY2IGMgMCwwIDAuOTMsLTEgMy41MSwtMSBIIDYxIFoiCiAgICAgICAgIGlkPSJwYXRoOCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgICBkPSJNIDc5LjgzLDEzLjcgSCA2OS40NCB2IDMuNzQgSCA3OS42IGMgNC4yLDAgNi42MSwxLjkxIDYuNjEsNS4zMyAwLDMuMjQgLTIuNjYsNS4zMyAtNi43Nyw1LjMzIGggLTEwIHYgMTMgaCA0IHYgLTkuMyBoIDUuOTMgYyA1LjQyLDAgMTAuODgsLTIuODMgMTAuODgsLTkuMjIgLTAuMDMsLTUuNCAtNC4xMSwtOC44OCAtMTAuNDIsLTguODggeiIKICAgICAgICAgaWQ9InBhdGgxMCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgICBkPSJtIDExMy4zMSwyOS41NyBjIDAsNS4zMSAtMi42Niw4LjI0IC03LjQ4LDguMjQgLTQuODIsMCAtNy42LC0zLjA3IC03LjYsLTguNDMgViAxMy43IGggLTQgdiAxNS44NyBjIDAsNy4zOSA0LjQsMTIgMTEuNDksMTIgNy4wOSwwIDExLjU2LC00LjU3IDExLjU2LC0xMi4yMyBWIDEzLjcgaCAtNCB6IgogICAgICAgICBpZD0icGF0aDEyIiAvPgogICAgICA8cG9seWdvbgogICAgICAgICBjbGFzcz0iY2xzLTIiCiAgICAgICAgIHBvaW50cz0iMTQyLjIyLDQxLjE0IDE0Mi4yMiwzNy4zOSAxMjcuMzMsMzcuMzkgMTI3LjMzLDEzLjcgMTIzLjM2LDEzLjcgMTIzLjM2LDQxLjE0ICIKICAgICAgICAgaWQ9InBvbHlnb24xNCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgICBkPSJNIDE1Ni42OSwyNS41IEMgMTUwLjk1LDI0LjI3IDE0OS45LDIyLjk3IDE0OS45LDIwLjc2IDE0OS45LDE4LjU1IDE1MiwxNyAxNTUsMTcgYSAxMS4xMiwxMS4xMiAwIDAgMSA3LjMyLDIuNzYgbCAwLjQsMC4zMiAyLjM2LC0zLjA4IC0wLjM3LC0wLjMgYSAxNC4yMiwxNC4yMiAwIDAgMCAtOS42MSwtMy4zNiBjIC01LjMyLDAgLTkuMTgsMy4yNCAtOS4xOCw3Ljc5IDAsNS4wNiAzLjcxLDYuOTEgOS4yNyw4LjEyIDUuNTYsMS4yMSA2LjQ5LDIuNDQgNi40OSw0LjYyIDAsMi4zNiAtMi4yMiw0IC01LjQxLDQgLTMuMzcsMCAtNS45LC0xIC04Ljc0LC0zLjYyIGwgLTAuMzgsLTAuMzQgLTIuNDksMi45NSAwLjM2LDAuMzIgYSAxNS45MSwxNS45MSAwIDAgMCAxMS4xNCw0LjM2IGMgNS42MSwwIDkuNTIsLTMuMjggOS41MiwtOCAwLjAxLC00LjI4IC0yLjY4LC02LjY3IC04Ljk5LC04LjA0IHoiCiAgICAgICAgIGlkPSJwYXRoMTYiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGNsYXNzPSJjbHMtMiIKICAgICAgICAgZD0ibSAxODAuMTksMTMuNTEgLTEyLjUsMjcuNjMgaCA0LjE0IGwgMy4xNCwtNyBoIDEzLjc2IGwgMy4xLDcgaCA0LjI5IGwgLTEyLjUsLTI3LjYzIHogbSAtMy42MSwxNyA1LjI5LC0xMS44IDUuMjYsMTEuOCB6IgogICAgICAgICBpZD0icGF0aDE4IiAvPgogICAgICA8cGF0aAogICAgICAgICBjbGFzcz0iY2xzLTIiCiAgICAgICAgIGQ9Im0gMjE1LjE4LDMwLjE1IGMgNC4yOSwtMSA2LjgyLC00IDYuODIsLTguMTEgYSA3Ljc3LDcuNzcgMCAwIDAgLTIuMTgsLTUuNTYgMTEsMTEgMCAwIDAgLTcuODcsLTIuNzkgaCAtMTEuODcgdiAyNy40NSBoIDQgViAzMC44NSBoIDYuODIgbCA3LjY3LDEwLjI4IGggNC45IHogbSAtMTEuMTQsLTMgdiAtOS43MSBoIDcuNjcgYyA0LDAgNi4yOCwxLjcyIDYuMjgsNC44IDAsMy4wOCAtMi40OCw1IC02LjMxLDUgeiIKICAgICAgICAgaWQ9InBhdGgyMCIgLz4KICAgIDwvZz4KICA8L2c+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODE5Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOnRpdGxlPkFzc2V0IDI8L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Pulsar",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "dependencies" : [ "camel:pulsar", "camel:kamelet", "camel:core" ],
      "definition" : {
        "title" : "Pulsar Sink",
        "description" : "Send documents to Pulsar.",
        "required" : [ "topicType", "topic", "namespaceName", "tenant", "serviceUrl" ],
        "properties" : {
          "topic" : {
            "title" : "Topic Name",
            "description" : "The topic name or regexp",
            "type" : "string"
          },
          "tenant" : {
            "title" : "Tenant Name",
            "description" : "The Tenant Name",
            "type" : "string"
          },
          "topicType" : {
            "title" : "Topic Type",
            "description" : "The topic type.",
            "type" : "string",
            "enum" : [ "persistent", "non-persistent" ]
          },
          "namespaceName" : {
            "title" : "Pulsar Namespace Name",
            "description" : "The Pulsar Namespace Name",
            "type" : "string"
          },
          "serviceUrl" : {
            "title" : "Service URL",
            "description" : "The Pulsar Service URL to point while creating the client from URI.",
            "type" : "string"
          },
          "authenticationClass" : {
            "title" : "Authentication Class",
            "description" : "The Authentication FQCN to be used while creating the client from URI.",
            "type" : "string"
          },
          "authenticationParams" : {
            "title" : "Authentication Params",
            "description" : "The Authentication Parameters to be used while creating the client from URI.",
            "type" : "string"
          },
          "batchingEnabled" : {
            "title" : "Enable Batching",
            "description" : "Control whether automatic batching of messages is enabled for the producer.",
            "type" : "boolean",
            "default" : true
          },
          "batchingMaxMessages" : {
            "title" : "Batching Maximum Messages",
            "description" : "The maximum size to batch messages.",
            "type" : "integer",
            "default" : 1000
          },
          "batchingMaxPublishDelayMicros" : {
            "title" : "Batching Maximum Publish Delay in Microsecond",
            "description" : "The maximum time period within which the messages sent will be batched if batchingEnabled is true.",
            "type" : "integer",
            "default" : 1000
          },
          "blockIfQueueFull" : {
            "title" : "Block If Queue Full",
            "description" : "Whether to block the producing thread if pending messages queue is full or to throw a ProducerQueueIsFullError.",
            "type" : "boolean",
            "default" : false
          },
          "compressionType" : {
            "title" : "Compression Type",
            "description" : "Compression type to use.",
            "type" : "string",
            "default" : "NONE",
            "enum" : [ "NONE", "LZ4", "ZLIB", "ZSTD", "SNAPPY" ]
          },
          "initialSequenceId" : {
            "title" : "Initial SequenceId",
            "description" : "The first message published will have a sequence Id of initialSequenceId 1.",
            "type" : "integer",
            "default" : -1
          },
          "lazyStartProducer" : {
            "title" : "Number Of Consumer Threads",
            "description" : "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
            "type" : "boolean",
            "default" : false
          },
          "maxPendingMessages" : {
            "title" : "Maximum Pending Messages",
            "description" : "Size of the pending massages queue. When the queue is full, by default, any further sends will fail unless blockIfQueueFull=true.",
            "type" : "integer",
            "default" : 1000
          },
          "maxPendingMessagesAcrossPartitions" : {
            "title" : "Maximum Pending Messages Across Partitions",
            "description" : "The maximum number of pending messages for partitioned topics. The maxPendingMessages value will be reduced if (number of partitions maxPendingMessages) exceeds this value. Partitioned topics have a pending message queue for each partition.",
            "type" : "integer",
            "default" : 50000
          },
          "messageRoutingMode" : {
            "title" : "Message Routing Mode",
            "description" : "Message Routing Mode to use.",
            "type" : "string",
            "default" : "RoundRobinPartition",
            "enum" : [ "SinglePartition", "RoundRobinPartition", "CustomPartition" ]
          },
          "producerName" : {
            "title" : "Producer Name",
            "description" : "Name of the producer. If unset, lets Pulsar select a unique identifier.",
            "type" : "string"
          },
          "sendTimeoutMs" : {
            "title" : "Send Timeout in Milliseconds",
            "description" : "Send timeout in milliseconds.",
            "type" : "integer",
            "default" : 30000
          }
        },
        "type" : "object"
      },
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "pulsar:{{topicType}}/{{tenant}}/{{namespaceName}}/{{topic}}",
              "parameters" : {
                "serviceUrl" : "{{serviceUrl}}",
                "authenticationClass" : "{{?authenticationClass}}",
                "authenticationParams" : "{{?authenticationParams}}",
                "batchingEnabled" : "{{?batchingEnabled}}",
                "batchingMaxMessages" : "{{?batchingMaxMessages}}",
                "batchingMaxPublishDelayMicros" : "{{?batchingMaxPublishDelayMicros}}",
                "blockIfQueueFull" : "{{?blockIfQueueFull}}",
                "compressionType" : "{{?compressionType}}",
                "initialSequenceId" : "{{?initialSequenceId}}",
                "lazyStartProducer" : "{{?lazyStartProducer}}",
                "maxPendingMessages" : "{{?maxPendingMessages}}",
                "maxPendingMessagesAcrossPartitions" : "{{?maxPendingMessagesAcrossPartitions}}",
                "messageRoutingMode" : "{{?messageRoutingMode}}",
                "producerName" : "{{?producerName}}",
                "sendTimeoutMs" : "{{?sendTimeoutMs}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Pulsar Sink",
      "description" : "Send documents to Pulsar.",
      "required" : [ "topicType", "topic", "namespaceName", "tenant", "serviceUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Name",
          "description" : "The topic name or regexp"
        },
        "tenant" : {
          "type" : "string",
          "title" : "Tenant Name",
          "description" : "The Tenant Name"
        },
        "topicType" : {
          "type" : "string",
          "title" : "Topic Type",
          "description" : "The topic type.",
          "enum" : [ "persistent", "non-persistent" ]
        },
        "namespaceName" : {
          "type" : "string",
          "title" : "Pulsar Namespace Name",
          "description" : "The Pulsar Namespace Name"
        },
        "serviceUrl" : {
          "type" : "string",
          "title" : "Service URL",
          "description" : "The Pulsar Service URL to point while creating the client from URI."
        },
        "authenticationClass" : {
          "type" : "string",
          "title" : "Authentication Class",
          "description" : "The Authentication FQCN to be used while creating the client from URI."
        },
        "authenticationParams" : {
          "type" : "string",
          "title" : "Authentication Params",
          "description" : "The Authentication Parameters to be used while creating the client from URI."
        },
        "batchingEnabled" : {
          "type" : "boolean",
          "title" : "Enable Batching",
          "description" : "Control whether automatic batching of messages is enabled for the producer.",
          "default" : true
        },
        "batchingMaxMessages" : {
          "type" : "integer",
          "title" : "Batching Maximum Messages",
          "description" : "The maximum size to batch messages.",
          "default" : 1000
        },
        "batchingMaxPublishDelayMicros" : {
          "type" : "integer",
          "title" : "Batching Maximum Publish Delay in Microsecond",
          "description" : "The maximum time period within which the messages sent will be batched if batchingEnabled is true.",
          "default" : 1000
        },
        "blockIfQueueFull" : {
          "type" : "boolean",
          "title" : "Block If Queue Full",
          "description" : "Whether to block the producing thread if pending messages queue is full or to throw a ProducerQueueIsFullError.",
          "default" : false
        },
        "compressionType" : {
          "type" : "string",
          "title" : "Compression Type",
          "description" : "Compression type to use.",
          "enum" : [ "NONE", "LZ4", "ZLIB", "ZSTD", "SNAPPY" ],
          "default" : "NONE"
        },
        "initialSequenceId" : {
          "type" : "integer",
          "title" : "Initial SequenceId",
          "description" : "The first message published will have a sequence Id of initialSequenceId 1.",
          "default" : -1
        },
        "lazyStartProducer" : {
          "type" : "boolean",
          "title" : "Number Of Consumer Threads",
          "description" : "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
          "default" : false
        },
        "maxPendingMessages" : {
          "type" : "integer",
          "title" : "Maximum Pending Messages",
          "description" : "Size of the pending massages queue. When the queue is full, by default, any further sends will fail unless blockIfQueueFull=true.",
          "default" : 1000
        },
        "maxPendingMessagesAcrossPartitions" : {
          "type" : "integer",
          "title" : "Maximum Pending Messages Across Partitions",
          "description" : "The maximum number of pending messages for partitioned topics. The maxPendingMessages value will be reduced if (number of partitions maxPendingMessages) exceeds this value. Partitioned topics have a pending message queue for each partition.",
          "default" : 50000
        },
        "messageRoutingMode" : {
          "type" : "string",
          "title" : "Message Routing Mode",
          "description" : "Message Routing Mode to use.",
          "enum" : [ "SinglePartition", "RoundRobinPartition", "CustomPartition" ],
          "default" : "RoundRobinPartition"
        },
        "producerName" : {
          "type" : "string",
          "title" : "Producer Name",
          "description" : "Name of the producer. If unset, lets Pulsar select a unique identifier."
        },
        "sendTimeoutMs" : {
          "type" : "integer",
          "title" : "Send Timeout in Milliseconds",
          "description" : "Send timeout in milliseconds.",
          "default" : 30000
        }
      }
    }
  },
  "pulsar-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "pulsar-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgdmlld0JveD0iMCAwIDYwLjk3Mzk5OSA0My4wOSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjQiCiAgIHNvZGlwb2RpOmRvY25hbWU9InB1bHNhci1sb2dvLnN2ZyIKICAgd2lkdGg9IjYwLjk3Mzk5OSIKICAgaGVpZ2h0PSI0My4wOSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjEgKDNiZjVhZTBkMjUsIDIwMjEtMDktMjApIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzI2IgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIHVuaXRzPSJweCIKICAgICBpbmtzY2FwZTp6b29tPSIzLjAwNDM2NjIiCiAgICAgaW5rc2NhcGU6Y3g9IjMxLjQ1NDIyMSIKICAgICBpbmtzY2FwZTpjeT0iNDMuNDM2NzgyIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDgwIgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMjQiIC8+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiPgogICAgPHN0eWxlCiAgICAgICBpZD0ic3R5bGUyIj4uY2xzLTF7ZmlsbDojMTg4ZmZmO30uY2xzLTJ7ZmlsbDojNDY0ZTU2O308L3N0eWxlPgogICAgPGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwUGF0aDMxNiI+CiAgICAgIDxyZWN0CiAgICAgICAgIGlkPSJyZWN0MzE4IgogICAgICAgICB3aWR0aD0iNjAuOTczOTQ2IgogICAgICAgICBoZWlnaHQ9IjQzLjUxMzExMSIKICAgICAgICAgeD0iNC4wOTY2MDMzZS0xMCIKICAgICAgICAgeT0iLTAuNDIzMTExMTEiIC8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KICA8dGl0bGUKICAgICBpZD0idGl0bGU2Ij5Bc3NldCAyPC90aXRsZT4KICA8ZwogICAgIGlkPSJMYXllcl8yIgogICAgIGRhdGEtbmFtZT0iTGF5ZXIgMiIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjI5NzE0NDIsMC4wNjg0ODA4NSkiCiAgICAgY2xpcC1wYXRoPSJ1cmwoI2NsaXBQYXRoMzE2KSI+CiAgICA8ZwogICAgICAgaWQ9IkxheWVyXzEtMiIKICAgICAgIGRhdGEtbmFtZT0iTGF5ZXIgMSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGNsYXNzPSJjbHMtMSIKICAgICAgICAgZD0iTSA2MSwxMy43MyBIIDQ2LjA5IEMgNDIuMDYsNiAzNy44LDAgMzIsMCAyNC40NSwwIDIwLjksNi41OSAxNy40NywxMyBsIC0wLjMsMC41NiBIIDAgdiAzLjgxIGggMTAgYyAzLjUzLDAgNC4yNSwxLjE5IDQuMjUsMS4xOSAtMi43Nyw0LjMgLTYuMSw4LjU1IC0xMS42NSw4LjU1IEggMCB2IDQgaCAyLjYyIGMgMTAuNzYsMCAxNS40NiwtOC43MyAxOS4yMywtMTUuNzQgQyAyNS4zMSw4LjkxIDI3LjcyLDUgMzIsNSBjIDQuNDQsMCA5LjExLDkuNjYgMTMuMjIsMTguMTkgMC42LDEuMjQgMS4yMSwyLjUxIDEuODMsMy43NyAtMTUuNzYsMC41IC0yMy4yNyw0LjE5IC0yOS4zOCw3LjIgLTQuNDcsMi4yIC04LDQuOTMgLTEzLjgxLDQuOTMgSCAwIHYgNCBoIDMuODMgYyA3LDAgMTEuMzYsLTIuMTYgMTYsLTQuNDUgNi40MywtMy4xNiAxMy43MiwtNi43NCAzMC45LC02Ljc0IGggOS45MyB2IC00IGggLTUuNjEgYSAzLDMgMCAwIDEgLTIuNDcsLTEgQyA1MS42LDI1IDUwLjY0LDIzIDQ5LjcsMjEgbCAtMS4zLC0yLjY2IGMgMCwwIDAuOTMsLTEgMy41MSwtMSBIIDYxIFoiCiAgICAgICAgIGlkPSJwYXRoOCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgICBkPSJNIDc5LjgzLDEzLjcgSCA2OS40NCB2IDMuNzQgSCA3OS42IGMgNC4yLDAgNi42MSwxLjkxIDYuNjEsNS4zMyAwLDMuMjQgLTIuNjYsNS4zMyAtNi43Nyw1LjMzIGggLTEwIHYgMTMgaCA0IHYgLTkuMyBoIDUuOTMgYyA1LjQyLDAgMTAuODgsLTIuODMgMTAuODgsLTkuMjIgLTAuMDMsLTUuNCAtNC4xMSwtOC44OCAtMTAuNDIsLTguODggeiIKICAgICAgICAgaWQ9InBhdGgxMCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgICBkPSJtIDExMy4zMSwyOS41NyBjIDAsNS4zMSAtMi42Niw4LjI0IC03LjQ4LDguMjQgLTQuODIsMCAtNy42LC0zLjA3IC03LjYsLTguNDMgViAxMy43IGggLTQgdiAxNS44NyBjIDAsNy4zOSA0LjQsMTIgMTEuNDksMTIgNy4wOSwwIDExLjU2LC00LjU3IDExLjU2LC0xMi4yMyBWIDEzLjcgaCAtNCB6IgogICAgICAgICBpZD0icGF0aDEyIiAvPgogICAgICA8cG9seWdvbgogICAgICAgICBjbGFzcz0iY2xzLTIiCiAgICAgICAgIHBvaW50cz0iMTQyLjIyLDQxLjE0IDE0Mi4yMiwzNy4zOSAxMjcuMzMsMzcuMzkgMTI3LjMzLDEzLjcgMTIzLjM2LDEzLjcgMTIzLjM2LDQxLjE0ICIKICAgICAgICAgaWQ9InBvbHlnb24xNCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgICBkPSJNIDE1Ni42OSwyNS41IEMgMTUwLjk1LDI0LjI3IDE0OS45LDIyLjk3IDE0OS45LDIwLjc2IDE0OS45LDE4LjU1IDE1MiwxNyAxNTUsMTcgYSAxMS4xMiwxMS4xMiAwIDAgMSA3LjMyLDIuNzYgbCAwLjQsMC4zMiAyLjM2LC0zLjA4IC0wLjM3LC0wLjMgYSAxNC4yMiwxNC4yMiAwIDAgMCAtOS42MSwtMy4zNiBjIC01LjMyLDAgLTkuMTgsMy4yNCAtOS4xOCw3Ljc5IDAsNS4wNiAzLjcxLDYuOTEgOS4yNyw4LjEyIDUuNTYsMS4yMSA2LjQ5LDIuNDQgNi40OSw0LjYyIDAsMi4zNiAtMi4yMiw0IC01LjQxLDQgLTMuMzcsMCAtNS45LC0xIC04Ljc0LC0zLjYyIGwgLTAuMzgsLTAuMzQgLTIuNDksMi45NSAwLjM2LDAuMzIgYSAxNS45MSwxNS45MSAwIDAgMCAxMS4xNCw0LjM2IGMgNS42MSwwIDkuNTIsLTMuMjggOS41MiwtOCAwLjAxLC00LjI4IC0yLjY4LC02LjY3IC04Ljk5LC04LjA0IHoiCiAgICAgICAgIGlkPSJwYXRoMTYiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGNsYXNzPSJjbHMtMiIKICAgICAgICAgZD0ibSAxODAuMTksMTMuNTEgLTEyLjUsMjcuNjMgaCA0LjE0IGwgMy4xNCwtNyBoIDEzLjc2IGwgMy4xLDcgaCA0LjI5IGwgLTEyLjUsLTI3LjYzIHogbSAtMy42MSwxNyA1LjI5LC0xMS44IDUuMjYsMTEuOCB6IgogICAgICAgICBpZD0icGF0aDE4IiAvPgogICAgICA8cGF0aAogICAgICAgICBjbGFzcz0iY2xzLTIiCiAgICAgICAgIGQ9Im0gMjE1LjE4LDMwLjE1IGMgNC4yOSwtMSA2LjgyLC00IDYuODIsLTguMTEgYSA3Ljc3LDcuNzcgMCAwIDAgLTIuMTgsLTUuNTYgMTEsMTEgMCAwIDAgLTcuODcsLTIuNzkgaCAtMTEuODcgdiAyNy40NSBoIDQgViAzMC44NSBoIDYuODIgbCA3LjY3LDEwLjI4IGggNC45IHogbSAtMTEuMTQsLTMgdiAtOS43MSBoIDcuNjcgYyA0LDAgNi4yOCwxLjcyIDYuMjgsNC44IDAsMy4wOCAtMi40OCw1IC02LjMxLDUgeiIKICAgICAgICAgaWQ9InBhdGgyMCIgLz4KICAgIDwvZz4KICA8L2c+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODE5Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOnRpdGxlPkFzc2V0IDI8L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Pulsar",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "dependencies" : [ "camel:pulsar", "camel:kamelet", "camel:core" ],
      "definition" : {
        "title" : "Pulsar Source",
        "description" : "Receive data from Pulsar topics.",
        "required" : [ "topicType", "topic", "namespaceName", "tenant", "serviceUrl" ],
        "properties" : {
          "topic" : {
            "title" : "Topic Name",
            "description" : "The topic name or regexp",
            "type" : "string"
          },
          "tenant" : {
            "title" : "Tenant Name",
            "description" : "The Tenant Name",
            "type" : "string"
          },
          "topicType" : {
            "title" : "Topic Type",
            "description" : "The topic type.",
            "type" : "string",
            "enum" : [ "persistent", "non-persistent" ]
          },
          "namespaceName" : {
            "title" : "Pulsar Namespace Name",
            "description" : "The Pulsar Namespace Name",
            "type" : "string"
          },
          "serviceUrl" : {
            "title" : "Service URL",
            "description" : "The Pulsar Service URL to point while creating the client from URI.",
            "type" : "string"
          },
          "authenticationClass" : {
            "title" : "Authentication Class",
            "description" : "The Authentication FQCN to be used while creating the client from URI.",
            "type" : "string"
          },
          "authenticationParams" : {
            "title" : "Authentication Params",
            "description" : "The Authentication Parameters to be used while creating the client from URI.",
            "type" : "string"
          },
          "consumerNamePrefix" : {
            "title" : "Consumer Name Prefix",
            "description" : "Prefix to add to consumer names when a SHARED or FAILOVER subscription is used",
            "type" : "string",
            "default" : "cons"
          },
          "consumerQueueSize" : {
            "title" : "Consumer Queue Size",
            "description" : "Size of the consumer queue",
            "type" : "integer",
            "default" : 10
          },
          "deadLetterTopic" : {
            "title" : "Dead Letter Topic",
            "description" : "Name of the topic where the messages which fail maxRedeliverCount times will be sent. Note: if not set, default topic name will be topicName-subscriptionName-DLQ.",
            "type" : "integer"
          },
          "maxRedeliverCount" : {
            "title" : "Maximum Redelivery Count",
            "description" : "Maximum number of times that a message will be redelivered before being sent to the dead letter queue. If this value is not set, no Dead Letter Policy will be created.",
            "type" : "integer"
          },
          "negativeAckRedeliveryDelayMicros" : {
            "title" : "Negative Ack Redelivery Delay in Microseconds",
            "description" : "Set the negative acknowledgement delay.",
            "type" : "integer",
            "default" : 60000000
          },
          "messageListener" : {
            "title" : "Message Listener",
            "description" : "Whether to use the messageListener interface, or to receive messages using a separate thread pool.",
            "type" : "boolean",
            "default" : true
          },
          "numberOfConsumers" : {
            "title" : "Number Of Consumers",
            "description" : "Number of consumers.",
            "type" : "integer",
            "default" : 1
          },
          "numberOfConsumerThreads" : {
            "title" : "Number Of Consumer Threads",
            "description" : "Number of threads to receive and handle messages when using a separate thread pool.",
            "type" : "integer",
            "default" : 1
          },
          "readCompacted" : {
            "title" : "Read Compacted",
            "description" : "Enable compacted topic reading.",
            "type" : "boolean",
            "default" : false
          },
          "subscriptionInitialPosition" : {
            "title" : "Subscription Initial Position",
            "description" : "Control the initial position in the topic of a newly created subscription. Default is latest message.",
            "type" : "string",
            "default" : "LATEST",
            "enum" : [ "EARLIEST", "LATEST" ]
          },
          "subscriptionName" : {
            "title" : "Subscription Name",
            "description" : "Name of the subscription to use.",
            "type" : "string",
            "default" : "subs"
          },
          "subscriptionTopicsMode" : {
            "title" : "Subscription Topics Mode",
            "description" : "Determines to which topics this consumer should be subscribed to - Persistent, Non-Persistent, or both. Only used with pattern subscriptions.",
            "type" : "string",
            "default" : "PersistentOnly",
            "enum" : [ "PersistentOnly", "NonPersistentOnly", "AllTopics" ]
          },
          "subscriptionType" : {
            "title" : "Subscription Type",
            "description" : "Type of the subscription.",
            "type" : "string",
            "default" : "EXCLUSIVE",
            "enum" : [ "EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ]
          },
          "topicsPattern" : {
            "title" : "Topic Pattern",
            "description" : "Whether the topic is a pattern (regular expression) that allows the consumer to subscribe to all matching topics in the namespace.",
            "type" : "boolean",
            "default" : false
          }
        },
        "type" : "object"
      },
      "template" : {
        "from" : {
          "uri" : "pulsar:{{topicType}}/{{tenant}}/{{namespaceName}}/{{topic}}",
          "parameters" : {
            "serviceUrl" : "{{serviceUrl}}",
            "authenticationClass" : "{{?authenticationClass}}",
            "authenticationParams" : "{{?authenticationParams}}",
            "consumerNamePrefix" : "{{?consumerNamePrefix}}",
            "consumerQueueSize" : "{{?consumerQueueSize}}",
            "deadLetterTopic" : "{{?deadLetterTopic}}",
            "maxRedeliverCount" : "{{?maxRedeliverCount}}",
            "negativeAckRedeliveryDelayMicros" : "{{?negativeAckRedeliveryDelayMicros}}",
            "messageListener" : "{{?messageListener}}",
            "numberOfConsumers" : "{{?numberOfConsumers}}",
            "numberOfConsumerThreads" : "{{?numberOfConsumerThreads}}",
            "readCompacted" : "{{?readCompacted}}",
            "subscriptionInitialPosition" : "{{?subscriptionInitialPosition}}",
            "subscriptionName" : "{{?subscriptionName}}",
            "subscriptionTopicsMode" : "{{?subscriptionTopicsMode}}",
            "subscriptionType" : "{{?subscriptionType}}",
            "topicsPattern" : "{{?topicsPattern}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Pulsar Source",
      "description" : "Receive data from Pulsar topics.",
      "required" : [ "topicType", "topic", "namespaceName", "tenant", "serviceUrl" ],
      "properties" : {
        "topic" : {
          "type" : "string",
          "title" : "Topic Name",
          "description" : "The topic name or regexp"
        },
        "tenant" : {
          "type" : "string",
          "title" : "Tenant Name",
          "description" : "The Tenant Name"
        },
        "topicType" : {
          "type" : "string",
          "title" : "Topic Type",
          "description" : "The topic type.",
          "enum" : [ "persistent", "non-persistent" ]
        },
        "namespaceName" : {
          "type" : "string",
          "title" : "Pulsar Namespace Name",
          "description" : "The Pulsar Namespace Name"
        },
        "serviceUrl" : {
          "type" : "string",
          "title" : "Service URL",
          "description" : "The Pulsar Service URL to point while creating the client from URI."
        },
        "authenticationClass" : {
          "type" : "string",
          "title" : "Authentication Class",
          "description" : "The Authentication FQCN to be used while creating the client from URI."
        },
        "authenticationParams" : {
          "type" : "string",
          "title" : "Authentication Params",
          "description" : "The Authentication Parameters to be used while creating the client from URI."
        },
        "consumerNamePrefix" : {
          "type" : "string",
          "title" : "Consumer Name Prefix",
          "description" : "Prefix to add to consumer names when a SHARED or FAILOVER subscription is used",
          "default" : "cons"
        },
        "consumerQueueSize" : {
          "type" : "integer",
          "title" : "Consumer Queue Size",
          "description" : "Size of the consumer queue",
          "default" : 10
        },
        "deadLetterTopic" : {
          "type" : "integer",
          "title" : "Dead Letter Topic",
          "description" : "Name of the topic where the messages which fail maxRedeliverCount times will be sent. Note: if not set, default topic name will be topicName-subscriptionName-DLQ."
        },
        "maxRedeliverCount" : {
          "type" : "integer",
          "title" : "Maximum Redelivery Count",
          "description" : "Maximum number of times that a message will be redelivered before being sent to the dead letter queue. If this value is not set, no Dead Letter Policy will be created."
        },
        "negativeAckRedeliveryDelayMicros" : {
          "type" : "integer",
          "title" : "Negative Ack Redelivery Delay in Microseconds",
          "description" : "Set the negative acknowledgement delay.",
          "default" : 60000000
        },
        "messageListener" : {
          "type" : "boolean",
          "title" : "Message Listener",
          "description" : "Whether to use the messageListener interface, or to receive messages using a separate thread pool.",
          "default" : true
        },
        "numberOfConsumers" : {
          "type" : "integer",
          "title" : "Number Of Consumers",
          "description" : "Number of consumers.",
          "default" : 1
        },
        "numberOfConsumerThreads" : {
          "type" : "integer",
          "title" : "Number Of Consumer Threads",
          "description" : "Number of threads to receive and handle messages when using a separate thread pool.",
          "default" : 1
        },
        "readCompacted" : {
          "type" : "boolean",
          "title" : "Read Compacted",
          "description" : "Enable compacted topic reading.",
          "default" : false
        },
        "subscriptionInitialPosition" : {
          "type" : "string",
          "title" : "Subscription Initial Position",
          "description" : "Control the initial position in the topic of a newly created subscription. Default is latest message.",
          "enum" : [ "EARLIEST", "LATEST" ],
          "default" : "LATEST"
        },
        "subscriptionName" : {
          "type" : "string",
          "title" : "Subscription Name",
          "description" : "Name of the subscription to use.",
          "default" : "subs"
        },
        "subscriptionTopicsMode" : {
          "type" : "string",
          "title" : "Subscription Topics Mode",
          "description" : "Determines to which topics this consumer should be subscribed to - Persistent, Non-Persistent, or both. Only used with pattern subscriptions.",
          "enum" : [ "PersistentOnly", "NonPersistentOnly", "AllTopics" ],
          "default" : "PersistentOnly"
        },
        "subscriptionType" : {
          "type" : "string",
          "title" : "Subscription Type",
          "description" : "Type of the subscription.",
          "enum" : [ "EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ],
          "default" : "EXCLUSIVE"
        },
        "topicsPattern" : {
          "type" : "boolean",
          "title" : "Topic Pattern",
          "description" : "Whether the topic is a pattern (regular expression) that allows the consumer to subscribe to all matching topics in the namespace.",
          "default" : false
        }
      }
    }
  },
  "redis-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "redis-sink",
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Redis",
        "camel.apache.org/kamelet.namespace" : "Cache",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUwMCIgaGVpZ2h0PSIyMTQ4IiB2aWV3Qm94PSIwIDAgMjU2IDIyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij48cGF0aCBkPSJNMjQ1Ljk3IDE2OC45NDNjLTEzLjY2MiA3LjEyMS04NC40MzQgMzYuMjItOTkuNTAxIDQ0LjA3NS0xNS4wNjcgNy44NTYtMjMuNDM3IDcuNzgtMzUuMzQgMi4wOS0xMS45MDItNS42OS04Ny4yMTYtMzYuMTEyLTEwMC43ODMtNDIuNTk3QzMuNTY2IDE2OS4yNzEgMCAxNjYuNTM1IDAgMTYzLjk1MXYtMjUuODc2czk4LjA1LTIxLjM0NSAxMTMuODc5LTI3LjAyNGMxNS44MjgtNS42NzkgMjEuMzItNS44ODQgMzQuNzktLjk1IDEzLjQ3MiA0LjkzNiA5NC4wMTggMTkuNDY4IDEwNy4zMzEgMjQuMzQ0bC0uMDA2IDI1LjUxYy4wMDIgMi41NTgtMy4wNyA1LjM2NC0xMC4wMjQgOC45ODgiIGZpbGw9IiM5MTI2MjYiLz48cGF0aCBkPSJNMjQ1Ljk2NSAxNDMuMjJjLTEzLjY2MSA3LjExOC04NC40MzEgMzYuMjE4LTk5LjQ5OCA0NC4wNzItMTUuMDY2IDcuODU3LTIzLjQzNiA3Ljc4LTM1LjMzOCAyLjA5LTExLjkwMy01LjY4Ni04Ny4yMTQtMzYuMTEzLTEwMC43OC00Mi41OTQtMTMuNTY2LTYuNDg1LTEzLjg1LTEwLjk0OC0uNTI0LTE2LjE2NiAxMy4zMjYtNS4yMiA4OC4yMjQtMzQuNjA1IDEwNC4wNTUtNDAuMjg0IDE1LjgyOC01LjY3NyAyMS4zMTktNS44ODQgMzQuNzg5LS45NDggMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzUgOTcuMTMgMzcuODEgMTMuMzE2IDQuODgxIDEzLjgyNyA4LjkuMTY2IDE2LjAyIiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTI0NS45NyAxMjcuMDc0Yy0xMy42NjIgNy4xMjItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODUzLTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMi0xMDAuNzgzLTQyLjU5N0MzLjU2NiAxMjcuNDAyIDAgMTI0LjY3IDAgMTIyLjA4NVY5Ni4yMDZzOTguMDUtMjEuMzQ0IDExMy44NzktMjcuMDIzYzE1LjgyOC01LjY3OSAyMS4zMi01Ljg4NSAzNC43OS0uOTVDMTYyLjE0MiA3My4xNjggMjQyLjY4OCA4Ny42OTcgMjU2IDkyLjU3NGwtLjAwNiAyNS41MTNjLjAwMiAyLjU1Ny0zLjA3IDUuMzYzLTEwLjAyNCA4Ljk4NyIgZmlsbD0iIzkxMjYyNiIvPjxwYXRoIGQ9Ik0yNDUuOTY1IDEwMS4zNTFjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMTgtOTkuNDk4IDQ0LjA3NS0xNS4wNjYgNy44NTQtMjMuNDM2IDcuNzc3LTM1LjMzOCAyLjA4Ny0xMS45MDMtNS42ODYtODcuMjE0LTM2LjExMi0xMDAuNzgtNDIuNTk0LTEzLjU2Ni02LjQ4My0xMy44NS0xMC45NDctLjUyNC0xNi4xNjdDMjMuMTUxIDgzLjUzNSA5OC4wNSA1NC4xNDggMTEzLjg4IDQ4LjQ3YzE1LjgyOC01LjY3OCAyMS4zMTktNS44ODQgMzQuNzg5LS45NDkgMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzMgOTcuMTMgMzcuODEgMTMuMzE2IDQuODggMTMuODI3IDguOS4xNjYgMTYuMDIiIGZpbGw9IiNDNjMwMkIiLz48cGF0aCBkPSJNMjQ1Ljk3IDgzLjY1M2MtMTMuNjYyIDcuMTItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODU0LTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMy0xMDAuNzgzLTQyLjU5NUMzLjU2NiA4My45OCAwIDgxLjI0NyAwIDc4LjY2NXYtMjUuODhzOTguMDUtMjEuMzQzIDExMy44NzktMjcuMDIxYzE1LjgyOC01LjY4IDIxLjMyLTUuODg0IDM0Ljc5LS45NUMxNjIuMTQyIDI5Ljc0OSAyNDIuNjg4IDQ0LjI3OCAyNTYgNDkuMTU1bC0uMDA2IDI1LjUxMmMuMDAyIDIuNTU1LTMuMDcgNS4zNjEtMTAuMDI0IDguOTg2IiBmaWxsPSIjOTEyNjI2Ii8+PHBhdGggZD0iTTI0NS45NjUgNTcuOTNjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMi05OS40OTggNDQuMDc0LTE1LjA2NiA3Ljg1NC0yMy40MzYgNy43NzctMzUuMzM4IDIuMDlDOTkuMjI3IDk4LjQwNCAyMy45MTUgNjcuOTggMTAuMzUgNjEuNDk3LTMuMjE3IDU1LjAxNS0zLjUgNTAuNTUgOS44MjUgNDUuMzMxIDIzLjE1MSA0MC4xMTMgOTguMDUgMTAuNzMgMTEzLjg4IDUuMDVjMTUuODI4LTUuNjc5IDIxLjMxOS01Ljg4MyAzNC43ODktLjk0OCAxMy40NzEgNC45MzUgODMuODE5IDMyLjkzNCA5Ny4xMyAzNy44MTEgMTMuMzE2IDQuODc2IDEzLjgyNyA4Ljg5Ny4xNjYgMTYuMDE3IiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTE1OS4yODMgMzIuNzU3bC0yMi4wMSAyLjI4NS00LjkyNyAxMS44NTYtNy45NTgtMTMuMjMtMjUuNDE1LTIuMjg0IDE4Ljk2NC02LjgzOS01LjY5LTEwLjQ5OCAxNy43NTUgNi45NDQgMTYuNzM4LTUuNDgtNC41MjQgMTAuODU1IDE3LjA2NyA2LjM5MU0xMzEuMDMyIDkwLjI3NUw4OS45NTUgNzMuMjM4bDU4Ljg2LTkuMDM1LTE3Ljc4MyAyNi4wNzJNNzQuMDgyIDM5LjM0N2MxNy4zNzUgMCAzMS40NiA1LjQ2IDMxLjQ2IDEyLjE5NCAwIDYuNzM2LTE0LjA4NSAxMi4xOTUtMzEuNDYgMTIuMTk1cy0zMS40Ni01LjQ2LTMxLjQ2LTEyLjE5NWMwLTYuNzM0IDE0LjA4NS0xMi4xOTQgMzEuNDYtMTIuMTk0IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTE4NS4yOTUgMzUuOTk4bDM0LjgzNiAxMy43NjYtMzQuODA2IDEzLjc1My0uMDMtMjcuNTIiIGZpbGw9IiM2MjFCMUMiLz48cGF0aCBkPSJNMTQ2Ljc1NSA1MS4yNDNsMzguNTQtMTUuMjQ1LjAzIDI3LjUxOS0zLjc3OSAxLjQ3OC0zNC43OTEtMTMuNzUyIiBmaWxsPSIjOUEyOTI4Ii8+PC9zdmc+"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Redis Sink",
        "description" : "Write object to a Redis cache.",
        "required" : [ "redisHost", "redisPort", "command" ],
        "type" : "object",
        "properties" : {
          "redisHost" : {
            "title" : "Redis Host",
            "description" : "The host where Redis server is running",
            "type" : "string"
          },
          "redisPort" : {
            "title" : "Redis Port",
            "description" : "The port where Redis server is running",
            "type" : "integer"
          },
          "command" : {
            "title" : "Command",
            "description" : "Redis Command",
            "type" : "string",
            "default" : "GET"
          },
          "channels" : {
            "title" : "Channels",
            "description" : "Redis Channels",
            "type" : "string",
            "default" : "one"
          },
          "serializer" : {
            "title" : "Serializer",
            "description" : "RedisSerializer fully qualified name implementation",
            "type" : "string",
            "default" : "org.springframework.data.redis.serializer.StringRedisSerializer"
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:core", "camel:spring-redis" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Key",
                    "simple" : "${header[key]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-key]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Key",
                    "simple" : "${header[ce-key]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[value]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Value",
                    "simple" : "${header[value]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-value]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Value",
                    "simple" : "${header[ce-value]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[message]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Message",
                    "simple" : "${header[message]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-message]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Message",
                    "simple" : "${header[ce-message]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[channel]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Channel",
                    "simple" : "${header[channel]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-channel]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelRedis.Channel",
                    "simple" : "${header[ce-channell]}"
                  }
                } ]
              } ]
            }
          }, {
            "setHeader" : {
              "name" : "CamelRedis.Message",
              "simple" : "${body}"
            }
          }, {
            "setHeader" : {
              "name" : "CamelRedis.Value",
              "simple" : "${body}"
            }
          }, {
            "to" : {
              "uri" : "spring-redis:{{redisHost}}:{{redisPort}}",
              "parameters" : {
                "command" : "{{command}}",
                "channels" : "{{channels}}",
                "serializer" : "#class:{{serializer}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Redis Sink",
      "description" : "Write object to a Redis cache.",
      "required" : [ "redisHost", "redisPort", "command" ],
      "properties" : {
        "redisHost" : {
          "type" : "string",
          "title" : "Redis Host",
          "description" : "The host where Redis server is running"
        },
        "redisPort" : {
          "type" : "integer",
          "title" : "Redis Port",
          "description" : "The port where Redis server is running"
        },
        "command" : {
          "type" : "string",
          "title" : "Command",
          "description" : "Redis Command",
          "default" : "GET"
        },
        "channels" : {
          "type" : "string",
          "title" : "Channels",
          "description" : "Redis Channels",
          "default" : "one"
        },
        "serializer" : {
          "type" : "string",
          "title" : "Serializer",
          "description" : "RedisSerializer fully qualified name implementation",
          "default" : "org.springframework.data.redis.serializer.StringRedisSerializer"
        }
      }
    }
  },
  "redis-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "redis-source",
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Redis",
        "camel.apache.org/kamelet.namespace" : "Cache",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUwMCIgaGVpZ2h0PSIyMTQ4IiB2aWV3Qm94PSIwIDAgMjU2IDIyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij48cGF0aCBkPSJNMjQ1Ljk3IDE2OC45NDNjLTEzLjY2MiA3LjEyMS04NC40MzQgMzYuMjItOTkuNTAxIDQ0LjA3NS0xNS4wNjcgNy44NTYtMjMuNDM3IDcuNzgtMzUuMzQgMi4wOS0xMS45MDItNS42OS04Ny4yMTYtMzYuMTEyLTEwMC43ODMtNDIuNTk3QzMuNTY2IDE2OS4yNzEgMCAxNjYuNTM1IDAgMTYzLjk1MXYtMjUuODc2czk4LjA1LTIxLjM0NSAxMTMuODc5LTI3LjAyNGMxNS44MjgtNS42NzkgMjEuMzItNS44ODQgMzQuNzktLjk1IDEzLjQ3MiA0LjkzNiA5NC4wMTggMTkuNDY4IDEwNy4zMzEgMjQuMzQ0bC0uMDA2IDI1LjUxYy4wMDIgMi41NTgtMy4wNyA1LjM2NC0xMC4wMjQgOC45ODgiIGZpbGw9IiM5MTI2MjYiLz48cGF0aCBkPSJNMjQ1Ljk2NSAxNDMuMjJjLTEzLjY2MSA3LjExOC04NC40MzEgMzYuMjE4LTk5LjQ5OCA0NC4wNzItMTUuMDY2IDcuODU3LTIzLjQzNiA3Ljc4LTM1LjMzOCAyLjA5LTExLjkwMy01LjY4Ni04Ny4yMTQtMzYuMTEzLTEwMC43OC00Mi41OTQtMTMuNTY2LTYuNDg1LTEzLjg1LTEwLjk0OC0uNTI0LTE2LjE2NiAxMy4zMjYtNS4yMiA4OC4yMjQtMzQuNjA1IDEwNC4wNTUtNDAuMjg0IDE1LjgyOC01LjY3NyAyMS4zMTktNS44ODQgMzQuNzg5LS45NDggMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzUgOTcuMTMgMzcuODEgMTMuMzE2IDQuODgxIDEzLjgyNyA4LjkuMTY2IDE2LjAyIiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTI0NS45NyAxMjcuMDc0Yy0xMy42NjIgNy4xMjItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODUzLTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMi0xMDAuNzgzLTQyLjU5N0MzLjU2NiAxMjcuNDAyIDAgMTI0LjY3IDAgMTIyLjA4NVY5Ni4yMDZzOTguMDUtMjEuMzQ0IDExMy44NzktMjcuMDIzYzE1LjgyOC01LjY3OSAyMS4zMi01Ljg4NSAzNC43OS0uOTVDMTYyLjE0MiA3My4xNjggMjQyLjY4OCA4Ny42OTcgMjU2IDkyLjU3NGwtLjAwNiAyNS41MTNjLjAwMiAyLjU1Ny0zLjA3IDUuMzYzLTEwLjAyNCA4Ljk4NyIgZmlsbD0iIzkxMjYyNiIvPjxwYXRoIGQ9Ik0yNDUuOTY1IDEwMS4zNTFjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMTgtOTkuNDk4IDQ0LjA3NS0xNS4wNjYgNy44NTQtMjMuNDM2IDcuNzc3LTM1LjMzOCAyLjA4Ny0xMS45MDMtNS42ODYtODcuMjE0LTM2LjExMi0xMDAuNzgtNDIuNTk0LTEzLjU2Ni02LjQ4My0xMy44NS0xMC45NDctLjUyNC0xNi4xNjdDMjMuMTUxIDgzLjUzNSA5OC4wNSA1NC4xNDggMTEzLjg4IDQ4LjQ3YzE1LjgyOC01LjY3OCAyMS4zMTktNS44ODQgMzQuNzg5LS45NDkgMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzMgOTcuMTMgMzcuODEgMTMuMzE2IDQuODggMTMuODI3IDguOS4xNjYgMTYuMDIiIGZpbGw9IiNDNjMwMkIiLz48cGF0aCBkPSJNMjQ1Ljk3IDgzLjY1M2MtMTMuNjYyIDcuMTItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODU0LTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMy0xMDAuNzgzLTQyLjU5NUMzLjU2NiA4My45OCAwIDgxLjI0NyAwIDc4LjY2NXYtMjUuODhzOTguMDUtMjEuMzQzIDExMy44NzktMjcuMDIxYzE1LjgyOC01LjY4IDIxLjMyLTUuODg0IDM0Ljc5LS45NUMxNjIuMTQyIDI5Ljc0OSAyNDIuNjg4IDQ0LjI3OCAyNTYgNDkuMTU1bC0uMDA2IDI1LjUxMmMuMDAyIDIuNTU1LTMuMDcgNS4zNjEtMTAuMDI0IDguOTg2IiBmaWxsPSIjOTEyNjI2Ii8+PHBhdGggZD0iTTI0NS45NjUgNTcuOTNjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMi05OS40OTggNDQuMDc0LTE1LjA2NiA3Ljg1NC0yMy40MzYgNy43NzctMzUuMzM4IDIuMDlDOTkuMjI3IDk4LjQwNCAyMy45MTUgNjcuOTggMTAuMzUgNjEuNDk3LTMuMjE3IDU1LjAxNS0zLjUgNTAuNTUgOS44MjUgNDUuMzMxIDIzLjE1MSA0MC4xMTMgOTguMDUgMTAuNzMgMTEzLjg4IDUuMDVjMTUuODI4LTUuNjc5IDIxLjMxOS01Ljg4MyAzNC43ODktLjk0OCAxMy40NzEgNC45MzUgODMuODE5IDMyLjkzNCA5Ny4xMyAzNy44MTEgMTMuMzE2IDQuODc2IDEzLjgyNyA4Ljg5Ny4xNjYgMTYuMDE3IiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTE1OS4yODMgMzIuNzU3bC0yMi4wMSAyLjI4NS00LjkyNyAxMS44NTYtNy45NTgtMTMuMjMtMjUuNDE1LTIuMjg0IDE4Ljk2NC02LjgzOS01LjY5LTEwLjQ5OCAxNy43NTUgNi45NDQgMTYuNzM4LTUuNDgtNC41MjQgMTAuODU1IDE3LjA2NyA2LjM5MU0xMzEuMDMyIDkwLjI3NUw4OS45NTUgNzMuMjM4bDU4Ljg2LTkuMDM1LTE3Ljc4MyAyNi4wNzJNNzQuMDgyIDM5LjM0N2MxNy4zNzUgMCAzMS40NiA1LjQ2IDMxLjQ2IDEyLjE5NCAwIDYuNzM2LTE0LjA4NSAxMi4xOTUtMzEuNDYgMTIuMTk1cy0zMS40Ni01LjQ2LTMxLjQ2LTEyLjE5NWMwLTYuNzM0IDE0LjA4NS0xMi4xOTQgMzEuNDYtMTIuMTk0IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTE4NS4yOTUgMzUuOTk4bDM0LjgzNiAxMy43NjYtMzQuODA2IDEzLjc1My0uMDMtMjcuNTIiIGZpbGw9IiM2MjFCMUMiLz48cGF0aCBkPSJNMTQ2Ljc1NSA1MS4yNDNsMzguNTQtMTUuMjQ1LjAzIDI3LjUxOS0zLjc3OSAxLjQ3OC0zNC43OTEtMTMuNzUyIiBmaWxsPSIjOUEyOTI4Ii8+PC9zdmc+"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Redis Source",
        "description" : "Get Events from a Redis cache",
        "required" : [ "redisHost", "redisPort", "channels" ],
        "type" : "object",
        "properties" : {
          "redisHost" : {
            "title" : "Redis Host",
            "description" : "The host where Redis server is running",
            "type" : "string"
          },
          "redisPort" : {
            "title" : "Redis Port",
            "description" : "The port where Redis server is running",
            "type" : "integer"
          },
          "command" : {
            "title" : "Command",
            "description" : "Redis Command",
            "type" : "string",
            "default" : "SUBSCRIBE"
          },
          "channels" : {
            "title" : "Channels",
            "description" : "Redis Channels",
            "type" : "string",
            "default" : "one"
          },
          "serializer" : {
            "title" : "Serializer",
            "description" : "RedisSerializer fully qualified name implementation",
            "type" : "string",
            "default" : "org.springframework.data.redis.serializer.StringRedisSerializer"
          }
        }
      },
      "dependencies" : [ "camel:kamelet", "camel:core", "camel:spring-redis" ],
      "template" : {
        "from" : {
          "uri" : "spring-redis:{{redisHost}}:{{redisPort}}",
          "parameters" : {
            "command" : "{{command}}",
            "channels" : "{{channels}}",
            "serializer" : "#class:{{serializer}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Redis Source",
      "description" : "Get Events from a Redis cache",
      "required" : [ "redisHost", "redisPort", "channels" ],
      "properties" : {
        "redisHost" : {
          "type" : "string",
          "title" : "Redis Host",
          "description" : "The host where Redis server is running"
        },
        "redisPort" : {
          "type" : "integer",
          "title" : "Redis Port",
          "description" : "The port where Redis server is running"
        },
        "command" : {
          "type" : "string",
          "title" : "Command",
          "description" : "Redis Command",
          "default" : "SUBSCRIBE"
        },
        "channels" : {
          "type" : "string",
          "title" : "Channels",
          "description" : "Redis Channels",
          "default" : "one"
        },
        "serializer" : {
          "type" : "string",
          "title" : "Serializer",
          "description" : "RedisSerializer fully qualified name implementation",
          "default" : "org.springframework.data.redis.serializer.StringRedisSerializer"
        }
      }
    }
  },
  "regex-router-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "regex-router-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Regex Router Action",
        "description" : "Update the destination using the configured regular expression and replacement string",
        "required" : [ "regex", "replacement" ],
        "properties" : {
          "regex" : {
            "title" : "Regex",
            "description" : "Regular Expression for destination",
            "type" : "string"
          },
          "replacement" : {
            "title" : "Replacement",
            "description" : "Replacement when matching",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setProperty" : {
              "name" : "regex",
              "constant" : "{{regex}}"
            }
          }, {
            "setProperty" : {
              "name" : "replacement",
              "constant" : "{{replacement}}"
            }
          }, {
            "bean" : "org.apache.camel.kamelets.utils.transform.RegexRouter"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Regex Router Action",
      "description" : "Update the destination using the configured regular expression and replacement string",
      "required" : [ "regex", "replacement" ],
      "properties" : {
        "regex" : {
          "type" : "string",
          "title" : "Regex",
          "description" : "Regular Expression for destination"
        },
        "replacement" : {
          "type" : "string",
          "title" : "Replacement",
          "description" : "Replacement when matching"
        }
      }
    }
  },
  "replace-field-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "replace-field-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Replace Field Action",
        "description" : "Replace field with a different key in the message in transit.\n\nThe required parameter 'renames' is a comma-separated list of colon-delimited renaming pairs like for example 'foo:bar,abc:xyz' and it represents the field rename mappings.\n\nThe optional parameter 'enabled' represents the fields to include. If specified, only the named fields will be included in the resulting message.\n\nThe optional parameter 'disabled' represents the fields to exclude. If specified, the listed fields will be excluded from the resulting message. This takes precedence over the 'enabled' parameter.\n\nThe default value of 'enabled' parameter is 'all', so all the fields of the payload will be included.\n\nThe default value of 'disabled' parameter is 'none', so no fields of the payload will be excluded.",
        "required" : [ "renames" ],
        "properties" : {
          "enabled" : {
            "title" : "Enabled",
            "description" : "Comma separated list of fields to be enabled",
            "type" : "string",
            "default" : "all"
          },
          "disabled" : {
            "title" : "Disabled",
            "description" : "Comma separated list of fields to be disabled",
            "type" : "string",
            "default" : "none"
          },
          "renames" : {
            "title" : "Renames",
            "description" : "Comma separated list of field with new value to be renamed",
            "type" : "string",
            "example" : "foo:bar,c1:c2"
          }
        },
        "type" : "object"
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:jackson", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "deserialized",
                    "constant" : "true"
                  }
                }, {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "setProperty" : {
              "name" : "enabled",
              "constant" : "{{enabled}}"
            }
          }, {
            "setProperty" : {
              "name" : "disabled",
              "constant" : "{{disabled}}"
            }
          }, {
            "setProperty" : {
              "name" : "renames",
              "constant" : "{{renames}}"
            }
          }, {
            "bean" : "org.apache.camel.kamelets.utils.transform.ReplaceField"
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty[deserialized]} == 'true'",
                "steps" : [ {
                  "marshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                }, {
                  "setHeader" : {
                    "name" : "Content-Type",
                    "constant" : "application/json"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Replace Field Action",
      "description" : "Replace field with a different key in the message in transit.\n\nThe required parameter 'renames' is a comma-separated list of colon-delimited renaming pairs like for example 'foo:bar,abc:xyz' and it represents the field rename mappings.\n\nThe optional parameter 'enabled' represents the fields to include. If specified, only the named fields will be included in the resulting message.\n\nThe optional parameter 'disabled' represents the fields to exclude. If specified, the listed fields will be excluded from the resulting message. This takes precedence over the 'enabled' parameter.\n\nThe default value of 'enabled' parameter is 'all', so all the fields of the payload will be included.\n\nThe default value of 'disabled' parameter is 'none', so no fields of the payload will be excluded.",
      "required" : [ "renames" ],
      "properties" : {
        "enabled" : {
          "type" : "string",
          "title" : "Enabled",
          "description" : "Comma separated list of fields to be enabled",
          "default" : "all"
        },
        "disabled" : {
          "type" : "string",
          "title" : "Disabled",
          "description" : "Comma separated list of fields to be disabled",
          "default" : "none"
        },
        "renames" : {
          "type" : "string",
          "title" : "Renames",
          "description" : "Comma separated list of field with new value to be renamed"
        }
      }
    }
  },
  "resolve-pojo-schema-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "resolve-pojo-schema-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Resolve Schema Action",
        "description" : "Resolves schema from given mime type and payload. Sets the resolved schema, the schema type and its content class as properties for later reference.",
        "type" : "object",
        "properties" : {
          "mimeType" : {
            "title" : "Mime Type",
            "description" : "The mime type to determine the schema resolver implementation that should perform the operation.",
            "type" : "string",
            "default" : "application/json",
            "example" : "application/json"
          },
          "schema" : {
            "title" : "Schema",
            "description" : "Optional schema content (as single-line, using JSON format).",
            "type" : "string"
          },
          "contentClass" : {
            "title" : "Content Class",
            "description" : "Type information of the content object. Fully qualified class name.",
            "type" : "string",
            "example" : "org.apache.camel.content.Foo"
          },
          "targetMimeType" : {
            "title" : "Target Mime Type",
            "description" : "Additional mime type information used to determine the schema resolver. Usually only used in combination with mime type \"application/x-java-object\"",
            "type" : "string",
            "example" : "application/json"
          }
        }
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core", "camel:jackson-avro", "camel:jackson-protobuf" ],
      "template" : {
        "beans" : [ {
          "name" : "schemaResolver",
          "type" : "#class:org.apache.camel.kamelets.utils.format.schema.DelegatingSchemaResolver",
          "properties" : {
            "mimeType" : "{{mimeType}}",
            "schema" : "{{schema:}}",
            "contentClass" : "{{contentClass:}}",
            "targetMimeType" : "{{targetMimeType:}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "process" : {
              "ref" : "{{schemaResolver}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Resolve Schema Action",
      "description" : "Resolves schema from given mime type and payload. Sets the resolved schema, the schema type and its content class as properties for later reference.",
      "properties" : {
        "mimeType" : {
          "type" : "string",
          "title" : "Mime Type",
          "description" : "The mime type to determine the schema resolver implementation that should perform the operation.",
          "default" : "application/json"
        },
        "schema" : {
          "type" : "string",
          "title" : "Schema",
          "description" : "Optional schema content (as single-line, using JSON format)."
        },
        "contentClass" : {
          "type" : "string",
          "title" : "Content Class",
          "description" : "Type information of the content object. Fully qualified class name."
        },
        "targetMimeType" : {
          "type" : "string",
          "title" : "Target Mime Type",
          "description" : "Additional mime type information used to determine the schema resolver. Usually only used in combination with mime type \"application/x-java-object\""
        }
      }
    }
  },
  "rest-openapi-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "rest-openapi-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAlvUlEQVR4nOydd1xT19vAT3YgCSEM2VtEEVABERXFvWqXVbHaOuqve7nbam1tq7bWLldbq9bVum1t3VtxsEQFBFQ2yAwJISRkJ+9HLy9SNDfJzT33JprvX7fk5Jyn8uXec895zjl0g8EAHDjAGyrZATh4MnGI5QAKDrEcQMEhlgMoOMRyAAWHWA6g4BDLARQcYjmAAp3sABwQQVNT0/Xr1wvyC8rKymtrayUSiVqtBgCw2WyBQODr6xMaGtYzKrJPnz5cLheXFimOkfcnGJVKdfbsuZMnT+bfyjfnF02n02Jj48aMHT1w4EA63aqbjkOsJxOVSvXXwb/379/X3CzF8PUuXbpMe2Xa2LFjaDQatgAcYj2BpKdnrF2ztr6+3sp6QkJD5s+f16NHDwzfdYj1RKFWq3/++ZfD/x7Gq0IqlTp9xvRp06ZSqZa95znEenKQSCRLP11aUFCIe80DkwYuWbKYxWKZ/xWHWE8IIpFowfyFlZWVkOqPiYlZ+fUKJycnM8s7xHoSkMlkH34wp7y8HGorsbGxX3+z0sy3RccAqd2j1+uXf7UCtlUAgOvXr69ds87Mwg6x7J5du3ZnZWUR09bRo0fPnDlrTkmHWPZNaWnpzh07iWxx3dp1YrHYZDGHWPbN+vUbtFotkS3KZLLNmzabLOYQy47JzMzMuZlDfLunTp0uL69AL+MQy47Zu2cfKe0aDIZ9e0007RDLXqmsrLp58yZZrZ8/f14mk6EUcIhlr5w17+0MEmq1+tKlSygFHGLZK+np6eQGkHY1DeVTh1h2iVQqLSkpITeGmzdzUKZtHGLZJUVFxaTPxcnl8urqamOfOsSySyorTLztEwPKnLcj5x1odCqtTqM36GhUOpvBQWbfLE0/IhihUEh2CPcRNhgN46kQS6VpbWipapBWiuW1Ynlds0LYohC3KJsUmhaFRm4w6JFiQ7qnvBQ39/6DpvTWomUznNgcDofH5wlc+e7uAk8Pd29vrwBf70A/nyBnJ3xWHGCmBfVVnzCkLS3GPnoyxZKrmstF+RWNBffEd+5JiprkdZbWYDAYWhWyVoVM2Fj76Kee7t7Bgd3Cgnt0DY3sHh7jwhPgFLi56IidxjGGXq839tGTI5ZCLbtTl3W3Pru4/nptcynUtoSiOqGoLutGKvKffj7BUT3iYyL79o7ux+O6Qm0agWbdEhq8oFAoxj6yifisQSSryam6kHcvtVSYpzfoSImhura8urb85LkDFAqlW1h0QmxyYvzQAL9QeC1yOBx4lZsPl2s0DHsVq1nRmF1+6lr5ySrxHbJjeYjBYLhTnHunOHfnvnWB/mGDEkcPSXrGy9MP94Y8PTxwrxMDnh6exj6yM7F0eu2t6stXi/8trE1v73TbJpX3Sv488POfB36O6hE/euiE/gnDmQwLFiOgExAYiFdV1uAfEGDsI7sRq0XZdKXo78tFfzUrGsmOxTJuFV67VXiNt4M/auiEcSNSPD28ra8zPLwrHqFZBYvFCgy0Z7GELffOFvyRUXpMq1eTHQt2WmTNBw9v/fvojkGJoyaMnxUS1M2a2gQCQVBQUAWpw6TR0VEo66RtWqwGaeXxvC3ZFadt/KlnPnq97uLV4xevHu8XN2TKhLfCgrtjrqpfYj9yxeqXmIjyqY2KJVU0HsnZmFF6jKwXPdhkZF/IyL7Qv+/wVye/5+8bgqGGYcOGmcy2gweVSk1OHoxSwObEUmuV5wp3nynYodIqyI4FOmlZZzOyL4wZ9tLUie+48CwbAAsP79q9e/fbt29Diw6NAQMGuLu7oxSwrRkxsbxu+eGUo7kbnwarEPR63bEz+96a/9zxM/tRBrIfy6DBg6DFZYKUlMnoBWxLLDeOtyfPn+woSEAml/6ydcVHX86sqCo28ys5N3MIXvjVTmJiYmTPSPQytiCWPlf8q0Td9g86JeEjOpVBdkjkcKcod+6SKfsObdLpTPQsc27mLF68RKlUEhXaQxgMxtvvvGWyGMlitWgqD1U8c6l+/qW6BchPPF0Ch/eYRm5UJKLVaf/Yv+HU+b9QypBoFQDgtdmv+fubfqqQKVZR84E9pYnVrakAgEr56RLpP8jPR0XNdOP4kBgYubwwbvrYEZOMfUquVYmJ/SZNmmhOSXLE0uqVF2o/PFUzQ61vbv/h5fpFGn0rAIBJZyN5UU8hL4yb/tq0ecY+JdeqkJCQxUsWo2Q0dIQEsWSa6r8rRuVLOi/TlmnvZTeuQq5jAgZH+g4gPjZysWWr/AP8v129yvysCqLFqlNk7C9LalBmP/bTG+I1Taq7yPXE+Hl0KpPY6MjElq2KiIj46acf3dzczP8KoWIVNe8/VDG2VddgrIDeoLlUPx+59uT5j4x8lcDoyMSWrRozZsxPP/0oEFiWJUucWDdEa07VzNIZVOjFquTniqVt70Qjo6a7PwW9eJu1ylXg+vmyzxcuWsBkWfzoIEisRmVeWsNSAMxaCne5/iONXgYAYNBYE+Pnw4+OTOBZxXgAtqicnNhTp768Y8f2wVgH9wkSy4MdPdJ3CwWYtRu9XFtzrfEb5DrKPynKLwlydKQBzyomk7l8xVe7dv85ffp0Hx8L7vqBQYGvv/H67j27Z/9vtjUJ0HAnofV6fUNjjXcXfwBAOH8SAOB0zWwDMJ2wcFO0PoL/ihurOwDgpbi5d+qyNDoTz1C7A6pVXy3/Mj4+HgAwY+b0GTOnFxUVXbuWXVhQWFJSIhQKO47s0+l0Ly+vsK5hkZGRffvGBwcHY/0f+g9wxfpl64qrmWeWL/4tJCjCIrf0QJNaN++FoGP373Y8v5E9ZxzL/Q1qqARDjFXthD8Audbr9c3NUrVKBSiAzWbzeDwYq3MhPgo371x98tzBFlnzpyvfKKtoW/IQzp9k5jOxuvXi3eb9yPWIyFc8uPgvSSALgq3qBJVKFQhcvby9vLy8+Hw+pDXfsMTae2jTvyf+RK4xu3Wl4WO1vuVBL575xPTi4VnFZrOXL/8K3SrCgCLWmQuH/ty/oeNPsLnVqq3LEq5Ernv6DYjxR0tZtAugWrVy5Yq4+DjrAsQN/MXKuZWxYctXj/4cm1u54p9FynzkekLcXAYNtxVUxAPbql69e1kXIJ7gLFZ1bcWqtQt1+sf3zTG4pQfa1Pq2X4Y712d01Ex8AyaMp8oqnMVqVciXf/+hTI528iIGt2paL99p3oNcD+8xzZNndC2bzfK0WYWzWGs2flZda/pEFwxuXW1YrNbd95VOY06yt178U2gVnmL9c2xnWpa5+/ha6lartj6zcTly3cM3sXfAUDxCJoKn0yrcxCouK9y+d61FX7HUrVzxr43KPOR6QtyHTBrbupCJ4Km1Ch+xlMrW79Z/rNVqLP2iRW4ZgC61bi4yjS3geI+OnmV14HAh0Sq1mpwEm47gINa23T/V1GFc622RW7WKtNuSXcj1sB5TvVyCsIYMHRKt2rlv/Y+/LsVQM75YK1ZufuaxM1Yt9LbIrasNS1Q6yf1ePJVhs2Px5Fq1/5/NVzJOX04/haF+HLFKLLVauX7zl9YHYb5bCp0wQ9g2+trdJ6FP4HDrW8cX0q1Crn/bsUomQxv3gY1VYu37Z0tdwz1c4jDfrVtNmxqVbWepTYj7kEU39/hrArARqwAAkmbR1t0/YmgIL7CLda+2/K8j23AMxUy3DEB34X4vXg8AcHXuMib6NRxjsAbbsQrhzMVDd4rzMDSHC9jF+v2P7zC8CaJjplv1ioxCSVvqxNDuL3vz8clNswZbswrZEHXjtq/J2loMo1jXc69eu3kZ72CA+W5dbfhUqWsCANCo9EnxC2BEYj42aBVCcVnBhcvHMLRrPVjE0uv123ZBfH6b45ZS15gh/AK57uYdHxc0El486NisVQg79q1Ta0jI6sYi1qW0E+VVRRCCeYg5buU3bWlQ3ECuX4z7gEV3hhrSY7FxqwAAInH9sdMkbPxnsVg6nXbXwV/gBPMfTLplAPqLdXMMD3rxfCfPcTH/IyCqjti+VQgHD/+uVBG9kZ3FYqWmnaitr4ITTGdMutWgvFbYtAO5To6Y7MOHeBhEJ+zFKgBAs7TpOOE3LcvE0uv1B/79HVowj8GkW2nCpUqdGOnFT+67kJio7MgqhEPHd6o1hG5mbplY126kVlXDPf/oUdDdUurE6Q2fI9ddvfrEB4+GHY/dWQUAaJI0nr98BMMXMUOx6ATYJStezyvIghmPUXhcfvv6RGR/kQ7rE6kTg897OcU/2Mdb9NXhyUqN3ERtbEGgW6SPa6gnz1/g7MVlu7LoHA6Lz2G5AABkMunVrLN1DVUVVcUlZYViycPjHu3RKoQA39D13x40c3cr67FArLLKux9+YmKvXKiguOXJjp0UcgG5jV24vedg9k+Pfp1KoYZ7xUX7D+ru08+izIja+qrc/MyM6xcC/cJmvjzHWDFbtgrhi49/6RPd38pKzMQCsX7ZuvK4dYkM1oPiVrL3mijB/x4c5KT79vj0GsnDQ949uH4Dw1/sFzqOx7ZghyeLsH2rAACJ8cMWz/3B+nrMwVyxlMrWme+NbFWYeMQQgDG3WDTBtNCbTnQPAEBJQ85Pp98EAPi6ho2Nnh0TMIRKgbjm2y6suv9+Q6P9vvakwJWII+loy5YtM6dcatqJS+kn4cdjGrVadSXjdGzMAOQfyJ3d05XZtbTlsNbQqtQ3hfCeQfaL1+hUSeETJics9OGHQu1Y2ItVyOwh30UQGdEHrwpRMPfvmOB3CnSMvScWSnbUKTKRHz7f592+IWMokPdpsiOrEAj7PZr17y5uEubmZ8IPxgKMuEXNEn5NWAx2ZxVyPGdZ5V3cq30Us8S6mnXWolEJYnjUrWcCDgz3/ZWY1u3RKoQrhGQtmyVWWuYZ+JFgoZNbQdxRznQvAtq1X6uQ2wS8ytsxLVaLTJp/5zoBoWADcatRVEdYi3ZtFQDgXk1ZTS30EzRN7+h3I/eKpcedEUxC3BAPdywHLcvl8uLiksrKSmFDg1wu12i0dAadw+F08fQMCAzs2jWMy+V2+oq9W4VwLefycz5wF8+ZFis79yrUCKykb5/B783+zKKvVFdXnz1zLiMj/c6duyh9RwqFEh4e3q9fwvDhwwMenKr9ZFiFJAA/NwbuSVimB0hnvTdK1GR0y39yCQoIX/3FDjbL3IU62dey9+7dm51t8ZO9V+9eAwYM2Pr71ifAKgAAi8ne9VsqgwHx4A8Td6zq2gqbtcqJ7fzJnO/NtKqsrHzDhg03rt/A1lbOzZycmznYvmtrVgEAVGplUemtyIhYeE2YECv/9uMPvbEF/vfqIl/vQJPF9Hr9nt17tm/fodVqCYnrP9igVQj5t2+QKdad4lx4bVtD76jEkUNeMFlMJpOtWL4iM5OcVB+btQoAUHj3JtT6TYpF2opHFOg0+puzPjFZTCQSLVr4UXm56b3gYGDLVgEAikvzodaPNo6lUivv1ZRBbR4bY0dM9vM28bYskUjmz1vgsMoYEqm4UVQPr340sSqqimxwBIvJYE16fjZ6GbVa/emSpVVVBC366ITtW4VQUl4Ir3I0scor4S4exMaI5Odd+e7oZTas31BYCPFfDQV7sQoAUFldAq9yNLHM2amWeJ4Z9TJ6gbSraUeOHCUqnP9gR1YBAO5VQ+znoIl1rwb6jJKldAuLDvALQSmgVCrXrLFsN1S8sC+rkElDeJWjiVUvxGfvKxwZOmg8eoEDBw4KhUKiwnkIi8VCtyrnVrpNWQUAwGtvs8eCJlZDYw28hrHRL3YIyqcKheLA/gMEhvMQCoUSGoa2DjssJJJGNescUMJokTUroC1iMCqWTC5VKole8I9OcEC4hztautWZ02daWloIjOghSqXy6BG0DYO4HJeI8BgCIzILePN1RsVqkoggNYmZqEgTB6adPEnmjq6nTploPaq7rRzN1Y64qRFSzUbFkjTbnFjhoVEonwqFjWQNMSBUPAClgA3esZqlYkg1GxWrRdYMqUnMhAV3R/n0+nXy58uvXUOLoX0tpO0A77dsVKxWhQxSk9igUCg+Xv4oBQryCwgM5/EUFqDF4OHmxWLZ1kkt8lZYXVKjk9AKJfmLnjviJujCYKCdgllaSv60ZkmJia14BvcfJxITl55vEjeBJ6SajYqlUpF/HktHeFwX9AK1tbVExWKU+noT07rvv25ZFrX9YvRRqMF7q20rcWJzUD41GAzNzeR3ClUqlVxuW3d6sjB6x6JSqFBzoi2Fx+WjfKrRaGwkEUOpVHI4Rv8G1FqlTm9Df7E0KoNJh9LtMypWyouvp7z4Oowmn2b2ZH6TVXaC7CgekhQ+ISVhEYya4e6ZQRhMJpNGs4kJEzYb7Qag0tjWZAadxoBU8xMiFgDA1dWV7BAAi8VCeQ7ef1Ca2sOSYGgU0wtLsWG03iLpwRzxOkitYoBJdXku8F+UAr6+PiIRybMF3t4mFmTLVBKiYjELBg1tBMcajIql0cvqFeQsbjGGRi9nUI3eD0JDQ/PybhEbUWfCwsLQC4hk1UTFYhZsBtr91RqMPgpZVPKfLJ1oUqFt7BTZsyeBsRiLIRLlU6lCpNLaVh/LiXix2DRY+8BiplGFtsgxLi6WsL2mjREfj5a/UCW+TWAsZsFhw7p9GBXLiQ5rsB8zda1ouwoKBIKYGDLTB0JDQwMCAlAKlIvIn83sBI8tgFSzUbE4dCwbA0GluvUieoHRY6AfS4HCqNEmjrYrqrtGVCzmwmObWO+EGeN9LJornQLrAYwNqaYMvZs1dOgQNzdynuDOzs7jxo5DKdCqbilrJPnd4hEoAmdYGyCijWO5MOHuzYWBkpZDKJ8ymcwpU1IIDOchEya8yOGi/R3eundZb9ARGJFpXJzcyBkgdWGgLbQihbvNe9ELPPf8c37+fkSF04abm1uKKaEzy44TFY65eHDR8tusBE0sAbMbvIax0aS+XdOKtsMgg8GYN3cuwa+HH875wNkZ7XxXsbzubr3NdbAsOlDIUtDEcmOhpQKTRY54PXqB3n16T06ZRFQ4YOy4sUlJSehlUu8eIOs0eRS8XEzvLoYZdLF6wGsYG67McOQkJnRmz54dhzqkhBcREREffPA+eplWtfRK0d8EBGMpvq5d4VWOLlZPqhm73xIDneKc6LlsSmhmAGeYycI0Gu3zzz/rFgH3Ue7v779y5Qom00TW2pmCP2xt7hnBXwDx3wdNLDqV7cZCm6MgjFDec1PDrsd5LKRR2n6LOr2JfR85HM63365Cn2OxhuCQ4B9/+sFVYGLkWiyvvXB7D6QYrIHv5Mlzgjg0YyJtposTyWss+cywZwMOjfXfzWO0DWor1LL9177//uT/TLrF4/G++2710GFDcY+qX7+EtWvXmDNmtj/rB42O0MOYzSTEE22RpvWYeNL5OPUvkGyFGoEx6BSnWI+FsW5zaNT21A5DZunxQzfWtyjFAIDTBTvHRM1Cr4TFYn366ZJevWI2/rpRocBheQiDwZg1a+akyZOoVNOpbFllJ25VX7K+URgEe0RDrd+UWM4DoDZvjBDuM0neq10YD9+HayTF+zJXlwgf7ol9PHdzd++EYA/TSQ3PPvtsQkLCr79uTL2Yak1UCQkJ77z7NvqEYDsiWc2+rO+saQ4qXbv0hlq/6QMEthdFyLTE7Wfkwggd5L06mDum/SdKjfxozqbUu/sfHbkWOHstGruda/YUfVFR0Z7dey5duqzTWTAITqFQEvsnpqRMjo42969crVX+eOqNe01EHOCGATaDs2rSKSoFYjK3abHO1b5bKNkGL4J2aBR2rPv8WPd5dOrDtPGsshOHbqyTKoymhoZ16fXesPUWTU00NUkuXriQlpael5enUqmMFWMymZGRkYn9E4cMSfb0tCDXQ6fXbUn9JK/aqrsjVKL9B72RvBpqE6bFKpb+dbL6VahBPDgRbsxgr+9cmA8nkWqbS/dlri5uMH2WRO+AYbMGLcdw6rNOp6uoqKisrBIKhS1SqU6vp1KpPB7Pw8MjICAgODiIwcAylbYrfWVaCVoWNemkJHyUFP4i1CZMD1MFcoZTKQy9AdZqOB4jaJDXauQsZwSlRn48d8uFO3vNnLUta8yVKhpdnbtY2jSNRgt9gKVfRKFV3WLOHwO59PSF3nU2/VfOpPF9nQbCaJtGYcW7fzQ1NLujVdnlp5cfnnLu9i4zreI7eXww4mcMVkHCmcn7YMTPnjyzOvikECCIEHCgHxdqQiw90Cp1TWEupg8XsZRAzqiXQ7P6dfmMTm07ZamuuXztmfe2XVnarDB3E1HEqi7/P+d14cpRIYEnYnZE3CQ8faFt3sbV2dOW3eodiP/A3qOYEIsK6GyaIMzlBQrA7Q2CxwgY47/72cC/+cy2NS0qTes/N9Z/c+yVIktSADpZdfjk7h9+XjJ3yZSsGyT0mnfuW79u0xd7/96E/Kctu9UnaDgBrdCWLVtmshCDyqlTZDZrrN1vnkphxrrPHeW304P9cNj3RuW5jRcXFNSkWTT//6hVm3asQo5pSb16XNRUHxkRy2TCWjT3KKHB3U+eO3gjL41KpUX1iENe6XsFDL1VfblVLSUsDJMEufcc2RP6q5i5Yj24ddHQszdNEsAZPj7gQFeXl2iUtletBmnltstLTxfssHSO1phV7ZSU3z6b+g/HmRcSFAEpN0sPdAWS7TdEP3R1eREACseZByggNz8zryDLlt0a1XN6kBlDytZjergBQatXbisKU+mxLOTl0v0Hen3z4BfQhlqrOHFr27nCXRi2XjFpVTveXv4bv/+XYvkwBDo6g7qoeX+2aLVEXQQAGOG7OYL/MrLx0/sfTaypqwAATJv4bvuWKpJW4doz7whbyDnYpyN0GnPFi4edWWj79uCFuf/odCo7gm/xKcJUCiPWfd7UsOsdrcqpurD88JTT+duhWgUAGDN8EmKVQivMFC5HPLCGZnVphvCrHcU9zta+0V7blfrFKl3z/Q4DnfHmjI+RH/55YIMN9rf6BA4nxioL7ljIQuRdpX3Mr9rfechg7x8ErIc7ugqlVfuvfV9Ym255nMBSqxgM5rb1p3hcVwBAduN36cLPAQCe7D6hvGf9nYd0cYqjmrcfht6gaVBcr5KfL5MdESofP0AVI3h7kHfbtOA3axZczTyDXNvafWvuqN9CPQlaemmBWPd/l5UvVMpPmyzGofsO7PJ1OH9i+0/UWuWp/B1nC/7Q6jHmkFhkFQBgaNL4uW8vBwAYgG5ncXSL5j8bZdMpzu6sSHd2tAsjmMvwY9M8GFQnKoWpN2i1erlC1yjT1Eg1pSJVfqMyT2cwkRZBAbTJIZc92Pd/Z0JR3bsLX1Sq2pbS245bge6RC8f8TlhzlolVKTt7uOo5lAJUQI9xe7ev52Imldv+w7x7lw5c+0Esx75HqKVWAQBWf7Ejouv933R5y/Gj9yZibtpMvJ0SXwo+c98xAA78+/uOvQ8PirIRt2YM/CI+mLgFvZZ1bAO5wz1YRu+lfs6DUkLTB3qtbLeqseXer+fn/XZxIcFWhQZ3R6wCANySbMLctPnUKdJvS/5Erl8Y96q/78NJT1vob7lxfPoEEjF81Y7Fb0xxHo/ZWdCZ7j3S9/cXgk60r7/Q6FTHcjevODo1vwZttZZJMFgFABg7vG2VjlRdUSkz/ezGhasNn6p099+a6R168QikuzWy53QaldDlCxaLFebyvBvr4UAIBdB6ub03LfRGN/7DFZu37l1ZceTl43mbtdZl5WKzytmJmzywbbV7vmSLARC07kqhE2YIv0Cue0X1S0oc1fFTEt1yde6SGPoMMW21Y7FYFEBN8PgUufZxHpgScjXJaxWT1rYJu0hW89uFhRsvzhfJrD2SDptVAIBhg8azWU4PBpxUBZLtVoZhEbeatgiVN5Hr2a8scGL/ZxUrWW6NjZ5NpxG9ATaWwcMwl+dCuM+M8N00Ieik+/9Pzmh06hN5W1cceTkPjyxvzFYhZ9wjFyXSQ0odrNOtHosB6C7WzUHuke6CLlMmvNmpAPFuefIC+hF+u8K+ue24gH0R/KnISxAAoKAm7eujU4/mbtTojCZkmo81VkX1iA/wa8uvutVERLe9E/WKrELJTuT62dHTAvw7bx5JsFsv9HmP4N4VgrXTHWJ53abUj345P1fYgk9evDVW3Td+RFu3XaS8VatIwyUkS0lrWKrUiR/04ulvzfjk0QKEuRXuFRcTkAyjZpNYJdb5wt0rDk/JrTKxH5r5WGmVgO+eGN+2TpqU2xWCUidKb2ib2o+OjE8eMPbRMgS4RaXQJsbNxbdOC1q35st6g16tw+0sJyutuv9SPXQCnc4AAKj1LXekZK4/LpBsbVBcR65fmzbfyekxW2fBdmtI9xRfAcTdGdCxSqwh3VP8cFr/b71VVCp19LAJyPVdyR6NnszzFg1A396LF7h6TH3p7ccWg+eWwNlrXLTp3VPgYZVYNCp9WuIS65enWW8VAKBvn8Ge7j7INTGj7eg0KLMLmtqWzY0fNSUoIPyxxSC5NaXfRywG2pZdsLG28x7gFjGy53RrasDFqo6jDDWtV0WqfGtCwos04ecKrejBciD6WzMf04tHwN2txLBnI+Gvw0EHhyS4sdGz/d0wnnaMl1XeXv59ohORaxK77Z1Q6cTpwraTL3t2jx2aZHQ8CUe33Dm+L8XNwfZdHMFBLBqVPnPAlxiOvcPLqk45fVamUONLgWR7+8kxs6bOc3bmGiuJi1tUCm1m0pfwDjKxIBJcavHiB02Mn2/RV3C0isFgjkx+HrkukGzXG2xq2yDDg1687r4ufPdpE99BKWq9W+N7vRnsAXd/IjPBLR+8f9iz5k8d4GgVACCp3ygkU9QAdPkS4nLZzESovJnf1BbVuBEpIUFo3QZr3Ir2GzSCkBU45oDnQoPJfRcFmNHZwteq+7+tkW3d9oqWU50yRW2E9IZlCq0QWdSP0otHwOaWJ9f/1QGfUQDJpwm1g6dYTDrr9cGr0I9nwd0q4nP6MKDSS9IaliLXPbr1Hj4YLQsXg1tODO4bQ75zYvLwC9lacF4aJeB4v5682liSBu5WkZXTh4HC5j9qFRnI9cyX53A4JiQw3y0qhToraYU3PxjvkK0C/6N7QzyiZgxY9ug9GYZVZOX0YcKQWjtH/6AXz3dxe2XSuya/YKZbKQkf9/DtByFgq4ByJnTvwGEvxc/r+BMYVpGb04eBRlXuLXGbKGOHTwoLNn0+g0m3xkW/PqCriQcrKcA6bDw5YlL7XBUkq8jN6cNGhvDLVm3Dg5lN2luzlpiz/B/FreSIlLExsyGHjBFz927AQLhXrFqnFMtqIFkV1SN+wvgZyPXFujlEbpSKGZ1BpdAJQ3n37zEebl6NovrSctPHrj52P4jeAUNSEh6zsMVGsGxdIQZalGIeu20/dBytAgAsen9VUuJoJKdvT5nNdTJQmBB0GtmOWtoieXvB8y2yZnO+1XF9okwpcWa5YNgdkzCgRwbJKhvJ6cPGxbo5eqAFALjwXF+Z/J6Z3+r4TOSyXW3ZKiLEQiituLNpx7c4Vmg7OX0YEKny80QbkevRQ1/qGmruvkJ/HtiQV5AFMzTcIEis0KCID99YRqPhk9VvUzl92MhsXC7X1iH/L2/P/MS8Tbwos19ZEB3Zl4DwrIe42+nw5Oc/W7DO2cno9L752FpOHwbUeunV+sXIdXhY1KihE9DLM5msRe+ven7sK4REhwOEPqf7xPT/dtl27y7Wnhhrgzl9GLgr3Vvd2rYGc3rKBy48o+druLl6rlyyudPSahuH6A5goH/Y91/92Tu6P+YabDOnDxuptXORDfR5XP70lA8eWyaia8wPy3d16wr3TCXcIeHNgsflL1u0YcqEN7HtDmqzOX0YEKsLc8S/INcjkl/oFtY5lWr86JdXLt3iJrDgwBUbgZxXViqVOvWlt7/8+FeBq4dFX7TtnD4sZDWulGtq2nrxs5a075jK5fA//vC7N6Z/xKBjOXaFdMgcC+kV1W/t1/vbh6PMwcZz+jCg0bdcaWjL0AoL6TFm+EQAQO+oxHXf7BuQMILs6LADfeTdHM5fPrJ552pzBqC/Xba9e3gvwvbpI4znA4/5c5IBADK5NO3auZHJ+B8FQjA2IRYAoEnSuGnn6svpJ1HKhARFrFm5F7k+UjWhQoZW2L4QMCNSQtPbT7x+ArCVaQGBq8ei91ctW/Szr3eQsTLtoww2ntOHAa1Baf1u4TaFrYiFENtrwLpVB2ZNncdx7pxg6ezEHfL/u2vYfE6fBTCp/AFdVkwLu+HOIuLACMKwlUdhJ1paJPv+3XL89D61pm3DrfGjprzxYGNPnUG1raibXWRfoUOlMHq6vtbXY7ET3bJXY7vARsVCEDcJDx7eevL8QbVateHbv5Ad1e427z1d8xrZoVkFlcLowX81zmMhjxFIdiywsGmxEJql4ozrF0YNaZtN+6t8BFk7qlkPg8qNdJ3V2+19LsOP7FjgYgdidUSsKtxdGk92FFhwYYREC97s4TqdRSPoNBtysTOxAAC1remFku3FLX/ZRbYMlcIM5Y2PdJ3pzxlKsbFXJajYn1gIGr28RPp3kfRglfyc4UE2pk1BAVRf56Rw/uSuvBdZNKNpC08w9ipWO0qduFx2orzlaJX8nFpP8nmTDCrHzzk5hDcuhDveiW5/M8c4YvditaM3aOsUGdXy1OrW1HpFltagIKZdKoXhxY735Qzyd072ce5PoxB3XrAt8+SI1RG9QdOozGtQZguVOSJlnlhdqNFbdjowCjSKk4AZ7s6O9mTHdGHHe7J706kW7w32xPNkivUIepmmRqIuaVaXyjT35NqaVl2DQitU6SVqnVSjl+sMyvahfBqFSQF0BpXDorkyqXw2zY3D8OHQfLgMPz4zlM/symX4PlXdcGw8JWI5IBrHX54DKDjEcgAFh1gOoOAQywEUHGI5gIJDLAdQcIjlAAr/FwAA///QJMTtZbTgfAAAAABJRU5ErkJggg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "HTTP",
        "camel.apache.org/kamelet.namespace" : "HTTP"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "REST OpenAPI Sink",
        "description" : "Load an OpenAPI specification from a URI and call an operation on a HTTP service. The request that is generated respects the rules given in the OpenAPI specification (for example, path parameters and Content-Type).",
        "required" : [ "specification", "operation" ],
        "type" : "object",
        "properties" : {
          "specification" : {
            "title" : "Specification URI",
            "description" : "The URI to the OpenApi specification file.",
            "type" : "string",
            "example" : "https://api.example.com/openapi.json",
            "pattern" : "^(http|https|file|classpath)://.*"
          },
          "operation" : {
            "title" : "Operation ID",
            "description" : "The operation to call.",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:rest-openapi", "camel:http", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : "rest-openapi:{{specification}}#{{operation}}"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "REST OpenAPI Sink",
      "description" : "Load an OpenAPI specification from a URI and call an operation on a HTTP service. The request that is generated respects the rules given in the OpenAPI specification (for example, path parameters and Content-Type).",
      "required" : [ "specification", "operation" ],
      "properties" : {
        "specification" : {
          "type" : "string",
          "title" : "Specification URI",
          "description" : "The URI to the OpenApi specification file."
        },
        "operation" : {
          "type" : "string",
          "title" : "Operation ID",
          "description" : "The operation to call."
        }
      }
    }
  },
  "salesforce-composite-upsert-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "salesforce-composite-upsert-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA0OCA0OCIgdmVyc2lvbj0iMS4xIj48ZyBpZD0ic3VyZmFjZTEiPjxwYXRoIGQ9Ik0zNi41IDEyYy0xLjMyNCAwLTIuNTkuMjU4LTMuNzU4LjcwM0E3Ljk5NCA3Ljk5NCAwIDAgMCAyNiA5Yy0yLjEwNSAwLTQuMDIuODItNS40NDUgMi4xNTJBOS40NjggOS40NjggMCAwIDAgMTMuNSA4QzguMjU0IDggNCAxMi4yNTQgNCAxNy41YzAgLjc5My4xMSAxLjU1OS4yOSAyLjI5M0E4LjQ3MiA4LjQ3MiAwIDAgMCAxIDI2LjVDMSAzMS4xOTUgNC44MDUgMzUgOS41IDM1Yy40MTQgMCAuODE2LS4wNCAxLjIxNS0uMDk4IDEuMzEyIDMgNC4zIDUuMDk4IDcuNzg1IDUuMDk4IDMuMTYgMCA1LjkxNC0xLjczIDcuMzc5LTQuMjkzQTcuOTIzIDcuOTIzIDAgMCAwIDI4IDM2YzIuNjIxIDAgNC45MzgtMS4yNjYgNi4zOTgtMy4yMS42OC4xMzYgMS4zODMuMjEgMi4xMDIuMjFDNDIuMyAzMyA0NyAyOC4zIDQ3IDIyLjVTNDIuMyAxMiAzNi41IDEyeiIgZmlsbD0iIzAzOUJFNSIvPjxwYXRoIGQ9Ik0xNS44MjQgMjVjLjA0MyAwIC4wNzQtLjAzNS4wNzQtLjA4MiAwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjEuNTA0IDIzLjkzNHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNy4xMzcgMjMuOTNhLjExNi4xMTYgMCAwIDEgLjAwNCAwaC0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yNC4xMjUgMjEuOTFjLS4wMTYuMDQtLjA0Ny4wNDMtLjA3LjA0M2guMDA4Yy4wMjMgMCAuMDUtLjAwOC4wNjItLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODI0IDE5Yy4wNDMgMCAuMDc0LjAzNS4wNzQuMDgyIDAtLjA0Ny0uMDMtLjA4Mi0uMDc0LS4wODJ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTIxLjM2IDIyLjE4NGMwIC40MS4yMS42NjQuNTAzLjgzNi0uMjkzLS4xNzItLjUwNC0uNDI2LS41MDQtLjgzNnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzguMTI1IDI0LjczYy4wMjcuMDYtLjAzMS4wODYtLjAzMS4wODZzLjA1OC0uMDI3LjAzMS0uMDg2eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik04LjU1OSAyMXoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNOS43NjYgMjEuOTFjLS4wMi4wNC0uMDQ3LjA0My0uMDc1LjA0M0g5LjdjLjAyOCAwIC4wNTEtLjAwOC4wNjctLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzUuMTk1IDI0LjE2NHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuODI4IDIxLjc5N2gtLjAyM3MuMDA4LjAwNC4wMjMuMDA0di0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zNy44MzIgMjQuMTg4cy4wMTYgMCAuMDM1LS4wMDRoLS4wMDRjLS4wMTUgMC0uMDMxLjAwMy0uMDMxLjAwM3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNi44ODcgMjQuNDZjLS4wMzIuMDcxLjAwOC4wODcuMDIuMDk5LjA4NS4wNTguMTcxLjA5Ny4yNjEuMTQ0LjQ2OS4yMy45MS4yOTcgMS4zNzUuMjk3Ljk0NSAwIDEuNTMxLS40NiAxLjUzMS0xLjIwN3YtLjAxNmMwLS42ODctLjY2NC0uOTM3LTEuMjg1LTEuMTE3bC0uMDc4LS4wMjNjLS40NjktLjE0LS44NzEtLjI2Mi0uODcxLS41NDd2LS4wMTZjMC0uMjQyLjIzNC0uNDIyLjYwMS0uNDIyLjQwNyAwIC44ODcuMTI1IDEuMi4yODUgMCAwIC4wOS4wNTUuMTI1LS4wMjcuMDE1LS4wNDMuMTc1LS40MzMuMTkxLS40NzYuMDItLjA0My0uMDE2LS4wNzktLjA0Ny0uMDk4QTIuODQ1IDIuODQ1IDAgMCAwIDguNTYgMjFoLS4wOTRjLS44NjMgMC0xLjQ2OS40OC0xLjQ2OSAxLjE3MnYuMDEyYzAgLjcyNi42NjQuOTY0IDEuMjkgMS4xMjhsLjEuMDI4Yy40NTQuMTI5Ljg0NC4yMzguODQ0LjUzMXYuMDE2YzAgLjI3LS4yNTMuNDcyLS42NjQuNDcyLS4xNiAwLS42NjgtLjAwNC0xLjIxNC0uMzI0YTIuNDUgMi40NSAwIDAgMS0uMTU3LS4wOWMtLjAyNy0uMDE1LS4wOTMtLjA0My0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMS4yNDYgMjQuNDZjLS4wMjcuMDcxLjAxMi4wODcuMDIuMDk5LjA5LjA1OC4xNzUuMDk3LjI2MS4xNDQuNDcuMjMuOTE0LjI5NyAxLjM4LjI5Ny45NCAwIDEuNTI3LS40NiAxLjUyNy0xLjIwN3YtLjAxNmMwLS42ODctLjY2LS45MzctMS4yODItMS4xMTdsLS4wODItLjAyM2MtLjQ2NS0uMTQtLjg3LS4yNjItLjg3LS41NDd2LS4wMTZjMC0uMjQyLjIzOC0uNDIyLjYwNS0uNDIyLjQwNiAwIC44ODYuMTI1IDEuMTk5LjI4NSAwIDAgLjA5LjA1NS4xMjUtLjAyNy4wMTYtLjA0My4xNzItLjQzMy4xOTEtLjQ3Ni4wMTYtLjA0My0uMDE1LS4wNzktLjA0Ny0uMDk4QTIuODU3IDIuODU3IDAgMCAwIDIyLjkyMiAyMWgtLjA5OGMtLjg2MyAwLTEuNDY1LjQ4LTEuNDY1IDEuMTcydi4wMTJjMCAuNzI2LjY2NC45NjQgMS4yOSAxLjEyOGwuMDk3LjAyOGMuNDU3LjEyOS44NDguMjM4Ljg0OC41MzF2LjAxNmMwIC4yNy0uMjU0LjQ3Mi0uNjY0LjQ3Mi0uMTYgMC0uNjY4LS4wMDQtMS4yMTUtLjMyNGEyLjQ1IDIuNDUgMCAwIDEtLjE1Ni0uMDljLS4wMi0uMDA4LS4wOTgtLjAzOS0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zMS40NjUgMjIuMjE5YTEuNzE0IDEuNzE0IDAgMCAwLS4zNi0uNjMzIDEuNzQgMS43NCAwIDAgMC0uNjAxLS40MyAyLjE4NyAyLjE4NyAwIDAgMC0uODQ4LS4xNTZjLS4zMTYgMC0uNjAxLjA1NS0uODQzLjE1NmExLjY3IDEuNjcgMCAwIDAtLjYwMi40M2MtLjE2NC4xNzYtLjI4MS4zOS0uMzYuNjMzYTIuNTQ0IDIuNTQ0IDAgMCAwLS4xMTcuNzg1YzAgLjI3Ny4wNC41NDMuMTE4Ljc4NWExLjY5MSAxLjY5MSAwIDAgMCAuOTYgMS4wNTljLjI0My4wOTcuNTI4LjE1Mi44NDQuMTUyLjMyIDAgLjYwNi0uMDUuODQ4LS4xNTIuMjM4LS4xMDIuNDQxLS4yNDYuNjAxLS40MjIuMTYtLjE4LjI4Mi0uMzk1LjM2LS42MzcuMDc4LS4yNDIuMTE3LS41MDQuMTE3LS43ODVzLS4wMzktLjU0My0uMTE3LS43ODVtLS43OS43ODVjMCAuNDIyLS4wODEuNzU4LS4yNS45OTItLjE2Ny4yMzQtLjQxNy4zNDgtLjc2OS4zNDgtLjM0NyAwLS41OTctLjExNC0uNzYxLS4zNDgtLjE2OC0uMjM0LS4yNS0uNTctLjI1LS45OTIgMC0uNDIyLjA4NS0uNzU4LjI1LS45ODguMTY0LS4yMzUuNDE0LS4zNDQuNzYxLS4zNDQuMzUyIDAgLjYwMi4xMS43Ny4zNDQuMTY4LjIzLjI1LjU2Ni4yNS45ODgiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuOTM0IDI0LjIzNGMtLjAyOC0uMDc0LS4xMDItLjA0Ny0uMTAyLS4wNDdhMS43NDMgMS43NDMgMCAwIDEtLjM2Ny4wOTggMi44OCAyLjg4IDAgMCAxLS40My4wMzFjLS4zODMgMC0uNjgzLS4xMDUtLjkwMi0uMzEyLS4yMTUtLjIxMS0uMzM2LS41NDctLjMzNi0xIDAtLjQxNC4xMS0uNzI3LjMtLjk2NS4xOTItLjIzNC40ODUtLjM1NS44NzYtLjM1NS4zMjQgMCAuNTc0LjAzNS44MzIuMTA5IDAgMCAuMDYyLjAyNy4wOS0uMDUuMDctLjE3Ny4xMi0uMzAyLjE5NS0uNDk3LjAyLS4wNTgtLjAzMS0uMDgyLS4wNS0uMDg2YTMuMjQgMy4yNCAwIDAgMC0uNTI0LS4xMjUgNC40MzUgNC40MzUgMCAwIDAtLjU5LS4wMzVjLS4zMzIgMC0uNjI1LjA1NS0uODguMTU2YTEuODQyIDEuODQyIDAgMCAwLS42MzYuNDI2Yy0uMTY4LjE4LS4yOTcuMzk1LS4zODMuNjM3YTIuMzE1IDIuMzE1IDAgMCAwLS4xMjkuNzg1YzAgLjYwNS4xNzYgMS4wOTQuNTI4IDEuNDUzLjM0Ny4zNi44Ny41NDMgMS41NTQuNTQzLjQwMyAwIC44MTctLjA3NCAxLjExNC0uMTg0IDAgMCAuMDU4LS4wMjcuMDM1LS4wODZ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTQxLjk2NSAyMi4wODJhMS41MiAxLjUyIDAgMCAwLS4zNDQtLjU3OCAxLjUxNiAxLjUxNiAwIDAgMC0uNTA0LS4zNiAyLjEwNSAyLjEwNSAwIDAgMC0uNzY1LS4xNDRjLS4zMzIgMC0uNjMzLjA1LS44OC4xNi0uMjQ1LjEwNi0uNDUyLjI1LS42MTMuNDM0LS4xNjQuMTgtLjI4NS4zOTgtLjM2My42NGEyLjYwNSAyLjYwNSAwIDAgMC0uMTE3Ljc5YzAgLjI4NS4wNDMuNTUuMTIxLjc5Mi4wODIuMjM5LjIxLjQ1NC4zODcuNjMuMTc1LjE3NS40MDIuMzEyLjY3Mi40MS4yNjUuMDk3LjU5My4xNDguOTY4LjE0NC43NyAwIDEuMTc2LS4xNiAxLjM0LS4yNDYuMDMxLS4wMTYuMDU5LS4wNDMuMDI0LS4xMTdsLS4xNzItLjQ1M2MtLjAyOC0uMDctLjEwMi0uMDQzLS4xMDItLjA0My0uMTkxLjA2Mi0uNDYuMTgzLTEuMDk0LjE4LS40MTQgMC0uNzIyLS4xMS0uOTE0LS4yOS0uMTk1LS4xOC0uMjkzLS40NDUtLjMwOC0uODJoMi42NjRzLjA3IDAgLjA3OC0uMDY2Yy4wMDQtLjAyOC4wOS0uNTA4LS4wNzgtMS4wNjNtLTIuNjUzLjUxNmMuMDM2LS4yMzUuMTA2LS40MzQuMjE1LS41ODIuMTY0LS4yMzUuNDEtLjM2Ljc2Mi0uMzYuMzUyIDAgLjU4Mi4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTguNTgyeiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMC40NTMgMjIuMDgyYTEuNTE3IDEuNTE3IDAgMCAwLS4zNC0uNTc4IDEuNDkgMS40OSAwIDAgMC0uNTA4LS4zNiAyLjA4MyAyLjA4MyAwIDAgMC0uNzYxLS4xNDRjLS4zMzIgMC0uNjM3LjA1LS44ODMuMTYtLjI0Mi4xMDYtLjQ1LjI1LS42MTMuNDM0YTEuNzggMS43OCAwIDAgMC0uMzYuNjQgMi42MDUgMi42MDUgMCAwIDAtLjExNy43OWMwIC4yODUuMDQuNTUuMTIxLjc5Mi4wNzguMjM5LjIxMS40NTQuMzg3LjYzLjE3Ni4xNzUuMzk4LjMxMi42NjguNDEuMjcuMDk3LjU5NC4xNDguOTY5LjE0NC43NyAwIDEuMTc1LS4xNiAxLjM0My0uMjQ2LjAzMi0uMDE2LjA1NS0uMDQzLjAyNC0uMTE3bC0uMTc2LS40NTNjLS4wMjctLjA3LS4xMDItLjA0My0uMTAyLS4wNDMtLjE5LjA2Mi0uNDYuMTgzLTEuMDkzLjE4LS40MTQgMC0uNzE5LS4xMS0uOTEtLjI5LS4yLS4xOC0uMjk3LS40NDUtLjMxMy0uODJoMi42NjhzLjA3IDAgLjA3OC0uMDY2YzAtLjAyOC4wOS0uNTA4LS4wODItMS4wNjNtLTIuNjUyLjUxNmMuMDM5LS4yMzUuMTEtLjQzNC4yMTUtLjU4Mi4xNjQtLjIzNS40MTQtLjM2Ljc2NS0uMzYuMzQ4IDAgLjU3OC4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTc2LjU4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTIuOTMgMjIuNDhjLS4xMS0uMDAzLS4yNDYtLjAwNy0uNDE0LS4wMDctLjIzIDAtLjQ1NC4wMjMtLjY2LjA3OC0uMjA4LjA1LS4zOTUuMTI5LS41NTUuMjM4LS4xNi4xMDYtLjI5My4yNDItLjM4Ny40MDZhMS4xMzUgMS4xMzUgMCAwIDAtLjE0NC41N2MwIC4yMi4wNDMuNDEuMTI1LjU2My4wNzguMTU2LjE5NS4yODUuMzQzLjM4Ny4xNDkuMTAxLjMzMi4xNzYuNTQzLjIxOS4yMTEuMDQzLjQ1LjA2Ni43MTEuMDY2LjI3NCAwIC41NDMtLjAyLjgwOS0uMDYzLjI2MS0uMDQyLjU4Mi0uMTAxLjY3Mi0uMTIuMDktLjAyLjE4Ny0uMDQ0LjE4Ny0uMDQ0LjA2Ny0uMDE1LjA1OS0uMDgyLjA1OS0uMDgydi0yLjI1N2MwLS40OTctLjE0NS0uODY0LS40MjItMS4wOTQtLjI4MS0uMjI3LS42OTUtLjM0LTEuMjI3LS4zNC0uMTk5IDAtLjUyLjAyMy0uNzE1LjA2MyAwIDAtLjU4Mi4xMDEtLjgyLjI3NyAwIDAtLjA1NS4wMzEtLjAyMy4wOThsLjE4Ny40NjhjLjAyNC4wNjMuMDg2LjA0My4wODYuMDQzcy4wMjQtLjAwOC4wNDctLjAyM2MuNTEyLS4yNTggMS4xNi0uMjUgMS4xNi0uMjUuMjkgMCAuNTEyLjA1NC42Ni4xNi4xNDUuMTA1LjIyLjI1OC4yMi41OXYuMTA1Yy0uMjMxLS4wMzEtLjQ0Mi0uMDUtLjQ0Mi0uMDVtLTEuMDYzIDEuNzM4YS41MzguNTM4IDAgMCAxLS4xNTItLjE0OS41Ny41NyAwIDAgMS0uMDc4LS4zMmMwLS4yMTkuMDc4LS4zNzEuMjM4LS40NzctLjAwNCAwIC4yMy0uMTg3Ljc3My0uMTguMzguMDA1LjcyMy4wNTUuNzIzLjA1NXYxLjEyNXMtLjM0LjA2Ny0uNzE5LjA4NmMtLjU0My4wMzItLjc4NS0uMTQtLjc4NS0uMTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzQuNzYyIDIxLjE2OGMuMDItLjA1OS0uMDI0LS4wODItLjA0My0uMDlhMi41MjYgMi41MjYgMCAwIDAtLjQ0Ni0uMDc0Yy0uMzM2LS4wMi0uNTIuMDM1LS42ODcuMTA1LS4xNjguMDctLjM1Mi4xODgtLjQ1LjMybC0uMDAzLS4zMTJjMC0uMDQzLS4wMzEtLjA3OC0uMDc0LS4wNzhoLS42ODRhLjA3Ni4wNzYgMCAwIDAtLjA3OC4wNzh2My44MDVjMCAuMDQzLjAzOS4wNzguMDgyLjA3OGguN2EuMDguMDggMCAwIDAgLjA4MS0uMDc4di0xLjg5OWMwLS4yNTcuMDI4LS41MTEuMDg2LS42NzFhLjk2NC45NjQgMCAwIDEgLjIzNC0uMzc1Ljg2Ljg2IDAgMCAxIC4zMzMtLjE5MiAxLjM1IDEuMzUgMCAwIDEgLjM1NS0uMDQ3Yy4xNCAwIC4yOTMuMDM1LjI5My4wMzUuMDUuMDA0LjA3OC0uMDI3LjA5OC0uMDcuMDQ2LS4xMTMuMTc1LS40NjUuMjAzLS41MzUiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjguMjAzIDE5LjEwNWExLjk1IDEuOTUgMCAwIDAtLjYyNS0uMDljLS40ODQgMC0uODYzLjEzNy0xLjEyOS40MDctLjI2NS4yNjUtLjQ0NS42NzYtLjUzOSAxLjIxbC0uMDQ3LjM2NGgtLjYwNXMtLjA3NC0uMDA0LS4wOS4wNzhsLS4wOTguNTU1Yy0uMDA4LjA1NS4wMTYuMDg2LjA4Ni4wODZoLjU5bC0uNTk4IDMuMzM2YTQuNDMgNC40MyAwIDAgMS0uMTYuNjYgMS40MjIgMS40MjIgMCAwIDEtLjE4Ny4zNzkuNTA1LjUwNSAwIDAgMS0uMjQyLjE4NyAxIDEgMCAwIDEtLjMxNy4wNDMuOTcuOTcgMCAwIDEtLjIxLS4wMjMuNTguNTggMCAwIDEtLjE0NS0uMDQzcy0uMDctLjAyNy0uMDk4LjA0M2MtLjAyMy4wNTUtLjE4LjQ4OC0uMTk1LjUzOS0uMDIuMDU1LjAwNC4wOTQuMDM5LjEwNS4wNzguMDMyLjEzNy4wNDcuMjQyLjA3NS4xNDguMDM1LjI3My4wMzUuMzkuMDM1LjI0NyAwIC40Ny0uMDM1LjY1Ny0uMTAyLjE4Ny0uMDY2LjM0OC0uMTgzLjQ5Mi0uMzQ0LjE1Ni0uMTcxLjI1NC0uMzUxLjM0OC0uNTkzLjA5LS4yNDYuMTY4LS41NDcuMjM0LS44OTlsLjU5OC0zLjM5OGguODc5cy4wNzQuMDA0LjA5LS4wNzhsLjA5Ny0uNTU1Yy4wMDgtLjA1LS4wMTUtLjA4Ni0uMDg2LS4wODZoLS44NTFjLjAwNC0uMDIuMDU4LS41MDQuMTU2LS43ODVhLjc4OC43ODggMCAwIDEgLjE4Ny0uMjg1LjU2Ni41NjYgMCAwIDEgLjIyMy0uMTQgMS4xNjUgMS4xNjUgMCAwIDEgLjUwNC0uMDJjLjA4Mi4wMi4xMTcuMDI3LjEzNy4wMzUuMDkuMDI3LjA5NyAwIC4xMTctLjA0M2wuMjAzLS41NTljLjAyMy0uMDU4LS4wMjctLjA4Ni0uMDQ3LS4wOTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODk4IDI0LjkxOGMwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MmgtLjcwN2MtLjA0NyAwLS4wNzgtLjAzNS0uMDc4LS4wODJ2LTUuODM2YzAtLjA0Ny4wMzEtLjA4Mi4wNzgtLjA4MmguNzA3Yy4wNDMgMCAuMDc0LjA0LjA3NC4wODJ6IiBmaWxsPSIjRkZGIi8+PC9nPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2FsZXNmb3JjZSIgZGM6ZGVzY3JpcHRpb249InNhbGVzZm9yY2UiIGRjOnB1Ymxpc2hlcj0iSWNvbnNjb3V0IiBkYzpkYXRlPSIyMDE3LTEyLTE1IiBkYzpmb3JtYXQ9ImltYWdlL3N2Zyt4bWwiIGRjOmxhbmd1YWdlPSJlbiI+PGRjOmNyZWF0b3I+PHJkZjpCYWc+PHJkZjpsaT5JY29uczg8L3JkZjpsaT48L3JkZjpCYWc+PC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L21ldGFkYXRhPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Salesforce",
        "camel.apache.org/kamelet.namespace" : "Salesforce"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Salesforce composite upsert Sink",
        "description" : "Upsert Composite List of sObjects in Salesforce. \n\nThe body received must contain List of JSON SObjects to insert/update inside the records attribute, for example: \n\n`{\"records\" : [\"attributes\" : {\"type\" : \"KameletSinkSObject__c\"},\"ExtId__c\" : \"1\",\"Name__c\": \"Ziauddin\", \"City__c\": \"Bhopal\"], [\"attributes\" : {\"type\" : \"KameletSinkSObject__c\"},\"ExtId__c\" : \"2\",\"Name__c\": \"Shaikh\", \"City__c\": \"Bhopal\"] }`      ",
        "required" : [ "sObjectName", "sObjectIdName", "clientId", "clientSecret", "userName", "password" ],
        "type" : "object",
        "properties" : {
          "sObjectName" : {
            "title" : "Object Name",
            "description" : "The type of the Salesforce object. Required if using a key-value pair.",
            "type" : "string",
            "example" : "Contact"
          },
          "sObjectIdName" : {
            "title" : "Object Id Name",
            "description" : "The Field Name of the External ID of the Salesforce object. Required if using a key-value pair.",
            "type" : "string"
          },
          "loginUrl" : {
            "title" : "Login URL",
            "description" : "The Salesforce instance login URL.",
            "type" : "string",
            "default" : "https://login.salesforce.com"
          },
          "clientId" : {
            "title" : "Consumer Key",
            "description" : "The Salesforce application consumer key.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Consumer Secret",
            "description" : "The Salesforce application consumer secret.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "userName" : {
            "title" : "Username",
            "description" : "The Salesforce username.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The Salesforce user password.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jsonpath", "camel:jackson", "camel:salesforce", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "salesforce",
          "type" : "#class:org.apache.camel.component.salesforce.SalesforceComponent",
          "properties" : {
            "sObjectName" : "{{sObjectName}}",
            "sObjectIdName" : "{{sObjectIdName}}",
            "clientId" : "{{clientId}}",
            "clientSecret" : "{{clientSecret}}",
            "userName" : "{{userName}}",
            "password" : "{{password}}",
            "loginUrl" : "{{loginUrl}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "transform" : {
              "jsonpath" : "$['records']"
            }
          }, {
            "to" : {
              "uri" : "{{salesforce}}:compositeUpsertSObjectCollections",
              "parameters" : {
                "sObjectName" : "{{sObjectName}}",
                "sObjectIdName" : "{{sObjectIdName}}",
                "rawPayload" : "true",
                "allOrNone" : "false"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Salesforce composite upsert Sink",
      "description" : "Upsert Composite List of sObjects in Salesforce. \n\nThe body received must contain List of JSON SObjects to insert/update inside the records attribute, for example: \n\n`{\"records\" : [\"attributes\" : {\"type\" : \"KameletSinkSObject__c\"},\"ExtId__c\" : \"1\",\"Name__c\": \"Ziauddin\", \"City__c\": \"Bhopal\"], [\"attributes\" : {\"type\" : \"KameletSinkSObject__c\"},\"ExtId__c\" : \"2\",\"Name__c\": \"Shaikh\", \"City__c\": \"Bhopal\"] }`      ",
      "required" : [ "sObjectName", "sObjectIdName", "clientId", "clientSecret", "userName", "password" ],
      "properties" : {
        "sObjectName" : {
          "type" : "string",
          "title" : "Object Name",
          "description" : "The type of the Salesforce object. Required if using a key-value pair."
        },
        "sObjectIdName" : {
          "type" : "string",
          "title" : "Object Id Name",
          "description" : "The Field Name of the External ID of the Salesforce object. Required if using a key-value pair."
        },
        "loginUrl" : {
          "type" : "string",
          "title" : "Login URL",
          "description" : "The Salesforce instance login URL.",
          "default" : "https://login.salesforce.com"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Consumer Key",
          "description" : "The Salesforce application consumer key."
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Consumer Secret",
          "description" : "The Salesforce application consumer secret.",
          "format" : "password"
        },
        "userName" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The Salesforce username."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The Salesforce user password.",
          "format" : "password"
        }
      }
    }
  },
  "salesforce-create-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "salesforce-create-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA0OCA0OCIgdmVyc2lvbj0iMS4xIj48ZyBpZD0ic3VyZmFjZTEiPjxwYXRoIGQ9Ik0zNi41IDEyYy0xLjMyNCAwLTIuNTkuMjU4LTMuNzU4LjcwM0E3Ljk5NCA3Ljk5NCAwIDAgMCAyNiA5Yy0yLjEwNSAwLTQuMDIuODItNS40NDUgMi4xNTJBOS40NjggOS40NjggMCAwIDAgMTMuNSA4QzguMjU0IDggNCAxMi4yNTQgNCAxNy41YzAgLjc5My4xMSAxLjU1OS4yOSAyLjI5M0E4LjQ3MiA4LjQ3MiAwIDAgMCAxIDI2LjVDMSAzMS4xOTUgNC44MDUgMzUgOS41IDM1Yy40MTQgMCAuODE2LS4wNCAxLjIxNS0uMDk4IDEuMzEyIDMgNC4zIDUuMDk4IDcuNzg1IDUuMDk4IDMuMTYgMCA1LjkxNC0xLjczIDcuMzc5LTQuMjkzQTcuOTIzIDcuOTIzIDAgMCAwIDI4IDM2YzIuNjIxIDAgNC45MzgtMS4yNjYgNi4zOTgtMy4yMS42OC4xMzYgMS4zODMuMjEgMi4xMDIuMjFDNDIuMyAzMyA0NyAyOC4zIDQ3IDIyLjVTNDIuMyAxMiAzNi41IDEyeiIgZmlsbD0iIzAzOUJFNSIvPjxwYXRoIGQ9Ik0xNS44MjQgMjVjLjA0MyAwIC4wNzQtLjAzNS4wNzQtLjA4MiAwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjEuNTA0IDIzLjkzNHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNy4xMzcgMjMuOTNhLjExNi4xMTYgMCAwIDEgLjAwNCAwaC0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yNC4xMjUgMjEuOTFjLS4wMTYuMDQtLjA0Ny4wNDMtLjA3LjA0M2guMDA4Yy4wMjMgMCAuMDUtLjAwOC4wNjItLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODI0IDE5Yy4wNDMgMCAuMDc0LjAzNS4wNzQuMDgyIDAtLjA0Ny0uMDMtLjA4Mi0uMDc0LS4wODJ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTIxLjM2IDIyLjE4NGMwIC40MS4yMS42NjQuNTAzLjgzNi0uMjkzLS4xNzItLjUwNC0uNDI2LS41MDQtLjgzNnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzguMTI1IDI0LjczYy4wMjcuMDYtLjAzMS4wODYtLjAzMS4wODZzLjA1OC0uMDI3LjAzMS0uMDg2eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik04LjU1OSAyMXoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNOS43NjYgMjEuOTFjLS4wMi4wNC0uMDQ3LjA0My0uMDc1LjA0M0g5LjdjLjAyOCAwIC4wNTEtLjAwOC4wNjctLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzUuMTk1IDI0LjE2NHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuODI4IDIxLjc5N2gtLjAyM3MuMDA4LjAwNC4wMjMuMDA0di0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zNy44MzIgMjQuMTg4cy4wMTYgMCAuMDM1LS4wMDRoLS4wMDRjLS4wMTUgMC0uMDMxLjAwMy0uMDMxLjAwM3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNi44ODcgMjQuNDZjLS4wMzIuMDcxLjAwOC4wODcuMDIuMDk5LjA4NS4wNTguMTcxLjA5Ny4yNjEuMTQ0LjQ2OS4yMy45MS4yOTcgMS4zNzUuMjk3Ljk0NSAwIDEuNTMxLS40NiAxLjUzMS0xLjIwN3YtLjAxNmMwLS42ODctLjY2NC0uOTM3LTEuMjg1LTEuMTE3bC0uMDc4LS4wMjNjLS40NjktLjE0LS44NzEtLjI2Mi0uODcxLS41NDd2LS4wMTZjMC0uMjQyLjIzNC0uNDIyLjYwMS0uNDIyLjQwNyAwIC44ODcuMTI1IDEuMi4yODUgMCAwIC4wOS4wNTUuMTI1LS4wMjcuMDE1LS4wNDMuMTc1LS40MzMuMTkxLS40NzYuMDItLjA0My0uMDE2LS4wNzktLjA0Ny0uMDk4QTIuODQ1IDIuODQ1IDAgMCAwIDguNTYgMjFoLS4wOTRjLS44NjMgMC0xLjQ2OS40OC0xLjQ2OSAxLjE3MnYuMDEyYzAgLjcyNi42NjQuOTY0IDEuMjkgMS4xMjhsLjEuMDI4Yy40NTQuMTI5Ljg0NC4yMzguODQ0LjUzMXYuMDE2YzAgLjI3LS4yNTMuNDcyLS42NjQuNDcyLS4xNiAwLS42NjgtLjAwNC0xLjIxNC0uMzI0YTIuNDUgMi40NSAwIDAgMS0uMTU3LS4wOWMtLjAyNy0uMDE1LS4wOTMtLjA0My0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMS4yNDYgMjQuNDZjLS4wMjcuMDcxLjAxMi4wODcuMDIuMDk5LjA5LjA1OC4xNzUuMDk3LjI2MS4xNDQuNDcuMjMuOTE0LjI5NyAxLjM4LjI5Ny45NCAwIDEuNTI3LS40NiAxLjUyNy0xLjIwN3YtLjAxNmMwLS42ODctLjY2LS45MzctMS4yODItMS4xMTdsLS4wODItLjAyM2MtLjQ2NS0uMTQtLjg3LS4yNjItLjg3LS41NDd2LS4wMTZjMC0uMjQyLjIzOC0uNDIyLjYwNS0uNDIyLjQwNiAwIC44ODYuMTI1IDEuMTk5LjI4NSAwIDAgLjA5LjA1NS4xMjUtLjAyNy4wMTYtLjA0My4xNzItLjQzMy4xOTEtLjQ3Ni4wMTYtLjA0My0uMDE1LS4wNzktLjA0Ny0uMDk4QTIuODU3IDIuODU3IDAgMCAwIDIyLjkyMiAyMWgtLjA5OGMtLjg2MyAwLTEuNDY1LjQ4LTEuNDY1IDEuMTcydi4wMTJjMCAuNzI2LjY2NC45NjQgMS4yOSAxLjEyOGwuMDk3LjAyOGMuNDU3LjEyOS44NDguMjM4Ljg0OC41MzF2LjAxNmMwIC4yNy0uMjU0LjQ3Mi0uNjY0LjQ3Mi0uMTYgMC0uNjY4LS4wMDQtMS4yMTUtLjMyNGEyLjQ1IDIuNDUgMCAwIDEtLjE1Ni0uMDljLS4wMi0uMDA4LS4wOTgtLjAzOS0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zMS40NjUgMjIuMjE5YTEuNzE0IDEuNzE0IDAgMCAwLS4zNi0uNjMzIDEuNzQgMS43NCAwIDAgMC0uNjAxLS40MyAyLjE4NyAyLjE4NyAwIDAgMC0uODQ4LS4xNTZjLS4zMTYgMC0uNjAxLjA1NS0uODQzLjE1NmExLjY3IDEuNjcgMCAwIDAtLjYwMi40M2MtLjE2NC4xNzYtLjI4MS4zOS0uMzYuNjMzYTIuNTQ0IDIuNTQ0IDAgMCAwLS4xMTcuNzg1YzAgLjI3Ny4wNC41NDMuMTE4Ljc4NWExLjY5MSAxLjY5MSAwIDAgMCAuOTYgMS4wNTljLjI0My4wOTcuNTI4LjE1Mi44NDQuMTUyLjMyIDAgLjYwNi0uMDUuODQ4LS4xNTIuMjM4LS4xMDIuNDQxLS4yNDYuNjAxLS40MjIuMTYtLjE4LjI4Mi0uMzk1LjM2LS42MzcuMDc4LS4yNDIuMTE3LS41MDQuMTE3LS43ODVzLS4wMzktLjU0My0uMTE3LS43ODVtLS43OS43ODVjMCAuNDIyLS4wODEuNzU4LS4yNS45OTItLjE2Ny4yMzQtLjQxNy4zNDgtLjc2OS4zNDgtLjM0NyAwLS41OTctLjExNC0uNzYxLS4zNDgtLjE2OC0uMjM0LS4yNS0uNTctLjI1LS45OTIgMC0uNDIyLjA4NS0uNzU4LjI1LS45ODguMTY0LS4yMzUuNDE0LS4zNDQuNzYxLS4zNDQuMzUyIDAgLjYwMi4xMS43Ny4zNDQuMTY4LjIzLjI1LjU2Ni4yNS45ODgiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuOTM0IDI0LjIzNGMtLjAyOC0uMDc0LS4xMDItLjA0Ny0uMTAyLS4wNDdhMS43NDMgMS43NDMgMCAwIDEtLjM2Ny4wOTggMi44OCAyLjg4IDAgMCAxLS40My4wMzFjLS4zODMgMC0uNjgzLS4xMDUtLjkwMi0uMzEyLS4yMTUtLjIxMS0uMzM2LS41NDctLjMzNi0xIDAtLjQxNC4xMS0uNzI3LjMtLjk2NS4xOTItLjIzNC40ODUtLjM1NS44NzYtLjM1NS4zMjQgMCAuNTc0LjAzNS44MzIuMTA5IDAgMCAuMDYyLjAyNy4wOS0uMDUuMDctLjE3Ny4xMi0uMzAyLjE5NS0uNDk3LjAyLS4wNTgtLjAzMS0uMDgyLS4wNS0uMDg2YTMuMjQgMy4yNCAwIDAgMC0uNTI0LS4xMjUgNC40MzUgNC40MzUgMCAwIDAtLjU5LS4wMzVjLS4zMzIgMC0uNjI1LjA1NS0uODguMTU2YTEuODQyIDEuODQyIDAgMCAwLS42MzYuNDI2Yy0uMTY4LjE4LS4yOTcuMzk1LS4zODMuNjM3YTIuMzE1IDIuMzE1IDAgMCAwLS4xMjkuNzg1YzAgLjYwNS4xNzYgMS4wOTQuNTI4IDEuNDUzLjM0Ny4zNi44Ny41NDMgMS41NTQuNTQzLjQwMyAwIC44MTctLjA3NCAxLjExNC0uMTg0IDAgMCAuMDU4LS4wMjcuMDM1LS4wODZ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTQxLjk2NSAyMi4wODJhMS41MiAxLjUyIDAgMCAwLS4zNDQtLjU3OCAxLjUxNiAxLjUxNiAwIDAgMC0uNTA0LS4zNiAyLjEwNSAyLjEwNSAwIDAgMC0uNzY1LS4xNDRjLS4zMzIgMC0uNjMzLjA1LS44OC4xNi0uMjQ1LjEwNi0uNDUyLjI1LS42MTMuNDM0LS4xNjQuMTgtLjI4NS4zOTgtLjM2My42NGEyLjYwNSAyLjYwNSAwIDAgMC0uMTE3Ljc5YzAgLjI4NS4wNDMuNTUuMTIxLjc5Mi4wODIuMjM5LjIxLjQ1NC4zODcuNjMuMTc1LjE3NS40MDIuMzEyLjY3Mi40MS4yNjUuMDk3LjU5My4xNDguOTY4LjE0NC43NyAwIDEuMTc2LS4xNiAxLjM0LS4yNDYuMDMxLS4wMTYuMDU5LS4wNDMuMDI0LS4xMTdsLS4xNzItLjQ1M2MtLjAyOC0uMDctLjEwMi0uMDQzLS4xMDItLjA0My0uMTkxLjA2Mi0uNDYuMTgzLTEuMDk0LjE4LS40MTQgMC0uNzIyLS4xMS0uOTE0LS4yOS0uMTk1LS4xOC0uMjkzLS40NDUtLjMwOC0uODJoMi42NjRzLjA3IDAgLjA3OC0uMDY2Yy4wMDQtLjAyOC4wOS0uNTA4LS4wNzgtMS4wNjNtLTIuNjUzLjUxNmMuMDM2LS4yMzUuMTA2LS40MzQuMjE1LS41ODIuMTY0LS4yMzUuNDEtLjM2Ljc2Mi0uMzYuMzUyIDAgLjU4Mi4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTguNTgyeiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMC40NTMgMjIuMDgyYTEuNTE3IDEuNTE3IDAgMCAwLS4zNC0uNTc4IDEuNDkgMS40OSAwIDAgMC0uNTA4LS4zNiAyLjA4MyAyLjA4MyAwIDAgMC0uNzYxLS4xNDRjLS4zMzIgMC0uNjM3LjA1LS44ODMuMTYtLjI0Mi4xMDYtLjQ1LjI1LS42MTMuNDM0YTEuNzggMS43OCAwIDAgMC0uMzYuNjQgMi42MDUgMi42MDUgMCAwIDAtLjExNy43OWMwIC4yODUuMDQuNTUuMTIxLjc5Mi4wNzguMjM5LjIxMS40NTQuMzg3LjYzLjE3Ni4xNzUuMzk4LjMxMi42NjguNDEuMjcuMDk3LjU5NC4xNDguOTY5LjE0NC43NyAwIDEuMTc1LS4xNiAxLjM0My0uMjQ2LjAzMi0uMDE2LjA1NS0uMDQzLjAyNC0uMTE3bC0uMTc2LS40NTNjLS4wMjctLjA3LS4xMDItLjA0My0uMTAyLS4wNDMtLjE5LjA2Mi0uNDYuMTgzLTEuMDkzLjE4LS40MTQgMC0uNzE5LS4xMS0uOTEtLjI5LS4yLS4xOC0uMjk3LS40NDUtLjMxMy0uODJoMi42NjhzLjA3IDAgLjA3OC0uMDY2YzAtLjAyOC4wOS0uNTA4LS4wODItMS4wNjNtLTIuNjUyLjUxNmMuMDM5LS4yMzUuMTEtLjQzNC4yMTUtLjU4Mi4xNjQtLjIzNS40MTQtLjM2Ljc2NS0uMzYuMzQ4IDAgLjU3OC4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTc2LjU4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTIuOTMgMjIuNDhjLS4xMS0uMDAzLS4yNDYtLjAwNy0uNDE0LS4wMDctLjIzIDAtLjQ1NC4wMjMtLjY2LjA3OC0uMjA4LjA1LS4zOTUuMTI5LS41NTUuMjM4LS4xNi4xMDYtLjI5My4yNDItLjM4Ny40MDZhMS4xMzUgMS4xMzUgMCAwIDAtLjE0NC41N2MwIC4yMi4wNDMuNDEuMTI1LjU2My4wNzguMTU2LjE5NS4yODUuMzQzLjM4Ny4xNDkuMTAxLjMzMi4xNzYuNTQzLjIxOS4yMTEuMDQzLjQ1LjA2Ni43MTEuMDY2LjI3NCAwIC41NDMtLjAyLjgwOS0uMDYzLjI2MS0uMDQyLjU4Mi0uMTAxLjY3Mi0uMTIuMDktLjAyLjE4Ny0uMDQ0LjE4Ny0uMDQ0LjA2Ny0uMDE1LjA1OS0uMDgyLjA1OS0uMDgydi0yLjI1N2MwLS40OTctLjE0NS0uODY0LS40MjItMS4wOTQtLjI4MS0uMjI3LS42OTUtLjM0LTEuMjI3LS4zNC0uMTk5IDAtLjUyLjAyMy0uNzE1LjA2MyAwIDAtLjU4Mi4xMDEtLjgyLjI3NyAwIDAtLjA1NS4wMzEtLjAyMy4wOThsLjE4Ny40NjhjLjAyNC4wNjMuMDg2LjA0My4wODYuMDQzcy4wMjQtLjAwOC4wNDctLjAyM2MuNTEyLS4yNTggMS4xNi0uMjUgMS4xNi0uMjUuMjkgMCAuNTEyLjA1NC42Ni4xNi4xNDUuMTA1LjIyLjI1OC4yMi41OXYuMTA1Yy0uMjMxLS4wMzEtLjQ0Mi0uMDUtLjQ0Mi0uMDVtLTEuMDYzIDEuNzM4YS41MzguNTM4IDAgMCAxLS4xNTItLjE0OS41Ny41NyAwIDAgMS0uMDc4LS4zMmMwLS4yMTkuMDc4LS4zNzEuMjM4LS40NzctLjAwNCAwIC4yMy0uMTg3Ljc3My0uMTguMzguMDA1LjcyMy4wNTUuNzIzLjA1NXYxLjEyNXMtLjM0LjA2Ny0uNzE5LjA4NmMtLjU0My4wMzItLjc4NS0uMTQtLjc4NS0uMTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzQuNzYyIDIxLjE2OGMuMDItLjA1OS0uMDI0LS4wODItLjA0My0uMDlhMi41MjYgMi41MjYgMCAwIDAtLjQ0Ni0uMDc0Yy0uMzM2LS4wMi0uNTIuMDM1LS42ODcuMTA1LS4xNjguMDctLjM1Mi4xODgtLjQ1LjMybC0uMDAzLS4zMTJjMC0uMDQzLS4wMzEtLjA3OC0uMDc0LS4wNzhoLS42ODRhLjA3Ni4wNzYgMCAwIDAtLjA3OC4wNzh2My44MDVjMCAuMDQzLjAzOS4wNzguMDgyLjA3OGguN2EuMDguMDggMCAwIDAgLjA4MS0uMDc4di0xLjg5OWMwLS4yNTcuMDI4LS41MTEuMDg2LS42NzFhLjk2NC45NjQgMCAwIDEgLjIzNC0uMzc1Ljg2Ljg2IDAgMCAxIC4zMzMtLjE5MiAxLjM1IDEuMzUgMCAwIDEgLjM1NS0uMDQ3Yy4xNCAwIC4yOTMuMDM1LjI5My4wMzUuMDUuMDA0LjA3OC0uMDI3LjA5OC0uMDcuMDQ2LS4xMTMuMTc1LS40NjUuMjAzLS41MzUiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjguMjAzIDE5LjEwNWExLjk1IDEuOTUgMCAwIDAtLjYyNS0uMDljLS40ODQgMC0uODYzLjEzNy0xLjEyOS40MDctLjI2NS4yNjUtLjQ0NS42NzYtLjUzOSAxLjIxbC0uMDQ3LjM2NGgtLjYwNXMtLjA3NC0uMDA0LS4wOS4wNzhsLS4wOTguNTU1Yy0uMDA4LjA1NS4wMTYuMDg2LjA4Ni4wODZoLjU5bC0uNTk4IDMuMzM2YTQuNDMgNC40MyAwIDAgMS0uMTYuNjYgMS40MjIgMS40MjIgMCAwIDEtLjE4Ny4zNzkuNTA1LjUwNSAwIDAgMS0uMjQyLjE4NyAxIDEgMCAwIDEtLjMxNy4wNDMuOTcuOTcgMCAwIDEtLjIxLS4wMjMuNTguNTggMCAwIDEtLjE0NS0uMDQzcy0uMDctLjAyNy0uMDk4LjA0M2MtLjAyMy4wNTUtLjE4LjQ4OC0uMTk1LjUzOS0uMDIuMDU1LjAwNC4wOTQuMDM5LjEwNS4wNzguMDMyLjEzNy4wNDcuMjQyLjA3NS4xNDguMDM1LjI3My4wMzUuMzkuMDM1LjI0NyAwIC40Ny0uMDM1LjY1Ny0uMTAyLjE4Ny0uMDY2LjM0OC0uMTgzLjQ5Mi0uMzQ0LjE1Ni0uMTcxLjI1NC0uMzUxLjM0OC0uNTkzLjA5LS4yNDYuMTY4LS41NDcuMjM0LS44OTlsLjU5OC0zLjM5OGguODc5cy4wNzQuMDA0LjA5LS4wNzhsLjA5Ny0uNTU1Yy4wMDgtLjA1LS4wMTUtLjA4Ni0uMDg2LS4wODZoLS44NTFjLjAwNC0uMDIuMDU4LS41MDQuMTU2LS43ODVhLjc4OC43ODggMCAwIDEgLjE4Ny0uMjg1LjU2Ni41NjYgMCAwIDEgLjIyMy0uMTQgMS4xNjUgMS4xNjUgMCAwIDEgLjUwNC0uMDJjLjA4Mi4wMi4xMTcuMDI3LjEzNy4wMzUuMDkuMDI3LjA5NyAwIC4xMTctLjA0M2wuMjAzLS41NTljLjAyMy0uMDU4LS4wMjctLjA4Ni0uMDQ3LS4wOTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODk4IDI0LjkxOGMwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MmgtLjcwN2MtLjA0NyAwLS4wNzgtLjAzNS0uMDc4LS4wODJ2LTUuODM2YzAtLjA0Ny4wMzEtLjA4Mi4wNzgtLjA4MmguNzA3Yy4wNDMgMCAuMDc0LjA0LjA3NC4wODJ6IiBmaWxsPSIjRkZGIi8+PC9nPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2FsZXNmb3JjZSIgZGM6ZGVzY3JpcHRpb249InNhbGVzZm9yY2UiIGRjOnB1Ymxpc2hlcj0iSWNvbnNjb3V0IiBkYzpkYXRlPSIyMDE3LTEyLTE1IiBkYzpmb3JtYXQ9ImltYWdlL3N2Zyt4bWwiIGRjOmxhbmd1YWdlPSJlbiI+PGRjOmNyZWF0b3I+PHJkZjpCYWc+PHJkZjpsaT5JY29uczg8L3JkZjpsaT48L3JkZjpCYWc+PC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L21ldGFkYXRhPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Salesforce",
        "camel.apache.org/kamelet.namespace" : "Salesforce"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Salesforce Create Sink",
        "description" : "Create an object in Salesforce. \n\nThe body of the message must contain the JSON of the Salesforce object, for example: `{ \"Phone\": \"555\", \"Name\": \"Antonia\", \"LastName\": \"Garcia\" }`.",
        "required" : [ "clientId", "clientSecret", "userName", "password" ],
        "type" : "object",
        "properties" : {
          "sObjectName" : {
            "title" : "Object Name",
            "description" : "The type of the object.",
            "type" : "string",
            "example" : "Contact"
          },
          "loginUrl" : {
            "title" : "Login URL",
            "description" : "The Salesforce instance login URL.",
            "type" : "string",
            "default" : "https://login.salesforce.com"
          },
          "clientId" : {
            "title" : "Consumer Key",
            "description" : "The Salesforce application consumer key.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Consumer Secret",
            "description" : "The Salesforce application consumer secret.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "userName" : {
            "title" : "Username",
            "description" : "The Salesforce username.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The Salesforce user password.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:salesforce", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "local-salesforce",
          "type" : "#class:org.apache.camel.component.salesforce.SalesforceComponent",
          "properties" : {
            "clientId" : "{{clientId}}",
            "clientSecret" : "{{clientSecret}}",
            "userName" : "{{userName}}",
            "password" : "{{password}}",
            "loginUrl" : "{{loginUrl}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "{{local-salesforce}}:createSObject",
              "parameters" : {
                "sObjectName" : "{{sObjectName}}",
                "rawPayload" : "true"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Salesforce Create Sink",
      "description" : "Create an object in Salesforce. \n\nThe body of the message must contain the JSON of the Salesforce object, for example: `{ \"Phone\": \"555\", \"Name\": \"Antonia\", \"LastName\": \"Garcia\" }`.",
      "required" : [ "clientId", "clientSecret", "userName", "password" ],
      "properties" : {
        "sObjectName" : {
          "type" : "string",
          "title" : "Object Name",
          "description" : "The type of the object."
        },
        "loginUrl" : {
          "type" : "string",
          "title" : "Login URL",
          "description" : "The Salesforce instance login URL.",
          "default" : "https://login.salesforce.com"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Consumer Key",
          "description" : "The Salesforce application consumer key."
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Consumer Secret",
          "description" : "The Salesforce application consumer secret.",
          "format" : "password"
        },
        "userName" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The Salesforce username."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The Salesforce user password.",
          "format" : "password"
        }
      }
    }
  },
  "salesforce-delete-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "salesforce-delete-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA0OCA0OCIgdmVyc2lvbj0iMS4xIj48ZyBpZD0ic3VyZmFjZTEiPjxwYXRoIGQ9Ik0zNi41IDEyYy0xLjMyNCAwLTIuNTkuMjU4LTMuNzU4LjcwM0E3Ljk5NCA3Ljk5NCAwIDAgMCAyNiA5Yy0yLjEwNSAwLTQuMDIuODItNS40NDUgMi4xNTJBOS40NjggOS40NjggMCAwIDAgMTMuNSA4QzguMjU0IDggNCAxMi4yNTQgNCAxNy41YzAgLjc5My4xMSAxLjU1OS4yOSAyLjI5M0E4LjQ3MiA4LjQ3MiAwIDAgMCAxIDI2LjVDMSAzMS4xOTUgNC44MDUgMzUgOS41IDM1Yy40MTQgMCAuODE2LS4wNCAxLjIxNS0uMDk4IDEuMzEyIDMgNC4zIDUuMDk4IDcuNzg1IDUuMDk4IDMuMTYgMCA1LjkxNC0xLjczIDcuMzc5LTQuMjkzQTcuOTIzIDcuOTIzIDAgMCAwIDI4IDM2YzIuNjIxIDAgNC45MzgtMS4yNjYgNi4zOTgtMy4yMS42OC4xMzYgMS4zODMuMjEgMi4xMDIuMjFDNDIuMyAzMyA0NyAyOC4zIDQ3IDIyLjVTNDIuMyAxMiAzNi41IDEyeiIgZmlsbD0iIzAzOUJFNSIvPjxwYXRoIGQ9Ik0xNS44MjQgMjVjLjA0MyAwIC4wNzQtLjAzNS4wNzQtLjA4MiAwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjEuNTA0IDIzLjkzNHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNy4xMzcgMjMuOTNhLjExNi4xMTYgMCAwIDEgLjAwNCAwaC0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yNC4xMjUgMjEuOTFjLS4wMTYuMDQtLjA0Ny4wNDMtLjA3LjA0M2guMDA4Yy4wMjMgMCAuMDUtLjAwOC4wNjItLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODI0IDE5Yy4wNDMgMCAuMDc0LjAzNS4wNzQuMDgyIDAtLjA0Ny0uMDMtLjA4Mi0uMDc0LS4wODJ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTIxLjM2IDIyLjE4NGMwIC40MS4yMS42NjQuNTAzLjgzNi0uMjkzLS4xNzItLjUwNC0uNDI2LS41MDQtLjgzNnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzguMTI1IDI0LjczYy4wMjcuMDYtLjAzMS4wODYtLjAzMS4wODZzLjA1OC0uMDI3LjAzMS0uMDg2eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik04LjU1OSAyMXoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNOS43NjYgMjEuOTFjLS4wMi4wNC0uMDQ3LjA0My0uMDc1LjA0M0g5LjdjLjAyOCAwIC4wNTEtLjAwOC4wNjctLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzUuMTk1IDI0LjE2NHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuODI4IDIxLjc5N2gtLjAyM3MuMDA4LjAwNC4wMjMuMDA0di0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zNy44MzIgMjQuMTg4cy4wMTYgMCAuMDM1LS4wMDRoLS4wMDRjLS4wMTUgMC0uMDMxLjAwMy0uMDMxLjAwM3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNi44ODcgMjQuNDZjLS4wMzIuMDcxLjAwOC4wODcuMDIuMDk5LjA4NS4wNTguMTcxLjA5Ny4yNjEuMTQ0LjQ2OS4yMy45MS4yOTcgMS4zNzUuMjk3Ljk0NSAwIDEuNTMxLS40NiAxLjUzMS0xLjIwN3YtLjAxNmMwLS42ODctLjY2NC0uOTM3LTEuMjg1LTEuMTE3bC0uMDc4LS4wMjNjLS40NjktLjE0LS44NzEtLjI2Mi0uODcxLS41NDd2LS4wMTZjMC0uMjQyLjIzNC0uNDIyLjYwMS0uNDIyLjQwNyAwIC44ODcuMTI1IDEuMi4yODUgMCAwIC4wOS4wNTUuMTI1LS4wMjcuMDE1LS4wNDMuMTc1LS40MzMuMTkxLS40NzYuMDItLjA0My0uMDE2LS4wNzktLjA0Ny0uMDk4QTIuODQ1IDIuODQ1IDAgMCAwIDguNTYgMjFoLS4wOTRjLS44NjMgMC0xLjQ2OS40OC0xLjQ2OSAxLjE3MnYuMDEyYzAgLjcyNi42NjQuOTY0IDEuMjkgMS4xMjhsLjEuMDI4Yy40NTQuMTI5Ljg0NC4yMzguODQ0LjUzMXYuMDE2YzAgLjI3LS4yNTMuNDcyLS42NjQuNDcyLS4xNiAwLS42NjgtLjAwNC0xLjIxNC0uMzI0YTIuNDUgMi40NSAwIDAgMS0uMTU3LS4wOWMtLjAyNy0uMDE1LS4wOTMtLjA0My0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMS4yNDYgMjQuNDZjLS4wMjcuMDcxLjAxMi4wODcuMDIuMDk5LjA5LjA1OC4xNzUuMDk3LjI2MS4xNDQuNDcuMjMuOTE0LjI5NyAxLjM4LjI5Ny45NCAwIDEuNTI3LS40NiAxLjUyNy0xLjIwN3YtLjAxNmMwLS42ODctLjY2LS45MzctMS4yODItMS4xMTdsLS4wODItLjAyM2MtLjQ2NS0uMTQtLjg3LS4yNjItLjg3LS41NDd2LS4wMTZjMC0uMjQyLjIzOC0uNDIyLjYwNS0uNDIyLjQwNiAwIC44ODYuMTI1IDEuMTk5LjI4NSAwIDAgLjA5LjA1NS4xMjUtLjAyNy4wMTYtLjA0My4xNzItLjQzMy4xOTEtLjQ3Ni4wMTYtLjA0My0uMDE1LS4wNzktLjA0Ny0uMDk4QTIuODU3IDIuODU3IDAgMCAwIDIyLjkyMiAyMWgtLjA5OGMtLjg2MyAwLTEuNDY1LjQ4LTEuNDY1IDEuMTcydi4wMTJjMCAuNzI2LjY2NC45NjQgMS4yOSAxLjEyOGwuMDk3LjAyOGMuNDU3LjEyOS44NDguMjM4Ljg0OC41MzF2LjAxNmMwIC4yNy0uMjU0LjQ3Mi0uNjY0LjQ3Mi0uMTYgMC0uNjY4LS4wMDQtMS4yMTUtLjMyNGEyLjQ1IDIuNDUgMCAwIDEtLjE1Ni0uMDljLS4wMi0uMDA4LS4wOTgtLjAzOS0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zMS40NjUgMjIuMjE5YTEuNzE0IDEuNzE0IDAgMCAwLS4zNi0uNjMzIDEuNzQgMS43NCAwIDAgMC0uNjAxLS40MyAyLjE4NyAyLjE4NyAwIDAgMC0uODQ4LS4xNTZjLS4zMTYgMC0uNjAxLjA1NS0uODQzLjE1NmExLjY3IDEuNjcgMCAwIDAtLjYwMi40M2MtLjE2NC4xNzYtLjI4MS4zOS0uMzYuNjMzYTIuNTQ0IDIuNTQ0IDAgMCAwLS4xMTcuNzg1YzAgLjI3Ny4wNC41NDMuMTE4Ljc4NWExLjY5MSAxLjY5MSAwIDAgMCAuOTYgMS4wNTljLjI0My4wOTcuNTI4LjE1Mi44NDQuMTUyLjMyIDAgLjYwNi0uMDUuODQ4LS4xNTIuMjM4LS4xMDIuNDQxLS4yNDYuNjAxLS40MjIuMTYtLjE4LjI4Mi0uMzk1LjM2LS42MzcuMDc4LS4yNDIuMTE3LS41MDQuMTE3LS43ODVzLS4wMzktLjU0My0uMTE3LS43ODVtLS43OS43ODVjMCAuNDIyLS4wODEuNzU4LS4yNS45OTItLjE2Ny4yMzQtLjQxNy4zNDgtLjc2OS4zNDgtLjM0NyAwLS41OTctLjExNC0uNzYxLS4zNDgtLjE2OC0uMjM0LS4yNS0uNTctLjI1LS45OTIgMC0uNDIyLjA4NS0uNzU4LjI1LS45ODguMTY0LS4yMzUuNDE0LS4zNDQuNzYxLS4zNDQuMzUyIDAgLjYwMi4xMS43Ny4zNDQuMTY4LjIzLjI1LjU2Ni4yNS45ODgiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuOTM0IDI0LjIzNGMtLjAyOC0uMDc0LS4xMDItLjA0Ny0uMTAyLS4wNDdhMS43NDMgMS43NDMgMCAwIDEtLjM2Ny4wOTggMi44OCAyLjg4IDAgMCAxLS40My4wMzFjLS4zODMgMC0uNjgzLS4xMDUtLjkwMi0uMzEyLS4yMTUtLjIxMS0uMzM2LS41NDctLjMzNi0xIDAtLjQxNC4xMS0uNzI3LjMtLjk2NS4xOTItLjIzNC40ODUtLjM1NS44NzYtLjM1NS4zMjQgMCAuNTc0LjAzNS44MzIuMTA5IDAgMCAuMDYyLjAyNy4wOS0uMDUuMDctLjE3Ny4xMi0uMzAyLjE5NS0uNDk3LjAyLS4wNTgtLjAzMS0uMDgyLS4wNS0uMDg2YTMuMjQgMy4yNCAwIDAgMC0uNTI0LS4xMjUgNC40MzUgNC40MzUgMCAwIDAtLjU5LS4wMzVjLS4zMzIgMC0uNjI1LjA1NS0uODguMTU2YTEuODQyIDEuODQyIDAgMCAwLS42MzYuNDI2Yy0uMTY4LjE4LS4yOTcuMzk1LS4zODMuNjM3YTIuMzE1IDIuMzE1IDAgMCAwLS4xMjkuNzg1YzAgLjYwNS4xNzYgMS4wOTQuNTI4IDEuNDUzLjM0Ny4zNi44Ny41NDMgMS41NTQuNTQzLjQwMyAwIC44MTctLjA3NCAxLjExNC0uMTg0IDAgMCAuMDU4LS4wMjcuMDM1LS4wODZ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTQxLjk2NSAyMi4wODJhMS41MiAxLjUyIDAgMCAwLS4zNDQtLjU3OCAxLjUxNiAxLjUxNiAwIDAgMC0uNTA0LS4zNiAyLjEwNSAyLjEwNSAwIDAgMC0uNzY1LS4xNDRjLS4zMzIgMC0uNjMzLjA1LS44OC4xNi0uMjQ1LjEwNi0uNDUyLjI1LS42MTMuNDM0LS4xNjQuMTgtLjI4NS4zOTgtLjM2My42NGEyLjYwNSAyLjYwNSAwIDAgMC0uMTE3Ljc5YzAgLjI4NS4wNDMuNTUuMTIxLjc5Mi4wODIuMjM5LjIxLjQ1NC4zODcuNjMuMTc1LjE3NS40MDIuMzEyLjY3Mi40MS4yNjUuMDk3LjU5My4xNDguOTY4LjE0NC43NyAwIDEuMTc2LS4xNiAxLjM0LS4yNDYuMDMxLS4wMTYuMDU5LS4wNDMuMDI0LS4xMTdsLS4xNzItLjQ1M2MtLjAyOC0uMDctLjEwMi0uMDQzLS4xMDItLjA0My0uMTkxLjA2Mi0uNDYuMTgzLTEuMDk0LjE4LS40MTQgMC0uNzIyLS4xMS0uOTE0LS4yOS0uMTk1LS4xOC0uMjkzLS40NDUtLjMwOC0uODJoMi42NjRzLjA3IDAgLjA3OC0uMDY2Yy4wMDQtLjAyOC4wOS0uNTA4LS4wNzgtMS4wNjNtLTIuNjUzLjUxNmMuMDM2LS4yMzUuMTA2LS40MzQuMjE1LS41ODIuMTY0LS4yMzUuNDEtLjM2Ljc2Mi0uMzYuMzUyIDAgLjU4Mi4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTguNTgyeiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMC40NTMgMjIuMDgyYTEuNTE3IDEuNTE3IDAgMCAwLS4zNC0uNTc4IDEuNDkgMS40OSAwIDAgMC0uNTA4LS4zNiAyLjA4MyAyLjA4MyAwIDAgMC0uNzYxLS4xNDRjLS4zMzIgMC0uNjM3LjA1LS44ODMuMTYtLjI0Mi4xMDYtLjQ1LjI1LS42MTMuNDM0YTEuNzggMS43OCAwIDAgMC0uMzYuNjQgMi42MDUgMi42MDUgMCAwIDAtLjExNy43OWMwIC4yODUuMDQuNTUuMTIxLjc5Mi4wNzguMjM5LjIxMS40NTQuMzg3LjYzLjE3Ni4xNzUuMzk4LjMxMi42NjguNDEuMjcuMDk3LjU5NC4xNDguOTY5LjE0NC43NyAwIDEuMTc1LS4xNiAxLjM0My0uMjQ2LjAzMi0uMDE2LjA1NS0uMDQzLjAyNC0uMTE3bC0uMTc2LS40NTNjLS4wMjctLjA3LS4xMDItLjA0My0uMTAyLS4wNDMtLjE5LjA2Mi0uNDYuMTgzLTEuMDkzLjE4LS40MTQgMC0uNzE5LS4xMS0uOTEtLjI5LS4yLS4xOC0uMjk3LS40NDUtLjMxMy0uODJoMi42NjhzLjA3IDAgLjA3OC0uMDY2YzAtLjAyOC4wOS0uNTA4LS4wODItMS4wNjNtLTIuNjUyLjUxNmMuMDM5LS4yMzUuMTEtLjQzNC4yMTUtLjU4Mi4xNjQtLjIzNS40MTQtLjM2Ljc2NS0uMzYuMzQ4IDAgLjU3OC4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTc2LjU4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTIuOTMgMjIuNDhjLS4xMS0uMDAzLS4yNDYtLjAwNy0uNDE0LS4wMDctLjIzIDAtLjQ1NC4wMjMtLjY2LjA3OC0uMjA4LjA1LS4zOTUuMTI5LS41NTUuMjM4LS4xNi4xMDYtLjI5My4yNDItLjM4Ny40MDZhMS4xMzUgMS4xMzUgMCAwIDAtLjE0NC41N2MwIC4yMi4wNDMuNDEuMTI1LjU2My4wNzguMTU2LjE5NS4yODUuMzQzLjM4Ny4xNDkuMTAxLjMzMi4xNzYuNTQzLjIxOS4yMTEuMDQzLjQ1LjA2Ni43MTEuMDY2LjI3NCAwIC41NDMtLjAyLjgwOS0uMDYzLjI2MS0uMDQyLjU4Mi0uMTAxLjY3Mi0uMTIuMDktLjAyLjE4Ny0uMDQ0LjE4Ny0uMDQ0LjA2Ny0uMDE1LjA1OS0uMDgyLjA1OS0uMDgydi0yLjI1N2MwLS40OTctLjE0NS0uODY0LS40MjItMS4wOTQtLjI4MS0uMjI3LS42OTUtLjM0LTEuMjI3LS4zNC0uMTk5IDAtLjUyLjAyMy0uNzE1LjA2MyAwIDAtLjU4Mi4xMDEtLjgyLjI3NyAwIDAtLjA1NS4wMzEtLjAyMy4wOThsLjE4Ny40NjhjLjAyNC4wNjMuMDg2LjA0My4wODYuMDQzcy4wMjQtLjAwOC4wNDctLjAyM2MuNTEyLS4yNTggMS4xNi0uMjUgMS4xNi0uMjUuMjkgMCAuNTEyLjA1NC42Ni4xNi4xNDUuMTA1LjIyLjI1OC4yMi41OXYuMTA1Yy0uMjMxLS4wMzEtLjQ0Mi0uMDUtLjQ0Mi0uMDVtLTEuMDYzIDEuNzM4YS41MzguNTM4IDAgMCAxLS4xNTItLjE0OS41Ny41NyAwIDAgMS0uMDc4LS4zMmMwLS4yMTkuMDc4LS4zNzEuMjM4LS40NzctLjAwNCAwIC4yMy0uMTg3Ljc3My0uMTguMzguMDA1LjcyMy4wNTUuNzIzLjA1NXYxLjEyNXMtLjM0LjA2Ny0uNzE5LjA4NmMtLjU0My4wMzItLjc4NS0uMTQtLjc4NS0uMTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzQuNzYyIDIxLjE2OGMuMDItLjA1OS0uMDI0LS4wODItLjA0My0uMDlhMi41MjYgMi41MjYgMCAwIDAtLjQ0Ni0uMDc0Yy0uMzM2LS4wMi0uNTIuMDM1LS42ODcuMTA1LS4xNjguMDctLjM1Mi4xODgtLjQ1LjMybC0uMDAzLS4zMTJjMC0uMDQzLS4wMzEtLjA3OC0uMDc0LS4wNzhoLS42ODRhLjA3Ni4wNzYgMCAwIDAtLjA3OC4wNzh2My44MDVjMCAuMDQzLjAzOS4wNzguMDgyLjA3OGguN2EuMDguMDggMCAwIDAgLjA4MS0uMDc4di0xLjg5OWMwLS4yNTcuMDI4LS41MTEuMDg2LS42NzFhLjk2NC45NjQgMCAwIDEgLjIzNC0uMzc1Ljg2Ljg2IDAgMCAxIC4zMzMtLjE5MiAxLjM1IDEuMzUgMCAwIDEgLjM1NS0uMDQ3Yy4xNCAwIC4yOTMuMDM1LjI5My4wMzUuMDUuMDA0LjA3OC0uMDI3LjA5OC0uMDcuMDQ2LS4xMTMuMTc1LS40NjUuMjAzLS41MzUiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjguMjAzIDE5LjEwNWExLjk1IDEuOTUgMCAwIDAtLjYyNS0uMDljLS40ODQgMC0uODYzLjEzNy0xLjEyOS40MDctLjI2NS4yNjUtLjQ0NS42NzYtLjUzOSAxLjIxbC0uMDQ3LjM2NGgtLjYwNXMtLjA3NC0uMDA0LS4wOS4wNzhsLS4wOTguNTU1Yy0uMDA4LjA1NS4wMTYuMDg2LjA4Ni4wODZoLjU5bC0uNTk4IDMuMzM2YTQuNDMgNC40MyAwIDAgMS0uMTYuNjYgMS40MjIgMS40MjIgMCAwIDEtLjE4Ny4zNzkuNTA1LjUwNSAwIDAgMS0uMjQyLjE4NyAxIDEgMCAwIDEtLjMxNy4wNDMuOTcuOTcgMCAwIDEtLjIxLS4wMjMuNTguNTggMCAwIDEtLjE0NS0uMDQzcy0uMDctLjAyNy0uMDk4LjA0M2MtLjAyMy4wNTUtLjE4LjQ4OC0uMTk1LjUzOS0uMDIuMDU1LjAwNC4wOTQuMDM5LjEwNS4wNzguMDMyLjEzNy4wNDcuMjQyLjA3NS4xNDguMDM1LjI3My4wMzUuMzkuMDM1LjI0NyAwIC40Ny0uMDM1LjY1Ny0uMTAyLjE4Ny0uMDY2LjM0OC0uMTgzLjQ5Mi0uMzQ0LjE1Ni0uMTcxLjI1NC0uMzUxLjM0OC0uNTkzLjA5LS4yNDYuMTY4LS41NDcuMjM0LS44OTlsLjU5OC0zLjM5OGguODc5cy4wNzQuMDA0LjA5LS4wNzhsLjA5Ny0uNTU1Yy4wMDgtLjA1LS4wMTUtLjA4Ni0uMDg2LS4wODZoLS44NTFjLjAwNC0uMDIuMDU4LS41MDQuMTU2LS43ODVhLjc4OC43ODggMCAwIDEgLjE4Ny0uMjg1LjU2Ni41NjYgMCAwIDEgLjIyMy0uMTQgMS4xNjUgMS4xNjUgMCAwIDEgLjUwNC0uMDJjLjA4Mi4wMi4xMTcuMDI3LjEzNy4wMzUuMDkuMDI3LjA5NyAwIC4xMTctLjA0M2wuMjAzLS41NTljLjAyMy0uMDU4LS4wMjctLjA4Ni0uMDQ3LS4wOTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODk4IDI0LjkxOGMwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MmgtLjcwN2MtLjA0NyAwLS4wNzgtLjAzNS0uMDc4LS4wODJ2LTUuODM2YzAtLjA0Ny4wMzEtLjA4Mi4wNzgtLjA4MmguNzA3Yy4wNDMgMCAuMDc0LjA0LjA3NC4wODJ6IiBmaWxsPSIjRkZGIi8+PC9nPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2FsZXNmb3JjZSIgZGM6ZGVzY3JpcHRpb249InNhbGVzZm9yY2UiIGRjOnB1Ymxpc2hlcj0iSWNvbnNjb3V0IiBkYzpkYXRlPSIyMDE3LTEyLTE1IiBkYzpmb3JtYXQ9ImltYWdlL3N2Zyt4bWwiIGRjOmxhbmd1YWdlPSJlbiI+PGRjOmNyZWF0b3I+PHJkZjpCYWc+PHJkZjpsaT5JY29uczg8L3JkZjpsaT48L3JkZjpCYWc+PC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L21ldGFkYXRhPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Salesforce",
        "camel.apache.org/kamelet.namespace" : "Salesforce"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Salesforce Delete Sink",
        "description" : "Remove an object from Salesforce. \n\nThe data body must be JSON-formatted and it must\ncontain two keys: `sObjectId` and `sObjectName`. For example: `{ \"sObjectId\": \"XXXXX0\", \"sObjectName\": \"Contact\" }`",
        "required" : [ "clientId", "clientSecret", "userName", "password" ],
        "type" : "object",
        "properties" : {
          "loginUrl" : {
            "title" : "Login URL",
            "description" : "The Salesforce instance login URL.",
            "type" : "string",
            "default" : "https://login.salesforce.com"
          },
          "clientId" : {
            "title" : "Consumer Key",
            "description" : "The Salesforce application consumer key.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Consumer Secret",
            "description" : "The Salesforce application consumer secret.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "userName" : {
            "title" : "Username",
            "description" : "The Salesforce username.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The Salesforce user password.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json",
          "schema" : {
            "type" : "object",
            "required" : [ "sObjectId", "sObjectName" ],
            "properties" : {
              "sObjectId" : {
                "type" : "string"
              },
              "sObjectName" : {
                "type" : "string"
              }
            }
          }
        }
      },
      "dependencies" : [ "camel:salesforce", "camel:kamelet", "camel:core", "camel:jsonpath" ],
      "template" : {
        "beans" : [ {
          "name" : "local-delete-salesforce",
          "type" : "#class:org.apache.camel.component.salesforce.SalesforceComponent",
          "properties" : {
            "clientId" : "{{clientId}}",
            "clientSecret" : "{{clientSecret}}",
            "userName" : "{{userName}}",
            "password" : "{{password}}",
            "loginUrl" : "{{loginUrl}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setHeader" : {
              "name" : "sObjectId",
              "jsonpath" : "$['sObjectId']"
            }
          }, {
            "setHeader" : {
              "name" : "sObjectName",
              "jsonpath" : "$['sObjectName']"
            }
          }, {
            "setBody" : {
              "simple" : "${null}"
            }
          }, {
            "to" : {
              "uri" : "{{local-delete-salesforce}}:deleteSObject"
            }
          }, {
            "removeHeader" : {
              "name" : "sObjectId"
            }
          }, {
            "removeHeader" : {
              "name" : "sObjectName"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Salesforce Delete Sink",
      "description" : "Remove an object from Salesforce. \n\nThe data body must be JSON-formatted and it must\ncontain two keys: `sObjectId` and `sObjectName`. For example: `{ \"sObjectId\": \"XXXXX0\", \"sObjectName\": \"Contact\" }`",
      "required" : [ "clientId", "clientSecret", "userName", "password" ],
      "properties" : {
        "loginUrl" : {
          "type" : "string",
          "title" : "Login URL",
          "description" : "The Salesforce instance login URL.",
          "default" : "https://login.salesforce.com"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Consumer Key",
          "description" : "The Salesforce application consumer key."
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Consumer Secret",
          "description" : "The Salesforce application consumer secret.",
          "format" : "password"
        },
        "userName" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The Salesforce username."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The Salesforce user password.",
          "format" : "password"
        }
      }
    }
  },
  "salesforce-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "salesforce-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA0OCA0OCIgdmVyc2lvbj0iMS4xIj48ZyBpZD0ic3VyZmFjZTEiPjxwYXRoIGQ9Ik0zNi41IDEyYy0xLjMyNCAwLTIuNTkuMjU4LTMuNzU4LjcwM0E3Ljk5NCA3Ljk5NCAwIDAgMCAyNiA5Yy0yLjEwNSAwLTQuMDIuODItNS40NDUgMi4xNTJBOS40NjggOS40NjggMCAwIDAgMTMuNSA4QzguMjU0IDggNCAxMi4yNTQgNCAxNy41YzAgLjc5My4xMSAxLjU1OS4yOSAyLjI5M0E4LjQ3MiA4LjQ3MiAwIDAgMCAxIDI2LjVDMSAzMS4xOTUgNC44MDUgMzUgOS41IDM1Yy40MTQgMCAuODE2LS4wNCAxLjIxNS0uMDk4IDEuMzEyIDMgNC4zIDUuMDk4IDcuNzg1IDUuMDk4IDMuMTYgMCA1LjkxNC0xLjczIDcuMzc5LTQuMjkzQTcuOTIzIDcuOTIzIDAgMCAwIDI4IDM2YzIuNjIxIDAgNC45MzgtMS4yNjYgNi4zOTgtMy4yMS42OC4xMzYgMS4zODMuMjEgMi4xMDIuMjFDNDIuMyAzMyA0NyAyOC4zIDQ3IDIyLjVTNDIuMyAxMiAzNi41IDEyeiIgZmlsbD0iIzAzOUJFNSIvPjxwYXRoIGQ9Ik0xNS44MjQgMjVjLjA0MyAwIC4wNzQtLjAzNS4wNzQtLjA4MiAwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjEuNTA0IDIzLjkzNHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNy4xMzcgMjMuOTNhLjExNi4xMTYgMCAwIDEgLjAwNCAwaC0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yNC4xMjUgMjEuOTFjLS4wMTYuMDQtLjA0Ny4wNDMtLjA3LjA0M2guMDA4Yy4wMjMgMCAuMDUtLjAwOC4wNjItLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODI0IDE5Yy4wNDMgMCAuMDc0LjAzNS4wNzQuMDgyIDAtLjA0Ny0uMDMtLjA4Mi0uMDc0LS4wODJ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTIxLjM2IDIyLjE4NGMwIC40MS4yMS42NjQuNTAzLjgzNi0uMjkzLS4xNzItLjUwNC0uNDI2LS41MDQtLjgzNnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzguMTI1IDI0LjczYy4wMjcuMDYtLjAzMS4wODYtLjAzMS4wODZzLjA1OC0uMDI3LjAzMS0uMDg2eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik04LjU1OSAyMXoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNOS43NjYgMjEuOTFjLS4wMi4wNC0uMDQ3LjA0My0uMDc1LjA0M0g5LjdjLjAyOCAwIC4wNTEtLjAwOC4wNjctLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzUuMTk1IDI0LjE2NHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuODI4IDIxLjc5N2gtLjAyM3MuMDA4LjAwNC4wMjMuMDA0di0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zNy44MzIgMjQuMTg4cy4wMTYgMCAuMDM1LS4wMDRoLS4wMDRjLS4wMTUgMC0uMDMxLjAwMy0uMDMxLjAwM3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNi44ODcgMjQuNDZjLS4wMzIuMDcxLjAwOC4wODcuMDIuMDk5LjA4NS4wNTguMTcxLjA5Ny4yNjEuMTQ0LjQ2OS4yMy45MS4yOTcgMS4zNzUuMjk3Ljk0NSAwIDEuNTMxLS40NiAxLjUzMS0xLjIwN3YtLjAxNmMwLS42ODctLjY2NC0uOTM3LTEuMjg1LTEuMTE3bC0uMDc4LS4wMjNjLS40NjktLjE0LS44NzEtLjI2Mi0uODcxLS41NDd2LS4wMTZjMC0uMjQyLjIzNC0uNDIyLjYwMS0uNDIyLjQwNyAwIC44ODcuMTI1IDEuMi4yODUgMCAwIC4wOS4wNTUuMTI1LS4wMjcuMDE1LS4wNDMuMTc1LS40MzMuMTkxLS40NzYuMDItLjA0My0uMDE2LS4wNzktLjA0Ny0uMDk4QTIuODQ1IDIuODQ1IDAgMCAwIDguNTYgMjFoLS4wOTRjLS44NjMgMC0xLjQ2OS40OC0xLjQ2OSAxLjE3MnYuMDEyYzAgLjcyNi42NjQuOTY0IDEuMjkgMS4xMjhsLjEuMDI4Yy40NTQuMTI5Ljg0NC4yMzguODQ0LjUzMXYuMDE2YzAgLjI3LS4yNTMuNDcyLS42NjQuNDcyLS4xNiAwLS42NjgtLjAwNC0xLjIxNC0uMzI0YTIuNDUgMi40NSAwIDAgMS0uMTU3LS4wOWMtLjAyNy0uMDE1LS4wOTMtLjA0My0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMS4yNDYgMjQuNDZjLS4wMjcuMDcxLjAxMi4wODcuMDIuMDk5LjA5LjA1OC4xNzUuMDk3LjI2MS4xNDQuNDcuMjMuOTE0LjI5NyAxLjM4LjI5Ny45NCAwIDEuNTI3LS40NiAxLjUyNy0xLjIwN3YtLjAxNmMwLS42ODctLjY2LS45MzctMS4yODItMS4xMTdsLS4wODItLjAyM2MtLjQ2NS0uMTQtLjg3LS4yNjItLjg3LS41NDd2LS4wMTZjMC0uMjQyLjIzOC0uNDIyLjYwNS0uNDIyLjQwNiAwIC44ODYuMTI1IDEuMTk5LjI4NSAwIDAgLjA5LjA1NS4xMjUtLjAyNy4wMTYtLjA0My4xNzItLjQzMy4xOTEtLjQ3Ni4wMTYtLjA0My0uMDE1LS4wNzktLjA0Ny0uMDk4QTIuODU3IDIuODU3IDAgMCAwIDIyLjkyMiAyMWgtLjA5OGMtLjg2MyAwLTEuNDY1LjQ4LTEuNDY1IDEuMTcydi4wMTJjMCAuNzI2LjY2NC45NjQgMS4yOSAxLjEyOGwuMDk3LjAyOGMuNDU3LjEyOS44NDguMjM4Ljg0OC41MzF2LjAxNmMwIC4yNy0uMjU0LjQ3Mi0uNjY0LjQ3Mi0uMTYgMC0uNjY4LS4wMDQtMS4yMTUtLjMyNGEyLjQ1IDIuNDUgMCAwIDEtLjE1Ni0uMDljLS4wMi0uMDA4LS4wOTgtLjAzOS0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zMS40NjUgMjIuMjE5YTEuNzE0IDEuNzE0IDAgMCAwLS4zNi0uNjMzIDEuNzQgMS43NCAwIDAgMC0uNjAxLS40MyAyLjE4NyAyLjE4NyAwIDAgMC0uODQ4LS4xNTZjLS4zMTYgMC0uNjAxLjA1NS0uODQzLjE1NmExLjY3IDEuNjcgMCAwIDAtLjYwMi40M2MtLjE2NC4xNzYtLjI4MS4zOS0uMzYuNjMzYTIuNTQ0IDIuNTQ0IDAgMCAwLS4xMTcuNzg1YzAgLjI3Ny4wNC41NDMuMTE4Ljc4NWExLjY5MSAxLjY5MSAwIDAgMCAuOTYgMS4wNTljLjI0My4wOTcuNTI4LjE1Mi44NDQuMTUyLjMyIDAgLjYwNi0uMDUuODQ4LS4xNTIuMjM4LS4xMDIuNDQxLS4yNDYuNjAxLS40MjIuMTYtLjE4LjI4Mi0uMzk1LjM2LS42MzcuMDc4LS4yNDIuMTE3LS41MDQuMTE3LS43ODVzLS4wMzktLjU0My0uMTE3LS43ODVtLS43OS43ODVjMCAuNDIyLS4wODEuNzU4LS4yNS45OTItLjE2Ny4yMzQtLjQxNy4zNDgtLjc2OS4zNDgtLjM0NyAwLS41OTctLjExNC0uNzYxLS4zNDgtLjE2OC0uMjM0LS4yNS0uNTctLjI1LS45OTIgMC0uNDIyLjA4NS0uNzU4LjI1LS45ODguMTY0LS4yMzUuNDE0LS4zNDQuNzYxLS4zNDQuMzUyIDAgLjYwMi4xMS43Ny4zNDQuMTY4LjIzLjI1LjU2Ni4yNS45ODgiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuOTM0IDI0LjIzNGMtLjAyOC0uMDc0LS4xMDItLjA0Ny0uMTAyLS4wNDdhMS43NDMgMS43NDMgMCAwIDEtLjM2Ny4wOTggMi44OCAyLjg4IDAgMCAxLS40My4wMzFjLS4zODMgMC0uNjgzLS4xMDUtLjkwMi0uMzEyLS4yMTUtLjIxMS0uMzM2LS41NDctLjMzNi0xIDAtLjQxNC4xMS0uNzI3LjMtLjk2NS4xOTItLjIzNC40ODUtLjM1NS44NzYtLjM1NS4zMjQgMCAuNTc0LjAzNS44MzIuMTA5IDAgMCAuMDYyLjAyNy4wOS0uMDUuMDctLjE3Ny4xMi0uMzAyLjE5NS0uNDk3LjAyLS4wNTgtLjAzMS0uMDgyLS4wNS0uMDg2YTMuMjQgMy4yNCAwIDAgMC0uNTI0LS4xMjUgNC40MzUgNC40MzUgMCAwIDAtLjU5LS4wMzVjLS4zMzIgMC0uNjI1LjA1NS0uODguMTU2YTEuODQyIDEuODQyIDAgMCAwLS42MzYuNDI2Yy0uMTY4LjE4LS4yOTcuMzk1LS4zODMuNjM3YTIuMzE1IDIuMzE1IDAgMCAwLS4xMjkuNzg1YzAgLjYwNS4xNzYgMS4wOTQuNTI4IDEuNDUzLjM0Ny4zNi44Ny41NDMgMS41NTQuNTQzLjQwMyAwIC44MTctLjA3NCAxLjExNC0uMTg0IDAgMCAuMDU4LS4wMjcuMDM1LS4wODZ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTQxLjk2NSAyMi4wODJhMS41MiAxLjUyIDAgMCAwLS4zNDQtLjU3OCAxLjUxNiAxLjUxNiAwIDAgMC0uNTA0LS4zNiAyLjEwNSAyLjEwNSAwIDAgMC0uNzY1LS4xNDRjLS4zMzIgMC0uNjMzLjA1LS44OC4xNi0uMjQ1LjEwNi0uNDUyLjI1LS42MTMuNDM0LS4xNjQuMTgtLjI4NS4zOTgtLjM2My42NGEyLjYwNSAyLjYwNSAwIDAgMC0uMTE3Ljc5YzAgLjI4NS4wNDMuNTUuMTIxLjc5Mi4wODIuMjM5LjIxLjQ1NC4zODcuNjMuMTc1LjE3NS40MDIuMzEyLjY3Mi40MS4yNjUuMDk3LjU5My4xNDguOTY4LjE0NC43NyAwIDEuMTc2LS4xNiAxLjM0LS4yNDYuMDMxLS4wMTYuMDU5LS4wNDMuMDI0LS4xMTdsLS4xNzItLjQ1M2MtLjAyOC0uMDctLjEwMi0uMDQzLS4xMDItLjA0My0uMTkxLjA2Mi0uNDYuMTgzLTEuMDk0LjE4LS40MTQgMC0uNzIyLS4xMS0uOTE0LS4yOS0uMTk1LS4xOC0uMjkzLS40NDUtLjMwOC0uODJoMi42NjRzLjA3IDAgLjA3OC0uMDY2Yy4wMDQtLjAyOC4wOS0uNTA4LS4wNzgtMS4wNjNtLTIuNjUzLjUxNmMuMDM2LS4yMzUuMTA2LS40MzQuMjE1LS41ODIuMTY0LS4yMzUuNDEtLjM2Ljc2Mi0uMzYuMzUyIDAgLjU4Mi4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTguNTgyeiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMC40NTMgMjIuMDgyYTEuNTE3IDEuNTE3IDAgMCAwLS4zNC0uNTc4IDEuNDkgMS40OSAwIDAgMC0uNTA4LS4zNiAyLjA4MyAyLjA4MyAwIDAgMC0uNzYxLS4xNDRjLS4zMzIgMC0uNjM3LjA1LS44ODMuMTYtLjI0Mi4xMDYtLjQ1LjI1LS42MTMuNDM0YTEuNzggMS43OCAwIDAgMC0uMzYuNjQgMi42MDUgMi42MDUgMCAwIDAtLjExNy43OWMwIC4yODUuMDQuNTUuMTIxLjc5Mi4wNzguMjM5LjIxMS40NTQuMzg3LjYzLjE3Ni4xNzUuMzk4LjMxMi42NjguNDEuMjcuMDk3LjU5NC4xNDguOTY5LjE0NC43NyAwIDEuMTc1LS4xNiAxLjM0My0uMjQ2LjAzMi0uMDE2LjA1NS0uMDQzLjAyNC0uMTE3bC0uMTc2LS40NTNjLS4wMjctLjA3LS4xMDItLjA0My0uMTAyLS4wNDMtLjE5LjA2Mi0uNDYuMTgzLTEuMDkzLjE4LS40MTQgMC0uNzE5LS4xMS0uOTEtLjI5LS4yLS4xOC0uMjk3LS40NDUtLjMxMy0uODJoMi42NjhzLjA3IDAgLjA3OC0uMDY2YzAtLjAyOC4wOS0uNTA4LS4wODItMS4wNjNtLTIuNjUyLjUxNmMuMDM5LS4yMzUuMTEtLjQzNC4yMTUtLjU4Mi4xNjQtLjIzNS40MTQtLjM2Ljc2NS0uMzYuMzQ4IDAgLjU3OC4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTc2LjU4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTIuOTMgMjIuNDhjLS4xMS0uMDAzLS4yNDYtLjAwNy0uNDE0LS4wMDctLjIzIDAtLjQ1NC4wMjMtLjY2LjA3OC0uMjA4LjA1LS4zOTUuMTI5LS41NTUuMjM4LS4xNi4xMDYtLjI5My4yNDItLjM4Ny40MDZhMS4xMzUgMS4xMzUgMCAwIDAtLjE0NC41N2MwIC4yMi4wNDMuNDEuMTI1LjU2My4wNzguMTU2LjE5NS4yODUuMzQzLjM4Ny4xNDkuMTAxLjMzMi4xNzYuNTQzLjIxOS4yMTEuMDQzLjQ1LjA2Ni43MTEuMDY2LjI3NCAwIC41NDMtLjAyLjgwOS0uMDYzLjI2MS0uMDQyLjU4Mi0uMTAxLjY3Mi0uMTIuMDktLjAyLjE4Ny0uMDQ0LjE4Ny0uMDQ0LjA2Ny0uMDE1LjA1OS0uMDgyLjA1OS0uMDgydi0yLjI1N2MwLS40OTctLjE0NS0uODY0LS40MjItMS4wOTQtLjI4MS0uMjI3LS42OTUtLjM0LTEuMjI3LS4zNC0uMTk5IDAtLjUyLjAyMy0uNzE1LjA2MyAwIDAtLjU4Mi4xMDEtLjgyLjI3NyAwIDAtLjA1NS4wMzEtLjAyMy4wOThsLjE4Ny40NjhjLjAyNC4wNjMuMDg2LjA0My4wODYuMDQzcy4wMjQtLjAwOC4wNDctLjAyM2MuNTEyLS4yNTggMS4xNi0uMjUgMS4xNi0uMjUuMjkgMCAuNTEyLjA1NC42Ni4xNi4xNDUuMTA1LjIyLjI1OC4yMi41OXYuMTA1Yy0uMjMxLS4wMzEtLjQ0Mi0uMDUtLjQ0Mi0uMDVtLTEuMDYzIDEuNzM4YS41MzguNTM4IDAgMCAxLS4xNTItLjE0OS41Ny41NyAwIDAgMS0uMDc4LS4zMmMwLS4yMTkuMDc4LS4zNzEuMjM4LS40NzctLjAwNCAwIC4yMy0uMTg3Ljc3My0uMTguMzguMDA1LjcyMy4wNTUuNzIzLjA1NXYxLjEyNXMtLjM0LjA2Ny0uNzE5LjA4NmMtLjU0My4wMzItLjc4NS0uMTQtLjc4NS0uMTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzQuNzYyIDIxLjE2OGMuMDItLjA1OS0uMDI0LS4wODItLjA0My0uMDlhMi41MjYgMi41MjYgMCAwIDAtLjQ0Ni0uMDc0Yy0uMzM2LS4wMi0uNTIuMDM1LS42ODcuMTA1LS4xNjguMDctLjM1Mi4xODgtLjQ1LjMybC0uMDAzLS4zMTJjMC0uMDQzLS4wMzEtLjA3OC0uMDc0LS4wNzhoLS42ODRhLjA3Ni4wNzYgMCAwIDAtLjA3OC4wNzh2My44MDVjMCAuMDQzLjAzOS4wNzguMDgyLjA3OGguN2EuMDguMDggMCAwIDAgLjA4MS0uMDc4di0xLjg5OWMwLS4yNTcuMDI4LS41MTEuMDg2LS42NzFhLjk2NC45NjQgMCAwIDEgLjIzNC0uMzc1Ljg2Ljg2IDAgMCAxIC4zMzMtLjE5MiAxLjM1IDEuMzUgMCAwIDEgLjM1NS0uMDQ3Yy4xNCAwIC4yOTMuMDM1LjI5My4wMzUuMDUuMDA0LjA3OC0uMDI3LjA5OC0uMDcuMDQ2LS4xMTMuMTc1LS40NjUuMjAzLS41MzUiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjguMjAzIDE5LjEwNWExLjk1IDEuOTUgMCAwIDAtLjYyNS0uMDljLS40ODQgMC0uODYzLjEzNy0xLjEyOS40MDctLjI2NS4yNjUtLjQ0NS42NzYtLjUzOSAxLjIxbC0uMDQ3LjM2NGgtLjYwNXMtLjA3NC0uMDA0LS4wOS4wNzhsLS4wOTguNTU1Yy0uMDA4LjA1NS4wMTYuMDg2LjA4Ni4wODZoLjU5bC0uNTk4IDMuMzM2YTQuNDMgNC40MyAwIDAgMS0uMTYuNjYgMS40MjIgMS40MjIgMCAwIDEtLjE4Ny4zNzkuNTA1LjUwNSAwIDAgMS0uMjQyLjE4NyAxIDEgMCAwIDEtLjMxNy4wNDMuOTcuOTcgMCAwIDEtLjIxLS4wMjMuNTguNTggMCAwIDEtLjE0NS0uMDQzcy0uMDctLjAyNy0uMDk4LjA0M2MtLjAyMy4wNTUtLjE4LjQ4OC0uMTk1LjUzOS0uMDIuMDU1LjAwNC4wOTQuMDM5LjEwNS4wNzguMDMyLjEzNy4wNDcuMjQyLjA3NS4xNDguMDM1LjI3My4wMzUuMzkuMDM1LjI0NyAwIC40Ny0uMDM1LjY1Ny0uMTAyLjE4Ny0uMDY2LjM0OC0uMTgzLjQ5Mi0uMzQ0LjE1Ni0uMTcxLjI1NC0uMzUxLjM0OC0uNTkzLjA5LS4yNDYuMTY4LS41NDcuMjM0LS44OTlsLjU5OC0zLjM5OGguODc5cy4wNzQuMDA0LjA5LS4wNzhsLjA5Ny0uNTU1Yy4wMDgtLjA1LS4wMTUtLjA4Ni0uMDg2LS4wODZoLS44NTFjLjAwNC0uMDIuMDU4LS41MDQuMTU2LS43ODVhLjc4OC43ODggMCAwIDEgLjE4Ny0uMjg1LjU2Ni41NjYgMCAwIDEgLjIyMy0uMTQgMS4xNjUgMS4xNjUgMCAwIDEgLjUwNC0uMDJjLjA4Mi4wMi4xMTcuMDI3LjEzNy4wMzUuMDkuMDI3LjA5NyAwIC4xMTctLjA0M2wuMjAzLS41NTljLjAyMy0uMDU4LS4wMjctLjA4Ni0uMDQ3LS4wOTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODk4IDI0LjkxOGMwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MmgtLjcwN2MtLjA0NyAwLS4wNzgtLjAzNS0uMDc4LS4wODJ2LTUuODM2YzAtLjA0Ny4wMzEtLjA4Mi4wNzgtLjA4MmguNzA3Yy4wNDMgMCAuMDc0LjA0LjA3NC4wODJ6IiBmaWxsPSIjRkZGIi8+PC9nPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2FsZXNmb3JjZSIgZGM6ZGVzY3JpcHRpb249InNhbGVzZm9yY2UiIGRjOnB1Ymxpc2hlcj0iSWNvbnNjb3V0IiBkYzpkYXRlPSIyMDE3LTEyLTE1IiBkYzpmb3JtYXQ9ImltYWdlL3N2Zyt4bWwiIGRjOmxhbmd1YWdlPSJlbiI+PGRjOmNyZWF0b3I+PHJkZjpCYWc+PHJkZjpsaT5JY29uczg8L3JkZjpsaT48L3JkZjpCYWc+PC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L21ldGFkYXRhPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Salesforce",
        "camel.apache.org/kamelet.namespace" : "Salesforce"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Salesforce Source",
        "description" : "Receive updates from Salesforce.",
        "required" : [ "query", "topicName", "clientId", "clientSecret", "userName", "password" ],
        "type" : "object",
        "properties" : {
          "query" : {
            "title" : "Query",
            "description" : "The query to execute on Salesforce.",
            "type" : "string",
            "example" : "SELECT Id, Name, Email, Phone FROM Contact"
          },
          "topicName" : {
            "title" : "Topic Name",
            "description" : "The name of the topic or channel.",
            "type" : "string",
            "example" : "ContactTopic"
          },
          "loginUrl" : {
            "title" : "Login URL",
            "description" : "The Salesforce instance login URL.",
            "type" : "string",
            "default" : "https://login.salesforce.com"
          },
          "notifyForFields" : {
            "title" : "Notify For Fields",
            "description" : "Notify for fields.",
            "type" : "string",
            "default" : "ALL",
            "enum" : [ "ALL", "REFERENCED", "SELECT", "WHERE" ]
          },
          "clientId" : {
            "title" : "Consumer Key",
            "description" : "The Salesforce application consumer key.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Consumer Secret",
            "description" : "The Salesforce application consumer secret.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "userName" : {
            "title" : "Username",
            "description" : "The Salesforce username.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The Salesforce user password.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "notifyForOperationCreate" : {
            "title" : "Notify Operation Create",
            "description" : "Notify for create operation.",
            "type" : "boolean",
            "default" : true
          },
          "notifyForOperationUpdate" : {
            "title" : "Notify Operation Update",
            "description" : "Notify for update operation.",
            "type" : "boolean",
            "default" : false
          },
          "notifyForOperationDelete" : {
            "title" : "Notify Operation Delete",
            "description" : "Notify for delete operation.",
            "type" : "boolean",
            "default" : false
          },
          "notifyForOperationUndelete" : {
            "title" : "Notify Operation Undelete",
            "description" : "Notify for undelete operation.",
            "type" : "boolean",
            "default" : false
          },
          "operation" : {
            "title" : "Operation",
            "description" : "The operation to use",
            "type" : "string",
            "default" : "subscribe"
          },
          "rawPayload" : {
            "title" : "Raw Payload",
            "description" : "Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:salesforce", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "local-salesforce",
          "type" : "#class:org.apache.camel.component.salesforce.SalesforceComponent",
          "properties" : {
            "clientId" : "{{clientId}}",
            "clientSecret" : "{{clientSecret}}",
            "userName" : "{{userName}}",
            "password" : "{{password}}",
            "loginUrl" : "{{loginUrl}}"
          }
        } ],
        "from" : {
          "uri" : "{{local-salesforce}}:{{operation}}:{{topicName}}",
          "parameters" : {
            "notifyForFields" : "{{notifyForFields}}",
            "updateTopic" : "true",
            "notifyForOperationCreate" : "{{notifyForOperationCreate}}",
            "notifyForOperationUpdate" : "{{notifyForOperationUpdate}}",
            "notifyForOperationDelete" : "{{notifyForOperationDelete}}",
            "notifyForOperationUndelete" : "{{notifyForOperationUndelete}}",
            "sObjectQuery" : "{{query}}",
            "rawPayload" : "{{rawPayload}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Salesforce Source",
      "description" : "Receive updates from Salesforce.",
      "required" : [ "query", "topicName", "clientId", "clientSecret", "userName", "password" ],
      "properties" : {
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute on Salesforce."
        },
        "topicName" : {
          "type" : "string",
          "title" : "Topic Name",
          "description" : "The name of the topic or channel."
        },
        "loginUrl" : {
          "type" : "string",
          "title" : "Login URL",
          "description" : "The Salesforce instance login URL.",
          "default" : "https://login.salesforce.com"
        },
        "notifyForFields" : {
          "type" : "string",
          "title" : "Notify For Fields",
          "description" : "Notify for fields.",
          "enum" : [ "ALL", "REFERENCED", "SELECT", "WHERE" ],
          "default" : "ALL"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Consumer Key",
          "description" : "The Salesforce application consumer key."
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Consumer Secret",
          "description" : "The Salesforce application consumer secret.",
          "format" : "password"
        },
        "userName" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The Salesforce username."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The Salesforce user password.",
          "format" : "password"
        },
        "notifyForOperationCreate" : {
          "type" : "boolean",
          "title" : "Notify Operation Create",
          "description" : "Notify for create operation.",
          "default" : true
        },
        "notifyForOperationUpdate" : {
          "type" : "boolean",
          "title" : "Notify Operation Update",
          "description" : "Notify for update operation.",
          "default" : false
        },
        "notifyForOperationDelete" : {
          "type" : "boolean",
          "title" : "Notify Operation Delete",
          "description" : "Notify for delete operation.",
          "default" : false
        },
        "notifyForOperationUndelete" : {
          "type" : "boolean",
          "title" : "Notify Operation Undelete",
          "description" : "Notify for undelete operation.",
          "default" : false
        },
        "operation" : {
          "type" : "string",
          "title" : "Operation",
          "description" : "The operation to use",
          "default" : "subscribe"
        },
        "rawPayload" : {
          "type" : "boolean",
          "title" : "Raw Payload",
          "description" : "Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default.",
          "default" : false
        }
      }
    }
  },
  "salesforce-update-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "salesforce-update-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA0OCA0OCIgdmVyc2lvbj0iMS4xIj48ZyBpZD0ic3VyZmFjZTEiPjxwYXRoIGQ9Ik0zNi41IDEyYy0xLjMyNCAwLTIuNTkuMjU4LTMuNzU4LjcwM0E3Ljk5NCA3Ljk5NCAwIDAgMCAyNiA5Yy0yLjEwNSAwLTQuMDIuODItNS40NDUgMi4xNTJBOS40NjggOS40NjggMCAwIDAgMTMuNSA4QzguMjU0IDggNCAxMi4yNTQgNCAxNy41YzAgLjc5My4xMSAxLjU1OS4yOSAyLjI5M0E4LjQ3MiA4LjQ3MiAwIDAgMCAxIDI2LjVDMSAzMS4xOTUgNC44MDUgMzUgOS41IDM1Yy40MTQgMCAuODE2LS4wNCAxLjIxNS0uMDk4IDEuMzEyIDMgNC4zIDUuMDk4IDcuNzg1IDUuMDk4IDMuMTYgMCA1LjkxNC0xLjczIDcuMzc5LTQuMjkzQTcuOTIzIDcuOTIzIDAgMCAwIDI4IDM2YzIuNjIxIDAgNC45MzgtMS4yNjYgNi4zOTgtMy4yMS42OC4xMzYgMS4zODMuMjEgMi4xMDIuMjFDNDIuMyAzMyA0NyAyOC4zIDQ3IDIyLjVTNDIuMyAxMiAzNi41IDEyeiIgZmlsbD0iIzAzOUJFNSIvPjxwYXRoIGQ9Ik0xNS44MjQgMjVjLjA0MyAwIC4wNzQtLjAzNS4wNzQtLjA4MiAwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjEuNTA0IDIzLjkzNHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNy4xMzcgMjMuOTNhLjExNi4xMTYgMCAwIDEgLjAwNCAwaC0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yNC4xMjUgMjEuOTFjLS4wMTYuMDQtLjA0Ny4wNDMtLjA3LjA0M2guMDA4Yy4wMjMgMCAuMDUtLjAwOC4wNjItLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODI0IDE5Yy4wNDMgMCAuMDc0LjAzNS4wNzQuMDgyIDAtLjA0Ny0uMDMtLjA4Mi0uMDc0LS4wODJ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTIxLjM2IDIyLjE4NGMwIC40MS4yMS42NjQuNTAzLjgzNi0uMjkzLS4xNzItLjUwNC0uNDI2LS41MDQtLjgzNnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzguMTI1IDI0LjczYy4wMjcuMDYtLjAzMS4wODYtLjAzMS4wODZzLjA1OC0uMDI3LjAzMS0uMDg2eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik04LjU1OSAyMXoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNOS43NjYgMjEuOTFjLS4wMi4wNC0uMDQ3LjA0My0uMDc1LjA0M0g5LjdjLjAyOCAwIC4wNTEtLjAwOC4wNjctLjA0M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzUuMTk1IDI0LjE2NHoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuODI4IDIxLjc5N2gtLjAyM3MuMDA4LjAwNC4wMjMuMDA0di0uMDA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zNy44MzIgMjQuMTg4cy4wMTYgMCAuMDM1LS4wMDRoLS4wMDRjLS4wMTUgMC0uMDMxLjAwMy0uMDMxLjAwM3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNi44ODcgMjQuNDZjLS4wMzIuMDcxLjAwOC4wODcuMDIuMDk5LjA4NS4wNTguMTcxLjA5Ny4yNjEuMTQ0LjQ2OS4yMy45MS4yOTcgMS4zNzUuMjk3Ljk0NSAwIDEuNTMxLS40NiAxLjUzMS0xLjIwN3YtLjAxNmMwLS42ODctLjY2NC0uOTM3LTEuMjg1LTEuMTE3bC0uMDc4LS4wMjNjLS40NjktLjE0LS44NzEtLjI2Mi0uODcxLS41NDd2LS4wMTZjMC0uMjQyLjIzNC0uNDIyLjYwMS0uNDIyLjQwNyAwIC44ODcuMTI1IDEuMi4yODUgMCAwIC4wOS4wNTUuMTI1LS4wMjcuMDE1LS4wNDMuMTc1LS40MzMuMTkxLS40NzYuMDItLjA0My0uMDE2LS4wNzktLjA0Ny0uMDk4QTIuODQ1IDIuODQ1IDAgMCAwIDguNTYgMjFoLS4wOTRjLS44NjMgMC0xLjQ2OS40OC0xLjQ2OSAxLjE3MnYuMDEyYzAgLjcyNi42NjQuOTY0IDEuMjkgMS4xMjhsLjEuMDI4Yy40NTQuMTI5Ljg0NC4yMzguODQ0LjUzMXYuMDE2YzAgLjI3LS4yNTMuNDcyLS42NjQuNDcyLS4xNiAwLS42NjgtLjAwNC0xLjIxNC0uMzI0YTIuNDUgMi40NSAwIDAgMS0uMTU3LS4wOWMtLjAyNy0uMDE1LS4wOTMtLjA0My0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMS4yNDYgMjQuNDZjLS4wMjcuMDcxLjAxMi4wODcuMDIuMDk5LjA5LjA1OC4xNzUuMDk3LjI2MS4xNDQuNDcuMjMuOTE0LjI5NyAxLjM4LjI5Ny45NCAwIDEuNTI3LS40NiAxLjUyNy0xLjIwN3YtLjAxNmMwLS42ODctLjY2LS45MzctMS4yODItMS4xMTdsLS4wODItLjAyM2MtLjQ2NS0uMTQtLjg3LS4yNjItLjg3LS41NDd2LS4wMTZjMC0uMjQyLjIzOC0uNDIyLjYwNS0uNDIyLjQwNiAwIC44ODYuMTI1IDEuMTk5LjI4NSAwIDAgLjA5LjA1NS4xMjUtLjAyNy4wMTYtLjA0My4xNzItLjQzMy4xOTEtLjQ3Ni4wMTYtLjA0My0uMDE1LS4wNzktLjA0Ny0uMDk4QTIuODU3IDIuODU3IDAgMCAwIDIyLjkyMiAyMWgtLjA5OGMtLjg2MyAwLTEuNDY1LjQ4LTEuNDY1IDEuMTcydi4wMTJjMCAuNzI2LjY2NC45NjQgMS4yOSAxLjEyOGwuMDk3LjAyOGMuNDU3LjEyOS44NDguMjM4Ljg0OC41MzF2LjAxNmMwIC4yNy0uMjU0LjQ3Mi0uNjY0LjQ3Mi0uMTYgMC0uNjY4LS4wMDQtMS4yMTUtLjMyNGEyLjQ1IDIuNDUgMCAwIDEtLjE1Ni0uMDljLS4wMi0uMDA4LS4wOTgtLjAzOS0uMTI1LjA0eiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0zMS40NjUgMjIuMjE5YTEuNzE0IDEuNzE0IDAgMCAwLS4zNi0uNjMzIDEuNzQgMS43NCAwIDAgMC0uNjAxLS40MyAyLjE4NyAyLjE4NyAwIDAgMC0uODQ4LS4xNTZjLS4zMTYgMC0uNjAxLjA1NS0uODQzLjE1NmExLjY3IDEuNjcgMCAwIDAtLjYwMi40M2MtLjE2NC4xNzYtLjI4MS4zOS0uMzYuNjMzYTIuNTQ0IDIuNTQ0IDAgMCAwLS4xMTcuNzg1YzAgLjI3Ny4wNC41NDMuMTE4Ljc4NWExLjY5MSAxLjY5MSAwIDAgMCAuOTYgMS4wNTljLjI0My4wOTcuNTI4LjE1Mi44NDQuMTUyLjMyIDAgLjYwNi0uMDUuODQ4LS4xNTIuMjM4LS4xMDIuNDQxLS4yNDYuNjAxLS40MjIuMTYtLjE4LjI4Mi0uMzk1LjM2LS42MzcuMDc4LS4yNDIuMTE3LS41MDQuMTE3LS43ODVzLS4wMzktLjU0My0uMTE3LS43ODVtLS43OS43ODVjMCAuNDIyLS4wODEuNzU4LS4yNS45OTItLjE2Ny4yMzQtLjQxNy4zNDgtLjc2OS4zNDgtLjM0NyAwLS41OTctLjExNC0uNzYxLS4zNDgtLjE2OC0uMjM0LS4yNS0uNTctLjI1LS45OTIgMC0uNDIyLjA4NS0uNzU4LjI1LS45ODguMTY0LS4yMzUuNDE0LS4zNDQuNzYxLS4zNDQuMzUyIDAgLjYwMi4xMS43Ny4zNDQuMTY4LjIzLjI1LjU2Ni4yNS45ODgiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzcuOTM0IDI0LjIzNGMtLjAyOC0uMDc0LS4xMDItLjA0Ny0uMTAyLS4wNDdhMS43NDMgMS43NDMgMCAwIDEtLjM2Ny4wOTggMi44OCAyLjg4IDAgMCAxLS40My4wMzFjLS4zODMgMC0uNjgzLS4xMDUtLjkwMi0uMzEyLS4yMTUtLjIxMS0uMzM2LS41NDctLjMzNi0xIDAtLjQxNC4xMS0uNzI3LjMtLjk2NS4xOTItLjIzNC40ODUtLjM1NS44NzYtLjM1NS4zMjQgMCAuNTc0LjAzNS44MzIuMTA5IDAgMCAuMDYyLjAyNy4wOS0uMDUuMDctLjE3Ny4xMi0uMzAyLjE5NS0uNDk3LjAyLS4wNTgtLjAzMS0uMDgyLS4wNS0uMDg2YTMuMjQgMy4yNCAwIDAgMC0uNTI0LS4xMjUgNC40MzUgNC40MzUgMCAwIDAtLjU5LS4wMzVjLS4zMzIgMC0uNjI1LjA1NS0uODguMTU2YTEuODQyIDEuODQyIDAgMCAwLS42MzYuNDI2Yy0uMTY4LjE4LS4yOTcuMzk1LS4zODMuNjM3YTIuMzE1IDIuMzE1IDAgMCAwLS4xMjkuNzg1YzAgLjYwNS4xNzYgMS4wOTQuNTI4IDEuNDUzLjM0Ny4zNi44Ny41NDMgMS41NTQuNTQzLjQwMyAwIC44MTctLjA3NCAxLjExNC0uMTg0IDAgMCAuMDU4LS4wMjcuMDM1LS4wODZ6IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTQxLjk2NSAyMi4wODJhMS41MiAxLjUyIDAgMCAwLS4zNDQtLjU3OCAxLjUxNiAxLjUxNiAwIDAgMC0uNTA0LS4zNiAyLjEwNSAyLjEwNSAwIDAgMC0uNzY1LS4xNDRjLS4zMzIgMC0uNjMzLjA1LS44OC4xNi0uMjQ1LjEwNi0uNDUyLjI1LS42MTMuNDM0LS4xNjQuMTgtLjI4NS4zOTgtLjM2My42NGEyLjYwNSAyLjYwNSAwIDAgMC0uMTE3Ljc5YzAgLjI4NS4wNDMuNTUuMTIxLjc5Mi4wODIuMjM5LjIxLjQ1NC4zODcuNjMuMTc1LjE3NS40MDIuMzEyLjY3Mi40MS4yNjUuMDk3LjU5My4xNDguOTY4LjE0NC43NyAwIDEuMTc2LS4xNiAxLjM0LS4yNDYuMDMxLS4wMTYuMDU5LS4wNDMuMDI0LS4xMTdsLS4xNzItLjQ1M2MtLjAyOC0uMDctLjEwMi0uMDQzLS4xMDItLjA0My0uMTkxLjA2Mi0uNDYuMTgzLTEuMDk0LjE4LS40MTQgMC0uNzIyLS4xMS0uOTE0LS4yOS0uMTk1LS4xOC0uMjkzLS40NDUtLjMwOC0uODJoMi42NjRzLjA3IDAgLjA3OC0uMDY2Yy4wMDQtLjAyOC4wOS0uNTA4LS4wNzgtMS4wNjNtLTIuNjUzLjUxNmMuMDM2LS4yMzUuMTA2LS40MzQuMjE1LS41ODIuMTY0LS4yMzUuNDEtLjM2Ljc2Mi0uMzYuMzUyIDAgLjU4Mi4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTguNTgyeiIgZmlsbD0iI0ZGRiIvPjxwYXRoIGQ9Ik0yMC40NTMgMjIuMDgyYTEuNTE3IDEuNTE3IDAgMCAwLS4zNC0uNTc4IDEuNDkgMS40OSAwIDAgMC0uNTA4LS4zNiAyLjA4MyAyLjA4MyAwIDAgMC0uNzYxLS4xNDRjLS4zMzIgMC0uNjM3LjA1LS44ODMuMTYtLjI0Mi4xMDYtLjQ1LjI1LS42MTMuNDM0YTEuNzggMS43OCAwIDAgMC0uMzYuNjQgMi42MDUgMi42MDUgMCAwIDAtLjExNy43OWMwIC4yODUuMDQuNTUuMTIxLjc5Mi4wNzguMjM5LjIxMS40NTQuMzg3LjYzLjE3Ni4xNzUuMzk4LjMxMi42NjguNDEuMjcuMDk3LjU5NC4xNDguOTY5LjE0NC43NyAwIDEuMTc1LS4xNiAxLjM0My0uMjQ2LjAzMi0uMDE2LjA1NS0uMDQzLjAyNC0uMTE3bC0uMTc2LS40NTNjLS4wMjctLjA3LS4xMDItLjA0My0uMTAyLS4wNDMtLjE5LjA2Mi0uNDYuMTgzLTEuMDkzLjE4LS40MTQgMC0uNzE5LS4xMS0uOTEtLjI5LS4yLS4xOC0uMjk3LS40NDUtLjMxMy0uODJoMi42NjhzLjA3IDAgLjA3OC0uMDY2YzAtLjAyOC4wOS0uNTA4LS4wODItMS4wNjNtLTIuNjUyLjUxNmMuMDM5LS4yMzUuMTEtLjQzNC4yMTUtLjU4Mi4xNjQtLjIzNS40MTQtLjM2Ljc2NS0uMzYuMzQ4IDAgLjU3OC4xMjUuNzQ2LjM2LjExLjE1Mi4xNi4zNTUuMTc2LjU4MnoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTIuOTMgMjIuNDhjLS4xMS0uMDAzLS4yNDYtLjAwNy0uNDE0LS4wMDctLjIzIDAtLjQ1NC4wMjMtLjY2LjA3OC0uMjA4LjA1LS4zOTUuMTI5LS41NTUuMjM4LS4xNi4xMDYtLjI5My4yNDItLjM4Ny40MDZhMS4xMzUgMS4xMzUgMCAwIDAtLjE0NC41N2MwIC4yMi4wNDMuNDEuMTI1LjU2My4wNzguMTU2LjE5NS4yODUuMzQzLjM4Ny4xNDkuMTAxLjMzMi4xNzYuNTQzLjIxOS4yMTEuMDQzLjQ1LjA2Ni43MTEuMDY2LjI3NCAwIC41NDMtLjAyLjgwOS0uMDYzLjI2MS0uMDQyLjU4Mi0uMTAxLjY3Mi0uMTIuMDktLjAyLjE4Ny0uMDQ0LjE4Ny0uMDQ0LjA2Ny0uMDE1LjA1OS0uMDgyLjA1OS0uMDgydi0yLjI1N2MwLS40OTctLjE0NS0uODY0LS40MjItMS4wOTQtLjI4MS0uMjI3LS42OTUtLjM0LTEuMjI3LS4zNC0uMTk5IDAtLjUyLjAyMy0uNzE1LjA2MyAwIDAtLjU4Mi4xMDEtLjgyLjI3NyAwIDAtLjA1NS4wMzEtLjAyMy4wOThsLjE4Ny40NjhjLjAyNC4wNjMuMDg2LjA0My4wODYuMDQzcy4wMjQtLjAwOC4wNDctLjAyM2MuNTEyLS4yNTggMS4xNi0uMjUgMS4xNi0uMjUuMjkgMCAuNTEyLjA1NC42Ni4xNi4xNDUuMTA1LjIyLjI1OC4yMi41OXYuMTA1Yy0uMjMxLS4wMzEtLjQ0Mi0uMDUtLjQ0Mi0uMDVtLTEuMDYzIDEuNzM4YS41MzguNTM4IDAgMCAxLS4xNTItLjE0OS41Ny41NyAwIDAgMS0uMDc4LS4zMmMwLS4yMTkuMDc4LS4zNzEuMjM4LS40NzctLjAwNCAwIC4yMy0uMTg3Ljc3My0uMTguMzguMDA1LjcyMy4wNTUuNzIzLjA1NXYxLjEyNXMtLjM0LjA2Ny0uNzE5LjA4NmMtLjU0My4wMzItLjc4NS0uMTQtLjc4NS0uMTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMzQuNzYyIDIxLjE2OGMuMDItLjA1OS0uMDI0LS4wODItLjA0My0uMDlhMi41MjYgMi41MjYgMCAwIDAtLjQ0Ni0uMDc0Yy0uMzM2LS4wMi0uNTIuMDM1LS42ODcuMTA1LS4xNjguMDctLjM1Mi4xODgtLjQ1LjMybC0uMDAzLS4zMTJjMC0uMDQzLS4wMzEtLjA3OC0uMDc0LS4wNzhoLS42ODRhLjA3Ni4wNzYgMCAwIDAtLjA3OC4wNzh2My44MDVjMCAuMDQzLjAzOS4wNzguMDgyLjA3OGguN2EuMDguMDggMCAwIDAgLjA4MS0uMDc4di0xLjg5OWMwLS4yNTcuMDI4LS41MTEuMDg2LS42NzFhLjk2NC45NjQgMCAwIDEgLjIzNC0uMzc1Ljg2Ljg2IDAgMCAxIC4zMzMtLjE5MiAxLjM1IDEuMzUgMCAwIDEgLjM1NS0uMDQ3Yy4xNCAwIC4yOTMuMDM1LjI5My4wMzUuMDUuMDA0LjA3OC0uMDI3LjA5OC0uMDcuMDQ2LS4xMTMuMTc1LS40NjUuMjAzLS41MzUiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMjguMjAzIDE5LjEwNWExLjk1IDEuOTUgMCAwIDAtLjYyNS0uMDljLS40ODQgMC0uODYzLjEzNy0xLjEyOS40MDctLjI2NS4yNjUtLjQ0NS42NzYtLjUzOSAxLjIxbC0uMDQ3LjM2NGgtLjYwNXMtLjA3NC0uMDA0LS4wOS4wNzhsLS4wOTguNTU1Yy0uMDA4LjA1NS4wMTYuMDg2LjA4Ni4wODZoLjU5bC0uNTk4IDMuMzM2YTQuNDMgNC40MyAwIDAgMS0uMTYuNjYgMS40MjIgMS40MjIgMCAwIDEtLjE4Ny4zNzkuNTA1LjUwNSAwIDAgMS0uMjQyLjE4NyAxIDEgMCAwIDEtLjMxNy4wNDMuOTcuOTcgMCAwIDEtLjIxLS4wMjMuNTguNTggMCAwIDEtLjE0NS0uMDQzcy0uMDctLjAyNy0uMDk4LjA0M2MtLjAyMy4wNTUtLjE4LjQ4OC0uMTk1LjUzOS0uMDIuMDU1LjAwNC4wOTQuMDM5LjEwNS4wNzguMDMyLjEzNy4wNDcuMjQyLjA3NS4xNDguMDM1LjI3My4wMzUuMzkuMDM1LjI0NyAwIC40Ny0uMDM1LjY1Ny0uMTAyLjE4Ny0uMDY2LjM0OC0uMTgzLjQ5Mi0uMzQ0LjE1Ni0uMTcxLjI1NC0uMzUxLjM0OC0uNTkzLjA5LS4yNDYuMTY4LS41NDcuMjM0LS44OTlsLjU5OC0zLjM5OGguODc5cy4wNzQuMDA0LjA5LS4wNzhsLjA5Ny0uNTU1Yy4wMDgtLjA1LS4wMTUtLjA4Ni0uMDg2LS4wODZoLS44NTFjLjAwNC0uMDIuMDU4LS41MDQuMTU2LS43ODVhLjc4OC43ODggMCAwIDEgLjE4Ny0uMjg1LjU2Ni41NjYgMCAwIDEgLjIyMy0uMTQgMS4xNjUgMS4xNjUgMCAwIDEgLjUwNC0uMDJjLjA4Mi4wMi4xMTcuMDI3LjEzNy4wMzUuMDkuMDI3LjA5NyAwIC4xMTctLjA0M2wuMjAzLS41NTljLjAyMy0uMDU4LS4wMjctLjA4Ni0uMDQ3LS4wOTQiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTUuODk4IDI0LjkxOGMwIC4wNDctLjAzLjA4Mi0uMDc0LjA4MmgtLjcwN2MtLjA0NyAwLS4wNzgtLjAzNS0uMDc4LS4wODJ2LTUuODM2YzAtLjA0Ny4wMzEtLjA4Mi4wNzgtLjA4MmguNzA3Yy4wNDMgMCAuMDc0LjA0LjA3NC4wODJ6IiBmaWxsPSIjRkZGIi8+PC9nPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2FsZXNmb3JjZSIgZGM6ZGVzY3JpcHRpb249InNhbGVzZm9yY2UiIGRjOnB1Ymxpc2hlcj0iSWNvbnNjb3V0IiBkYzpkYXRlPSIyMDE3LTEyLTE1IiBkYzpmb3JtYXQ9ImltYWdlL3N2Zyt4bWwiIGRjOmxhbmd1YWdlPSJlbiI+PGRjOmNyZWF0b3I+PHJkZjpCYWc+PHJkZjpsaT5JY29uczg8L3JkZjpsaT48L3JkZjpCYWc+PC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L21ldGFkYXRhPjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Salesforce",
        "camel.apache.org/kamelet.namespace" : "Salesforce"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Salesforce Update Sink",
        "description" : "Update an object in Salesforce. \n\nThe body received must contain a JSON key-value pair for each property to update inside the payload attribute, for example: \n\n`{ \"payload\": { \"Phone\": \"1234567890\", \"Name\": \"Antonia\" } }`\n\nThe body received must include the `sObjectName` and `sObjectId` properties, for example:\n\n`{ \"payload\": { \"Phone\": \"1234567890\", \"Name\": \"Antonia\" }, \"sObjectId\": \"sObjectId\", \"sObjectName\": \"sObjectName\" }`",
        "required" : [ "clientId", "clientSecret", "userName", "password" ],
        "type" : "object",
        "properties" : {
          "loginUrl" : {
            "title" : "Login URL",
            "description" : "The Salesforce instance login URL.",
            "type" : "string",
            "default" : "https://login.salesforce.com"
          },
          "clientId" : {
            "title" : "Consumer Key",
            "description" : "The Salesforce application consumer key.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "clientSecret" : {
            "title" : "Consumer Secret",
            "description" : "The Salesforce application consumer secret.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "userName" : {
            "title" : "Username",
            "description" : "The Salesforce username.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The Salesforce user password.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jsonpath", "camel:jackson", "camel:salesforce", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "local-salesforce",
          "type" : "#class:org.apache.camel.component.salesforce.SalesforceComponent",
          "properties" : {
            "clientId" : "{{clientId}}",
            "clientSecret" : "{{clientSecret}}",
            "userName" : "{{userName}}",
            "password" : "{{password}}",
            "loginUrl" : "{{loginUrl}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setProperty" : {
              "name" : "sObjectId",
              "jsonpath" : "$['sObjectId']"
            }
          }, {
            "setProperty" : {
              "name" : "sObjectName",
              "jsonpath" : "$['sObjectName']"
            }
          }, {
            "transform" : {
              "jsonpath" : "$['payload']"
            }
          }, {
            "marshal" : {
              "json" : { }
            }
          }, {
            "toD" : "{{local-salesforce}}:updateSObject?sObjectId=${exchangeProperty.sObjectId}&sObjectName=${exchangeProperty.sObjectName}&rawPayload=true"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Salesforce Update Sink",
      "description" : "Update an object in Salesforce. \n\nThe body received must contain a JSON key-value pair for each property to update inside the payload attribute, for example: \n\n`{ \"payload\": { \"Phone\": \"1234567890\", \"Name\": \"Antonia\" } }`\n\nThe body received must include the `sObjectName` and `sObjectId` properties, for example:\n\n`{ \"payload\": { \"Phone\": \"1234567890\", \"Name\": \"Antonia\" }, \"sObjectId\": \"sObjectId\", \"sObjectName\": \"sObjectName\" }`",
      "required" : [ "clientId", "clientSecret", "userName", "password" ],
      "properties" : {
        "loginUrl" : {
          "type" : "string",
          "title" : "Login URL",
          "description" : "The Salesforce instance login URL.",
          "default" : "https://login.salesforce.com"
        },
        "clientId" : {
          "type" : "string",
          "title" : "Consumer Key",
          "description" : "The Salesforce application consumer key."
        },
        "clientSecret" : {
          "type" : "string",
          "title" : "Consumer Secret",
          "description" : "The Salesforce application consumer secret.",
          "format" : "password"
        },
        "userName" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The Salesforce username."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The Salesforce user password.",
          "format" : "password"
        }
      }
    }
  },
  "scp-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "scp-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SCP",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "SCP Sink",
        "description" : "Send file to an FTP Server through Secure Copy Protocol",
        "required" : [ "serverName", "serverPort" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Hostname",
            "description" : "The hostname of the FTP server",
            "type" : "string"
          },
          "serverPort" : {
            "title" : "Port",
            "description" : "The port of the FTP server",
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "Username for accessing FTP Server",
            "type" : "string"
          },
          "password" : {
            "title" : "Password",
            "description" : "Password for accessing FTP Server",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "privateKeyFile" : {
            "title" : "Private Key File",
            "description" : "Set the private key file so that the SFTP endpoint can do private key verification.",
            "type" : "string"
          },
          "privateKeyPassphrase" : {
            "title" : "Private Key Passphrase",
            "description" : "Set the private key file passphrase so that the SFTP endpoint can do private key verification.",
            "type" : "string"
          },
          "strictHostKeyChecking" : {
            "title" : "Strict Host Checking",
            "description" : "Sets whether to use strict host key checking.",
            "type" : "string",
            "default" : false
          },
          "useUserKnownHostsFile" : {
            "title" : "Use User Known Hosts File",
            "description" : "If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts.",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:jsch", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "scp:{{serverName}}:{{serverPort}}",
              "parameters" : {
                "username" : "{{?username}}",
                "password" : "{{?password}}",
                "privateKeyFile" : "{{?privateKeyFile}}",
                "privateKeyPassphrase" : "{{?privateKeyPassphrase}}",
                "strictHostKeyChecking" : "{{?strictHostKeyChecking}}",
                "useUserKnownHostsFile" : "{{?useUserKnownHostsFile}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "SCP Sink",
      "description" : "Send file to an FTP Server through Secure Copy Protocol",
      "required" : [ "serverName", "serverPort" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Hostname",
          "description" : "The hostname of the FTP server"
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Port",
          "description" : "The port of the FTP server"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "Username for accessing FTP Server"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "Password for accessing FTP Server",
          "format" : "password"
        },
        "privateKeyFile" : {
          "type" : "string",
          "title" : "Private Key File",
          "description" : "Set the private key file so that the SFTP endpoint can do private key verification."
        },
        "privateKeyPassphrase" : {
          "type" : "string",
          "title" : "Private Key Passphrase",
          "description" : "Set the private key file passphrase so that the SFTP endpoint can do private key verification."
        },
        "strictHostKeyChecking" : {
          "type" : "string",
          "title" : "Strict Host Checking",
          "description" : "Sets whether to use strict host key checking.",
          "default" : false
        },
        "useUserKnownHostsFile" : {
          "type" : "boolean",
          "title" : "Use User Known Hosts File",
          "description" : "If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts.",
          "default" : true
        }
      }
    }
  },
  "set-body-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "set-body-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Set Body Action",
        "description" : "Sets a simple language parsed value as the new message body in transit.",
        "required" : [ "value" ],
        "properties" : {
          "value" : {
            "title" : "Value",
            "description" : "The value to set as new body",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setBody" : {
              "simple" : "{{value}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Set Body Action",
      "description" : "Sets a simple language parsed value as the new message body in transit.",
      "required" : [ "value" ],
      "properties" : {
        "value" : {
          "type" : "string",
          "title" : "Value",
          "description" : "The value to set as new body"
        }
      }
    }
  },
  "set-kafka-key-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "set-kafka-key-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Set Kafka Key Action",
        "description" : "Set Kafka Key based on a specific incoming header value from the message body.\n\nThe headerName parameter allows you to specify which header value to set as Kafka Key.",
        "required" : [ "headerName" ],
        "properties" : {
          "headerName" : {
            "title" : "Field",
            "description" : "The name of the header to set as Kafka Key",
            "type" : "string"
          },
          "forceHeaderDeletion" : {
            "title" : "Force Header Deletion",
            "description" : "If true, it will remove the header with name headerName from the Exchange after setting it as Kafka Key",
            "type" : "boolean",
            "default" : false
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setHeader" : {
              "name" : "kafka.KEY",
              "simple" : "${header.{{headerName}}}"
            }
          }, {
            "choice" : {
              "precondition" : true,
              "when" : [ {
                "simple" : "${properties:forceHeaderDeletion:true}",
                "steps" : [ {
                  "removeHeader" : {
                    "name" : "{{headerName}}"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Set Kafka Key Action",
      "description" : "Set Kafka Key based on a specific incoming header value from the message body.\n\nThe headerName parameter allows you to specify which header value to set as Kafka Key.",
      "required" : [ "headerName" ],
      "properties" : {
        "headerName" : {
          "type" : "string",
          "title" : "Field",
          "description" : "The name of the header to set as Kafka Key"
        },
        "forceHeaderDeletion" : {
          "type" : "boolean",
          "title" : "Force Header Deletion",
          "description" : "If true, it will remove the header with name headerName from the Exchange after setting it as Kafka Key",
          "default" : false
        }
      }
    }
  },
  "sftp-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "sftp-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FTP",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "SFTP Sink",
        "description" : "Send data to an SFTP Server.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
        "required" : [ "connectionHost", "connectionPort", "directoryName" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname of the FTP server",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port of the FTP server",
            "type" : "string",
            "default" : 22
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the FTP server.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the FTP server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The starting directory.",
            "type" : "string"
          },
          "passiveMode" : {
            "title" : "Passive Mode",
            "description" : "Specifies to use passive mode connection.",
            "type" : "boolean",
            "default" : false
          },
          "fileExist" : {
            "title" : "File Existence",
            "description" : "How to behave in case of file already existent.",
            "type" : "string",
            "default" : "Override",
            "enum" : [ "Override", "Append", "Fail", "Ignore" ]
          },
          "binary" : {
            "title" : "Binary",
            "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
            "type" : "boolean",
            "default" : false
          },
          "privateKeyFile" : {
            "title" : "Private Key File",
            "description" : "Set the private key file so that the SFTP endpoint can do private key verification.",
            "type" : "string"
          },
          "privateKeyPassphrase" : {
            "title" : "Private Key Passphrase",
            "description" : "Set the private key file passphrase so that the SFTP endpoint can do private key verification.",
            "type" : "string"
          },
          "privateKeyUri" : {
            "title" : "Private Key URI",
            "description" : "Set the private key file (loaded from classpath by default) so that the SFTP endpoint can do private key verification.",
            "type" : "string",
            "pattern" : "^(http|https|file|classpath)://.*"
          },
          "strictHostKeyChecking" : {
            "title" : "Strict Host Checking",
            "description" : "Sets whether to use strict host key checking.",
            "type" : "string",
            "default" : false
          },
          "useUserKnownHostsFile" : {
            "title" : "Use User Known Hosts File",
            "description" : "If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts.",
            "type" : "boolean",
            "default" : true
          },
          "autoCreate" : {
            "title" : "Autocreate Missing Directories",
            "description" : "Automatically create the directory the files should be written to.",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "dependencies" : [ "camel:ftp", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[file]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-file]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelFileName",
                    "simple" : "${header[ce-file]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "sftp:{{connectionHost}}:{{connectionPort}}/{{directoryName}}",
              "parameters" : {
                "username" : "{{?username}}",
                "password" : "{{?password}}",
                "privateKeyFile" : "{{?privateKeyFile}}",
                "privateKeyPassphrase" : "{{?privateKeyPassphrase}}",
                "privateKeyUri" : "{{?privateKeyUri}}",
                "strictHostKeyChecking" : "{{?strictHostKeyChecking}}",
                "useUserKnownHostsFile" : "{{?useUserKnownHostsFile}}",
                "passiveMode" : "{{passiveMode}}",
                "fileExist" : "{{fileExist}}",
                "binary" : "{{binary}}",
                "autoCreate" : "{{autoCreate}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "SFTP Sink",
      "description" : "Send data to an SFTP Server.\n\nIn the header, you can set the `file` / `ce-file` property to specify the filename to upload.\n\nIf you do not set the property in the header, the Kamelet uses the exchange ID for the filename.",
      "required" : [ "connectionHost", "connectionPort", "directoryName" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname of the FTP server"
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port of the FTP server",
          "default" : 22
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the FTP server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the FTP server.",
          "format" : "password"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The starting directory."
        },
        "passiveMode" : {
          "type" : "boolean",
          "title" : "Passive Mode",
          "description" : "Specifies to use passive mode connection.",
          "default" : false
        },
        "fileExist" : {
          "type" : "string",
          "title" : "File Existence",
          "description" : "How to behave in case of file already existent.",
          "enum" : [ "Override", "Append", "Fail", "Ignore" ],
          "default" : "Override"
        },
        "binary" : {
          "type" : "boolean",
          "title" : "Binary",
          "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
          "default" : false
        },
        "privateKeyFile" : {
          "type" : "string",
          "title" : "Private Key File",
          "description" : "Set the private key file so that the SFTP endpoint can do private key verification."
        },
        "privateKeyPassphrase" : {
          "type" : "string",
          "title" : "Private Key Passphrase",
          "description" : "Set the private key file passphrase so that the SFTP endpoint can do private key verification."
        },
        "privateKeyUri" : {
          "type" : "string",
          "title" : "Private Key URI",
          "description" : "Set the private key file (loaded from classpath by default) so that the SFTP endpoint can do private key verification."
        },
        "strictHostKeyChecking" : {
          "type" : "string",
          "title" : "Strict Host Checking",
          "description" : "Sets whether to use strict host key checking.",
          "default" : false
        },
        "useUserKnownHostsFile" : {
          "type" : "boolean",
          "title" : "Use User Known Hosts File",
          "description" : "If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts.",
          "default" : true
        },
        "autoCreate" : {
          "type" : "boolean",
          "title" : "Autocreate Missing Directories",
          "description" : "Automatically create the directory the files should be written to.",
          "default" : true
        }
      }
    }
  },
  "sftp-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "sftp-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "FTP",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "SFTP Source",
        "description" : "Receive data from an SFTP server.",
        "required" : [ "connectionHost", "connectionPort", "directoryName" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The hostname of the SFTP server.",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The port of the FTP server.",
            "type" : "string",
            "default" : 22
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the SFTP server.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the SFTP server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "directoryName" : {
            "title" : "Directory Name",
            "description" : "The starting directory.",
            "type" : "string"
          },
          "passiveMode" : {
            "title" : "Passive Mode",
            "description" : "Sets the passive mode connection.",
            "type" : "boolean",
            "default" : false
          },
          "recursive" : {
            "title" : "Recursive",
            "description" : "If a directory, look for files in all sub-directories as well.",
            "type" : "boolean",
            "default" : false
          },
          "idempotent" : {
            "title" : "Idempotency",
            "description" : "Skip already-processed files.",
            "type" : "boolean",
            "default" : true
          },
          "ignoreFileNotFoundOrPermissionError" : {
            "title" : "Ignore File Not Found Or Permission Error",
            "description" : "Whether to ignore when (trying to list files in directories or when downloading a file), which does not exist or due to permission error. By default when a directory or file does not exists or insufficient permission, then an exception is thrown. Setting this option to true allows to ignore that instead.",
            "type" : "boolean",
            "default" : false
          },
          "binary" : {
            "title" : "Binary",
            "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
            "type" : "boolean",
            "default" : false
          },
          "privateKeyFile" : {
            "title" : "Private Key File",
            "description" : "Set the private key file so that the SFTP endpoint can do private key verification.",
            "type" : "string"
          },
          "privateKeyPassphrase" : {
            "title" : "Private Key Passphrase",
            "description" : "Set the private key file passphrase so that the SFTP endpoint can do private key verification.",
            "type" : "string"
          },
          "privateKeyUri" : {
            "title" : "Private Key URI",
            "description" : "Set the private key file (loaded from classpath by default) so that the SFTP endpoint can do private key verification.",
            "type" : "string",
            "pattern" : "^(http|https|file|classpath)://.*"
          },
          "strictHostKeyChecking" : {
            "title" : "Strict Host Checking",
            "description" : "Sets whether to use strict host key checking.",
            "type" : "string",
            "default" : false
          },
          "useUserKnownHostsFile" : {
            "title" : "Use User Known Hosts File",
            "description" : "If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts.",
            "type" : "boolean",
            "default" : true
          },
          "autoCreate" : {
            "title" : "Autocreate Missing Directories",
            "description" : "Automatically create starting directory.",
            "type" : "boolean",
            "default" : true
          },
          "delete" : {
            "title" : "Delete",
            "description" : "If true, the file will be deleted after it is processed successfully.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:ftp", "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "sftp:{{connectionHost}}:{{connectionPort}}/{{directoryName}}",
          "parameters" : {
            "username" : "{{?username}}",
            "password" : "{{?password}}",
            "privateKeyFile" : "{{?privateKeyFile}}",
            "privateKeyPassphrase" : "{{?privateKeyPassphrase}}",
            "privateKeyUri" : "{{?privateKeyUri}}",
            "strictHostKeyChecking" : "{{?strictHostKeyChecking}}",
            "useUserKnownHostsFile" : "{{?useUserKnownHostsFile}}",
            "passiveMode" : "{{passiveMode}}",
            "recursive" : "{{recursive}}",
            "idempotent" : "{{idempotent}}",
            "ignoreFileNotFoundOrPermissionError" : "{{ignoreFileNotFoundOrPermissionError}}",
            "binary" : "{{binary}}",
            "autoCreate" : "{{autoCreate}}",
            "delete" : "{{delete}}"
          },
          "steps" : [ {
            "setBody" : {
              "simple" : "${body.getBody()}"
            }
          }, {
            "setHeader" : {
              "name" : "file",
              "simple" : "${header[CamelFileName]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-file",
              "simple" : "${header[CamelFileName]}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "SFTP Source",
      "description" : "Receive data from an SFTP server.",
      "required" : [ "connectionHost", "connectionPort", "directoryName" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The hostname of the SFTP server."
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The port of the FTP server.",
          "default" : 22
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the SFTP server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the SFTP server.",
          "format" : "password"
        },
        "directoryName" : {
          "type" : "string",
          "title" : "Directory Name",
          "description" : "The starting directory."
        },
        "passiveMode" : {
          "type" : "boolean",
          "title" : "Passive Mode",
          "description" : "Sets the passive mode connection.",
          "default" : false
        },
        "recursive" : {
          "type" : "boolean",
          "title" : "Recursive",
          "description" : "If a directory, look for files in all sub-directories as well.",
          "default" : false
        },
        "idempotent" : {
          "type" : "boolean",
          "title" : "Idempotency",
          "description" : "Skip already-processed files.",
          "default" : true
        },
        "ignoreFileNotFoundOrPermissionError" : {
          "type" : "boolean",
          "title" : "Ignore File Not Found Or Permission Error",
          "description" : "Whether to ignore when (trying to list files in directories or when downloading a file), which does not exist or due to permission error. By default when a directory or file does not exists or insufficient permission, then an exception is thrown. Setting this option to true allows to ignore that instead.",
          "default" : false
        },
        "binary" : {
          "type" : "boolean",
          "title" : "Binary",
          "description" : "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false).",
          "default" : false
        },
        "privateKeyFile" : {
          "type" : "string",
          "title" : "Private Key File",
          "description" : "Set the private key file so that the SFTP endpoint can do private key verification."
        },
        "privateKeyPassphrase" : {
          "type" : "string",
          "title" : "Private Key Passphrase",
          "description" : "Set the private key file passphrase so that the SFTP endpoint can do private key verification."
        },
        "privateKeyUri" : {
          "type" : "string",
          "title" : "Private Key URI",
          "description" : "Set the private key file (loaded from classpath by default) so that the SFTP endpoint can do private key verification."
        },
        "strictHostKeyChecking" : {
          "type" : "string",
          "title" : "Strict Host Checking",
          "description" : "Sets whether to use strict host key checking.",
          "default" : false
        },
        "useUserKnownHostsFile" : {
          "type" : "boolean",
          "title" : "Use User Known Hosts File",
          "description" : "If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts.",
          "default" : true
        },
        "autoCreate" : {
          "type" : "boolean",
          "title" : "Autocreate Missing Directories",
          "description" : "Automatically create starting directory.",
          "default" : true
        },
        "delete" : {
          "type" : "boolean",
          "title" : "Delete",
          "description" : "If true, the file will be deleted after it is processed successfully.",
          "default" : false
        }
      }
    }
  },
  "simple-filter-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "simple-filter-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "EIP"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Simple Filter Action",
        "description" : "Filter based on simple expression",
        "required" : [ "expression" ],
        "properties" : {
          "expression" : {
            "title" : "Simple Expression",
            "description" : "A simple expression to apply on the exchange to filter out some exchange",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "filter" : {
              "simple" : "{{expression}}",
              "steps" : [ {
                "stop" : { }
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Simple Filter Action",
      "description" : "Filter based on simple expression",
      "required" : [ "expression" ],
      "properties" : {
        "expression" : {
          "type" : "string",
          "title" : "Simple Expression",
          "description" : "A simple expression to apply on the exchange to filter out some exchange"
        }
      }
    }
  },
  "slack-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "slack-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNUQzNjY7fQoJLnN0MXtmaWxsOiNGRkZGRkY7fQoJLnN0MntmaWxsOiNGRjAwMDA7fQoJLnN0M3tmaWxsOiMzRDVBOTg7fQoJLnN0NHtmaWxsOnVybCgjU1ZHSURfMV8pO30KCS5zdDV7ZmlsbDp1cmwoI1NWR0lEXzJfKTt9Cgkuc3Q2e2ZpbGw6IzU1QURFRTt9Cgkuc3Q3e2ZpbGw6IzFFOTZDODt9Cgkuc3Q4e2ZpbGw6I0E5QzlERDt9Cgkuc3Q5e2ZpbGw6I0M4REFFQTt9Cgkuc3QxMHtmaWxsOm5vbmU7fQoJLnN0MTF7ZmlsbDojNDc4N0YzO30KCS5zdDEye2ZpbGw6I0RDNDgzQzt9Cgkuc3QxM3tmaWxsOiNGRkNFNDM7fQoJLnN0MTR7ZmlsbDojMTQ5RjVDO30KCS5zdDE1e2ZpbGw6I0NFMUU1Qjt9Cgkuc3QxNntmaWxsOiM3MkM1Q0Q7fQoJLnN0MTd7ZmlsbDojREZBMjJGO30KCS5zdDE4e2ZpbGw6IzNDQjE4Nzt9Cgkuc3QxOXtmaWxsOiMyNDhDNzM7fQoJLnN0MjB7ZmlsbDojMzkyNTM4O30KCS5zdDIxe2ZpbGw6I0JCMjQyQTt9Cgkuc3QyMntmaWxsOm5vbmU7c3Ryb2tlOiMzQ0IxODc7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQoJLnN0MjN7ZmlsbDojMDA5QTU3O30KCS5zdDI0e2ZpbGw6I0ZDQ0QzNzt9Cgkuc3QyNXtmaWxsOiMyNzcxRjA7fQo8L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDE1IiBkPSJNNTAxLjgsMjc0TDUwMS44LDI3NGMtNy42LTIzLjMtMzIuNi0zNi4xLTU2LTI4LjVMOTYuMiwzNTkuMWMtMjMuMyw3LjYtMzYuMSwzMi42LTI4LjUsNTZsMCwwICAgYzcuNiwyMy4zLDMyLjYsMzYuMSw1NiwyOC41bDM0OS42LTExMy42QzQ5Ni42LDMyMi40LDUwOS40LDI5Ny4zLDUwMS44LDI3NHoiLz48cGF0aCBjbGFzcz0ic3QxNiIgZD0iTTQ0My41LDk3LjdsLTAuMi0wLjVjLTcuNi0yMy4zLTMyLjYtMzYuMS01Ni0yOC41TDM4LjcsMTgyLjFjLTIzLjMsNy42LTM2LjEsMzIuNi0yOC41LDU2bDAuMiwwLjUgICBjNy42LDIzLjMsMzIuNiwzNi4xLDU2LDI4LjVsMzQ4LjYtMTEzLjNDNDM4LjMsMTQ2LjEsNDUxLDEyMS4xLDQ0My41LDk3Ljd6Ii8+PHBhdGggY2xhc3M9InN0MTciIGQ9Ik00NDMuNiwzODguM0wzMjkuOSwzOC43Yy03LjYtMjMuMy0zMi42LTM2LjEtNTYtMjguNXYwYy0yMy4zLDcuNi0zNi4xLDMyLjYtMjguNSw1NmwxMTMuNiwzNDkuNiAgIGM3LjYsMjMuMywzMi42LDM2LjEsNTYsMjguNWgwQzQzOC40LDQzNi43LDQ1MS4yLDQxMS42LDQ0My42LDM4OC4zeiIvPjxwYXRoIGNsYXNzPSJzdDE4IiBkPSJNMjY3LDQ0NS43TDE1My43LDk3LjFjLTcuNi0yMy4zLTMyLjYtMzYuMS01Ni0yOC41bC0wLjUsMC4yYy0yMy4zLDcuNi0zNi4xLDMyLjYtMjguNSw1NmwxMTMuMywzNDguNiAgIGM3LjYsMjMuMywzMi42LDM2LjEsNTYsMjguNWwwLjUtMC4yQzI2MS45LDQ5NC4xLDI3NC42LDQ2OSwyNjcsNDQ1Ljd6Ii8+PHJlY3QgY2xhc3M9InN0MTkiIGhlaWdodD0iODkuNCIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTUxIDAuMzA5MSAtMC4zMDkxIC0wLjk1MSAzMzEuOTg5NiAzNDAuMjQ1KSIgd2lkdGg9Ijg5LjQiIHg9Ijk0LjQiIHk9IjE1MS43Ii8+PHJlY3QgY2xhc3M9InN0MjAiIGhlaWdodD0iODguOCIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTEgLTAuMzA5MSAwLjMwOTEgMC45NTEgLTEwNS43NDk4IDc5LjAzMDEpIiB3aWR0aD0iODkuNCIgeD0iMTUxLjgiIHk9IjMyOC44Ii8+PHJlY3QgY2xhc3M9InN0MjEiIGhlaWdodD0iODguOCIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTEgLTAuMzA5MSAwLjMwOTEgMC45NTEgLTc5LjMyNSAxMzAuODY4OSkiIHdpZHRoPSI4OC44IiB4PSIzMjguOSIgeT0iMjcxLjMiLz48L2c+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Slack",
        "camel.apache.org/kamelet.namespace" : "Social"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Slack Sink",
        "description" : "Send messages to a Slack channel.",
        "required" : [ "channel", "webhookUrl" ],
        "type" : "object",
        "properties" : {
          "channel" : {
            "title" : "Channel",
            "description" : "The Slack channel to send messages to.",
            "type" : "string",
            "example" : "#myroom"
          },
          "webhookUrl" : {
            "title" : "Webhook URL",
            "description" : "The webhook URL used by the Slack channel to handle incoming messages.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "iconEmoji" : {
            "title" : "Icon Emoji",
            "description" : "Use a Slack emoji as an avatar.",
            "type" : "string"
          },
          "iconUrl" : {
            "title" : "Icon URL",
            "description" : "The avatar to use when sending a message to a channel or user.",
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username for the bot when it sends messages to a channel or user.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:slack", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "slack:{{channel}}",
              "parameters" : {
                "webhookUrl" : "{{webhookUrl}}",
                "iconEmoji" : "{{?iconEmoji}}",
                "iconUrl" : "{{?iconUrl}}",
                "username" : "{{?username}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Slack Sink",
      "description" : "Send messages to a Slack channel.",
      "required" : [ "channel", "webhookUrl" ],
      "properties" : {
        "channel" : {
          "type" : "string",
          "title" : "Channel",
          "description" : "The Slack channel to send messages to."
        },
        "webhookUrl" : {
          "type" : "string",
          "title" : "Webhook URL",
          "description" : "The webhook URL used by the Slack channel to handle incoming messages.",
          "format" : "password"
        },
        "iconEmoji" : {
          "type" : "string",
          "title" : "Icon Emoji",
          "description" : "Use a Slack emoji as an avatar."
        },
        "iconUrl" : {
          "type" : "string",
          "title" : "Icon URL",
          "description" : "The avatar to use when sending a message to a channel or user."
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username for the bot when it sends messages to a channel or user."
        }
      }
    }
  },
  "slack-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "slack-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNUQzNjY7fQoJLnN0MXtmaWxsOiNGRkZGRkY7fQoJLnN0MntmaWxsOiNGRjAwMDA7fQoJLnN0M3tmaWxsOiMzRDVBOTg7fQoJLnN0NHtmaWxsOnVybCgjU1ZHSURfMV8pO30KCS5zdDV7ZmlsbDp1cmwoI1NWR0lEXzJfKTt9Cgkuc3Q2e2ZpbGw6IzU1QURFRTt9Cgkuc3Q3e2ZpbGw6IzFFOTZDODt9Cgkuc3Q4e2ZpbGw6I0E5QzlERDt9Cgkuc3Q5e2ZpbGw6I0M4REFFQTt9Cgkuc3QxMHtmaWxsOm5vbmU7fQoJLnN0MTF7ZmlsbDojNDc4N0YzO30KCS5zdDEye2ZpbGw6I0RDNDgzQzt9Cgkuc3QxM3tmaWxsOiNGRkNFNDM7fQoJLnN0MTR7ZmlsbDojMTQ5RjVDO30KCS5zdDE1e2ZpbGw6I0NFMUU1Qjt9Cgkuc3QxNntmaWxsOiM3MkM1Q0Q7fQoJLnN0MTd7ZmlsbDojREZBMjJGO30KCS5zdDE4e2ZpbGw6IzNDQjE4Nzt9Cgkuc3QxOXtmaWxsOiMyNDhDNzM7fQoJLnN0MjB7ZmlsbDojMzkyNTM4O30KCS5zdDIxe2ZpbGw6I0JCMjQyQTt9Cgkuc3QyMntmaWxsOm5vbmU7c3Ryb2tlOiMzQ0IxODc7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQoJLnN0MjN7ZmlsbDojMDA5QTU3O30KCS5zdDI0e2ZpbGw6I0ZDQ0QzNzt9Cgkuc3QyNXtmaWxsOiMyNzcxRjA7fQo8L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDE1IiBkPSJNNTAxLjgsMjc0TDUwMS44LDI3NGMtNy42LTIzLjMtMzIuNi0zNi4xLTU2LTI4LjVMOTYuMiwzNTkuMWMtMjMuMyw3LjYtMzYuMSwzMi42LTI4LjUsNTZsMCwwICAgYzcuNiwyMy4zLDMyLjYsMzYuMSw1NiwyOC41bDM0OS42LTExMy42QzQ5Ni42LDMyMi40LDUwOS40LDI5Ny4zLDUwMS44LDI3NHoiLz48cGF0aCBjbGFzcz0ic3QxNiIgZD0iTTQ0My41LDk3LjdsLTAuMi0wLjVjLTcuNi0yMy4zLTMyLjYtMzYuMS01Ni0yOC41TDM4LjcsMTgyLjFjLTIzLjMsNy42LTM2LjEsMzIuNi0yOC41LDU2bDAuMiwwLjUgICBjNy42LDIzLjMsMzIuNiwzNi4xLDU2LDI4LjVsMzQ4LjYtMTEzLjNDNDM4LjMsMTQ2LjEsNDUxLDEyMS4xLDQ0My41LDk3Ljd6Ii8+PHBhdGggY2xhc3M9InN0MTciIGQ9Ik00NDMuNiwzODguM0wzMjkuOSwzOC43Yy03LjYtMjMuMy0zMi42LTM2LjEtNTYtMjguNXYwYy0yMy4zLDcuNi0zNi4xLDMyLjYtMjguNSw1NmwxMTMuNiwzNDkuNiAgIGM3LjYsMjMuMywzMi42LDM2LjEsNTYsMjguNWgwQzQzOC40LDQzNi43LDQ1MS4yLDQxMS42LDQ0My42LDM4OC4zeiIvPjxwYXRoIGNsYXNzPSJzdDE4IiBkPSJNMjY3LDQ0NS43TDE1My43LDk3LjFjLTcuNi0yMy4zLTMyLjYtMzYuMS01Ni0yOC41bC0wLjUsMC4yYy0yMy4zLDcuNi0zNi4xLDMyLjYtMjguNSw1NmwxMTMuMywzNDguNiAgIGM3LjYsMjMuMywzMi42LDM2LjEsNTYsMjguNWwwLjUtMC4yQzI2MS45LDQ5NC4xLDI3NC42LDQ2OSwyNjcsNDQ1Ljd6Ii8+PHJlY3QgY2xhc3M9InN0MTkiIGhlaWdodD0iODkuNCIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTUxIDAuMzA5MSAtMC4zMDkxIC0wLjk1MSAzMzEuOTg5NiAzNDAuMjQ1KSIgd2lkdGg9Ijg5LjQiIHg9Ijk0LjQiIHk9IjE1MS43Ii8+PHJlY3QgY2xhc3M9InN0MjAiIGhlaWdodD0iODguOCIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTEgLTAuMzA5MSAwLjMwOTEgMC45NTEgLTEwNS43NDk4IDc5LjAzMDEpIiB3aWR0aD0iODkuNCIgeD0iMTUxLjgiIHk9IjMyOC44Ii8+PHJlY3QgY2xhc3M9InN0MjEiIGhlaWdodD0iODguOCIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTEgLTAuMzA5MSAwLjMwOTEgMC45NTEgLTc5LjMyNSAxMzAuODY4OSkiIHdpZHRoPSI4OC44IiB4PSIzMjguOSIgeT0iMjcxLjMiLz48L2c+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Slack",
        "camel.apache.org/kamelet.namespace" : "Social"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Slack Source",
        "description" : "Receive messages from a Slack channel.",
        "required" : [ "channel", "token" ],
        "type" : "object",
        "properties" : {
          "channel" : {
            "title" : "Channel",
            "description" : "The Slack channel to receive messages from.",
            "type" : "string",
            "example" : "#myroom"
          },
          "token" : {
            "title" : "Token",
            "description" : "The Bot User OAuth Access Token to access Slack. A Slack app that has the following permissions is required: `channels:history`, `groups:history`, `im:history`, `mpim:history`, `channels:read`, `groups:read`, `im:read`, and `mpim:read`.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The delay between polls. If no unit provided, miliseconds is the default.",
            "type" : "string",
            "default" : "60000",
            "example" : "60s or 6000 or 1m"
          },
          "naturalOrder" : {
            "title" : "Natural Order",
            "description" : "Create exchanges in natural order (oldest to newest) or not.",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:gson", "camel:slack", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "slack:{{channel}}",
          "parameters" : {
            "token" : "{{token}}",
            "delay" : "{{delay}}",
            "naturalOrder" : "{{naturalOrder}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Gson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Slack Source",
      "description" : "Receive messages from a Slack channel.",
      "required" : [ "channel", "token" ],
      "properties" : {
        "channel" : {
          "type" : "string",
          "title" : "Channel",
          "description" : "The Slack channel to receive messages from."
        },
        "token" : {
          "type" : "string",
          "title" : "Token",
          "description" : "The Bot User OAuth Access Token to access Slack. A Slack app that has the following permissions is required: `channels:history`, `groups:history`, `im:history`, `mpim:history`, `channels:read`, `groups:read`, `im:read`, and `mpim:read`.",
          "format" : "password"
        },
        "delay" : {
          "type" : "string",
          "title" : "Delay",
          "description" : "The delay between polls. If no unit provided, miliseconds is the default.",
          "default" : "60000"
        },
        "naturalOrder" : {
          "type" : "boolean",
          "title" : "Natural Order",
          "description" : "Create exchanges in natural order (oldest to newest) or not.",
          "default" : false
        }
      }
    }
  },
  "snowflake-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "snowflake-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjIiIGJhc2VQcm9maWxlPSJ0aW55LXBzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTY1IDE1NTkiIHdpZHRoPSIxNTY1IiBoZWlnaHQ9IjE1NTkiPgoJPHRpdGxlPmxvZ28tYmx1ZS1zdmcgY29weS1zdmc8L3RpdGxlPgoJPGRlZnM+CgkJPGNsaXBQYXRoIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iY3AxIj4KCQkJPHBhdGggZD0iTTAuMjQgMEw2ODkzLjI2IDBMNjg5My4yNiAxNTU4LjIyTDAuMjQgMTU1OC4yMkwwLjI0IDBaIiAvPgoJCTwvY2xpcFBhdGg+Cgk8L2RlZnM+Cgk8c3R5bGU+CgkJdHNwYW4geyB3aGl0ZS1zcGFjZTpwcmUgfQoJCS5zaHAwIHsgZmlsbDogIzI5YjVlOCB9IAoJPC9zdHlsZT4KCTxnIGlkPSJIT01FUEFHRSI+CgkJPGcgaWQ9IlNub3dmbGFrZS1Ib21lcGFnZS1wbGF0Zm9ybS1hbHQtMy1Db3B5Ij4KCQkJPGcgaWQ9IkNvbXBvbmVudHMtLy1OYXZpZ2F0aW9uLS8tTWFpbiI+CgkJCQk8ZyBpZD0iTG9nby0vLVNub3dmbGFrZS1CbHVlIj4KCQkJCQk8ZyBpZD0iTGF5ZXIiPgoJCQkJCQk8ZyBpZD0iTWFzayI+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXAtUGF0aDogQ2xpcC1QYXRoOiBGaWxsLTEiIGNsaXAtcGF0aD0idXJsKCNjcDEpIj4KCQkJCQkJCTxnIGlkPSJDbGlwLVBhdGg6IEZpbGwtMSI+CgkJCQkJCQkJPHBhdGggaWQ9IkZpbGwtMSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGFzcz0ic2hwMCIgZD0iTTUyMi42MyA4MDcuNTdDNTE1LjYzIDgzMC4wNyA1MDAuNDQgODUwLjA2IDQ3OC4wNyA4NjIuODRMMTQ2LjcyIDEwNTIuNjlDOTkuOTIgMTA3OS4zOSA0MC4zIDEwNjMuNTYgMTMuNDQgMTAxNy4zOEMtMTMuNTkgOTcwLjk0IDIuMzIgOTExLjg2IDQ5LjA4IDg4NS4wOEwyMzQuMjYgNzc5LjE3TDQ5LjA4IDY3Mi45OEMyLjMyIDY0Ni4yNCAtMTMuNjcgNTg3LjE1IDEzLjQ0IDU0MC44OEM0MC4zIDQ5NC41OCA5OS45MiA0NzguNyAxNDYuNzIgNTA1LjRMNDc4LjA3IDY5NS4xM0M1MDEuMzcgNzA4LjQ2IDUxNi45NCA3MjkuNiA1MjMuNDggNzUzLjI0QzUyNS42OCA3NjAuODQgNTI2LjY2IDc2OC40NCA1MjcuMDQgNzc2LjA4QzUyNy4zIDc4Ni42IDUyNS45NCA3OTcuMjYgNTIyLjYzIDgwNy41N1pNNjEyLjU0IDk4NS4zOEM2NjMgOTg4Ljk4IDcwMi44NCAxMDMwLjg0IDcwMi44NCAxMDgxLjc3TDcwMi44NCAxNDYxLjM2QzcwMi44NCAxNTE0Ljg5IDY1OS4wNSAxNTU4LjIyIDYwNS4yOSAxNTU4LjIyQzU1MS4yNyAxNTU4LjIyIDUwNy42NSAxNTE0Ljg5IDUwNy42NSAxNDYxLjM2TDUwNy42NSAxMjQ5LjA1TDMyMS44NCAxMzU1LjI5QzI3NS4yNSAxMzgyLjIgMjE1LjY3IDEzNjYuMjggMTg4LjYgMTMyMC4wNkMxNjEuNyAxMjczLjc1IDE3Ny42MSAxMjE0LjM3IDIyNC4yOSAxMTg3LjYzTDU1NS45IDk5OC4wMkM1NzMuNzIgOTg3LjcxIDU5My40OSA5ODMuNzYgNjEyLjU0IDk4NS4zOFpNOTUyLjE3IDU3Mi44NUM5MDEuNTkgNTY5LjE1IDg2MS44MyA1MjcuMjIgODYxLjgzIDQ3Ni4zM0w4NjEuODMgOTYuNjlDODYxLjgzIDQzLjM0IDkwNS4zNyAwIDk1OS40MyAwQzEwMTMuNDQgMCAxMDU3LjA3IDQzLjM0IDEwNTcuMDcgOTYuNjlMMTA1Ny4wNyAzMDkuMTNMMTI0Mi43NSAyMDIuNzJDMTI4OS40MyAxNzUuOTggMTM0OS4wNCAxOTEuODUgMTM3NS45NSAyMzguMDhDMTQwMi44IDI4NC41NiAxMzg2Ljk4IDM0My42OCAxMzQwLjI2IDM3MC40MkwxMDA4LjY5IDU2MC4yQzk5MC44NyA1NzAuMzggOTcxLjE0IDU3NC4zNyA5NTIuMTcgNTcyLjg1Wk0yMjQuMjkgMzcwLjQyQzE3Ny42MSAzNDMuNjggMTYxLjcgMjg0LjU2IDE4OC42IDIzOC4wOEMyMTUuNjcgMTkxLjg1IDI3NS4yNSAxNzUuOTggMzIxLjg0IDIwMi43Mkw1MDcuNjUgMzA5LjEzTDUwNy42NSA5Ni42OUM1MDcuNjUgNDMuMzQgNTUxLjI3IDAgNjA1LjI5IDBDNjU5LjA1IDAgNzAyLjg0IDQzLjM0IDcwMi44NCA5Ni42OUw3MDIuODQgNDc2LjMzQzcwMi44NCA1MjcuMjIgNjYzIDU2OS4xNSA2MTIuNTQgNTcyLjg1QzU5My40OSA1NzQuMzcgNTczLjcyIDU3MC4zOCA1NTUuOSA1NjAuMkwyMjQuMjkgMzcwLjQyWk04MTkuODMgOTUyLjc0QzgxNS44OCA5NTYuNzcgODA4LjI4IDk2MC4wNCA4MDIuNTEgOTYwLjA0TDc2MS45OSA5NjAuMDRDNzU2LjQzIDk2MC4wNCA3NDguNzEgOTU2Ljc3IDc0NC42OCA5NTIuNzRMNjA2Ljk0IDgxNi4yN0M2MDMgODEyLjQxIDU5OS44MSA4MDQuNjggNTk5LjgxIDc5OS4yNUw1OTkuODEgNzU4Ljk3QzU5OS44MSA3NTMuNDEgNjAzIDc0NS42OSA2MDYuOTQgNzQxLjc4TDc0NC42OCA2MDUuMjdDNzQ4LjcxIDYwMS4yOSA3NTYuNDMgNTk4LjEgNzYxLjk5IDU5OC4xTDgwMi41MSA1OTguMUM4MDguMTYgNTk4LjEgODE1Ljg4IDYwMS4yOSA4MTkuODMgNjA1LjI3TDk1Ny42NSA3NDEuNzhDOTYxLjU5IDc0NS42OSA5NjQuNzcgNzUzLjQxIDk2NC43NyA3NTguOTdMOTY0Ljc3IDc5OS4yNUM5NjQuNzcgODA0LjY4IDk2MS41OSA4MTIuNDEgOTU3LjY1IDgxNi4yN0w4MTkuODMgOTUyLjc0Wk04NDcuNDkgNzc4LjM3Qzg0Ny40OSA3NzIuODUgODQ0LjE0IDc2NS4xNyA4NDAuMTkgNzYxLjA5TDgwMC4yNiA3MjEuN0M3OTYuMzYgNzE3LjggNzg4LjYgNzE0LjU3IDc4My4wNCA3MTQuNTdMNzgxLjQ3IDcxNC41N0M3NzUuOTEgNzE0LjU3IDc2OC4xOSA3MTcuOCA3NjQuMzIgNzIxLjdMNzI0LjQgNzYxLjA5QzcyMC40MSA3NjUuMTcgNzE3LjM1IDc3Mi44NSA3MTcuMzUgNzc4LjM3TDcxNy4zNSA3NzkuOTRDNzE3LjM1IDc4NS4zNyA3MjAuNDEgNzkyLjk3IDcyNC40IDc5Ni45Nkw3NjQuMzIgODM2LjQzQzc2OC4yMyA4NDAuMzQgNzc1LjkxIDg0My41NiA3ODEuNDcgODQzLjU2TDc4My4wNCA4NDMuNTZDNzg4LjYgODQzLjU2IDc5Ni4zNiA4NDAuMzQgODAwLjI2IDgzNi40M0w4NDAuMTkgNzk2Ljk2Qzg0NC4xNCA3OTIuOTcgODQ3LjQ5IDc4NS4zNyA4NDcuNDkgNzc5Ljk0TDg0Ny40OSA3NzguMzdaTTEzNDAuMjYgMTE4Ny42M0MxMzg2Ljk4IDEyMTQuMzcgMTQwMi44IDEyNzMuNzUgMTM3NS45NSAxMzIwLjA2QzEzNDkuMDQgMTM2Ni4yOCAxMjg5LjM4IDEzODIuMiAxMjQyLjc1IDEzNTUuMjlMMTA1Ny4wNyAxMjQ5LjA1TDEwNTcuMDcgMTQ2MS4zNkMxMDU3LjA3IDE1MTQuODkgMTAxMy40NCAxNTU4LjIyIDk1OS40MyAxNTU4LjIyQzkwNS4zNyAxNTU4LjIyIDg2MS44MyAxNTE0Ljg5IDg2MS44MyAxNDYxLjM2TDg2MS44MyAxMDgxLjc3Qzg2MS44MyAxMDMwLjg0IDkwMS41OSA5ODguOTggOTUyLjE3IDk4NS4zOEM5NzEuMTQgOTgzLjc2IDk5MC44NyA5ODcuNzEgMTAwOC42OSA5OTguMDJMMTM0MC4yNiAxMTg3LjYzWk0xMzMwLjM3IDc3OS4xN0wxNTE1LjU1IDg4NS4wOEMxNTYyLjMxIDkxMS44NiAxNTc4LjMxIDk3MC45NCAxNTUxLjI4IDEwMTcuMzhDMTUyNC4yOSAxMDYzLjU2IDE0NjQuNTkgMTA3OS4zOSAxNDE4IDEwNTIuNjlMMTA4Ni4zOSA4NjIuODRDMTA2NC4yNCA4NTAuMDYgMTA0OC45MiA4MzAuMDcgMTA0Mi4wOSA4MDcuNTdDMTAzOC44NiA3OTcuMjYgMTAzNy4zMyA3ODYuNiAxMDM3LjcyIDc3Ni4wOEMxMDM3Ljg5IDc2OC40NCAxMDM5LjAzIDc2MC44NCAxMDQxLjE1IDc1My4yNEMxMDQ3Ljc3IDcyOS42IDEwNjMuMzUgNzA4LjQ2IDEwODYuMzkgNjk1LjEzTDE0MTggNTA1LjRDMTQ2NC41OSA0NzguNyAxNTI0LjI5IDQ5NC41OCAxNTUxLjI4IDU0MC44OEMxNTc4LjMxIDU4Ny4xNSAxNTYyLjMxIDY0Ni4yNCAxNTE1LjU1IDY3Mi45OEwxMzMwLjM3IDc3OS4xN1oiIC8+CgkJCQkJCQk8L2c+CgkJCQkJCTwvZz4KCQkJCQk8L2c+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Snowflake Sink",
        "description" : "Send data to a Snowflake Database.\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
        "required" : [ "instanceUrl", "username", "password", "query" ],
        "type" : "object",
        "properties" : {
          "instanceUrl" : {
            "title" : "Instance URL",
            "description" : "The Instance url",
            "type" : "string",
            "example" : "instance.snowflakecomputing.com"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured Snowflake Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured Snowflake Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the Snowflake Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the Snowflake Database.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:net.snowflake:snowflake-jdbc:3.14.5", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:net.snowflake.client.jdbc.SnowflakeBasicDataSource",
          "properties" : {
            "user" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:snowflake://{{instanceUrl}}",
            "databaseName" : "{{?databaseName}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "sql:{{query}}",
              "parameters" : {
                "dataSource" : "#bean:{{dsBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Snowflake Sink",
      "description" : "Send data to a Snowflake Database.\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
      "required" : [ "instanceUrl", "username", "password", "query" ],
      "properties" : {
        "instanceUrl" : {
          "type" : "string",
          "title" : "Instance URL",
          "description" : "The Instance url"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured Snowflake Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured Snowflake Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the Snowflake Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the Snowflake Database."
        }
      }
    }
  },
  "snowflake-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "snowflake-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjIiIGJhc2VQcm9maWxlPSJ0aW55LXBzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTY1IDE1NTkiIHdpZHRoPSIxNTY1IiBoZWlnaHQ9IjE1NTkiPgoJPHRpdGxlPmxvZ28tYmx1ZS1zdmcgY29weS1zdmc8L3RpdGxlPgoJPGRlZnM+CgkJPGNsaXBQYXRoIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iY3AxIj4KCQkJPHBhdGggZD0iTTAuMjQgMEw2ODkzLjI2IDBMNjg5My4yNiAxNTU4LjIyTDAuMjQgMTU1OC4yMkwwLjI0IDBaIiAvPgoJCTwvY2xpcFBhdGg+Cgk8L2RlZnM+Cgk8c3R5bGU+CgkJdHNwYW4geyB3aGl0ZS1zcGFjZTpwcmUgfQoJCS5zaHAwIHsgZmlsbDogIzI5YjVlOCB9IAoJPC9zdHlsZT4KCTxnIGlkPSJIT01FUEFHRSI+CgkJPGcgaWQ9IlNub3dmbGFrZS1Ib21lcGFnZS1wbGF0Zm9ybS1hbHQtMy1Db3B5Ij4KCQkJPGcgaWQ9IkNvbXBvbmVudHMtLy1OYXZpZ2F0aW9uLS8tTWFpbiI+CgkJCQk8ZyBpZD0iTG9nby0vLVNub3dmbGFrZS1CbHVlIj4KCQkJCQk8ZyBpZD0iTGF5ZXIiPgoJCQkJCQk8ZyBpZD0iTWFzayI+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXAtUGF0aDogQ2xpcC1QYXRoOiBGaWxsLTEiIGNsaXAtcGF0aD0idXJsKCNjcDEpIj4KCQkJCQkJCTxnIGlkPSJDbGlwLVBhdGg6IEZpbGwtMSI+CgkJCQkJCQkJPHBhdGggaWQ9IkZpbGwtMSIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGFzcz0ic2hwMCIgZD0iTTUyMi42MyA4MDcuNTdDNTE1LjYzIDgzMC4wNyA1MDAuNDQgODUwLjA2IDQ3OC4wNyA4NjIuODRMMTQ2LjcyIDEwNTIuNjlDOTkuOTIgMTA3OS4zOSA0MC4zIDEwNjMuNTYgMTMuNDQgMTAxNy4zOEMtMTMuNTkgOTcwLjk0IDIuMzIgOTExLjg2IDQ5LjA4IDg4NS4wOEwyMzQuMjYgNzc5LjE3TDQ5LjA4IDY3Mi45OEMyLjMyIDY0Ni4yNCAtMTMuNjcgNTg3LjE1IDEzLjQ0IDU0MC44OEM0MC4zIDQ5NC41OCA5OS45MiA0NzguNyAxNDYuNzIgNTA1LjRMNDc4LjA3IDY5NS4xM0M1MDEuMzcgNzA4LjQ2IDUxNi45NCA3MjkuNiA1MjMuNDggNzUzLjI0QzUyNS42OCA3NjAuODQgNTI2LjY2IDc2OC40NCA1MjcuMDQgNzc2LjA4QzUyNy4zIDc4Ni42IDUyNS45NCA3OTcuMjYgNTIyLjYzIDgwNy41N1pNNjEyLjU0IDk4NS4zOEM2NjMgOTg4Ljk4IDcwMi44NCAxMDMwLjg0IDcwMi44NCAxMDgxLjc3TDcwMi44NCAxNDYxLjM2QzcwMi44NCAxNTE0Ljg5IDY1OS4wNSAxNTU4LjIyIDYwNS4yOSAxNTU4LjIyQzU1MS4yNyAxNTU4LjIyIDUwNy42NSAxNTE0Ljg5IDUwNy42NSAxNDYxLjM2TDUwNy42NSAxMjQ5LjA1TDMyMS44NCAxMzU1LjI5QzI3NS4yNSAxMzgyLjIgMjE1LjY3IDEzNjYuMjggMTg4LjYgMTMyMC4wNkMxNjEuNyAxMjczLjc1IDE3Ny42MSAxMjE0LjM3IDIyNC4yOSAxMTg3LjYzTDU1NS45IDk5OC4wMkM1NzMuNzIgOTg3LjcxIDU5My40OSA5ODMuNzYgNjEyLjU0IDk4NS4zOFpNOTUyLjE3IDU3Mi44NUM5MDEuNTkgNTY5LjE1IDg2MS44MyA1MjcuMjIgODYxLjgzIDQ3Ni4zM0w4NjEuODMgOTYuNjlDODYxLjgzIDQzLjM0IDkwNS4zNyAwIDk1OS40MyAwQzEwMTMuNDQgMCAxMDU3LjA3IDQzLjM0IDEwNTcuMDcgOTYuNjlMMTA1Ny4wNyAzMDkuMTNMMTI0Mi43NSAyMDIuNzJDMTI4OS40MyAxNzUuOTggMTM0OS4wNCAxOTEuODUgMTM3NS45NSAyMzguMDhDMTQwMi44IDI4NC41NiAxMzg2Ljk4IDM0My42OCAxMzQwLjI2IDM3MC40MkwxMDA4LjY5IDU2MC4yQzk5MC44NyA1NzAuMzggOTcxLjE0IDU3NC4zNyA5NTIuMTcgNTcyLjg1Wk0yMjQuMjkgMzcwLjQyQzE3Ny42MSAzNDMuNjggMTYxLjcgMjg0LjU2IDE4OC42IDIzOC4wOEMyMTUuNjcgMTkxLjg1IDI3NS4yNSAxNzUuOTggMzIxLjg0IDIwMi43Mkw1MDcuNjUgMzA5LjEzTDUwNy42NSA5Ni42OUM1MDcuNjUgNDMuMzQgNTUxLjI3IDAgNjA1LjI5IDBDNjU5LjA1IDAgNzAyLjg0IDQzLjM0IDcwMi44NCA5Ni42OUw3MDIuODQgNDc2LjMzQzcwMi44NCA1MjcuMjIgNjYzIDU2OS4xNSA2MTIuNTQgNTcyLjg1QzU5My40OSA1NzQuMzcgNTczLjcyIDU3MC4zOCA1NTUuOSA1NjAuMkwyMjQuMjkgMzcwLjQyWk04MTkuODMgOTUyLjc0QzgxNS44OCA5NTYuNzcgODA4LjI4IDk2MC4wNCA4MDIuNTEgOTYwLjA0TDc2MS45OSA5NjAuMDRDNzU2LjQzIDk2MC4wNCA3NDguNzEgOTU2Ljc3IDc0NC42OCA5NTIuNzRMNjA2Ljk0IDgxNi4yN0M2MDMgODEyLjQxIDU5OS44MSA4MDQuNjggNTk5LjgxIDc5OS4yNUw1OTkuODEgNzU4Ljk3QzU5OS44MSA3NTMuNDEgNjAzIDc0NS42OSA2MDYuOTQgNzQxLjc4TDc0NC42OCA2MDUuMjdDNzQ4LjcxIDYwMS4yOSA3NTYuNDMgNTk4LjEgNzYxLjk5IDU5OC4xTDgwMi41MSA1OTguMUM4MDguMTYgNTk4LjEgODE1Ljg4IDYwMS4yOSA4MTkuODMgNjA1LjI3TDk1Ny42NSA3NDEuNzhDOTYxLjU5IDc0NS42OSA5NjQuNzcgNzUzLjQxIDk2NC43NyA3NTguOTdMOTY0Ljc3IDc5OS4yNUM5NjQuNzcgODA0LjY4IDk2MS41OSA4MTIuNDEgOTU3LjY1IDgxNi4yN0w4MTkuODMgOTUyLjc0Wk04NDcuNDkgNzc4LjM3Qzg0Ny40OSA3NzIuODUgODQ0LjE0IDc2NS4xNyA4NDAuMTkgNzYxLjA5TDgwMC4yNiA3MjEuN0M3OTYuMzYgNzE3LjggNzg4LjYgNzE0LjU3IDc4My4wNCA3MTQuNTdMNzgxLjQ3IDcxNC41N0M3NzUuOTEgNzE0LjU3IDc2OC4xOSA3MTcuOCA3NjQuMzIgNzIxLjdMNzI0LjQgNzYxLjA5QzcyMC40MSA3NjUuMTcgNzE3LjM1IDc3Mi44NSA3MTcuMzUgNzc4LjM3TDcxNy4zNSA3NzkuOTRDNzE3LjM1IDc4NS4zNyA3MjAuNDEgNzkyLjk3IDcyNC40IDc5Ni45Nkw3NjQuMzIgODM2LjQzQzc2OC4yMyA4NDAuMzQgNzc1LjkxIDg0My41NiA3ODEuNDcgODQzLjU2TDc4My4wNCA4NDMuNTZDNzg4LjYgODQzLjU2IDc5Ni4zNiA4NDAuMzQgODAwLjI2IDgzNi40M0w4NDAuMTkgNzk2Ljk2Qzg0NC4xNCA3OTIuOTcgODQ3LjQ5IDc4NS4zNyA4NDcuNDkgNzc5Ljk0TDg0Ny40OSA3NzguMzdaTTEzNDAuMjYgMTE4Ny42M0MxMzg2Ljk4IDEyMTQuMzcgMTQwMi44IDEyNzMuNzUgMTM3NS45NSAxMzIwLjA2QzEzNDkuMDQgMTM2Ni4yOCAxMjg5LjM4IDEzODIuMiAxMjQyLjc1IDEzNTUuMjlMMTA1Ny4wNyAxMjQ5LjA1TDEwNTcuMDcgMTQ2MS4zNkMxMDU3LjA3IDE1MTQuODkgMTAxMy40NCAxNTU4LjIyIDk1OS40MyAxNTU4LjIyQzkwNS4zNyAxNTU4LjIyIDg2MS44MyAxNTE0Ljg5IDg2MS44MyAxNDYxLjM2TDg2MS44MyAxMDgxLjc3Qzg2MS44MyAxMDMwLjg0IDkwMS41OSA5ODguOTggOTUyLjE3IDk4NS4zOEM5NzEuMTQgOTgzLjc2IDk5MC44NyA5ODcuNzEgMTAwOC42OSA5OTguMDJMMTM0MC4yNiAxMTg3LjYzWk0xMzMwLjM3IDc3OS4xN0wxNTE1LjU1IDg4NS4wOEMxNTYyLjMxIDkxMS44NiAxNTc4LjMxIDk3MC45NCAxNTUxLjI4IDEwMTcuMzhDMTUyNC4yOSAxMDYzLjU2IDE0NjQuNTkgMTA3OS4zOSAxNDE4IDEwNTIuNjlMMTA4Ni4zOSA4NjIuODRDMTA2NC4yNCA4NTAuMDYgMTA0OC45MiA4MzAuMDcgMTA0Mi4wOSA4MDcuNTdDMTAzOC44NiA3OTcuMjYgMTAzNy4zMyA3ODYuNiAxMDM3LjcyIDc3Ni4wOEMxMDM3Ljg5IDc2OC40NCAxMDM5LjAzIDc2MC44NCAxMDQxLjE1IDc1My4yNEMxMDQ3Ljc3IDcyOS42IDEwNjMuMzUgNzA4LjQ2IDEwODYuMzkgNjk1LjEzTDE0MTggNTA1LjRDMTQ2NC41OSA0NzguNyAxNTI0LjI5IDQ5NC41OCAxNTUxLjI4IDU0MC44OEMxNTc4LjMxIDU4Ny4xNSAxNTYyLjMxIDY0Ni4yNCAxNTE1LjU1IDY3Mi45OEwxMzMwLjM3IDc3OS4xN1oiIC8+CgkJCQkJCQk8L2c+CgkJCQkJCTwvZz4KCQkJCQk8L2c+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+Cjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Snowflake Source",
        "description" : "Query data from a Snowflake Database.",
        "required" : [ "instanceUrl", "username", "password", "query" ],
        "type" : "object",
        "properties" : {
          "instanceUrl" : {
            "title" : "Instance URL",
            "description" : "The Instance url",
            "type" : "string",
            "example" : "instance.snowflakecomputing.com"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured Snowflake Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured Snowflake Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the Snowflake Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the Snowflake Database.",
            "type" : "string"
          },
          "consumedQuery" : {
            "title" : "Consumed Query",
            "description" : "A query to run on a tuple consumed.",
            "type" : "string",
            "example" : "DELETE FROM accounts where user_id = :#user_id"
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:net.snowflake:snowflake-jdbc:3.14.5", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:net.snowflake.client.jdbc.SnowflakeBasicDataSource",
          "properties" : {
            "user" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:snowflake://{{instanceUrl}}",
            "databaseName" : "{{?databaseName}}"
          }
        } ],
        "from" : {
          "uri" : "sql:{{query}}",
          "parameters" : {
            "dataSource" : "#bean:{{dsBean}}",
            "onConsume" : "{{?consumedQuery}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Snowflake Source",
      "description" : "Query data from a Snowflake Database.",
      "required" : [ "instanceUrl", "username", "password", "query" ],
      "properties" : {
        "instanceUrl" : {
          "type" : "string",
          "title" : "Instance URL",
          "description" : "The Instance url"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured Snowflake Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured Snowflake Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the Snowflake Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the Snowflake Database."
        },
        "consumedQuery" : {
          "type" : "string",
          "title" : "Consumed Query",
          "description" : "A query to run on a tuple consumed."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        }
      }
    }
  },
  "splunk-hec-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "splunk-hec-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+U3BsdW5rIGljb248L3RpdGxlPjxwYXRoIGQ9Ik0yMy4zNDggMTEuOTExbC0yLjI0MS0xLjA5MXYtLjY1TDI0IDExLjYyMXYuNTkzbC0yLjg5MyAxLjQzOHYtLjYzNnptLTUuMzk3IDEuODQxaC0uOTYxdi01LjMxaC45NjF2My4xMTZoLjEwMmwxLjI4LTEuNDgxLjcyMy4zMS0xLjIzIDEuMzE2IDEuNDUzIDEuODA5LS44ODguMzExLTEuNDQtMS45OTZ6bS0yLjU3Ny0uMDAydi0yLjA2OGEyLjY4NSAyLjY4NSAwIDAgMC0uMDI2LS40Mi43OTEuNzkxIDAgMCAwLS4wOS0uMjZjLS4xMTMtLjIwMi0uMzA4LS4zMDQtLjU5LS4zMDRhLjg4OC44ODggMCAwIDAtLjQ2MS4xMTMuNjczLjY3MyAwIDAgMC0uMjg2LjMzIDEuMDEyIDEuMDEyIDAgMCAwLS4wNy4yNjNjLS4wMTIuMTMtLjAxOS4yNjItLjAxNy4zOTV2MS45NWgtLjk2MXYtMy42MTRoLjk2MWwuMDAyLjQ4NWMuMTg1LS4yLjM3My0uMzQ4LjU2Ni0uNDM3LjE5Mi0uMDg5LjQxOC0uMTM0LjY3My0uMTM0LjI4NiAwIC41MjcuMDU4LjcyMS4xNzdhMS4wMTYgMS4wMTYgMCAwIDEgLjQ3NS42NjUgMS45NzIgMS45NzIgMCAwIDEgLjA1NC40NDhjLjAwMi4xLjAwNC4yMi4wMDQuMzU4djIuMDUzem0tNC4xMTUuMDAybC0uMDAyLS40ODVhMS43ODMgMS43ODMgMCAwIDEtLjU2NS40MzcgMS41OTcgMS41OTcgMCAwIDEtLjY3NC4xMzVjLS4yODUgMC0uNTI0LS4wNTctLjcyLS4xN2EuOTcyLjk3MiAwIDAgMS0uNDI1LS41MDQuNzUuNzUgMCAwIDEtLjA1NC0uMTY3IDEuOTE4IDEuOTE4IDAgMCAxLS4wMzMtLjE5OSAyLjAzMyAyLjAzMyAwIDAgMS0uMDE3LS4yNTggMTUuNTE2IDE1LjUxNiAwIDAgMS0uMDA1LS4zNTVWMTAuMTNoLjk1NnYyLjA3Yy0uMDAzLjE0MS4wMDYuMjgyLjAyNi40Mi4wMTUuMDkyLjA0NS4xOC4wOS4yNi4xMTMuMjA0LjMwOC4zMDYuNTkuMzA2LjM2IDAgLjYwNi0uMTUuNzQtLjQ0OS4wMzUtLjA4Mi4wNi0uMTY4LjA3NC0uMjU3LjAxNy0uMTM0LjAyNC0uMjY5LjAyMi0uNDAzdi0xLjk1aC45NTV2My42MjR6TTcuMTg0IDguNDRoLjk1NXY1LjMxaC0uOTU1ek01Ljc1OSAxMS45YzAtLjM5Ni0uMDgtLjcwOC0uMjQtLjkzN2EuNzU5Ljc1OSAwIDAgMC0uNjU3LS4zNDUuODA0LjgwNCAwIDAgMC0uNjkzLjM2NmMtLjE3MS4yNDUtLjI1Ni41NzQtLjI1My45OSAwIC40MDUuMDg0LjcyMy4yNS45NTdhLjc5Ni43OTYgMCAwIDAgLjY5LjM0Ny42ODUuNjg1IDAgMCAwIC40MzMtLjEzNS45ODUuOTg1IDAgMCAwIC4yNzctLjM0Yy4wNzEtLjE0LjEyMS0uMjkyLjE0Ny0uNDQ4LjAzLS4xNTEuMDQzLS4zLjA0Ni0uNDU1bTEuMDEtLjAzNmMuMDAzLjI2Ni0uMDQuNTMyLS4xMjkuNzg2LS4wODIuMjMtLjIwNC40NDEtLjM2NC42MjYtLjMxLjM2MS0uNzY0LjU2Ny0xLjI0LjU2M2ExLjY3IDEuNjcgMCAwIDEtLjMxMy0uMDI4IDEuMDQxIDEuMDQxIDAgMCAxLS4yNzUtLjA5OCAxLjMzIDEuMzMgMCAwIDEtLjI1Ny0uMTc4IDIuMzc5IDIuMzc5IDAgMCAxLS4yNjUtLjI2OHYyLjI5M2gtLjkyOXYtNS40MjVoLjkzbC4wMDQuNTI5Yy4xNjktLjIxMi4zNTMtLjM2OC41NS0uNDY4LjE5Ny0uMS40MjYtLjE1LjY4OC0uMTQ3YTEuNTA5IDEuNTA5IDAgMCAxIDEuMTU2LjUwN2MuMTQ4LjE2Ni4yNTkuMzYxLjMzLjU3MS4wOC4yMzYuMTIuNDg1LjExNS43MzdtLTQuMjEuODlhLjk0Ni45NDYgMCAwIDEtLjEwMi40NDEgMS4wMDcgMS4wMDcgMCAwIDEtLjI4Mi4zNDVjLS4xMy4xLS4yNzUuMTczLS40My4yMmExLjggMS44IDAgMCAxLS41NDYuMDggMS45ODUgMS45ODUgMCAwIDEtLjYzNy0uMDk3IDEuOTY0IDEuOTY0IDAgMCAxLS41NjMtLjMybC4zMTItLjUwNWMuMTUuMTI2LjI4NC4yMTcuNDA1LjI3NS4xMTUuMDU3LjI0LjA4Ny4zNjguMDg3YS41NTcuNTU3IDAgMCAwIC4zNzMtLjEyLjM5Ni4zOTYgMCAwIDAgLjE0LS4zMjIuNDc1LjQ3NSAwIDAgMC0uMTItLjMxOCAxLjMwNiAxLjMwNiAwIDAgMC0uMTg3LS4xNzMgOS4yMzEgOS4yMzEgMCAwIDAtLjMwOC0uMjMyIDYuNzg3IDYuNzg3IDAgMCAxLS4yODEtLjIxIDIuMTEgMi4xMSAwIDAgMS0uMjUyLS4yMzIgMS4wMzkgMS4wMzkgMCAwIDEtLjE4LS4yNzUuODI2LjgyNiAwIDAgMS0uMDY5LS4zNDcuODkzLjg5MyAwIDAgMSAuMDk0LS40MDkuOTM1LjkzNSAwIDAgMSAuMjU1LS4zMTQgMS4yMiAxLjIyIDAgMCAxIC4zOS0uMjAzYy4xNi0uMDUuMzI3LS4wNzQuNDk0LS4wNzIuMTg0IDAgLjM2OC4wMjYuNTQ1LjA3Ni4xNzQuMDUuMzM4LjEyMy40ODguMjE5bC0uMjgyLjQ1NGExLjA1IDEuMDUgMCAwIDAtLjYwOC0uMjAxLjUwNC41MDQgMCAwIDAtLjMyMy4xMDIuMzA3LjMwNyAwIDAgMC0uMTI2LjI1M2MwIC4wOTguMDQxLjE5My4xMTMuMjYuMDc0LjA3OC4yMDMuMTg2LjM4NS4zMjUuMTg1LjEzNi4zMzYuMjUzLjQ1Ny4zNTUuMTA0LjA4NS4yMDIuMTgyLjI4Ni4yODYuMDY1LjA4LjExNS4xNzMuMTQ1LjI3M2EuODA4LjgwOCAwIDAgMSAuMDQ2LjI5OVoiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SPLUNK",
        "camel.apache.org/kamelet.namespace" : "Monitoring"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Splunk HEC Sink",
        "description" : "The Splunk HEC sink allows to send data to Splunk using the https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector[HTTP Event Collector].",
        "required" : [ "splunkUrl", "token" ],
        "type" : "object",
        "properties" : {
          "splunkUrl" : {
            "title" : "Splunk URL",
            "description" : "The URL of your Splunk server. No need to set the protocol prefix.",
            "type" : "string",
            "example" : "my_server.splunkcloud.com:8088"
          },
          "token" : {
            "title" : "Token",
            "description" : "The Token of the HEC. Note it is not the user's authentication token.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "hostPayload" : {
            "title" : "Host of the Event",
            "description" : "The host field set in the data sent to Splunk, it is not related to the Splunk URL or the connection to Splunk server.",
            "type" : "string"
          },
          "bodyOnly" : {
            "title" : "Body Only",
            "description" : "Send to Splunk only data contained in the body.",
            "type" : "boolean",
            "default" : false
          },
          "headersOnly" : {
            "title" : "Headers Only",
            "description" : "Send to Splunk only data contained in the headers.",
            "type" : "boolean",
            "default" : false
          },
          "index" : {
            "title" : "Index",
            "description" : "Splunk index to write to.",
            "type" : "string"
          },
          "source" : {
            "title" : "Source",
            "description" : "The source named field of the data.",
            "type" : "string"
          },
          "sourceType" : {
            "title" : "Source Type",
            "description" : "The source named field of the data.",
            "type" : "string"
          },
          "skipTlsVerify" : {
            "title" : "Skip TLS Verification",
            "description" : "Skip TLS verification.",
            "type" : "boolean",
            "default" : false
          },
          "https" : {
            "title" : "Secure",
            "description" : "Use a secure HTTPS connection.",
            "type" : "boolean",
            "default" : true
          },
          "time" : {
            "title" : "Time",
            "description" : "Time this even occurred. By default, the time will be when this event hits the splunk server.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:splunk-hec", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "splunk-hec:{{splunkUrl}}/{{token}}",
              "parameters" : {
                "host" : "{{?hostPayload}}",
                "bodyOnly" : "{{?bodyOnly}}",
                "headersOnly" : "{{?headersOnly}}",
                "index" : "{{?index}}",
                "source" : "{{?source}}",
                "sourceType" : "{{?sourceType}}",
                "skipTlsVerify" : "{{?skipTlsVerify}}",
                "https" : "{{?https}}",
                "time" : "{{?time}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Splunk HEC Sink",
      "description" : "The Splunk HEC sink allows to send data to Splunk using the https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector[HTTP Event Collector].",
      "required" : [ "splunkUrl", "token" ],
      "properties" : {
        "splunkUrl" : {
          "type" : "string",
          "title" : "Splunk URL",
          "description" : "The URL of your Splunk server. No need to set the protocol prefix."
        },
        "token" : {
          "type" : "string",
          "title" : "Token",
          "description" : "The Token of the HEC. Note it is not the user's authentication token.",
          "format" : "password"
        },
        "hostPayload" : {
          "type" : "string",
          "title" : "Host of the Event",
          "description" : "The host field set in the data sent to Splunk, it is not related to the Splunk URL or the connection to Splunk server."
        },
        "bodyOnly" : {
          "type" : "boolean",
          "title" : "Body Only",
          "description" : "Send to Splunk only data contained in the body.",
          "default" : false
        },
        "headersOnly" : {
          "type" : "boolean",
          "title" : "Headers Only",
          "description" : "Send to Splunk only data contained in the headers.",
          "default" : false
        },
        "index" : {
          "type" : "string",
          "title" : "Index",
          "description" : "Splunk index to write to."
        },
        "source" : {
          "type" : "string",
          "title" : "Source",
          "description" : "The source named field of the data."
        },
        "sourceType" : {
          "type" : "string",
          "title" : "Source Type",
          "description" : "The source named field of the data."
        },
        "skipTlsVerify" : {
          "type" : "boolean",
          "title" : "Skip TLS Verification",
          "description" : "Skip TLS verification.",
          "default" : false
        },
        "https" : {
          "type" : "boolean",
          "title" : "Secure",
          "description" : "Use a secure HTTPS connection.",
          "default" : true
        },
        "time" : {
          "type" : "string",
          "title" : "Time",
          "description" : "Time this even occurred. By default, the time will be when this event hits the splunk server."
        }
      }
    }
  },
  "splunk-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "splunk-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+U3BsdW5rIGljb248L3RpdGxlPjxwYXRoIGQ9Ik0yMy4zNDggMTEuOTExbC0yLjI0MS0xLjA5MXYtLjY1TDI0IDExLjYyMXYuNTkzbC0yLjg5MyAxLjQzOHYtLjYzNnptLTUuMzk3IDEuODQxaC0uOTYxdi01LjMxaC45NjF2My4xMTZoLjEwMmwxLjI4LTEuNDgxLjcyMy4zMS0xLjIzIDEuMzE2IDEuNDUzIDEuODA5LS44ODguMzExLTEuNDQtMS45OTZ6bS0yLjU3Ny0uMDAydi0yLjA2OGEyLjY4NSAyLjY4NSAwIDAgMC0uMDI2LS40Mi43OTEuNzkxIDAgMCAwLS4wOS0uMjZjLS4xMTMtLjIwMi0uMzA4LS4zMDQtLjU5LS4zMDRhLjg4OC44ODggMCAwIDAtLjQ2MS4xMTMuNjczLjY3MyAwIDAgMC0uMjg2LjMzIDEuMDEyIDEuMDEyIDAgMCAwLS4wNy4yNjNjLS4wMTIuMTMtLjAxOS4yNjItLjAxNy4zOTV2MS45NWgtLjk2MXYtMy42MTRoLjk2MWwuMDAyLjQ4NWMuMTg1LS4yLjM3My0uMzQ4LjU2Ni0uNDM3LjE5Mi0uMDg5LjQxOC0uMTM0LjY3My0uMTM0LjI4NiAwIC41MjcuMDU4LjcyMS4xNzdhMS4wMTYgMS4wMTYgMCAwIDEgLjQ3NS42NjUgMS45NzIgMS45NzIgMCAwIDEgLjA1NC40NDhjLjAwMi4xLjAwNC4yMi4wMDQuMzU4djIuMDUzem0tNC4xMTUuMDAybC0uMDAyLS40ODVhMS43ODMgMS43ODMgMCAwIDEtLjU2NS40MzcgMS41OTcgMS41OTcgMCAwIDEtLjY3NC4xMzVjLS4yODUgMC0uNTI0LS4wNTctLjcyLS4xN2EuOTcyLjk3MiAwIDAgMS0uNDI1LS41MDQuNzUuNzUgMCAwIDEtLjA1NC0uMTY3IDEuOTE4IDEuOTE4IDAgMCAxLS4wMzMtLjE5OSAyLjAzMyAyLjAzMyAwIDAgMS0uMDE3LS4yNTggMTUuNTE2IDE1LjUxNiAwIDAgMS0uMDA1LS4zNTVWMTAuMTNoLjk1NnYyLjA3Yy0uMDAzLjE0MS4wMDYuMjgyLjAyNi40Mi4wMTUuMDkyLjA0NS4xOC4wOS4yNi4xMTMuMjA0LjMwOC4zMDYuNTkuMzA2LjM2IDAgLjYwNi0uMTUuNzQtLjQ0OS4wMzUtLjA4Mi4wNi0uMTY4LjA3NC0uMjU3LjAxNy0uMTM0LjAyNC0uMjY5LjAyMi0uNDAzdi0xLjk1aC45NTV2My42MjR6TTcuMTg0IDguNDRoLjk1NXY1LjMxaC0uOTU1ek01Ljc1OSAxMS45YzAtLjM5Ni0uMDgtLjcwOC0uMjQtLjkzN2EuNzU5Ljc1OSAwIDAgMC0uNjU3LS4zNDUuODA0LjgwNCAwIDAgMC0uNjkzLjM2NmMtLjE3MS4yNDUtLjI1Ni41NzQtLjI1My45OSAwIC40MDUuMDg0LjcyMy4yNS45NTdhLjc5Ni43OTYgMCAwIDAgLjY5LjM0Ny42ODUuNjg1IDAgMCAwIC40MzMtLjEzNS45ODUuOTg1IDAgMCAwIC4yNzctLjM0Yy4wNzEtLjE0LjEyMS0uMjkyLjE0Ny0uNDQ4LjAzLS4xNTEuMDQzLS4zLjA0Ni0uNDU1bTEuMDEtLjAzNmMuMDAzLjI2Ni0uMDQuNTMyLS4xMjkuNzg2LS4wODIuMjMtLjIwNC40NDEtLjM2NC42MjYtLjMxLjM2MS0uNzY0LjU2Ny0xLjI0LjU2M2ExLjY3IDEuNjcgMCAwIDEtLjMxMy0uMDI4IDEuMDQxIDEuMDQxIDAgMCAxLS4yNzUtLjA5OCAxLjMzIDEuMzMgMCAwIDEtLjI1Ny0uMTc4IDIuMzc5IDIuMzc5IDAgMCAxLS4yNjUtLjI2OHYyLjI5M2gtLjkyOXYtNS40MjVoLjkzbC4wMDQuNTI5Yy4xNjktLjIxMi4zNTMtLjM2OC41NS0uNDY4LjE5Ny0uMS40MjYtLjE1LjY4OC0uMTQ3YTEuNTA5IDEuNTA5IDAgMCAxIDEuMTU2LjUwN2MuMTQ4LjE2Ni4yNTkuMzYxLjMzLjU3MS4wOC4yMzYuMTIuNDg1LjExNS43MzdtLTQuMjEuODlhLjk0Ni45NDYgMCAwIDEtLjEwMi40NDEgMS4wMDcgMS4wMDcgMCAwIDEtLjI4Mi4zNDVjLS4xMy4xLS4yNzUuMTczLS40My4yMmExLjggMS44IDAgMCAxLS41NDYuMDggMS45ODUgMS45ODUgMCAwIDEtLjYzNy0uMDk3IDEuOTY0IDEuOTY0IDAgMCAxLS41NjMtLjMybC4zMTItLjUwNWMuMTUuMTI2LjI4NC4yMTcuNDA1LjI3NS4xMTUuMDU3LjI0LjA4Ny4zNjguMDg3YS41NTcuNTU3IDAgMCAwIC4zNzMtLjEyLjM5Ni4zOTYgMCAwIDAgLjE0LS4zMjIuNDc1LjQ3NSAwIDAgMC0uMTItLjMxOCAxLjMwNiAxLjMwNiAwIDAgMC0uMTg3LS4xNzMgOS4yMzEgOS4yMzEgMCAwIDAtLjMwOC0uMjMyIDYuNzg3IDYuNzg3IDAgMCAxLS4yODEtLjIxIDIuMTEgMi4xMSAwIDAgMS0uMjUyLS4yMzIgMS4wMzkgMS4wMzkgMCAwIDEtLjE4LS4yNzUuODI2LjgyNiAwIDAgMS0uMDY5LS4zNDcuODkzLjg5MyAwIDAgMSAuMDk0LS40MDkuOTM1LjkzNSAwIDAgMSAuMjU1LS4zMTQgMS4yMiAxLjIyIDAgMCAxIC4zOS0uMjAzYy4xNi0uMDUuMzI3LS4wNzQuNDk0LS4wNzIuMTg0IDAgLjM2OC4wMjYuNTQ1LjA3Ni4xNzQuMDUuMzM4LjEyMy40ODguMjE5bC0uMjgyLjQ1NGExLjA1IDEuMDUgMCAwIDAtLjYwOC0uMjAxLjUwNC41MDQgMCAwIDAtLjMyMy4xMDIuMzA3LjMwNyAwIDAgMC0uMTI2LjI1M2MwIC4wOTguMDQxLjE5My4xMTMuMjYuMDc0LjA3OC4yMDMuMTg2LjM4NS4zMjUuMTg1LjEzNi4zMzYuMjUzLjQ1Ny4zNTUuMTA0LjA4NS4yMDIuMTgyLjI4Ni4yODYuMDY1LjA4LjExNS4xNzMuMTQ1LjI3M2EuODA4LjgwOCAwIDAgMSAuMDQ2LjI5OVoiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SPLUNK",
        "camel.apache.org/kamelet.namespace" : "Monitoring"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Splunk Sink",
        "description" : "Send data to Splunk either by using \"submit\" or \"stream\" mode.\n\nThe payload MUST be in json format.",
        "required" : [ "serverHostname", "username", "password" ],
        "type" : "object",
        "properties" : {
          "serverHostname" : {
            "title" : "Splunk Server Address",
            "description" : "The address of your Splunk server.",
            "type" : "string",
            "example" : "my_server_splunk.com"
          },
          "serverPort" : {
            "title" : "Splunk Server Port",
            "description" : "The address of your Splunk server.",
            "type" : "integer",
            "default" : 8089
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to authenticate to Splunk Server.",
            "type" : "string"
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to authenticate to Splunk Server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "index" : {
            "title" : "Index",
            "description" : "Splunk index to write to.",
            "type" : "string"
          },
          "protocol" : {
            "title" : "Protocol",
            "description" : "Connection Protocol to Splunk server.",
            "type" : "string",
            "default" : "https",
            "enum" : [ "http", "https" ]
          },
          "source" : {
            "title" : "Source",
            "description" : "The source named field of the data.",
            "type" : "string"
          },
          "sourceType" : {
            "title" : "Source Type",
            "description" : "The source named field of the data.",
            "type" : "string"
          },
          "app" : {
            "title" : "Splunk App",
            "description" : "The app name in Splunk.",
            "type" : "string"
          },
          "connectionTimeout" : {
            "title" : "Connection Timeout",
            "description" : "Timeout in milliseconds when connecting to Splunk server",
            "type" : "integer",
            "default" : 5000
          },
          "mode" : {
            "title" : "Mode",
            "description" : "The mode to publish events to Splunk.",
            "type" : "string",
            "default" : "stream",
            "enum" : [ "submit", "stream" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:splunk", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "splunk:{{mode}}",
              "parameters" : {
                "host" : "{{serverHostname}}",
                "port" : "{{serverPort}}",
                "username" : "{{username}}",
                "password" : "{{password}}",
                "source" : "{{?source}}",
                "sourceType" : "{{?sourceType}}",
                "scheme" : "{{?protocol}}",
                "index" : "{{?index}}",
                "app" : "{{?app}}",
                "connectionTimeout" : "{{?connectionTimeout}}",
                "raw" : true
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Splunk Sink",
      "description" : "Send data to Splunk either by using \"submit\" or \"stream\" mode.\n\nThe payload MUST be in json format.",
      "required" : [ "serverHostname", "username", "password" ],
      "properties" : {
        "serverHostname" : {
          "type" : "string",
          "title" : "Splunk Server Address",
          "description" : "The address of your Splunk server."
        },
        "serverPort" : {
          "type" : "integer",
          "title" : "Splunk Server Port",
          "description" : "The address of your Splunk server.",
          "default" : 8089
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to authenticate to Splunk Server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to authenticate to Splunk Server.",
          "format" : "password"
        },
        "index" : {
          "type" : "string",
          "title" : "Index",
          "description" : "Splunk index to write to."
        },
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "Connection Protocol to Splunk server.",
          "enum" : [ "http", "https" ],
          "default" : "https"
        },
        "source" : {
          "type" : "string",
          "title" : "Source",
          "description" : "The source named field of the data."
        },
        "sourceType" : {
          "type" : "string",
          "title" : "Source Type",
          "description" : "The source named field of the data."
        },
        "app" : {
          "type" : "string",
          "title" : "Splunk App",
          "description" : "The app name in Splunk."
        },
        "connectionTimeout" : {
          "type" : "integer",
          "title" : "Connection Timeout",
          "description" : "Timeout in milliseconds when connecting to Splunk server",
          "default" : 5000
        },
        "mode" : {
          "type" : "string",
          "title" : "Mode",
          "description" : "The mode to publish events to Splunk.",
          "enum" : [ "submit", "stream" ],
          "default" : "stream"
        }
      }
    }
  },
  "splunk-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "splunk-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+U3BsdW5rIGljb248L3RpdGxlPjxwYXRoIGQ9Ik0yMy4zNDggMTEuOTExbC0yLjI0MS0xLjA5MXYtLjY1TDI0IDExLjYyMXYuNTkzbC0yLjg5MyAxLjQzOHYtLjYzNnptLTUuMzk3IDEuODQxaC0uOTYxdi01LjMxaC45NjF2My4xMTZoLjEwMmwxLjI4LTEuNDgxLjcyMy4zMS0xLjIzIDEuMzE2IDEuNDUzIDEuODA5LS44ODguMzExLTEuNDQtMS45OTZ6bS0yLjU3Ny0uMDAydi0yLjA2OGEyLjY4NSAyLjY4NSAwIDAgMC0uMDI2LS40Mi43OTEuNzkxIDAgMCAwLS4wOS0uMjZjLS4xMTMtLjIwMi0uMzA4LS4zMDQtLjU5LS4zMDRhLjg4OC44ODggMCAwIDAtLjQ2MS4xMTMuNjczLjY3MyAwIDAgMC0uMjg2LjMzIDEuMDEyIDEuMDEyIDAgMCAwLS4wNy4yNjNjLS4wMTIuMTMtLjAxOS4yNjItLjAxNy4zOTV2MS45NWgtLjk2MXYtMy42MTRoLjk2MWwuMDAyLjQ4NWMuMTg1LS4yLjM3My0uMzQ4LjU2Ni0uNDM3LjE5Mi0uMDg5LjQxOC0uMTM0LjY3My0uMTM0LjI4NiAwIC41MjcuMDU4LjcyMS4xNzdhMS4wMTYgMS4wMTYgMCAwIDEgLjQ3NS42NjUgMS45NzIgMS45NzIgMCAwIDEgLjA1NC40NDhjLjAwMi4xLjAwNC4yMi4wMDQuMzU4djIuMDUzem0tNC4xMTUuMDAybC0uMDAyLS40ODVhMS43ODMgMS43ODMgMCAwIDEtLjU2NS40MzcgMS41OTcgMS41OTcgMCAwIDEtLjY3NC4xMzVjLS4yODUgMC0uNTI0LS4wNTctLjcyLS4xN2EuOTcyLjk3MiAwIDAgMS0uNDI1LS41MDQuNzUuNzUgMCAwIDEtLjA1NC0uMTY3IDEuOTE4IDEuOTE4IDAgMCAxLS4wMzMtLjE5OSAyLjAzMyAyLjAzMyAwIDAgMS0uMDE3LS4yNTggMTUuNTE2IDE1LjUxNiAwIDAgMS0uMDA1LS4zNTVWMTAuMTNoLjk1NnYyLjA3Yy0uMDAzLjE0MS4wMDYuMjgyLjAyNi40Mi4wMTUuMDkyLjA0NS4xOC4wOS4yNi4xMTMuMjA0LjMwOC4zMDYuNTkuMzA2LjM2IDAgLjYwNi0uMTUuNzQtLjQ0OS4wMzUtLjA4Mi4wNi0uMTY4LjA3NC0uMjU3LjAxNy0uMTM0LjAyNC0uMjY5LjAyMi0uNDAzdi0xLjk1aC45NTV2My42MjR6TTcuMTg0IDguNDRoLjk1NXY1LjMxaC0uOTU1ek01Ljc1OSAxMS45YzAtLjM5Ni0uMDgtLjcwOC0uMjQtLjkzN2EuNzU5Ljc1OSAwIDAgMC0uNjU3LS4zNDUuODA0LjgwNCAwIDAgMC0uNjkzLjM2NmMtLjE3MS4yNDUtLjI1Ni41NzQtLjI1My45OSAwIC40MDUuMDg0LjcyMy4yNS45NTdhLjc5Ni43OTYgMCAwIDAgLjY5LjM0Ny42ODUuNjg1IDAgMCAwIC40MzMtLjEzNS45ODUuOTg1IDAgMCAwIC4yNzctLjM0Yy4wNzEtLjE0LjEyMS0uMjkyLjE0Ny0uNDQ4LjAzLS4xNTEuMDQzLS4zLjA0Ni0uNDU1bTEuMDEtLjAzNmMuMDAzLjI2Ni0uMDQuNTMyLS4xMjkuNzg2LS4wODIuMjMtLjIwNC40NDEtLjM2NC42MjYtLjMxLjM2MS0uNzY0LjU2Ny0xLjI0LjU2M2ExLjY3IDEuNjcgMCAwIDEtLjMxMy0uMDI4IDEuMDQxIDEuMDQxIDAgMCAxLS4yNzUtLjA5OCAxLjMzIDEuMzMgMCAwIDEtLjI1Ny0uMTc4IDIuMzc5IDIuMzc5IDAgMCAxLS4yNjUtLjI2OHYyLjI5M2gtLjkyOXYtNS40MjVoLjkzbC4wMDQuNTI5Yy4xNjktLjIxMi4zNTMtLjM2OC41NS0uNDY4LjE5Ny0uMS40MjYtLjE1LjY4OC0uMTQ3YTEuNTA5IDEuNTA5IDAgMCAxIDEuMTU2LjUwN2MuMTQ4LjE2Ni4yNTkuMzYxLjMzLjU3MS4wOC4yMzYuMTIuNDg1LjExNS43MzdtLTQuMjEuODlhLjk0Ni45NDYgMCAwIDEtLjEwMi40NDEgMS4wMDcgMS4wMDcgMCAwIDEtLjI4Mi4zNDVjLS4xMy4xLS4yNzUuMTczLS40My4yMmExLjggMS44IDAgMCAxLS41NDYuMDggMS45ODUgMS45ODUgMCAwIDEtLjYzNy0uMDk3IDEuOTY0IDEuOTY0IDAgMCAxLS41NjMtLjMybC4zMTItLjUwNWMuMTUuMTI2LjI4NC4yMTcuNDA1LjI3NS4xMTUuMDU3LjI0LjA4Ny4zNjguMDg3YS41NTcuNTU3IDAgMCAwIC4zNzMtLjEyLjM5Ni4zOTYgMCAwIDAgLjE0LS4zMjIuNDc1LjQ3NSAwIDAgMC0uMTItLjMxOCAxLjMwNiAxLjMwNiAwIDAgMC0uMTg3LS4xNzMgOS4yMzEgOS4yMzEgMCAwIDAtLjMwOC0uMjMyIDYuNzg3IDYuNzg3IDAgMCAxLS4yODEtLjIxIDIuMTEgMi4xMSAwIDAgMS0uMjUyLS4yMzIgMS4wMzkgMS4wMzkgMCAwIDEtLjE4LS4yNzUuODI2LjgyNiAwIDAgMS0uMDY5LS4zNDcuODkzLjg5MyAwIDAgMSAuMDk0LS40MDkuOTM1LjkzNSAwIDAgMSAuMjU1LS4zMTQgMS4yMiAxLjIyIDAgMCAxIC4zOS0uMjAzYy4xNi0uMDUuMzI3LS4wNzQuNDk0LS4wNzIuMTg0IDAgLjM2OC4wMjYuNTQ1LjA3Ni4xNzQuMDUuMzM4LjEyMy40ODguMjE5bC0uMjgyLjQ1NGExLjA1IDEuMDUgMCAwIDAtLjYwOC0uMjAxLjUwNC41MDQgMCAwIDAtLjMyMy4xMDIuMzA3LjMwNyAwIDAgMC0uMTI2LjI1M2MwIC4wOTguMDQxLjE5My4xMTMuMjYuMDc0LjA3OC4yMDMuMTg2LjM4NS4zMjUuMTg1LjEzNi4zMzYuMjUzLjQ1Ny4zNTUuMTA0LjA4NS4yMDIuMTgyLjI4Ni4yODYuMDY1LjA4LjExNS4xNzMuMTQ1LjI3M2EuODA4LjgwOCAwIDAgMSAuMDQ2LjI5OVoiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SPLUNK",
        "camel.apache.org/kamelet.namespace" : "Monitoring"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Splunk Source",
        "description" : "Retrieve data from Splunk and outputs in json format.\n\nFor the fields accepting time specifiers like `earliestTime`, it accepts a wide variety of formats, please check https://docs.splunk.com/Documentation/Splunk/9.0.0/Search/Specifytimemodifiersinyoursearch[Splunk documentation] for more information.",
        "required" : [ "serverHostname", "username", "password", "query", "initEarliestTime" ],
        "type" : "object",
        "properties" : {
          "serverHostname" : {
            "title" : "Splunk Server Address",
            "description" : "The address of your Splunk server.",
            "type" : "string",
            "example" : "my_server_splunk.com"
          },
          "serverPort" : {
            "title" : "Splunk Server Port",
            "description" : "The address of your Splunk server.",
            "type" : "integer",
            "default" : 8089
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to authenticate to Splunk Server.",
            "type" : "string"
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to authenticate to Splunk Server.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "index" : {
            "title" : "Index",
            "description" : "Splunk index to write to.",
            "type" : "string"
          },
          "protocol" : {
            "title" : "Protocol",
            "description" : "Connection Protocol to Splunk server.",
            "type" : "string",
            "default" : "https",
            "enum" : [ "http", "https" ]
          },
          "source" : {
            "title" : "Source",
            "description" : "The source named field of the data.",
            "type" : "string"
          },
          "sourceType" : {
            "title" : "Source Type",
            "description" : "The source named field of the data.",
            "type" : "string"
          },
          "app" : {
            "title" : "Splunk App",
            "description" : "The app name in Splunk.",
            "type" : "string"
          },
          "connectionTimeout" : {
            "title" : "Connection Timeout",
            "description" : "Timeout in milliseconds when connecting to Splunk server",
            "type" : "integer"
          },
          "count" : {
            "title" : "Count",
            "description" : "The maximum number of entities to return.",
            "type" : "integer"
          },
          "repeat" : {
            "title" : "Repeat",
            "description" : "The maximum number of fires.",
            "type" : "integer"
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll.",
            "type" : "integer"
          },
          "query" : {
            "title" : "Query",
            "description" : "The Splunk query to run.",
            "type" : "string"
          },
          "earliestTime" : {
            "title" : "Earliest Time",
            "description" : "Earliest time of the search time window.",
            "type" : "string",
            "example" : "05/17/22 08:35:46:456"
          },
          "initEarliestTime" : {
            "title" : "Init Earliest Time",
            "description" : "Initial start offset of the first search.",
            "type" : "string",
            "example" : "05/17/22 08:35:46:456"
          },
          "latestTime" : {
            "title" : "Latest Time",
            "description" : "Latest time of the search time window.",
            "type" : "string",
            "example" : "05/17/22 08:35:46:456"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:core", "camel:splunk", "camel:kamelet", "mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.5" ],
      "template" : {
        "from" : {
          "uri" : "splunk:normal",
          "parameters" : {
            "host" : "{{serverHostname}}",
            "port" : "{{serverPort}}",
            "username" : "{{username}}",
            "password" : "{{password}}",
            "index" : "{{?index}}",
            "scheme" : "{{?protocol}}",
            "source" : "{{?source}}",
            "sourceType" : "{{?sourceType}}",
            "app" : "{{?app}}",
            "connectionTimeout" : "{{?connectionTimeout}}",
            "count" : "{{?count}}",
            "repeatCount" : "{{?repeat}}",
            "delay" : "{{?delay}}",
            "search" : "{{?query}}",
            "earliestTime" : "{{?earliestTime}}",
            "initEarliestTime" : "{{initEarliestTime}}",
            "latestTime" : "{{?latestTime}}",
            "raw" : true
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson",
                "moduleClassNames" : "com.fasterxml.jackson.datatype.joda.JodaModule"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Splunk Source",
      "description" : "Retrieve data from Splunk and outputs in json format.\n\nFor the fields accepting time specifiers like `earliestTime`, it accepts a wide variety of formats, please check https://docs.splunk.com/Documentation/Splunk/9.0.0/Search/Specifytimemodifiersinyoursearch[Splunk documentation] for more information.",
      "required" : [ "serverHostname", "username", "password", "query", "initEarliestTime" ],
      "properties" : {
        "serverHostname" : {
          "type" : "string",
          "title" : "Splunk Server Address",
          "description" : "The address of your Splunk server."
        },
        "serverPort" : {
          "type" : "integer",
          "title" : "Splunk Server Port",
          "description" : "The address of your Splunk server.",
          "default" : 8089
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to authenticate to Splunk Server."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to authenticate to Splunk Server.",
          "format" : "password"
        },
        "index" : {
          "type" : "string",
          "title" : "Index",
          "description" : "Splunk index to write to."
        },
        "protocol" : {
          "type" : "string",
          "title" : "Protocol",
          "description" : "Connection Protocol to Splunk server.",
          "enum" : [ "http", "https" ],
          "default" : "https"
        },
        "source" : {
          "type" : "string",
          "title" : "Source",
          "description" : "The source named field of the data."
        },
        "sourceType" : {
          "type" : "string",
          "title" : "Source Type",
          "description" : "The source named field of the data."
        },
        "app" : {
          "type" : "string",
          "title" : "Splunk App",
          "description" : "The app name in Splunk."
        },
        "connectionTimeout" : {
          "type" : "integer",
          "title" : "Connection Timeout",
          "description" : "Timeout in milliseconds when connecting to Splunk server"
        },
        "count" : {
          "type" : "integer",
          "title" : "Count",
          "description" : "The maximum number of entities to return."
        },
        "repeat" : {
          "type" : "integer",
          "title" : "Repeat",
          "description" : "The maximum number of fires."
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll."
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The Splunk query to run."
        },
        "earliestTime" : {
          "type" : "string",
          "title" : "Earliest Time",
          "description" : "Earliest time of the search time window."
        },
        "initEarliestTime" : {
          "type" : "string",
          "title" : "Init Earliest Time",
          "description" : "Initial start offset of the first search."
        },
        "latestTime" : {
          "type" : "string",
          "title" : "Latest Time",
          "description" : "Latest time of the search time window."
        }
      }
    }
  },
  "spring-rabbitmq-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "spring-rabbitmq-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjcxcHgiIGhlaWdodD0iMjcxcHgiIHZpZXdCb3g9Ii03LjUgMCAyNzEgMjcxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj48cGF0aCBkPSJNMjQ1LjQ0IDEwOC4zMDhoLTg1LjA5YTcuNzM4IDcuNzM4IDAgMCAxLTcuNzM1LTcuNzM0di04OC42OEMxNTIuNjE1IDUuMzI3IDE0Ny4yOSAwIDE0MC43MjYgMGgtMzAuMzc1Yy02LjU2OCAwLTExLjg5IDUuMzI3LTExLjg5IDExLjg5NHY4OC4xNDNjMCA0LjU3My0zLjY5NyA4LjI5LTguMjcgOC4zMWwtMjcuODg1LjEzM2MtNC42MTIuMDI1LTguMzU5LTMuNzE3LTguMzUtOC4zMjVsLjE3My04OC4yNDFDNTQuMTQ0IDUuMzM3IDQ4LjgxNyAwIDQyLjI0IDBIMTEuODlDNS4zMjEgMCAwIDUuMzI3IDAgMTEuODk0VjI2MC4yMWMwIDUuODM0IDQuNzI2IDEwLjU2IDEwLjU1NSAxMC41NkgyNDUuNDRjNS44MzQgMCAxMC41Ni00LjcyNiAxMC41Ni0xMC41NlYxMTguODY4YzAtNS44MzQtNC43MjYtMTAuNTYtMTAuNTYtMTAuNTZ6bS0zOS45MDIgOTMuMjMzYzAgNy42NDUtNi4xOTggMTMuODQ0LTEzLjg0MyAxMy44NDRIMTY3LjY5Yy03LjY0NiAwLTEzLjg0NC02LjE5OS0xMy44NDQtMTMuODQ0di0yNC4wMDVjMC03LjY0NiA2LjE5OC0xMy44NDQgMTMuODQ0LTEzLjg0NGgyNC4wMDVjNy42NDUgMCAxMy44NDMgNi4xOTggMTMuODQzIDEzLjg0NHYyNC4wMDV6IiBmaWxsPSIjRjYwIi8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "RabbitMQ",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "RabbitMQ Sink",
        "description" : "Send data to a RabbitMQ Broker.",
        "required" : [ "host", "port", "exchangeName" ],
        "type" : "object",
        "properties" : {
          "host" : {
            "title" : "Server Address",
            "description" : "RabbitMQ broker address",
            "type" : "string",
            "example" : "localhost"
          },
          "port" : {
            "title" : "Server Port",
            "description" : "RabbitMQ broker port",
            "type" : "int",
            "example" : 5672
          },
          "routingKey" : {
            "title" : "Routing Key",
            "description" : "The routing key to use when binding a consumer queue to the exchange",
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the RabbitMQ server",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the RabbitMQ server",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:alm:descriptor:com.tectonic.ui:password", "urn:camel:group:credentials" ]
          },
          "exchangeName" : {
            "title" : "Exchange name",
            "description" : "The exchange name determines the exchange the queue will be bound to",
            "type" : "string"
          },
          "queues" : {
            "title" : "Queue name",
            "description" : "The queue to receive messages from",
            "type" : "string"
          }
        }
      },
      "dependencies" : [ "camel:spring-rabbitmq", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "connectionFactory",
          "type" : "#class:org.springframework.amqp.rabbit.connection.CachingConnectionFactory",
          "properties" : {
            "username" : "{{?username}}",
            "password" : "{{?password}}",
            "host" : "{{host}}",
            "port" : "{{port}}"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "spring-rabbitmq://{{exchangeName}}",
              "parameters" : {
                "connectionFactory" : "#bean:{{connectionFactory}}",
                "routingKey" : "{{?routingKey}}",
                "queues" : "{{?queues}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "RabbitMQ Sink",
      "description" : "Send data to a RabbitMQ Broker.",
      "required" : [ "host", "port", "exchangeName" ],
      "properties" : {
        "host" : {
          "type" : "string",
          "title" : "Server Address",
          "description" : "RabbitMQ broker address"
        },
        "port" : {
          "type" : "int",
          "title" : "Server Port",
          "description" : "RabbitMQ broker port"
        },
        "routingKey" : {
          "type" : "string",
          "title" : "Routing Key",
          "description" : "The routing key to use when binding a consumer queue to the exchange"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the RabbitMQ server"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the RabbitMQ server",
          "format" : "password"
        },
        "exchangeName" : {
          "type" : "string",
          "title" : "Exchange name",
          "description" : "The exchange name determines the exchange the queue will be bound to"
        },
        "queues" : {
          "type" : "string",
          "title" : "Queue name",
          "description" : "The queue to receive messages from"
        }
      }
    }
  },
  "spring-rabbitmq-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "spring-rabbitmq-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Preview",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjcxcHgiIGhlaWdodD0iMjcxcHgiIHZpZXdCb3g9Ii03LjUgMCAyNzEgMjcxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj48cGF0aCBkPSJNMjQ1LjQ0IDEwOC4zMDhoLTg1LjA5YTcuNzM4IDcuNzM4IDAgMCAxLTcuNzM1LTcuNzM0di04OC42OEMxNTIuNjE1IDUuMzI3IDE0Ny4yOSAwIDE0MC43MjYgMGgtMzAuMzc1Yy02LjU2OCAwLTExLjg5IDUuMzI3LTExLjg5IDExLjg5NHY4OC4xNDNjMCA0LjU3My0zLjY5NyA4LjI5LTguMjcgOC4zMWwtMjcuODg1LjEzM2MtNC42MTIuMDI1LTguMzU5LTMuNzE3LTguMzUtOC4zMjVsLjE3My04OC4yNDFDNTQuMTQ0IDUuMzM3IDQ4LjgxNyAwIDQyLjI0IDBIMTEuODlDNS4zMjEgMCAwIDUuMzI3IDAgMTEuODk0VjI2MC4yMWMwIDUuODM0IDQuNzI2IDEwLjU2IDEwLjU1NSAxMC41NkgyNDUuNDRjNS44MzQgMCAxMC41Ni00LjcyNiAxMC41Ni0xMC41NlYxMTguODY4YzAtNS44MzQtNC43MjYtMTAuNTYtMTAuNTYtMTAuNTZ6bS0zOS45MDIgOTMuMjMzYzAgNy42NDUtNi4xOTggMTMuODQ0LTEzLjg0MyAxMy44NDRIMTY3LjY5Yy03LjY0NiAwLTEzLjg0NC02LjE5OS0xMy44NDQtMTMuODQ0di0yNC4wMDVjMC03LjY0NiA2LjE5OC0xMy44NDQgMTMuODQ0LTEzLjg0NGgyNC4wMDVjNy42NDUgMCAxMy44NDMgNi4xOTggMTMuODQzIDEzLjg0NHYyNC4wMDV6IiBmaWxsPSIjRjYwIi8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "RabbitMQ",
        "camel.apache.org/kamelet.namespace" : "Messaging"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "RabbitMQ Source",
        "description" : "Receive data from a RabbitMQ Broker.",
        "required" : [ "host", "port", "exchangeName" ],
        "type" : "object",
        "properties" : {
          "host" : {
            "title" : "Server Address",
            "description" : "RabbitMQ broker address",
            "type" : "string",
            "example" : "localhost"
          },
          "port" : {
            "title" : "Server Port",
            "description" : "RabbitMQ broker port",
            "type" : "int",
            "example" : 5672
          },
          "routingKey" : {
            "title" : "Routing Key",
            "description" : "The routing key to use when binding a consumer queue to the exchange",
            "type" : "string"
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access the RabbitMQ server",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access the RabbitMQ server",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:alm:descriptor:com.tectonic.ui:password", "urn:camel:group:credentials" ]
          },
          "exchangeName" : {
            "title" : "Exchange name",
            "description" : "The exchange name determines the exchange the queue will be bound to",
            "type" : "string"
          },
          "queues" : {
            "title" : "Queue name",
            "description" : "The queue to receive messages from",
            "type" : "string"
          },
          "autoDeclare" : {
            "title" : "Auto Declare",
            "description" : "The routing key to use when binding a consumer queue to the exchange",
            "type" : "boolean",
            "default" : false
          }
        }
      },
      "dependencies" : [ "camel:spring-rabbitmq", "camel:kamelet" ],
      "template" : {
        "beans" : [ {
          "name" : "connectionFactory",
          "type" : "#class:org.springframework.amqp.rabbit.connection.CachingConnectionFactory",
          "properties" : {
            "username" : "{{?username}}",
            "password" : "{{?password}}",
            "host" : "{{host}}",
            "port" : "{{port}}"
          }
        } ],
        "from" : {
          "uri" : "spring-rabbitmq://{{exchangeName}}",
          "parameters" : {
            "connectionFactory" : "#bean:{{connectionFactory}}",
            "routingKey" : "{{?routingKey}}",
            "queues" : "{{?queues}}",
            "autoDeclare" : "{{autoDeclare}}"
          },
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "RabbitMQ Source",
      "description" : "Receive data from a RabbitMQ Broker.",
      "required" : [ "host", "port", "exchangeName" ],
      "properties" : {
        "host" : {
          "type" : "string",
          "title" : "Server Address",
          "description" : "RabbitMQ broker address"
        },
        "port" : {
          "type" : "int",
          "title" : "Server Port",
          "description" : "RabbitMQ broker port"
        },
        "routingKey" : {
          "type" : "string",
          "title" : "Routing Key",
          "description" : "The routing key to use when binding a consumer queue to the exchange"
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access the RabbitMQ server"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access the RabbitMQ server",
          "format" : "password"
        },
        "exchangeName" : {
          "type" : "string",
          "title" : "Exchange name",
          "description" : "The exchange name determines the exchange the queue will be bound to"
        },
        "queues" : {
          "type" : "string",
          "title" : "Queue name",
          "description" : "The queue to receive messages from"
        },
        "autoDeclare" : {
          "type" : "boolean",
          "title" : "Auto Declare",
          "description" : "The routing key to use when binding a consumer queue to the exchange",
          "default" : false
        }
      }
    }
  },
  "sqlserver-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "sqlserver-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gU3ZnIFZlY3RvciBJY29ucyA6IGh0dHA6Ly93d3cub25saW5ld2ViZm9udHMuY29tL2ljb24gLS0+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPG1ldGFkYXRhPiBTdmcgVmVjdG9yIEljb25zIDogaHR0cDovL3d3dy5vbmxpbmV3ZWJmb250cy5jb20vaWNvbiA8L21ldGFkYXRhPg0KPGc+PHBhdGggZD0iTTQyNi45LDkwYzEwLjMsMC0yMS43LTgwLTIxLjctODBTMjkxLjksNjAuMywyODUuMSw2NkMyNzguMiw3MS44LDQxNi42LDkwLDQyNi45LDkweiIvPjxwYXRoIGQ9Ik0zNTYuOSwxNDkuNWw3Mi00NC42Yy0xNy40LDIuMy0xNTguNy0yOS43LTE1OC43LTI5LjdjMi4zLDYuOSw2OC42LDc0LjMsNjguNiw3NC4zTDM1Ni45LDE0OS41TDM1Ni45LDE0OS41eiIvPjxwYXRoIGQ9Ik00NjEuMiwxNjYuN2wtMjAuNi00OS4ybC01OS41LDM2LjZMNDYxLjIsMTY2LjdMNDYxLjIsMTY2Ljd6Ii8+PHBhdGggZD0iTTMwNi44LDE0Mi4xbC01MC4zLTU4LjljMCwwLTQwLDI3LjQtMzQuMywzNC4zQzIyNy45LDEyNC40LDMwNi44LDE0Mi4xLDMwNi44LDE0Mi4xTDMwNi44LDE0Mi4xeiIvPjxwYXRoIGQ9Ik0yNDguNSwxNDkuNWMyMC42LDE0LjksNjguNiw3Ny44LDY4LjYsNzcuOGwtMTguMy02MC42TDI0OC41LDE0OS41TDI0OC41LDE0OS41eiIvPjxwYXRoIGQ9Ik0zMzguOCwyNDQuNGw4Mi4zLTYxLjhsLTEwOS44LTE2QzMxMS40LDE2Ni43LDMzOC44LDIzMC43LDMzOC44LDI0NC40TDMzOC44LDI0NC40eiIvPjxwYXRoIGQ9Ik00MzMuNywxODguNGwtNzYuOSw2Ni4zYzIxLjUsNC42LDkxLjcsMzAuOSw5MS43LDMwLjlDNDUzLjIsMjEwLjEsNDMzLjcsMTg4LjQsNDMzLjcsMTg4LjRMNDMzLjcsMTg4LjR6Ii8+PHBhdGggZD0iTTQ2MS4yLDI4Mi4yYzAsMCwxMTIuMS02Mi45LDEyMC4xLTY2LjNsLTEzMi0yNy40QzQ0OS4zLDE4OC40LDQ3OC4zLDIyOS42LDQ2MS4yLDI4Mi4yTDQ2MS4yLDI4Mi4yeiIvPjxwYXRoIGQ9Ik01NjEuOCwzMzdjNDMuNS03NC4zLDQzLjUtMTE2LjYsNDMuNS0xMTYuNmwtMTIwLjQsNzcuOEM1MDUuMiwzMDMuOSw1NjEuOCwzMzcsNTYxLjgsMzM3TDU2MS44LDMzN3oiLz48cGF0aCBkPSJNNTg5LjMsMzM3YzU3LjItMjkuNywxODAuNy02NCwxODAuNy02NGMtMjYuMy0xOC4zLTE0OS44LTUyLjYtMTQ5LjgtNTIuNkM2MjEuMywyMzcuNiw1ODkuMywzMzcsNTg5LjMsMzM3TDU4OS4zLDMzN3oiLz48cGF0aCBkPSJNNTg5LjMsMzUzLjFjMzcuNCwyMS43LDc2LjYsODQuNiw3Ni42LDg0LjZjNzItNzAuOSwxMTUuNS0xNTIuMSwxMTUuNS0xNTIuMUM3NjQuMiwyODYuNyw1ODkuMywzNTMuMSw1ODkuMywzNTMuMUw1ODkuMywzNTMuMXoiLz48cGF0aCBkPSJNODAwLjgsMjg1LjZDNzgzLjcsMzMxLjMsNjk2LjgsNDMyLDY5Ni44LDQzMmM0NC42LTE4LjMsMjM2LjctMzQuMywyMzYuNy0zNC4zQzkxNi4zLDM2Mi4yLDgwMC44LDI4NS42LDgwMC44LDI4NS42TDgwMC44LDI4NS42eiIvPjxwYXRoIGQ9Ik00MjguOSwzMTEuOWMtMjQuMy0xNi03OS40LTI5LjctNzkuNC0yOS43YzYuMiwzLjQsNy4zLDk4LjMsNy4zLDk4LjNDMzg0LjEsMzU1LjMsNDI4LjksMzExLjksNDI4LjksMzExLjlMNDI4LjksMzExLjl6Ii8+PHBhdGggZD0iTTQzOS41LDMzMS4zYy04LDYuOS04Mi42LDY4LjYtODIuNiw2OC42YzEyLjMsOCw0MC4zLDMyLDQwLjMsMzJDNDI2LjksMzk0LjIsNDM5LjUsMzMxLjMsNDM5LjUsMzMxLjNMNDM5LjUsMzMxLjN6Ii8+PHBhdGggZD0iTTQ2MS4yLDMxOS45YzEuMSwxNy4yLTI2LjMsOTIuNi0yNi4zLDkyLjZsOTguMy01My43TDQ2MS4yLDMxOS45TDQ2MS4yLDMxOS45eiIvPjxwYXRoIGQ9Ik00MDguNiw0NDkuMWMxMS40LDkuMSwyMC4zLDY3LjUsMjAuMyw2Ny41YzEwLTE0LjksMTA0LjMtMTM0LjksMTA0LjMtMTM0LjlDNDU4LjksNDI1LjEsNDA4LjYsNDQ5LjEsNDA4LjYsNDQ5LjF6Ii8+PHBhdGggZD0iTTU2MS44LDM4MC41Yy01LjcsMTMuNy0xMDYuMywxMjUuOC0xMDYuMywxMjUuOGMyNi41LTEwLjMsMTkxLTYxLjgsMTkxLTYxLjhDNjI0LjcsNDExLjQsNTYxLjgsMzgwLjUsNTYxLjgsMzgwLjVMNTYxLjgsMzgwLjV6Ii8+PHBhdGggZD0iTTM4OS4yLDQ3NC4zYy03LjksMTMuNy0xNDYuNSwxMjguMS0xNDYuNSwxMjguMWMyMS43LTE0LjksMTY1LjgtODAsMTY1LjgtODBDNDEwLjksNDg4LDM4OS4yLDQ3NC4zLDM4OS4yLDQ3NC4zTDM4OS4yLDQ3NC4zeiIvPjxwYXRoIGQ9Ik0zMTEuNCw0OTUuOGMyNy40LTE3LjMsNjAuNi00Ni43LDYwLjYtNDYuN2MtOS4xLTExLjQtMjguNi0xNy4yLTI4LjYtMTcuMkMzNDIuMyw0NDIuMywzMTEuNCw0OTUuOCwzMTEuNCw0OTUuOHoiLz48cGF0aCBkPSJNMzY2LjMsNDgyLjNjLTQ5LjQsMjEuMS05MS41LDYwLTkxLjUsNjBsLTQ1LjcsNjBMMzY2LjMsNDgyLjNMMzY2LjMsNDgyLjN6Ii8+PHBhdGggZD0iTTU2NC4xLDQ5NS44bC04OC4xLDI5LjljMCwwLDY4LjYsNDEuMiw5My44LDUxLjVDNTY5LjgsNTc3LjIsNTcyLjEsNTI2LjUsNTY0LjEsNDk1LjhMNTY0LjEsNDk1Ljh6Ii8+PHBhdGggZD0iTTU2MS44LDU5MC45TDQ2MCw1MzAuM2MwLDAsMy43LDg2LjktMTAuNywxMjEuMkM0NDkuMyw2NTEuNSw1NDcsNjA1LjgsNTYxLjgsNTkwLjlMNTYxLjgsNTkwLjl6Ii8+PHBhdGggZD0iTTQ0OS4zLDY3MWMwLDAsNTUuMyw0Mi4zLDEwNi44LDU0LjljMCwwLDIxLjItNTcuMiwxNC0xMTguOUM1NzAuMSw2MDYuOSw0NzQsNjY0LjEsNDQ5LjMsNjcxTDQ0OS4zLDY3MXoiLz48cGF0aCBkPSJNNDM0LjksNTM4LjNsLTc4LDMyYzI0LjcsNTguMiw2NC4zLDgxLjIsNjQuMyw4MS4yQzQ0Ni4zLDU5Mi4xLDQzNC45LDUzOC4zLDQzNC45LDUzOC4zTDQzNC45LDUzOC4zeiIvPjxwYXRoIGQ9Ik0zNDEuNyw1NzcuMmMyLjksMTQuOS03NiwxNDguNy03NiwxNDguN2MxMDAuNi0zMC45LDE0My4xLTU5LjUsMTQzLjEtNTkuNUMzNTAuNiw2MTMuOCwzNDEuNyw1NzcuMiwzNDEuNyw1NzcuMkwzNDEuNyw1NzcuMnoiLz48cGF0aCBkPSJNMzA0LjUsNTkwLjljLTEzLjcsNC42LTgzLjUsNDEuMi04My41LDQxLjJjMi4zLDY3LjUsMTcuMiw4NS44LDE3LjIsODUuOEMyNzEuNCw2ODQuNywzMDQuNSw1OTAuOSwzMDQuNSw1OTAuOUwzMDQuNSw1OTAuOXoiLz48cGF0aCBkPSJNMTkyLjUsNjQ0LjdDODAuNCw2OTguNCw2Ni43LDc3OS42LDY2LjcsNzc5LjZjMjAuNiwwLDE0OC43LTQwLDE0OC43LTQwQzE5MC4yLDY4MS4yLDE5Mi41LDY0NC43LDE5Mi41LDY0NC43TDE5Mi41LDY0NC43eiIvPjxwYXRoIGQ9Ik02Ni43LDc4OS45YzAsMC01LjcsNTEuNSw1Ny4yLDk0LjljMCwwLDgwLTEwNC4xLDg1LjgtMTI0LjZDMjA5LjYsNzYwLjIsMTA0LjQsNzg5LjksNjYuNyw3ODkuOUw2Ni43LDc4OS45eiIvPjxwYXRoIGQ9Ik0yMjkuMSw3NjdMMTMzLDg5MC41bDUuMSw2LjlsMTc5LTY1LjJDMjcxLjQsODA3LDIyOS4xLDc2NywyMjkuMSw3NjdMMjI5LjEsNzY3eiIvPjxwYXRoIGQ9Ik0xNDksODk5LjdjNDIuMywzOC45LDExNi42LDQ5LjIsMTE2LjYsNDkuMmw2NS4yLTk4LjNMMTQ5LDg5OS43TDE0OSw4OTkuN3oiLz48cGF0aCBkPSJNMzU2LjksODUwLjVjMC45LDYuOS04Mi4xLDEwNy4zLTgyLjEsMTA3LjNjNTIuNi0yLjUsMjM1LjctNzMsMjM1LjctNzNDNDMyLjgsODgzLjYsMzU2LjksODUwLjUsMzU2LjksODUwLjV6Ii8+PHBhdGggZD0iTTQ3Ni4xLDk5MGMxMS40LTEzLjcsMzkuMi05Mi42LDM5LjItOTIuNmMtOTIuMywzOC45LTIwMy45LDYwLjQtMjAzLjksNjAuNEMzNDguNyw5NzkuNCw0NzYuMSw5OTAsNDc2LjEsOTkwTDQ3Ni4xLDk5MHoiLz48cGF0aCBkPSJNMzQ5LjYsODIyLjVjMzcuOC01Ni44LDUzLjUtMTI5LjgsNTMuNS0xMjkuOGMtMTQuNiwxMC4zLTE0OC45LDU0LjktMTQ4LjksNTQuOUMyOTQuMiw4MDAuMiwzNDkuNiw4MjIuNSwzNDkuNiw4MjIuNUwzNDkuNiw4MjIuNXoiLz48cGF0aCBkPSJNMzc3LjcsODA4LjJjMjguNiwxLjEsMTczLjItNjkuOCwxNzMuMi02OS44Yy0zMS40LTYuOS0xMTYuMS01MS41LTExNi4xLTUxLjVMMzc3LjcsODA4LjJMMzc3LjcsODA4LjJ6Ii8+PHBhdGggZD0iTTM2Ni4zLDgzMi4yYzIwLjYsMjQsMTQ5LDQ2LjksMTQ5LDQ2LjljMjEuNC0yNi45LDM1LjctMTMxLjUsMzUuNy0xMzEuNUM1NDQuNyw3NjAuMiwzNjYuMyw4MzIuMiwzNjYuMyw4MzIuMkwzNjYuMyw4MzIuMnoiLz48L2c+DQo8L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Microsoft SQL Server Sink",
        "description" : "Send data to a Microsoft SQL Server Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.microsoft.sqlserver:mssql-jdbc:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 1433
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured SQL Server Database.",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured SQL Server Database.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the SQL Server Database.",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the SQL Server Database.",
            "type" : "string"
          },
          "encrypt" : {
            "title" : "Encrypt Connection",
            "description" : "Encrypt the connection to SQL Server.",
            "type" : "boolean",
            "default" : false
          },
          "trustServerCertificate" : {
            "title" : "Trust Server Certificate",
            "description" : "Trust Server Certificate",
            "type" : "boolean",
            "default" : true
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:sqlserver://{{serverName}}:{{serverPort}};databaseName={{databaseName}};encrypt={{encrypt}};trustServerCertificate={{trustServerCertificate}};",
            "driverClassName" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
          }
        } ],
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "unmarshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : {
              "uri" : "sql:{{query}}",
              "parameters" : {
                "dataSource" : "#bean:{{dsBean}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Microsoft SQL Server Sink",
      "description" : "Send data to a Microsoft SQL Server Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.microsoft.sqlserver:mssql-jdbc:<version>\"\n\nThis Kamelet expects a JSON-formatted body. Use key:value pairs to map the JSON fields and parameters. For example, here is a query:\n\n'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'\n\nHere is example input for the example query:\n\n'{ \"username\":\"oscerd\", \"city\":\"Rome\"}'",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 1433
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured SQL Server Database."
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured SQL Server Database.",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the SQL Server Database."
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the SQL Server Database."
        },
        "encrypt" : {
          "type" : "boolean",
          "title" : "Encrypt Connection",
          "description" : "Encrypt the connection to SQL Server.",
          "default" : false
        },
        "trustServerCertificate" : {
          "type" : "boolean",
          "title" : "Trust Server Certificate",
          "description" : "Trust Server Certificate",
          "default" : true
        }
      }
    }
  },
  "sqlserver-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "sqlserver-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gU3ZnIFZlY3RvciBJY29ucyA6IGh0dHA6Ly93d3cub25saW5ld2ViZm9udHMuY29tL2ljb24gLS0+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPG1ldGFkYXRhPiBTdmcgVmVjdG9yIEljb25zIDogaHR0cDovL3d3dy5vbmxpbmV3ZWJmb250cy5jb20vaWNvbiA8L21ldGFkYXRhPg0KPGc+PHBhdGggZD0iTTQyNi45LDkwYzEwLjMsMC0yMS43LTgwLTIxLjctODBTMjkxLjksNjAuMywyODUuMSw2NkMyNzguMiw3MS44LDQxNi42LDkwLDQyNi45LDkweiIvPjxwYXRoIGQ9Ik0zNTYuOSwxNDkuNWw3Mi00NC42Yy0xNy40LDIuMy0xNTguNy0yOS43LTE1OC43LTI5LjdjMi4zLDYuOSw2OC42LDc0LjMsNjguNiw3NC4zTDM1Ni45LDE0OS41TDM1Ni45LDE0OS41eiIvPjxwYXRoIGQ9Ik00NjEuMiwxNjYuN2wtMjAuNi00OS4ybC01OS41LDM2LjZMNDYxLjIsMTY2LjdMNDYxLjIsMTY2Ljd6Ii8+PHBhdGggZD0iTTMwNi44LDE0Mi4xbC01MC4zLTU4LjljMCwwLTQwLDI3LjQtMzQuMywzNC4zQzIyNy45LDEyNC40LDMwNi44LDE0Mi4xLDMwNi44LDE0Mi4xTDMwNi44LDE0Mi4xeiIvPjxwYXRoIGQ9Ik0yNDguNSwxNDkuNWMyMC42LDE0LjksNjguNiw3Ny44LDY4LjYsNzcuOGwtMTguMy02MC42TDI0OC41LDE0OS41TDI0OC41LDE0OS41eiIvPjxwYXRoIGQ9Ik0zMzguOCwyNDQuNGw4Mi4zLTYxLjhsLTEwOS44LTE2QzMxMS40LDE2Ni43LDMzOC44LDIzMC43LDMzOC44LDI0NC40TDMzOC44LDI0NC40eiIvPjxwYXRoIGQ9Ik00MzMuNywxODguNGwtNzYuOSw2Ni4zYzIxLjUsNC42LDkxLjcsMzAuOSw5MS43LDMwLjlDNDUzLjIsMjEwLjEsNDMzLjcsMTg4LjQsNDMzLjcsMTg4LjRMNDMzLjcsMTg4LjR6Ii8+PHBhdGggZD0iTTQ2MS4yLDI4Mi4yYzAsMCwxMTIuMS02Mi45LDEyMC4xLTY2LjNsLTEzMi0yNy40QzQ0OS4zLDE4OC40LDQ3OC4zLDIyOS42LDQ2MS4yLDI4Mi4yTDQ2MS4yLDI4Mi4yeiIvPjxwYXRoIGQ9Ik01NjEuOCwzMzdjNDMuNS03NC4zLDQzLjUtMTE2LjYsNDMuNS0xMTYuNmwtMTIwLjQsNzcuOEM1MDUuMiwzMDMuOSw1NjEuOCwzMzcsNTYxLjgsMzM3TDU2MS44LDMzN3oiLz48cGF0aCBkPSJNNTg5LjMsMzM3YzU3LjItMjkuNywxODAuNy02NCwxODAuNy02NGMtMjYuMy0xOC4zLTE0OS44LTUyLjYtMTQ5LjgtNTIuNkM2MjEuMywyMzcuNiw1ODkuMywzMzcsNTg5LjMsMzM3TDU4OS4zLDMzN3oiLz48cGF0aCBkPSJNNTg5LjMsMzUzLjFjMzcuNCwyMS43LDc2LjYsODQuNiw3Ni42LDg0LjZjNzItNzAuOSwxMTUuNS0xNTIuMSwxMTUuNS0xNTIuMUM3NjQuMiwyODYuNyw1ODkuMywzNTMuMSw1ODkuMywzNTMuMUw1ODkuMywzNTMuMXoiLz48cGF0aCBkPSJNODAwLjgsMjg1LjZDNzgzLjcsMzMxLjMsNjk2LjgsNDMyLDY5Ni44LDQzMmM0NC42LTE4LjMsMjM2LjctMzQuMywyMzYuNy0zNC4zQzkxNi4zLDM2Mi4yLDgwMC44LDI4NS42LDgwMC44LDI4NS42TDgwMC44LDI4NS42eiIvPjxwYXRoIGQ9Ik00MjguOSwzMTEuOWMtMjQuMy0xNi03OS40LTI5LjctNzkuNC0yOS43YzYuMiwzLjQsNy4zLDk4LjMsNy4zLDk4LjNDMzg0LjEsMzU1LjMsNDI4LjksMzExLjksNDI4LjksMzExLjlMNDI4LjksMzExLjl6Ii8+PHBhdGggZD0iTTQzOS41LDMzMS4zYy04LDYuOS04Mi42LDY4LjYtODIuNiw2OC42YzEyLjMsOCw0MC4zLDMyLDQwLjMsMzJDNDI2LjksMzk0LjIsNDM5LjUsMzMxLjMsNDM5LjUsMzMxLjNMNDM5LjUsMzMxLjN6Ii8+PHBhdGggZD0iTTQ2MS4yLDMxOS45YzEuMSwxNy4yLTI2LjMsOTIuNi0yNi4zLDkyLjZsOTguMy01My43TDQ2MS4yLDMxOS45TDQ2MS4yLDMxOS45eiIvPjxwYXRoIGQ9Ik00MDguNiw0NDkuMWMxMS40LDkuMSwyMC4zLDY3LjUsMjAuMyw2Ny41YzEwLTE0LjksMTA0LjMtMTM0LjksMTA0LjMtMTM0LjlDNDU4LjksNDI1LjEsNDA4LjYsNDQ5LjEsNDA4LjYsNDQ5LjF6Ii8+PHBhdGggZD0iTTU2MS44LDM4MC41Yy01LjcsMTMuNy0xMDYuMywxMjUuOC0xMDYuMywxMjUuOGMyNi41LTEwLjMsMTkxLTYxLjgsMTkxLTYxLjhDNjI0LjcsNDExLjQsNTYxLjgsMzgwLjUsNTYxLjgsMzgwLjVMNTYxLjgsMzgwLjV6Ii8+PHBhdGggZD0iTTM4OS4yLDQ3NC4zYy03LjksMTMuNy0xNDYuNSwxMjguMS0xNDYuNSwxMjguMWMyMS43LTE0LjksMTY1LjgtODAsMTY1LjgtODBDNDEwLjksNDg4LDM4OS4yLDQ3NC4zLDM4OS4yLDQ3NC4zTDM4OS4yLDQ3NC4zeiIvPjxwYXRoIGQ9Ik0zMTEuNCw0OTUuOGMyNy40LTE3LjMsNjAuNi00Ni43LDYwLjYtNDYuN2MtOS4xLTExLjQtMjguNi0xNy4yLTI4LjYtMTcuMkMzNDIuMyw0NDIuMywzMTEuNCw0OTUuOCwzMTEuNCw0OTUuOHoiLz48cGF0aCBkPSJNMzY2LjMsNDgyLjNjLTQ5LjQsMjEuMS05MS41LDYwLTkxLjUsNjBsLTQ1LjcsNjBMMzY2LjMsNDgyLjNMMzY2LjMsNDgyLjN6Ii8+PHBhdGggZD0iTTU2NC4xLDQ5NS44bC04OC4xLDI5LjljMCwwLDY4LjYsNDEuMiw5My44LDUxLjVDNTY5LjgsNTc3LjIsNTcyLjEsNTI2LjUsNTY0LjEsNDk1LjhMNTY0LjEsNDk1Ljh6Ii8+PHBhdGggZD0iTTU2MS44LDU5MC45TDQ2MCw1MzAuM2MwLDAsMy43LDg2LjktMTAuNywxMjEuMkM0NDkuMyw2NTEuNSw1NDcsNjA1LjgsNTYxLjgsNTkwLjlMNTYxLjgsNTkwLjl6Ii8+PHBhdGggZD0iTTQ0OS4zLDY3MWMwLDAsNTUuMyw0Mi4zLDEwNi44LDU0LjljMCwwLDIxLjItNTcuMiwxNC0xMTguOUM1NzAuMSw2MDYuOSw0NzQsNjY0LjEsNDQ5LjMsNjcxTDQ0OS4zLDY3MXoiLz48cGF0aCBkPSJNNDM0LjksNTM4LjNsLTc4LDMyYzI0LjcsNTguMiw2NC4zLDgxLjIsNjQuMyw4MS4yQzQ0Ni4zLDU5Mi4xLDQzNC45LDUzOC4zLDQzNC45LDUzOC4zTDQzNC45LDUzOC4zeiIvPjxwYXRoIGQ9Ik0zNDEuNyw1NzcuMmMyLjksMTQuOS03NiwxNDguNy03NiwxNDguN2MxMDAuNi0zMC45LDE0My4xLTU5LjUsMTQzLjEtNTkuNUMzNTAuNiw2MTMuOCwzNDEuNyw1NzcuMiwzNDEuNyw1NzcuMkwzNDEuNyw1NzcuMnoiLz48cGF0aCBkPSJNMzA0LjUsNTkwLjljLTEzLjcsNC42LTgzLjUsNDEuMi04My41LDQxLjJjMi4zLDY3LjUsMTcuMiw4NS44LDE3LjIsODUuOEMyNzEuNCw2ODQuNywzMDQuNSw1OTAuOSwzMDQuNSw1OTAuOUwzMDQuNSw1OTAuOXoiLz48cGF0aCBkPSJNMTkyLjUsNjQ0LjdDODAuNCw2OTguNCw2Ni43LDc3OS42LDY2LjcsNzc5LjZjMjAuNiwwLDE0OC43LTQwLDE0OC43LTQwQzE5MC4yLDY4MS4yLDE5Mi41LDY0NC43LDE5Mi41LDY0NC43TDE5Mi41LDY0NC43eiIvPjxwYXRoIGQ9Ik02Ni43LDc4OS45YzAsMC01LjcsNTEuNSw1Ny4yLDk0LjljMCwwLDgwLTEwNC4xLDg1LjgtMTI0LjZDMjA5LjYsNzYwLjIsMTA0LjQsNzg5LjksNjYuNyw3ODkuOUw2Ni43LDc4OS45eiIvPjxwYXRoIGQ9Ik0yMjkuMSw3NjdMMTMzLDg5MC41bDUuMSw2LjlsMTc5LTY1LjJDMjcxLjQsODA3LDIyOS4xLDc2NywyMjkuMSw3NjdMMjI5LjEsNzY3eiIvPjxwYXRoIGQ9Ik0xNDksODk5LjdjNDIuMywzOC45LDExNi42LDQ5LjIsMTE2LjYsNDkuMmw2NS4yLTk4LjNMMTQ5LDg5OS43TDE0OSw4OTkuN3oiLz48cGF0aCBkPSJNMzU2LjksODUwLjVjMC45LDYuOS04Mi4xLDEwNy4zLTgyLjEsMTA3LjNjNTIuNi0yLjUsMjM1LjctNzMsMjM1LjctNzNDNDMyLjgsODgzLjYsMzU2LjksODUwLjUsMzU2LjksODUwLjV6Ii8+PHBhdGggZD0iTTQ3Ni4xLDk5MGMxMS40LTEzLjcsMzkuMi05Mi42LDM5LjItOTIuNmMtOTIuMywzOC45LTIwMy45LDYwLjQtMjAzLjksNjAuNEMzNDguNyw5NzkuNCw0NzYuMSw5OTAsNDc2LjEsOTkwTDQ3Ni4xLDk5MHoiLz48cGF0aCBkPSJNMzQ5LjYsODIyLjVjMzcuOC01Ni44LDUzLjUtMTI5LjgsNTMuNS0xMjkuOGMtMTQuNiwxMC4zLTE0OC45LDU0LjktMTQ4LjksNTQuOUMyOTQuMiw4MDAuMiwzNDkuNiw4MjIuNSwzNDkuNiw4MjIuNUwzNDkuNiw4MjIuNXoiLz48cGF0aCBkPSJNMzc3LjcsODA4LjJjMjguNiwxLjEsMTczLjItNjkuOCwxNzMuMi02OS44Yy0zMS40LTYuOS0xMTYuMS01MS41LTExNi4xLTUxLjVMMzc3LjcsODA4LjJMMzc3LjcsODA4LjJ6Ii8+PHBhdGggZD0iTTM2Ni4zLDgzMi4yYzIwLjYsMjQsMTQ5LDQ2LjksMTQ5LDQ2LjljMjEuNC0yNi45LDM1LjctMTMxLjUsMzUuNy0xMzEuNUM1NDQuNyw3NjAuMiwzNjYuMyw4MzIuMiwzNjYuMyw4MzIuMkwzNjYuMyw4MzIuMnoiLz48L2c+DQo8L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SQL",
        "camel.apache.org/kamelet.namespace" : "Database"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Microsoft SQL Server Source",
        "description" : "Query data from a Microsoft SQL Server Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.microsoft.sqlserver:mssql-jdbc:<version>\"",
        "required" : [ "serverName", "username", "password", "query", "databaseName" ],
        "type" : "object",
        "properties" : {
          "serverName" : {
            "title" : "Server Name",
            "description" : "The server name for the data source.",
            "type" : "string",
            "example" : "localhost"
          },
          "serverPort" : {
            "title" : "Server Port",
            "description" : "The server port for the data source.",
            "type" : "string",
            "default" : 1433
          },
          "username" : {
            "title" : "Username",
            "description" : "The username to access a secured SQL Server Database",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The password to access a secured SQL Server Database",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "query" : {
            "title" : "Query",
            "description" : "The query to execute against the SQL Server Database",
            "type" : "string",
            "example" : "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
          },
          "databaseName" : {
            "title" : "Database Name",
            "description" : "The name of the Database.",
            "type" : "string"
          },
          "consumedQuery" : {
            "title" : "Consumed Query",
            "description" : "A query to run on a tuple consumed",
            "type" : "string",
            "example" : "DELETE FROM accounts where user_id = :#user_id"
          },
          "encrypt" : {
            "title" : "Encrypt Connection",
            "description" : "Encrypt the connection to SQL Server.",
            "type" : "boolean",
            "default" : false
          },
          "trustServerCertificate" : {
            "title" : "Trust Server Certificate",
            "description" : "Trust Server Certificate",
            "type" : "boolean",
            "default" : true
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:org.apache.commons:commons-dbcp2:2.11.0" ],
      "template" : {
        "beans" : [ {
          "name" : "dsBean",
          "type" : "#class:org.apache.commons.dbcp2.BasicDataSource",
          "properties" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "url" : "jdbc:sqlserver://{{serverName}}:{{serverPort}};databaseName={{databaseName}};encrypt={{encrypt}};trustServerCertificate={{trustServerCertificate}};",
            "driverClassName" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
          }
        } ],
        "from" : {
          "uri" : "sql:{{query}}",
          "parameters" : {
            "dataSource" : "#bean:{{dsBean}}",
            "onConsume" : "{{?consumedQuery}}",
            "delay" : "{{delay}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : {
                "library" : "Jackson"
              }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Microsoft SQL Server Source",
      "description" : "Query data from a Microsoft SQL Server Database.\n\nIn your Pipe file, you must explicitly declare the SQL Server driver dependency in spec->integration->dependencies\n\n- \"mvn:com.microsoft.sqlserver:mssql-jdbc:<version>\"",
      "required" : [ "serverName", "username", "password", "query", "databaseName" ],
      "properties" : {
        "serverName" : {
          "type" : "string",
          "title" : "Server Name",
          "description" : "The server name for the data source."
        },
        "serverPort" : {
          "type" : "string",
          "title" : "Server Port",
          "description" : "The server port for the data source.",
          "default" : 1433
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The username to access a secured SQL Server Database"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The password to access a secured SQL Server Database",
          "format" : "password"
        },
        "query" : {
          "type" : "string",
          "title" : "Query",
          "description" : "The query to execute against the SQL Server Database"
        },
        "databaseName" : {
          "type" : "string",
          "title" : "Database Name",
          "description" : "The name of the Database."
        },
        "consumedQuery" : {
          "type" : "string",
          "title" : "Consumed Query",
          "description" : "A query to run on a tuple consumed"
        },
        "encrypt" : {
          "type" : "boolean",
          "title" : "Encrypt Connection",
          "description" : "Encrypt the connection to SQL Server.",
          "default" : false
        },
        "trustServerCertificate" : {
          "type" : "boolean",
          "title" : "Trust Server Certificate",
          "description" : "Trust Server Certificate",
          "default" : true
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        }
      }
    }
  },
  "ssh-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ssh-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQgNjQiPgogICAgPHBhdGggZD0iTSA3IDggQyA1LjM0NiA4IDQgOS4zNDYgNCAxMSBMIDQgNTMgQyA0IDU0LjY1NCA1LjM0NiA1NiA3IDU2IEwgNTcgNTYgQyA1OC42NTQgNTYgNjAgNTQuNjU0IDYwIDUzIEwgNjAgMTEgQyA2MCA5LjM0NiA1OC42NTQgOCA1NyA4IEwgNyA4IHogTSA3IDEwIEwgNTcgMTAgQyA1Ny41NTIgMTAgNTggMTAuNDQ4IDU4IDExIEwgNTggNTMgQyA1OCA1My41NTIgNTcuNTUyIDU0IDU3IDU0IEwgNyA1NCBDIDYuNDQ4IDU0IDYgNTMuNTUyIDYgNTMgTCA2IDIwIEwgNDcgMjAgQyA0Ny41NTMgMjAgNDggMTkuNTUzIDQ4IDE5IEMgNDggMTguNDQ3IDQ3LjU1MyAxOCA0NyAxOCBMIDYgMTggTCA2IDExIEMgNiAxMC40NDggNi40NDggMTAgNyAxMCB6IE0gMTAgMTIgQyA5LjQ0NyAxMiA5IDEyLjQ0NyA5IDEzIEwgOSAxNSBDIDkgMTUuNTUzIDkuNDQ3IDE2IDEwIDE2IEMgMTAuNTUzIDE2IDExIDE1LjU1MyAxMSAxNSBMIDExIDEzIEMgMTEgMTIuNDQ3IDEwLjU1MyAxMiAxMCAxMiB6IE0gMTUgMTIgQyAxNC40NDcgMTIgMTQgMTIuNDQ3IDE0IDEzIEwgMTQgMTUgQyAxNCAxNS41NTMgMTQuNDQ3IDE2IDE1IDE2IEMgMTUuNTUzIDE2IDE2IDE1LjU1MyAxNiAxNSBMIDE2IDEzIEMgMTYgMTIuNDQ3IDE1LjU1MyAxMiAxNSAxMiB6IE0gMjAgMTIgQyAxOS40NDcgMTIgMTkgMTIuNDQ3IDE5IDEzIEwgMTkgMTUgQyAxOSAxNS41NTMgMTkuNDQ3IDE2IDIwIDE2IEMgMjAuNTUzIDE2IDIxIDE1LjU1MyAyMSAxNSBMIDIxIDEzIEMgMjEgMTIuNDQ3IDIwLjU1MyAxMiAyMCAxMiB6IE0gMjUgMTIgQyAyNC40NDcgMTIgMjQgMTIuNDQ3IDI0IDEzIEwgMjQgMTUgQyAyNCAxNS41NTMgMjQuNDQ3IDE2IDI1IDE2IEMgMjUuNTUzIDE2IDI2IDE1LjU1MyAyNiAxNSBMIDI2IDEzIEMgMjYgMTIuNDQ3IDI1LjU1MyAxMiAyNSAxMiB6IE0gMzAgMTIgQyAyOS40NDcgMTIgMjkgMTIuNDQ3IDI5IDEzIEwgMjkgMTUgQyAyOSAxNS41NTMgMjkuNDQ3IDE2IDMwIDE2IEMgMzAuNTUzIDE2IDMxIDE1LjU1MyAzMSAxNSBMIDMxIDEzIEMgMzEgMTIuNDQ3IDMwLjU1MyAxMiAzMCAxMiB6IE0gMzUgMTIgQyAzNC40NDcgMTIgMzQgMTIuNDQ3IDM0IDEzIEwgMzQgMTUgQyAzNCAxNS41NTMgMzQuNDQ3IDE2IDM1IDE2IEMgMzUuNTUzIDE2IDM2IDE1LjU1MyAzNiAxNSBMIDM2IDEzIEMgMzYgMTIuNDQ3IDM1LjU1MyAxMiAzNSAxMiB6IE0gNDAgMTIgQyAzOS40NDcgMTIgMzkgMTIuNDQ3IDM5IDEzIEwgMzkgMTUgQyAzOSAxNS41NTMgMzkuNDQ3IDE2IDQwIDE2IEMgNDAuNTUzIDE2IDQxIDE1LjU1MyA0MSAxNSBMIDQxIDEzIEMgNDEgMTIuNDQ3IDQwLjU1MyAxMiA0MCAxMiB6IE0gNDUgMTIgQyA0NC40NDcgMTIgNDQgMTIuNDQ3IDQ0IDEzIEwgNDQgMTUgQyA0NCAxNS41NTMgNDQuNDQ3IDE2IDQ1IDE2IEMgNDUuNTUzIDE2IDQ2IDE1LjU1MyA0NiAxNSBMIDQ2IDEzIEMgNDYgMTIuNDQ3IDQ1LjU1MyAxMiA0NSAxMiB6IE0gNTAgMTIgQyA0OS40NDcgMTIgNDkgMTIuNDQ3IDQ5IDEzIEwgNDkgMTUgQyA0OSAxNS41NTMgNDkuNDQ3IDE2IDUwIDE2IEMgNTAuNTUzIDE2IDUxIDE1LjU1MyA1MSAxNSBMIDUxIDEzIEMgNTEgMTIuNDQ3IDUwLjU1MyAxMiA1MCAxMiB6IE0gNTUgMTIgQyA1NC40NDcgMTIgNTQgMTIuNDQ3IDU0IDEzIEwgNTQgMTUgQyA1NCAxNS41NTMgNTQuNDQ3IDE2IDU1IDE2IEMgNTUuNTUzIDE2IDU2IDE1LjU1MyA1NiAxNSBMIDU2IDEzIEMgNTYgMTIuNDQ3IDU1LjU1MyAxMiA1NSAxMiB6IE0gNTEgMTggQyA1MC40NDcgMTggNTAgMTguNDQ3IDUwIDE5IEMgNTAgMTkuNTUzIDUwLjQ0NyAyMCA1MSAyMCBMIDU1IDIwIEMgNTUuNTUzIDIwIDU2IDE5LjU1MyA1NiAxOSBDIDU2IDE4LjQ0NyA1NS41NTMgMTggNTUgMTggTCA1MSAxOCB6IE0gMTYgMjggQyAxMy43OTQgMjggMTIgMjkuNzk0IDEyIDMyIEwgMTIgMzQgQyAxMiAzNi4yMDYgMTMuNzk0IDM4IDE2IDM4IEwgMTggMzggQyAxOS4xMDMgMzggMjAgMzguODk3IDIwIDQwIEwgMjAgNDIgQyAyMCA0My4xMDMgMTkuMTAzIDQ0IDE4IDQ0IEwgMTYgNDQgQyAxNC44OTcgNDQgMTQgNDMuMTAzIDE0IDQyIEwgMTQgNDEgQyAxNCA0MC40NDcgMTMuNTUzIDQwIDEzIDQwIEMgMTIuNDQ3IDQwIDEyIDQwLjQ0NyAxMiA0MSBMIDEyIDQyIEMgMTIgNDQuMjA2IDEzLjc5NCA0NiAxNiA0NiBMIDE4IDQ2IEMgMjAuMjA2IDQ2IDIyIDQ0LjIwNiAyMiA0MiBMIDIyIDQwIEMgMjIgMzcuNzk0IDIwLjIwNiAzNiAxOCAzNiBMIDE2IDM2IEMgMTQuODk3IDM2IDE0IDM1LjEwMyAxNCAzNCBMIDE0IDMyIEMgMTQgMzAuODk3IDE0Ljg5NyAzMCAxNiAzMCBMIDE4IDMwIEMgMTkuMTAzIDMwIDIwIDMwLjg5NyAyMCAzMiBMIDIwIDMzIEMgMjAgMzMuNTUzIDIwLjQ0NyAzNCAyMSAzNCBDIDIxLjU1MyAzNCAyMiAzMy41NTMgMjIgMzMgTCAyMiAzMiBDIDIyIDI5Ljc5NCAyMC4yMDYgMjggMTggMjggTCAxNiAyOCB6IE0gMzAgMjggQyAyNy43OTQgMjggMjYgMjkuNzk0IDI2IDMyIEwgMjYgMzQgQyAyNiAzNi4yMDYgMjcuNzk0IDM4IDMwIDM4IEwgMzIgMzggQyAzMy4xMDMgMzggMzQgMzguODk3IDM0IDQwIEwgMzQgNDIgQyAzNCA0My4xMDMgMzMuMTAzIDQ0IDMyIDQ0IEwgMzAgNDQgQyAyOC44OTcgNDQgMjggNDMuMTAzIDI4IDQyIEwgMjggNDEgQyAyOCA0MC40NDcgMjcuNTUzIDQwIDI3IDQwIEMgMjYuNDQ3IDQwIDI2IDQwLjQ0NyAyNiA0MSBMIDI2IDQyIEMgMjYgNDQuMjA2IDI3Ljc5NCA0NiAzMCA0NiBMIDMyIDQ2IEMgMzQuMjA2IDQ2IDM2IDQ0LjIwNiAzNiA0MiBMIDM2IDQwIEMgMzYgMzcuNzk0IDM0LjIwNiAzNiAzMiAzNiBMIDMwIDM2IEMgMjguODk3IDM2IDI4IDM1LjEwMyAyOCAzNCBMIDI4IDMyIEMgMjggMzAuODk3IDI4Ljg5NyAzMCAzMCAzMCBMIDMyIDMwIEMgMzMuMTAzIDMwIDM0IDMwLjg5NyAzNCAzMiBMIDM0IDMzIEMgMzQgMzMuNTUzIDM0LjQ0NyAzNCAzNSAzNCBDIDM1LjU1MyAzNCAzNiAzMy41NTMgMzYgMzMgTCAzNiAzMiBDIDM2IDI5Ljc5NCAzNC4yMDYgMjggMzIgMjggTCAzMCAyOCB6IE0gNDEgMjggQyA0MC40NDcgMjggNDAgMjguNDQ3IDQwIDI5IEwgNDAgNDUgQyA0MCA0NS41NTMgNDAuNDQ3IDQ2IDQxIDQ2IEMgNDEuNTUzIDQ2IDQyIDQ1LjU1MyA0MiA0NSBMIDQyIDM4IEwgNDggMzggTCA0OCA0NSBDIDQ4IDQ1LjU1MyA0OC40NDcgNDYgNDkgNDYgQyA0OS41NTMgNDYgNTAgNDUuNTUzIDUwIDQ1IEwgNTAgMjkgQyA1MCAyOC40NDcgNDkuNTUzIDI4IDQ5IDI4IEMgNDguNDQ3IDI4IDQ4IDI4LjQ0NyA0OCAyOSBMIDQ4IDM2IEwgNDIgMzYgTCA0MiAyOSBDIDQyIDI4LjQ0NyA0MS41NTMgMjggNDEgMjggeiIvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SSH",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "SSH Sink",
        "description" : "Send command through SSH session.",
        "required" : [ "connectionHost", "connectionPort", "username", "password" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The SSH Host",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The SSH Port",
            "type" : "string",
            "default" : 22
          },
          "username" : {
            "title" : "Username",
            "description" : "The SSH username to use",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The SSH password to use",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "in" : {
          "mediaType" : "text/plain"
        },
        "out" : {
          "mediaType" : "text/plain"
        }
      },
      "dependencies" : [ "camel:ssh", "camel:gson", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "ssh://{{connectionHost}}:{{connectionPort}}",
              "parameters" : {
                "username" : "{{username}}",
                "password" : "{{password}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "SSH Sink",
      "description" : "Send command through SSH session.",
      "required" : [ "connectionHost", "connectionPort", "username", "password" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The SSH Host"
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The SSH Port",
          "default" : 22
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The SSH username to use"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The SSH password to use",
          "format" : "password"
        }
      }
    }
  },
  "ssh-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "ssh-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQgNjQiPgogICAgPHBhdGggZD0iTSA3IDggQyA1LjM0NiA4IDQgOS4zNDYgNCAxMSBMIDQgNTMgQyA0IDU0LjY1NCA1LjM0NiA1NiA3IDU2IEwgNTcgNTYgQyA1OC42NTQgNTYgNjAgNTQuNjU0IDYwIDUzIEwgNjAgMTEgQyA2MCA5LjM0NiA1OC42NTQgOCA1NyA4IEwgNyA4IHogTSA3IDEwIEwgNTcgMTAgQyA1Ny41NTIgMTAgNTggMTAuNDQ4IDU4IDExIEwgNTggNTMgQyA1OCA1My41NTIgNTcuNTUyIDU0IDU3IDU0IEwgNyA1NCBDIDYuNDQ4IDU0IDYgNTMuNTUyIDYgNTMgTCA2IDIwIEwgNDcgMjAgQyA0Ny41NTMgMjAgNDggMTkuNTUzIDQ4IDE5IEMgNDggMTguNDQ3IDQ3LjU1MyAxOCA0NyAxOCBMIDYgMTggTCA2IDExIEMgNiAxMC40NDggNi40NDggMTAgNyAxMCB6IE0gMTAgMTIgQyA5LjQ0NyAxMiA5IDEyLjQ0NyA5IDEzIEwgOSAxNSBDIDkgMTUuNTUzIDkuNDQ3IDE2IDEwIDE2IEMgMTAuNTUzIDE2IDExIDE1LjU1MyAxMSAxNSBMIDExIDEzIEMgMTEgMTIuNDQ3IDEwLjU1MyAxMiAxMCAxMiB6IE0gMTUgMTIgQyAxNC40NDcgMTIgMTQgMTIuNDQ3IDE0IDEzIEwgMTQgMTUgQyAxNCAxNS41NTMgMTQuNDQ3IDE2IDE1IDE2IEMgMTUuNTUzIDE2IDE2IDE1LjU1MyAxNiAxNSBMIDE2IDEzIEMgMTYgMTIuNDQ3IDE1LjU1MyAxMiAxNSAxMiB6IE0gMjAgMTIgQyAxOS40NDcgMTIgMTkgMTIuNDQ3IDE5IDEzIEwgMTkgMTUgQyAxOSAxNS41NTMgMTkuNDQ3IDE2IDIwIDE2IEMgMjAuNTUzIDE2IDIxIDE1LjU1MyAyMSAxNSBMIDIxIDEzIEMgMjEgMTIuNDQ3IDIwLjU1MyAxMiAyMCAxMiB6IE0gMjUgMTIgQyAyNC40NDcgMTIgMjQgMTIuNDQ3IDI0IDEzIEwgMjQgMTUgQyAyNCAxNS41NTMgMjQuNDQ3IDE2IDI1IDE2IEMgMjUuNTUzIDE2IDI2IDE1LjU1MyAyNiAxNSBMIDI2IDEzIEMgMjYgMTIuNDQ3IDI1LjU1MyAxMiAyNSAxMiB6IE0gMzAgMTIgQyAyOS40NDcgMTIgMjkgMTIuNDQ3IDI5IDEzIEwgMjkgMTUgQyAyOSAxNS41NTMgMjkuNDQ3IDE2IDMwIDE2IEMgMzAuNTUzIDE2IDMxIDE1LjU1MyAzMSAxNSBMIDMxIDEzIEMgMzEgMTIuNDQ3IDMwLjU1MyAxMiAzMCAxMiB6IE0gMzUgMTIgQyAzNC40NDcgMTIgMzQgMTIuNDQ3IDM0IDEzIEwgMzQgMTUgQyAzNCAxNS41NTMgMzQuNDQ3IDE2IDM1IDE2IEMgMzUuNTUzIDE2IDM2IDE1LjU1MyAzNiAxNSBMIDM2IDEzIEMgMzYgMTIuNDQ3IDM1LjU1MyAxMiAzNSAxMiB6IE0gNDAgMTIgQyAzOS40NDcgMTIgMzkgMTIuNDQ3IDM5IDEzIEwgMzkgMTUgQyAzOSAxNS41NTMgMzkuNDQ3IDE2IDQwIDE2IEMgNDAuNTUzIDE2IDQxIDE1LjU1MyA0MSAxNSBMIDQxIDEzIEMgNDEgMTIuNDQ3IDQwLjU1MyAxMiA0MCAxMiB6IE0gNDUgMTIgQyA0NC40NDcgMTIgNDQgMTIuNDQ3IDQ0IDEzIEwgNDQgMTUgQyA0NCAxNS41NTMgNDQuNDQ3IDE2IDQ1IDE2IEMgNDUuNTUzIDE2IDQ2IDE1LjU1MyA0NiAxNSBMIDQ2IDEzIEMgNDYgMTIuNDQ3IDQ1LjU1MyAxMiA0NSAxMiB6IE0gNTAgMTIgQyA0OS40NDcgMTIgNDkgMTIuNDQ3IDQ5IDEzIEwgNDkgMTUgQyA0OSAxNS41NTMgNDkuNDQ3IDE2IDUwIDE2IEMgNTAuNTUzIDE2IDUxIDE1LjU1MyA1MSAxNSBMIDUxIDEzIEMgNTEgMTIuNDQ3IDUwLjU1MyAxMiA1MCAxMiB6IE0gNTUgMTIgQyA1NC40NDcgMTIgNTQgMTIuNDQ3IDU0IDEzIEwgNTQgMTUgQyA1NCAxNS41NTMgNTQuNDQ3IDE2IDU1IDE2IEMgNTUuNTUzIDE2IDU2IDE1LjU1MyA1NiAxNSBMIDU2IDEzIEMgNTYgMTIuNDQ3IDU1LjU1MyAxMiA1NSAxMiB6IE0gNTEgMTggQyA1MC40NDcgMTggNTAgMTguNDQ3IDUwIDE5IEMgNTAgMTkuNTUzIDUwLjQ0NyAyMCA1MSAyMCBMIDU1IDIwIEMgNTUuNTUzIDIwIDU2IDE5LjU1MyA1NiAxOSBDIDU2IDE4LjQ0NyA1NS41NTMgMTggNTUgMTggTCA1MSAxOCB6IE0gMTYgMjggQyAxMy43OTQgMjggMTIgMjkuNzk0IDEyIDMyIEwgMTIgMzQgQyAxMiAzNi4yMDYgMTMuNzk0IDM4IDE2IDM4IEwgMTggMzggQyAxOS4xMDMgMzggMjAgMzguODk3IDIwIDQwIEwgMjAgNDIgQyAyMCA0My4xMDMgMTkuMTAzIDQ0IDE4IDQ0IEwgMTYgNDQgQyAxNC44OTcgNDQgMTQgNDMuMTAzIDE0IDQyIEwgMTQgNDEgQyAxNCA0MC40NDcgMTMuNTUzIDQwIDEzIDQwIEMgMTIuNDQ3IDQwIDEyIDQwLjQ0NyAxMiA0MSBMIDEyIDQyIEMgMTIgNDQuMjA2IDEzLjc5NCA0NiAxNiA0NiBMIDE4IDQ2IEMgMjAuMjA2IDQ2IDIyIDQ0LjIwNiAyMiA0MiBMIDIyIDQwIEMgMjIgMzcuNzk0IDIwLjIwNiAzNiAxOCAzNiBMIDE2IDM2IEMgMTQuODk3IDM2IDE0IDM1LjEwMyAxNCAzNCBMIDE0IDMyIEMgMTQgMzAuODk3IDE0Ljg5NyAzMCAxNiAzMCBMIDE4IDMwIEMgMTkuMTAzIDMwIDIwIDMwLjg5NyAyMCAzMiBMIDIwIDMzIEMgMjAgMzMuNTUzIDIwLjQ0NyAzNCAyMSAzNCBDIDIxLjU1MyAzNCAyMiAzMy41NTMgMjIgMzMgTCAyMiAzMiBDIDIyIDI5Ljc5NCAyMC4yMDYgMjggMTggMjggTCAxNiAyOCB6IE0gMzAgMjggQyAyNy43OTQgMjggMjYgMjkuNzk0IDI2IDMyIEwgMjYgMzQgQyAyNiAzNi4yMDYgMjcuNzk0IDM4IDMwIDM4IEwgMzIgMzggQyAzMy4xMDMgMzggMzQgMzguODk3IDM0IDQwIEwgMzQgNDIgQyAzNCA0My4xMDMgMzMuMTAzIDQ0IDMyIDQ0IEwgMzAgNDQgQyAyOC44OTcgNDQgMjggNDMuMTAzIDI4IDQyIEwgMjggNDEgQyAyOCA0MC40NDcgMjcuNTUzIDQwIDI3IDQwIEMgMjYuNDQ3IDQwIDI2IDQwLjQ0NyAyNiA0MSBMIDI2IDQyIEMgMjYgNDQuMjA2IDI3Ljc5NCA0NiAzMCA0NiBMIDMyIDQ2IEMgMzQuMjA2IDQ2IDM2IDQ0LjIwNiAzNiA0MiBMIDM2IDQwIEMgMzYgMzcuNzk0IDM0LjIwNiAzNiAzMiAzNiBMIDMwIDM2IEMgMjguODk3IDM2IDI4IDM1LjEwMyAyOCAzNCBMIDI4IDMyIEMgMjggMzAuODk3IDI4Ljg5NyAzMCAzMCAzMCBMIDMyIDMwIEMgMzMuMTAzIDMwIDM0IDMwLjg5NyAzNCAzMiBMIDM0IDMzIEMgMzQgMzMuNTUzIDM0LjQ0NyAzNCAzNSAzNCBDIDM1LjU1MyAzNCAzNiAzMy41NTMgMzYgMzMgTCAzNiAzMiBDIDM2IDI5Ljc5NCAzNC4yMDYgMjggMzIgMjggTCAzMCAyOCB6IE0gNDEgMjggQyA0MC40NDcgMjggNDAgMjguNDQ3IDQwIDI5IEwgNDAgNDUgQyA0MCA0NS41NTMgNDAuNDQ3IDQ2IDQxIDQ2IEMgNDEuNTUzIDQ2IDQyIDQ1LjU1MyA0MiA0NSBMIDQyIDM4IEwgNDggMzggTCA0OCA0NSBDIDQ4IDQ1LjU1MyA0OC40NDcgNDYgNDkgNDYgQyA0OS41NTMgNDYgNTAgNDUuNTUzIDUwIDQ1IEwgNTAgMjkgQyA1MCAyOC40NDcgNDkuNTUzIDI4IDQ5IDI4IEMgNDguNDQ3IDI4IDQ4IDI4LjQ0NyA0OCAyOSBMIDQ4IDM2IEwgNDIgMzYgTCA0MiAyOSBDIDQyIDI4LjQ0NyA0MS41NTMgMjggNDEgMjggeiIvPgo8L3N2Zz4K",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "SSH",
        "camel.apache.org/kamelet.namespace" : "File"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "SSH Source",
        "description" : "Receive data from SSH session.",
        "required" : [ "connectionHost", "connectionPort", "username", "password", "pollCommand" ],
        "type" : "object",
        "properties" : {
          "connectionHost" : {
            "title" : "Connection Host",
            "description" : "The SSH Host",
            "type" : "string"
          },
          "connectionPort" : {
            "title" : "Connection Port",
            "description" : "The SSH Port",
            "type" : "string",
            "default" : 22
          },
          "username" : {
            "title" : "Username",
            "description" : "The SSH username to use",
            "type" : "string",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "password" : {
            "title" : "Password",
            "description" : "The SSH password to use",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "delay" : {
            "title" : "Delay",
            "description" : "The number of milliseconds before the next poll",
            "type" : "integer",
            "default" : 500
          },
          "pollCommand" : {
            "title" : "Poll Command",
            "description" : "The command to run while polling the SSH session",
            "type" : "string",
            "example" : "date"
          }
        }
      },
      "dependencies" : [ "camel:ssh", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "ssh://{{connectionHost}}:{{connectionPort}}",
          "parameters" : {
            "username" : "{{username}}",
            "password" : "{{password}}",
            "delay" : "{{delay}}",
            "pollCommand" : "{{pollCommand}}"
          },
          "steps" : [ {
            "convertBodyTo" : {
              "type" : "java.lang.String"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "SSH Source",
      "description" : "Receive data from SSH session.",
      "required" : [ "connectionHost", "connectionPort", "username", "password", "pollCommand" ],
      "properties" : {
        "connectionHost" : {
          "type" : "string",
          "title" : "Connection Host",
          "description" : "The SSH Host"
        },
        "connectionPort" : {
          "type" : "string",
          "title" : "Connection Port",
          "description" : "The SSH Port",
          "default" : 22
        },
        "username" : {
          "type" : "string",
          "title" : "Username",
          "description" : "The SSH username to use"
        },
        "password" : {
          "type" : "string",
          "title" : "Password",
          "description" : "The SSH password to use",
          "format" : "password"
        },
        "delay" : {
          "type" : "integer",
          "title" : "Delay",
          "description" : "The number of milliseconds before the next poll",
          "default" : 500
        },
        "pollCommand" : {
          "type" : "string",
          "title" : "Poll Command",
          "description" : "The command to run while polling the SSH session"
        }
      }
    }
  },
  "string-template-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "string-template-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "String Template Action",
        "description" : "Apply a String Template.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.tm",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:stringtemplate", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "string-template:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "String Template Action",
      "description" : "Apply a String Template.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "telegram-sink" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "telegram-sink",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDAgMjQwIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIuNjY3IiB4Mj0iLjQxNyIgeTE9Ii4xNjciIHkyPSIuNzUiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzM3YWVlMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFlOTZjOCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iLjY2IiB4Mj0iLjg1MSIgeTE9Ii40MzciIHkyPSIuODAyIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNlZmY3ZmMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48Y2lyY2xlIGN4PSIxMjAiIGN5PSIxMjAiIHI9IjEyMCIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGZpbGw9IiNjOGRhZWEiIGQ9Ik05OCAxNzVjLTMuODg4IDAtMy4yMjctMS40NjgtNC41NjgtNS4xN0w4MiAxMzIuMjA3IDE3MCA4MCIvPjxwYXRoIGZpbGw9IiNhOWM5ZGQiIGQ9Ik05OCAxNzVjMyAwIDQuMzI1LTEuMzcyIDYtM2wxNi0xNS41NTgtMTkuOTU4LTEyLjAzNSIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMDAuMDQgMTQ0LjQxbDQ4LjM2IDM1LjcyOWM1LjUxOSAzLjA0NSA5LjUwMSAxLjQ2OCAxMC44NzYtNS4xMjNsMTkuNjg1LTkyLjc2M2MyLjAxNS04LjA4LTMuMDgtMTEuNzQ2LTguMzYtOS4zNDlsLTExNS41OSA0NC41NzFjLTcuODkgMy4xNjUtNy44NDMgNy41NjctMS40MzggOS41MjhsMjkuNjYzIDkuMjU5IDY4LjY3My00My4zMjVjMy4yNDItMS45NjYgNi4yMTgtLjkxIDMuNzc2IDEuMjU4Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Telegram",
        "camel.apache.org/kamelet.namespace" : "Social"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "sink"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Telegram Sink",
        "description" : "Send a message to a Telegram chat by using your Telegram bot as sender.\n\nTo create a bot, use your Telegram app to contact the @botfather account.\n\nThis sink supports the following message types:\n\n- Standard text messages\n- PNG images (`Content-Type` must be set to `image/png`)\n- JPEG images (`Content-Type` must be set to `image/jpeg`)\n\nThis sink also supports the following message headers:\n\n- `text` / `ce-text`: when sending an image, the image caption\n- `chat-id` / `ce-chatid`: overrides the default chat where messages are sent to",
        "required" : [ "authorizationToken" ],
        "type" : "object",
        "properties" : {
          "authorizationToken" : {
            "title" : "Token",
            "description" : "The token to access your bot on Telegram. You you can obtain it from the Telegram @botfather.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "chatId" : {
            "title" : "Chat ID",
            "description" : "The Chat ID to where you want to send messages by default. \n\nWhilst the Chat ID is not a required Configuration Option it must be provided for every message; either as a Configuration Option or a `chat-id` / `ce-chatid` header.",
            "type" : "string"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:jackson", "camel:kamelet", "camel:telegram" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'image/png'",
                "steps" : [ {
                  "convertBodyTo" : {
                    "type" : "byte[]"
                  }
                }, {
                  "setHeader" : {
                    "name" : "CamelTelegramMediaType",
                    "constant" : "PHOTO_PNG"
                  }
                } ]
              }, {
                "simple" : "${header[Content-Type]} == 'image/jpeg'",
                "steps" : [ {
                  "convertBodyTo" : {
                    "type" : "byte[]"
                  }
                }, {
                  "setHeader" : {
                    "name" : "CamelTelegramMediaType",
                    "constant" : "PHOTO_JPG"
                  }
                } ]
              } ],
              "otherwise" : {
                "steps" : [ {
                  "convertBodyTo" : {
                    "type" : "java.lang.String"
                  }
                } ]
              }
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[text]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelTelegramMediaTitleCaption",
                    "simple" : "${header[text]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-text]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelTelegramMediaTitleCaption",
                    "simple" : "${header[ce-text]}"
                  }
                } ]
              } ]
            }
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${header[chat-id]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelTelegramChatId",
                    "simple" : "${header[chat-id]}"
                  }
                } ]
              }, {
                "simple" : "${header[ce-chatid]}",
                "steps" : [ {
                  "setHeader" : {
                    "name" : "CamelTelegramChatId",
                    "simple" : "${header[ce-chatid]}"
                  }
                } ]
              } ]
            }
          }, {
            "to" : {
              "uri" : "telegram:bots",
              "parameters" : {
                "authorizationToken" : "{{authorizationToken}}",
                "chatId" : "{{?chatId}}"
              }
            }
          }, {
            "marshal" : {
              "json" : { }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Telegram Sink",
      "description" : "Send a message to a Telegram chat by using your Telegram bot as sender.\n\nTo create a bot, use your Telegram app to contact the @botfather account.\n\nThis sink supports the following message types:\n\n- Standard text messages\n- PNG images (`Content-Type` must be set to `image/png`)\n- JPEG images (`Content-Type` must be set to `image/jpeg`)\n\nThis sink also supports the following message headers:\n\n- `text` / `ce-text`: when sending an image, the image caption\n- `chat-id` / `ce-chatid`: overrides the default chat where messages are sent to",
      "required" : [ "authorizationToken" ],
      "properties" : {
        "authorizationToken" : {
          "type" : "string",
          "title" : "Token",
          "description" : "The token to access your bot on Telegram. You you can obtain it from the Telegram @botfather.",
          "format" : "password"
        },
        "chatId" : {
          "type" : "string",
          "title" : "Chat ID",
          "description" : "The Chat ID to where you want to send messages by default. \n\nWhilst the Chat ID is not a required Configuration Option it must be provided for every message; either as a Configuration Option or a `chat-id` / `ce-chatid` header."
        }
      }
    }
  },
  "telegram-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "telegram-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDAgMjQwIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIuNjY3IiB4Mj0iLjQxNyIgeTE9Ii4xNjciIHkyPSIuNzUiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzM3YWVlMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFlOTZjOCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iLjY2IiB4Mj0iLjg1MSIgeTE9Ii40MzciIHkyPSIuODAyIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNlZmY3ZmMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48Y2lyY2xlIGN4PSIxMjAiIGN5PSIxMjAiIHI9IjEyMCIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGZpbGw9IiNjOGRhZWEiIGQ9Ik05OCAxNzVjLTMuODg4IDAtMy4yMjctMS40NjgtNC41NjgtNS4xN0w4MiAxMzIuMjA3IDE3MCA4MCIvPjxwYXRoIGZpbGw9IiNhOWM5ZGQiIGQ9Ik05OCAxNzVjMyAwIDQuMzI1LTEuMzcyIDYtM2wxNi0xNS41NTgtMTkuOTU4LTEyLjAzNSIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMDAuMDQgMTQ0LjQxbDQ4LjM2IDM1LjcyOWM1LjUxOSAzLjA0NSA5LjUwMSAxLjQ2OCAxMC44NzYtNS4xMjNsMTkuNjg1LTkyLjc2M2MyLjAxNS04LjA4LTMuMDgtMTEuNzQ2LTguMzYtOS4zNDlsLTExNS41OSA0NC41NzFjLTcuODkgMy4xNjUtNy44NDMgNy41NjctMS40MzggOS41MjhsMjkuNjYzIDkuMjU5IDY4LjY3My00My4zMjVjMy4yNDItMS45NjYgNi4yMTgtLjkxIDMuNzc2IDEuMjU4Ii8+PC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Telegram",
        "camel.apache.org/kamelet.namespace" : "Social"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Telegram Source",
        "description" : "Receive all messages that people send to your Telegram bot.\n\nTo create a bot, contact the @botfather account by using the Telegram app.\n\nThe source attaches the following header to the messages:\n\n- `chat-id` / `ce-chatid`: The ID of the chat where the message comes from.",
        "required" : [ "authorizationToken" ],
        "type" : "object",
        "properties" : {
          "authorizationToken" : {
            "title" : "Token",
            "description" : "The token to access your bot on Telegram. You can obtain it from the Telegram @botfather.",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:kamelet", "camel:telegram", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "telegram:bots",
          "parameters" : {
            "authorizationToken" : "{{authorizationToken}}"
          },
          "steps" : [ {
            "setHeader" : {
              "name" : "chat-id",
              "simple" : "${header[CamelTelegramChatId]}"
            }
          }, {
            "setHeader" : {
              "name" : "ce-chatid",
              "simple" : "${header[CamelTelegramChatId]}"
            }
          }, {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Telegram Source",
      "description" : "Receive all messages that people send to your Telegram bot.\n\nTo create a bot, contact the @botfather account by using the Telegram app.\n\nThe source attaches the following header to the messages:\n\n- `chat-id` / `ce-chatid`: The ID of the chat where the message comes from.",
      "required" : [ "authorizationToken" ],
      "properties" : {
        "authorizationToken" : {
          "type" : "string",
          "title" : "Token",
          "description" : "The token to access your bot on Telegram. You can obtain it from the Telegram @botfather.",
          "format" : "password"
        }
      }
    }
  },
  "throttle-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "throttle-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "EIP"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Throttle Action",
        "description" : "The Throttle action allows you to ensure that a specific sink does not get overloaded.",
        "required" : [ "messages" ],
        "properties" : {
          "messages" : {
            "title" : "Messages Number",
            "description" : "The number of messages to send in the time period set",
            "type" : "integer",
            "example" : 10
          },
          "timePeriod" : {
            "title" : "Time Period",
            "description" : "Sets the time period during which the maximum request count is valid for, in milliseconds",
            "type" : "string",
            "default" : "1000"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "throttle" : {
              "constant" : "{{messages}}",
              "timePeriodMillis" : "{{timePeriod}}"
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Throttle Action",
      "description" : "The Throttle action allows you to ensure that a specific sink does not get overloaded.",
      "required" : [ "messages" ],
      "properties" : {
        "messages" : {
          "type" : "integer",
          "title" : "Messages Number",
          "description" : "The number of messages to send in the time period set"
        },
        "timePeriod" : {
          "type" : "string",
          "title" : "Time Period",
          "description" : "Sets the time period during which the maximum request count is valid for, in milliseconds",
          "default" : "1000"
        }
      }
    }
  },
  "timer-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "timer-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gU3ZnIFZlY3RvciBJY29ucyA6IGh0dHA6Ly93d3cub25saW5ld2ViZm9udHMuY29tL2ljb24gLS0+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPG1ldGFkYXRhPiBTdmcgVmVjdG9yIEljb25zIDogaHR0cDovL3d3dy5vbmxpbmV3ZWJmb250cy5jb20vaWNvbiA8L21ldGFkYXRhPg0KPGc+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsNTExLjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSI+PHBhdGggZD0iTTM4ODguMSw0Nzc0Ljl2LTIzNS4xaDQxMS40aDQxNC4zbC04LjgtMzI5LjFsLTguOC0zMzJsLTExNy41LTguOGMtMjI5LjItMTQuNy02MjAtOTkuOS05MjUuNi0xOTYuOUMyMjU3LjQsMzIyMC42LDExNjcuMiwyMDY1LjgsODAyLjksNjQ5LjZjLTUxMS4zLTE5ODYuMywzODQuOS00MDAyLDIyMDYuNy00OTY1LjhjMzAyLjYtMTYxLjYsNzU4LjEtMzIwLjIsMTE1NC44LTQwNS41YzQyNi4xLTkxLjEsMTI1MS43LTkxLjEsMTY4MC43LDBjMTc2OC45LDM4MiwzMDQ0LjEsMTY1Ny4yLDM0MjYuMSwzNDI2LjFjOTEuMSw0MjYuMSw5MS4xLDEyNTQuNiwwLDE2NzcuOGMtNDIwLjIsMTk0Mi4yLTE5MzYuNCwzMzAyLjYtMzg5MC4zLDM0OTYuNmwtMTk5LjgsMjAuNnYzMjAuM3YzMjAuM2g0MTEuNGg0MTEuNHYyMzUuMVY1MDEwSDQ5NDUuOUgzODg4LjFWNDc3NC45eiBNNTc1My45LDMzNDkuOWM3NzguNy0xNjEuNiwxNDE5LjItNTA4LjMsMTk4My40LTEwNzIuNWM1NjQuMi01NjEuMiw4ODcuNC0xMTU3LjcsMTA2MC43LTE5NDIuMmM5OS45LTQzNy44LDk5LjktMTE0MywzLTE1ODAuOEM4NTYzLTIzMDYuNCw3OTY2LjUtMzE1OC41LDcwNDMuOS0zNzUyYy0zMzUtMjE0LjUtNzg3LjUtMzk2LjctMTI0OC44LTQ5OS41Yy00MzcuOC05Ny0xMTQzLTk3LTE1ODAuOCwyLjljLTc4NC41LDE3My4zLTEzODEsNDk2LjYtMTk0Mi4yLDEwNjAuN2MtNTcwLDU2Ny4xLTkwNy45LDExOTguOC0xMDc4LjQsMTk5OC4xYy03My41LDM0Ni43LTczLjUsMTEyMi40LDAsMTQ2OS4yYzE3MC40LDc5OS4yLDUwOC4zLDE0MzEsMTA3OC40LDE5OThDMjg5NSwyOTAwLjMsMzYzOC40LDMyNzMuNSw0NDkzLjQsMzM5MUM0Nzc4LjQsMzQzMi4xLDU0NzQuOCwzNDA4LjYsNTc1My45LDMzNDkuOXoiLz48cGF0aCBkPSJNNDcxMC44LDEzNzUuM1YyMDUuOUw0NTUyLjIsNjcuOGMtMzE3LjMtMjc5LjEtMzQwLjgtNjc4LjctNTUuOC05OTMuMWMyODcuOS0zMjAuMyw2OTMuNC0zMTcuMywxMDEzLjcsNS45bDE3MC40LDE3MC40aDEwNDMuMWgxMDQzLjFWLTUxNFYtMjc5SDY3MjkuNUg1NjkyLjJsLTQ5LjksMTE0LjZjLTU4LjgsMTMyLjItMjUyLjcsMzE3LjMtMzc2LjEsMzYxLjRsLTg1LjIsMjkuNHYxMTU3Ljd2MTE1Ny43aC0yMzUuMWgtMjM1LjFWMTM3NS4zeiBNNTE2Ni4zLTI5My42YzE0Ni45LTE0NCw0NC4xLTM5Ni43LTE2MS42LTM5Ni43Yy01NS44LDAtMTE3LjUsMjYuNC0xNjEuNiw3My40Yy00Nyw0NC4xLTczLjUsMTA1LjgtNzMuNSwxNjEuNnMyNi40LDExNy41LDczLjUsMTYxLjZjNDQuMSw0NywxMDUuOCw3My41LDE2MS42LDczLjVDNTA2MC41LTIyMC4yLDUxMjIuMi0yNDYuNyw1MTY2LjMtMjkzLjZ6Ii8+PC9nPjwvZz4NCjwvc3ZnPg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Timer",
        "camel.apache.org/kamelet.namespace" : "Scheduling"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source",
        "camel.apache.org/kamelet.verified" : "true"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Timer Source",
        "description" : "Produces periodic messages with a custom payload.",
        "required" : [ "message" ],
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period",
            "description" : "The interval (in milliseconds) to wait between producing the next message.",
            "type" : "integer",
            "default" : 1000
          },
          "message" : {
            "title" : "Message",
            "description" : "The message to generate.",
            "type" : "string",
            "example" : "hello world"
          },
          "contentType" : {
            "title" : "Content Type",
            "description" : "The content type of the generated message.",
            "type" : "string",
            "default" : "text/plain"
          },
          "repeatCount" : {
            "title" : "Repeat Count",
            "description" : "Specifies a maximum limit of number of fires",
            "type" : "integer"
          }
        }
      },
      "dependencies" : [ "camel:core", "camel:timer", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "timer:tick",
          "parameters" : {
            "period" : "{{period}}",
            "repeatCount" : "{{?repeatCount}}"
          },
          "steps" : [ {
            "setBody" : {
              "constant" : "{{message}}"
            }
          }, {
            "setHeader" : {
              "name" : "Content-Type",
              "constant" : "{{contentType}}"
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Timer Source",
      "description" : "Produces periodic messages with a custom payload.",
      "required" : [ "message" ],
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period",
          "description" : "The interval (in milliseconds) to wait between producing the next message.",
          "default" : 1000
        },
        "message" : {
          "type" : "string",
          "title" : "Message",
          "description" : "The message to generate."
        },
        "contentType" : {
          "type" : "string",
          "title" : "Content Type",
          "description" : "The content type of the generated message.",
          "default" : "text/plain"
        },
        "repeatCount" : {
          "type" : "integer",
          "title" : "Repeat Count",
          "description" : "Specifies a maximum limit of number of fires"
        }
      }
    }
  },
  "timestamp-router-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "timestamp-router-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Timestamp Router Action",
        "description" : "Update the topic field as a function of the original topic name and the record timestamp.",
        "properties" : {
          "topicFormat" : {
            "title" : "Topic Format",
            "description" : "Format string which can contain '$[topic]' and '$[timestamp]' as placeholders for the topic and timestamp, respectively.",
            "type" : "string",
            "default" : "topic-$[timestamp]"
          },
          "timestampFormat" : {
            "title" : "Timestamp Format",
            "description" : "Format string for the timestamp that is compatible with java.text.SimpleDateFormat.",
            "type" : "string",
            "default" : "yyyyMMdd"
          },
          "timestampHeaderName" : {
            "title" : "Timestamp Header Name",
            "description" : "The name of the header containing a timestamp",
            "type" : "string",
            "default" : "kafka.TIMESTAMP"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:kamelet", "camel:core" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "setProperty" : {
              "name" : "topicFormat",
              "constant" : "{{topicFormat}}"
            }
          }, {
            "setProperty" : {
              "name" : "timestampFormat",
              "constant" : "{{timestampFormat}}"
            }
          }, {
            "setProperty" : {
              "name" : "timestampHeaderName",
              "constant" : "{{timestampHeaderName}}"
            }
          }, {
            "bean" : "org.apache.camel.kamelets.utils.transform.TimestampRouter"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Timestamp Router Action",
      "description" : "Update the topic field as a function of the original topic name and the record timestamp.",
      "properties" : {
        "topicFormat" : {
          "type" : "string",
          "title" : "Topic Format",
          "description" : "Format string which can contain '$[topic]' and '$[timestamp]' as placeholders for the topic and timestamp, respectively.",
          "default" : "topic-$[timestamp]"
        },
        "timestampFormat" : {
          "type" : "string",
          "title" : "Timestamp Format",
          "description" : "Format string for the timestamp that is compatible with java.text.SimpleDateFormat.",
          "default" : "yyyyMMdd"
        },
        "timestampHeaderName" : {
          "type" : "string",
          "title" : "Timestamp Header Name",
          "description" : "The name of the header containing a timestamp",
          "default" : "kafka.TIMESTAMP"
        }
      }
    }
  },
  "topic-name-matches-filter-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "topic-name-matches-filter-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Kafka Topic Name Matches Filter Action",
        "description" : "Filter based on kafka topic value compared to regex",
        "required" : [ "regex" ],
        "properties" : {
          "regex" : {
            "title" : "Regex",
            "description" : "The Regex to Evaluate against the Kafka topic name",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "camel:core", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "filter" : {
              "simple" : "${header[kafka.TOPIC]} !regex '{{regex}}'",
              "steps" : [ {
                "stop" : { }
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Kafka Topic Name Matches Filter Action",
      "description" : "Filter based on kafka topic value compared to regex",
      "required" : [ "regex" ],
      "properties" : {
        "regex" : {
          "type" : "string",
          "title" : "Regex",
          "description" : "The Regex to Evaluate against the Kafka topic name"
        }
      }
    }
  },
  "twitter-directmessage-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "twitter-directmessage-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjIwOXB4IiB2aWV3Qm94PSIwIDAgMjU2IDIwOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8Zz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1LjQ1MDAyNTkgQzI0Ni41ODA4NDEsMjkuNjI3MjY3MiAyMzYuNDU4NDUxLDMyLjQ1MDQ4NjggMjI1LjgzNDE1NiwzMy43MjAyMzMzIEMyMzYuNjc4NTAzLDI3LjIxOTgwNTMgMjQ1LjAwNTgzLDE2LjkyNjk5MjkgMjQ4LjkyNzQzNyw0LjY2MzA3Njg1IEMyMzguNzc5NzY1LDEwLjY4MTI2MzMgMjI3LjUzOTMyNSwxNS4wNTIzMzc2IDIxNS41NzU5OSwxNy40MDgyOTggQzIwNS45OTQ4MzUsNy4yMDA2OTcxIDE5Mi4zNDUwNiwwLjgyMiAxNzcuMjM5MTk3LDAuODIyIEMxNDguMjMyNjA1LDAuODIyIDEyNC43MTYwNzYsMjQuMzM3NTkzMSAxMjQuNzE2MDc2LDUzLjM0MjMxMTYgQzEyNC43MTYwNzYsNTcuNDU4Njg3NSAxMjUuMTgxNDYyLDYxLjQ2NzM3ODQgMTI2LjA3NjY1Miw2NS4zMTEyNjQ0IEM4Mi40MjU4Mzg1LDYzLjEyMTA0NTMgNDMuNzI1NzI1Miw0Mi4yMTE0MjkgMTcuODIxMzk4LDEwLjQzNTkyODggQzEzLjMwMDUwMTEsMTguMTkyOTkzOCAxMC43MTA0NDMsMjcuMjE1MTIzNCAxMC43MTA0NDMsMzYuODQwMjg4OSBDMTAuNzEwNDQzLDU1LjA2MTUyNiAxOS45ODM1MjU0LDcxLjEzNzQ5MDcgMzQuMDc2MjEzNSw4MC41NTU3MTM3IEMyNS40NjYwOTYxLDgwLjI4MzIyMzkgMTcuMzY4MTg0Niw3Ny45MjA3MDg4IDEwLjI4NjI1NzcsNzMuOTg2OTI5MiBDMTAuMjgyNTEyMiw3NC4yMDYwNDQ4IDEwLjI4MjUxMjIsNzQuNDI2MDk2NyAxMC4yODI1MTIyLDc0LjY0NzA4NSBDMTAuMjgyNTEyMiwxMDAuMDk0NDUzIDI4LjM4NjcwMDMsMTIxLjMyMjQ0MyA1Mi40MTM1NjMsMTI2LjE0NjczIEM0OC4wMDU5Njk1LDEyNy4zNDcxODQgNDMuMzY2MTUwOSwxMjcuOTg4NjEyIDM4LjU3NTU3MzQsMTI3Ljk4ODYxMiBDMzUuMTkxNDU1NCwxMjcuOTg4NjEyIDMxLjkwMDk3NjYsMTI3LjY1OTkzOCAyOC42OTQ3NzMsMTI3LjA0NjYwMiBDMzUuMzc3Nzk3MywxNDcuOTEzMTQ1IDU0Ljc3NDIwNTMsMTYzLjA5NzY2NSA3Ny43NTY5OTE4LDE2My41MjE4NSBDNTkuNzgyMDI1NywxNzcuNjA3OTgzIDM3LjEzNTQwMzYsMTg2LjAwNDYwNCAxMi41Mjg5MTQ3LDE4Ni4wMDQ2MDQgQzguMjg5ODcxNjEsMTg2LjAwNDYwNCA0LjEwODg4NDc0LDE4NS43NTY0NiAwLDE4NS4yNzE0MDkgQzIzLjI0MzEwMzMsMjAwLjE3MzEzOSA1MC44NTA3MjYxLDIwOC44Njc1MzIgODAuNTEwOTE4NSwyMDguODY3NTMyIEMxNzcuMTE2NTI5LDIwOC44Njc1MzIgMjI5Ljk0Mzk3NywxMjguODM2OTgyIDIyOS45NDM5NzcsNTkuNDMyNjAwMiBDMjI5Ljk0Mzk3Nyw1Ny4xNTUyOTY4IDIyOS44OTM0MTIsNTQuODkwMTY2NCAyMjkuNzkyMjgyLDUyLjYzODE0NTQgQzI0MC4wNTMyNTcsNDUuMjMzMTYzNSAyNDguOTU4MzM4LDM1Ljk4MjU1NDUgMjU2LDI1LjQ1MDAyNTkiIGZpbGw9IiM1NWFjZWUiPjwvcGF0aD4KICAgIDwvZz4KPC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Twitter",
        "camel.apache.org/kamelet.namespace" : "Social"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Twitter Direct Message Source",
        "description" : "Allows to get all direct messages for your Twitter account.\n\nIt requires tokens that can be obtained by creating an application \nin the Twitter developer portal: https://developer.twitter.com/.",
        "required" : [ "user", "apiKey", "apiKeySecret", "accessToken", "accessTokenSecret" ],
        "type" : "object",
        "properties" : {
          "user" : {
            "title" : "User",
            "description" : "The user we want to read the direct messages",
            "type" : "string",
            "example" : "ApacheCamel"
          },
          "apiKey" : {
            "title" : "API Key",
            "description" : "The API Key from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "apiKeySecret" : {
            "title" : "API Key Secret",
            "description" : "The API Key Secret from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "The Access Token from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessTokenSecret" : {
            "title" : "Access Token Secret",
            "description" : "The Access Token Secret from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:twitter", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "twitter-directmessage:{{user}}",
          "parameters" : {
            "accessToken" : "{{accessToken}}",
            "accessTokenSecret" : "{{accessTokenSecret}}",
            "consumerKey" : "{{apiKey}}",
            "consumerSecret" : "{{apiKeySecret}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Twitter Direct Message Source",
      "description" : "Allows to get all direct messages for your Twitter account.\n\nIt requires tokens that can be obtained by creating an application \nin the Twitter developer portal: https://developer.twitter.com/.",
      "required" : [ "user", "apiKey", "apiKeySecret", "accessToken", "accessTokenSecret" ],
      "properties" : {
        "user" : {
          "type" : "string",
          "title" : "User",
          "description" : "The user we want to read the direct messages"
        },
        "apiKey" : {
          "type" : "string",
          "title" : "API Key",
          "description" : "The API Key from the Twitter application in the developer portal",
          "format" : "password"
        },
        "apiKeySecret" : {
          "type" : "string",
          "title" : "API Key Secret",
          "description" : "The API Key Secret from the Twitter application in the developer portal",
          "format" : "password"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "The Access Token from the Twitter application in the developer portal",
          "format" : "password"
        },
        "accessTokenSecret" : {
          "type" : "string",
          "title" : "Access Token Secret",
          "description" : "The Access Token Secret from the Twitter application in the developer portal",
          "format" : "password"
        }
      }
    }
  },
  "twitter-search-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "twitter-search-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjIwOXB4IiB2aWV3Qm94PSIwIDAgMjU2IDIwOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8Zz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1LjQ1MDAyNTkgQzI0Ni41ODA4NDEsMjkuNjI3MjY3MiAyMzYuNDU4NDUxLDMyLjQ1MDQ4NjggMjI1LjgzNDE1NiwzMy43MjAyMzMzIEMyMzYuNjc4NTAzLDI3LjIxOTgwNTMgMjQ1LjAwNTgzLDE2LjkyNjk5MjkgMjQ4LjkyNzQzNyw0LjY2MzA3Njg1IEMyMzguNzc5NzY1LDEwLjY4MTI2MzMgMjI3LjUzOTMyNSwxNS4wNTIzMzc2IDIxNS41NzU5OSwxNy40MDgyOTggQzIwNS45OTQ4MzUsNy4yMDA2OTcxIDE5Mi4zNDUwNiwwLjgyMiAxNzcuMjM5MTk3LDAuODIyIEMxNDguMjMyNjA1LDAuODIyIDEyNC43MTYwNzYsMjQuMzM3NTkzMSAxMjQuNzE2MDc2LDUzLjM0MjMxMTYgQzEyNC43MTYwNzYsNTcuNDU4Njg3NSAxMjUuMTgxNDYyLDYxLjQ2NzM3ODQgMTI2LjA3NjY1Miw2NS4zMTEyNjQ0IEM4Mi40MjU4Mzg1LDYzLjEyMTA0NTMgNDMuNzI1NzI1Miw0Mi4yMTE0MjkgMTcuODIxMzk4LDEwLjQzNTkyODggQzEzLjMwMDUwMTEsMTguMTkyOTkzOCAxMC43MTA0NDMsMjcuMjE1MTIzNCAxMC43MTA0NDMsMzYuODQwMjg4OSBDMTAuNzEwNDQzLDU1LjA2MTUyNiAxOS45ODM1MjU0LDcxLjEzNzQ5MDcgMzQuMDc2MjEzNSw4MC41NTU3MTM3IEMyNS40NjYwOTYxLDgwLjI4MzIyMzkgMTcuMzY4MTg0Niw3Ny45MjA3MDg4IDEwLjI4NjI1NzcsNzMuOTg2OTI5MiBDMTAuMjgyNTEyMiw3NC4yMDYwNDQ4IDEwLjI4MjUxMjIsNzQuNDI2MDk2NyAxMC4yODI1MTIyLDc0LjY0NzA4NSBDMTAuMjgyNTEyMiwxMDAuMDk0NDUzIDI4LjM4NjcwMDMsMTIxLjMyMjQ0MyA1Mi40MTM1NjMsMTI2LjE0NjczIEM0OC4wMDU5Njk1LDEyNy4zNDcxODQgNDMuMzY2MTUwOSwxMjcuOTg4NjEyIDM4LjU3NTU3MzQsMTI3Ljk4ODYxMiBDMzUuMTkxNDU1NCwxMjcuOTg4NjEyIDMxLjkwMDk3NjYsMTI3LjY1OTkzOCAyOC42OTQ3NzMsMTI3LjA0NjYwMiBDMzUuMzc3Nzk3MywxNDcuOTEzMTQ1IDU0Ljc3NDIwNTMsMTYzLjA5NzY2NSA3Ny43NTY5OTE4LDE2My41MjE4NSBDNTkuNzgyMDI1NywxNzcuNjA3OTgzIDM3LjEzNTQwMzYsMTg2LjAwNDYwNCAxMi41Mjg5MTQ3LDE4Ni4wMDQ2MDQgQzguMjg5ODcxNjEsMTg2LjAwNDYwNCA0LjEwODg4NDc0LDE4NS43NTY0NiAwLDE4NS4yNzE0MDkgQzIzLjI0MzEwMzMsMjAwLjE3MzEzOSA1MC44NTA3MjYxLDIwOC44Njc1MzIgODAuNTEwOTE4NSwyMDguODY3NTMyIEMxNzcuMTE2NTI5LDIwOC44Njc1MzIgMjI5Ljk0Mzk3NywxMjguODM2OTgyIDIyOS45NDM5NzcsNTkuNDMyNjAwMiBDMjI5Ljk0Mzk3Nyw1Ny4xNTUyOTY4IDIyOS44OTM0MTIsNTQuODkwMTY2NCAyMjkuNzkyMjgyLDUyLjYzODE0NTQgQzI0MC4wNTMyNTcsNDUuMjMzMTYzNSAyNDguOTU4MzM4LDM1Ljk4MjU1NDUgMjU2LDI1LjQ1MDAyNTkiIGZpbGw9IiM1NWFjZWUiPjwvcGF0aD4KICAgIDwvZz4KPC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Twitter",
        "camel.apache.org/kamelet.namespace" : "Social"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Twitter Search Source",
        "description" : "Allows to get all tweets on particular keywords from Twitter.\n\nIt requires tokens that can be obtained by creating an application \nin the Twitter developer portal: https://developer.twitter.com/.",
        "required" : [ "keywords", "apiKey", "apiKeySecret", "accessToken", "accessTokenSecret" ],
        "type" : "object",
        "properties" : {
          "keywords" : {
            "title" : "Keywords",
            "description" : "The keywords to use in the Twitter search (Supports Twitter standard operators)",
            "type" : "string",
            "example" : "Apache Camel"
          },
          "apiKey" : {
            "title" : "API Key",
            "description" : "The API Key from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "apiKeySecret" : {
            "title" : "API Key Secret",
            "description" : "The API Key Secret from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "The Access Token from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessTokenSecret" : {
            "title" : "Access Token Secret",
            "description" : "The Access Token Secret from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:twitter", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "twitter-search:{{keywords}}",
          "parameters" : {
            "accessToken" : "{{accessToken}}",
            "accessTokenSecret" : "{{accessTokenSecret}}",
            "consumerKey" : "{{apiKey}}",
            "consumerSecret" : "{{apiKeySecret}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Twitter Search Source",
      "description" : "Allows to get all tweets on particular keywords from Twitter.\n\nIt requires tokens that can be obtained by creating an application \nin the Twitter developer portal: https://developer.twitter.com/.",
      "required" : [ "keywords", "apiKey", "apiKeySecret", "accessToken", "accessTokenSecret" ],
      "properties" : {
        "keywords" : {
          "type" : "string",
          "title" : "Keywords",
          "description" : "The keywords to use in the Twitter search (Supports Twitter standard operators)"
        },
        "apiKey" : {
          "type" : "string",
          "title" : "API Key",
          "description" : "The API Key from the Twitter application in the developer portal",
          "format" : "password"
        },
        "apiKeySecret" : {
          "type" : "string",
          "title" : "API Key Secret",
          "description" : "The API Key Secret from the Twitter application in the developer portal",
          "format" : "password"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "The Access Token from the Twitter application in the developer portal",
          "format" : "password"
        },
        "accessTokenSecret" : {
          "type" : "string",
          "title" : "Access Token Secret",
          "description" : "The Access Token Secret from the Twitter application in the developer portal",
          "format" : "password"
        }
      }
    }
  },
  "twitter-timeline-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "twitter-timeline-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjIwOXB4IiB2aWV3Qm94PSIwIDAgMjU2IDIwOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8Zz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1LjQ1MDAyNTkgQzI0Ni41ODA4NDEsMjkuNjI3MjY3MiAyMzYuNDU4NDUxLDMyLjQ1MDQ4NjggMjI1LjgzNDE1NiwzMy43MjAyMzMzIEMyMzYuNjc4NTAzLDI3LjIxOTgwNTMgMjQ1LjAwNTgzLDE2LjkyNjk5MjkgMjQ4LjkyNzQzNyw0LjY2MzA3Njg1IEMyMzguNzc5NzY1LDEwLjY4MTI2MzMgMjI3LjUzOTMyNSwxNS4wNTIzMzc2IDIxNS41NzU5OSwxNy40MDgyOTggQzIwNS45OTQ4MzUsNy4yMDA2OTcxIDE5Mi4zNDUwNiwwLjgyMiAxNzcuMjM5MTk3LDAuODIyIEMxNDguMjMyNjA1LDAuODIyIDEyNC43MTYwNzYsMjQuMzM3NTkzMSAxMjQuNzE2MDc2LDUzLjM0MjMxMTYgQzEyNC43MTYwNzYsNTcuNDU4Njg3NSAxMjUuMTgxNDYyLDYxLjQ2NzM3ODQgMTI2LjA3NjY1Miw2NS4zMTEyNjQ0IEM4Mi40MjU4Mzg1LDYzLjEyMTA0NTMgNDMuNzI1NzI1Miw0Mi4yMTE0MjkgMTcuODIxMzk4LDEwLjQzNTkyODggQzEzLjMwMDUwMTEsMTguMTkyOTkzOCAxMC43MTA0NDMsMjcuMjE1MTIzNCAxMC43MTA0NDMsMzYuODQwMjg4OSBDMTAuNzEwNDQzLDU1LjA2MTUyNiAxOS45ODM1MjU0LDcxLjEzNzQ5MDcgMzQuMDc2MjEzNSw4MC41NTU3MTM3IEMyNS40NjYwOTYxLDgwLjI4MzIyMzkgMTcuMzY4MTg0Niw3Ny45MjA3MDg4IDEwLjI4NjI1NzcsNzMuOTg2OTI5MiBDMTAuMjgyNTEyMiw3NC4yMDYwNDQ4IDEwLjI4MjUxMjIsNzQuNDI2MDk2NyAxMC4yODI1MTIyLDc0LjY0NzA4NSBDMTAuMjgyNTEyMiwxMDAuMDk0NDUzIDI4LjM4NjcwMDMsMTIxLjMyMjQ0MyA1Mi40MTM1NjMsMTI2LjE0NjczIEM0OC4wMDU5Njk1LDEyNy4zNDcxODQgNDMuMzY2MTUwOSwxMjcuOTg4NjEyIDM4LjU3NTU3MzQsMTI3Ljk4ODYxMiBDMzUuMTkxNDU1NCwxMjcuOTg4NjEyIDMxLjkwMDk3NjYsMTI3LjY1OTkzOCAyOC42OTQ3NzMsMTI3LjA0NjYwMiBDMzUuMzc3Nzk3MywxNDcuOTEzMTQ1IDU0Ljc3NDIwNTMsMTYzLjA5NzY2NSA3Ny43NTY5OTE4LDE2My41MjE4NSBDNTkuNzgyMDI1NywxNzcuNjA3OTgzIDM3LjEzNTQwMzYsMTg2LjAwNDYwNCAxMi41Mjg5MTQ3LDE4Ni4wMDQ2MDQgQzguMjg5ODcxNjEsMTg2LjAwNDYwNCA0LjEwODg4NDc0LDE4NS43NTY0NiAwLDE4NS4yNzE0MDkgQzIzLjI0MzEwMzMsMjAwLjE3MzEzOSA1MC44NTA3MjYxLDIwOC44Njc1MzIgODAuNTEwOTE4NSwyMDguODY3NTMyIEMxNzcuMTE2NTI5LDIwOC44Njc1MzIgMjI5Ljk0Mzk3NywxMjguODM2OTgyIDIyOS45NDM5NzcsNTkuNDMyNjAwMiBDMjI5Ljk0Mzk3Nyw1Ny4xNTUyOTY4IDIyOS44OTM0MTIsNTQuODkwMTY2NCAyMjkuNzkyMjgyLDUyLjYzODE0NTQgQzI0MC4wNTMyNTcsNDUuMjMzMTYzNSAyNDguOTU4MzM4LDM1Ljk4MjU1NDUgMjU2LDI1LjQ1MDAyNTkiIGZpbGw9IiM1NWFjZWUiPjwvcGF0aD4KICAgIDwvZz4KPC9zdmc+",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Twitter",
        "camel.apache.org/kamelet.namespace" : "Social"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Twitter Timeline Source",
        "description" : "Allows to get tweets from the timeline of a specific user from Twitter.\n\nIt requires tokens that can be obtained by creating an application \nin the Twitter developer portal: https://developer.twitter.com/.",
        "required" : [ "user", "apiKey", "apiKeySecret", "accessToken", "accessTokenSecret" ],
        "type" : "object",
        "properties" : {
          "user" : {
            "title" : "User",
            "description" : "The user we want to read the timeline",
            "type" : "string",
            "example" : "ApacheCamel"
          },
          "apiKey" : {
            "title" : "API Key",
            "description" : "The API Key from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "apiKeySecret" : {
            "title" : "API Key Secret",
            "description" : "The API Key Secret from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessToken" : {
            "title" : "Access Token",
            "description" : "The Access Token from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          },
          "accessTokenSecret" : {
            "title" : "Access Token Secret",
            "description" : "The Access Token Secret from the Twitter application in the developer portal",
            "type" : "string",
            "format" : "password",
            "x-descriptors" : [ "urn:camel:group:credentials" ]
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:jackson", "camel:twitter", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "twitter-timeline:user",
          "parameters" : {
            "user" : "{{user}}",
            "accessToken" : "{{accessToken}}",
            "accessTokenSecret" : "{{accessTokenSecret}}",
            "consumerKey" : "{{apiKey}}",
            "consumerSecret" : "{{apiKeySecret}}"
          },
          "steps" : [ {
            "marshal" : {
              "json" : { }
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Twitter Timeline Source",
      "description" : "Allows to get tweets from the timeline of a specific user from Twitter.\n\nIt requires tokens that can be obtained by creating an application \nin the Twitter developer portal: https://developer.twitter.com/.",
      "required" : [ "user", "apiKey", "apiKeySecret", "accessToken", "accessTokenSecret" ],
      "properties" : {
        "user" : {
          "type" : "string",
          "title" : "User",
          "description" : "The user we want to read the timeline"
        },
        "apiKey" : {
          "type" : "string",
          "title" : "API Key",
          "description" : "The API Key from the Twitter application in the developer portal",
          "format" : "password"
        },
        "apiKeySecret" : {
          "type" : "string",
          "title" : "API Key Secret",
          "description" : "The API Key Secret from the Twitter application in the developer portal",
          "format" : "password"
        },
        "accessToken" : {
          "type" : "string",
          "title" : "Access Token",
          "description" : "The Access Token from the Twitter application in the developer portal",
          "format" : "password"
        },
        "accessTokenSecret" : {
          "type" : "string",
          "title" : "Access Token Secret",
          "description" : "The Access Token Secret from the Twitter application in the developer portal",
          "format" : "password"
        }
      }
    }
  },
  "value-to-key-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "value-to-key-action",
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      },
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Kafka"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Value to Key Action",
        "description" : "Replace the Kafka record key with a new key formed from a fields subset coming from the message body",
        "required" : [ "fields" ],
        "properties" : {
          "fields" : {
            "title" : "Fields",
            "description" : "Comma separated list of fields to be used to form the new key",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "dependencies" : [ "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.4.1", "camel:core", "camel:jackson", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "choice" : {
              "when" : [ {
                "simple" : "${header[Content-Type]} == 'application/json'",
                "steps" : [ {
                  "setProperty" : {
                    "name" : "deserialized",
                    "constant" : "true"
                  }
                }, {
                  "unmarshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                } ]
              } ]
            }
          }, {
            "setProperty" : {
              "name" : "fields",
              "constant" : "{{fields}}"
            }
          }, {
            "bean" : "org.apache.camel.kamelets.utils.transform.kafka.ValueToKey"
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "${exchangeProperty[deserialized]} == 'true'",
                "steps" : [ {
                  "marshal" : {
                    "json" : {
                      "library" : "Jackson",
                      "unmarshalType" : "com.fasterxml.jackson.databind.JsonNode"
                    }
                  }
                }, {
                  "setHeader" : {
                    "name" : "Content-Type",
                    "constant" : "application/json"
                  }
                } ]
              } ]
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Value to Key Action",
      "description" : "Replace the Kafka record key with a new key formed from a fields subset coming from the message body",
      "required" : [ "fields" ],
      "properties" : {
        "fields" : {
          "type" : "string",
          "title" : "Fields",
          "description" : "Comma separated list of fields to be used to form the new key"
        }
      }
    }
  },
  "velocity-template-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "velocity-template-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Velocity Template Action",
        "description" : "Apply a Velocity Template.",
        "required" : [ "template" ],
        "type" : "object",
        "properties" : {
          "template" : {
            "title" : "Template",
            "description" : "The inline template",
            "type" : "string",
            "example" : "file:////template.vm",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:velocity", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "velocity:",
              "parameters" : {
                "resourceUri" : "{{template}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Velocity Template Action",
      "description" : "Apply a Velocity Template.",
      "required" : [ "template" ],
      "properties" : {
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template"
        }
      }
    }
  },
  "webhook-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "webhook-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijk0NCAtNzcxIDI1MDAgMjMzNCI+PHBhdGggZD0iTTIxMTEuNCAyMTAuNWMtMTAzLjYgMTc0LjItMjAyLjkgMzQyLjktMzA0LjIgNTEwLjMtMjYgNDMtMzguOSA3OC0xOC4xIDEzMi42IDU3LjQgMTUwLjktMjMuNiAyOTcuOC0xNzUuOCAzMzcuNi0xNDMuNSAzNy42LTI4My40LTU2LjctMzExLjgtMjEwLjQtMjUuMi0xMzYgODAuMy0yNjkuMyAyMzAuMy0yOTAuNiAxMi42LTEuOCAyNS40LTIgNDYuNS0zLjZsMjI4LjEtMzgyLjVjLTE0My41LTE0Mi43LTIyOC45LTMwOS40LTIxMC01MTYgMTMuNC0xNDYuMSA3MC44LTI3Mi4zIDE3NS44LTM3NS44IDIwMS0xOTguMSA1MDcuOC0yMzAuMiA3NDQuNS03OC4xIDIyNy40IDE0Ni4xIDMzMS41IDQzMC42IDI0Mi44IDY3NC4xLTY2LjktMTguMS0xMzQuMy0zNi40LTIwOC40LTU2LjUgMjcuOS0xMzUuNCA3LjMtMjU3LTg0LjEtMzYxLjEtNjAuMy02OC44LTEzNy44LTEwNC44LTIyNS44LTExOC4xLTE3Ni41LTI2LjctMzQ5LjggODYuNy00MDEuMiAyNTkuOS01OC4zIDE5Ni42IDMwIDM1Ny4yIDI3MS40IDQ3OC4yeiIgZmlsbD0iI2M3M2E2MyIvPjxwYXRoIGQ9Ik0yNDA3LjMgNC41YzczIDEyOC44IDE0Ny4xIDI1OS41IDIyMC42IDM4OSAzNzEuMy0xMTQuOSA2NTEuMiA5MC43IDc1MS43IDMxMC43IDEyMS4zIDI2NS44IDM4LjQgNTgwLjYtMTk5LjkgNzQ0LjYtMjQ0LjUgMTY4LjMtNTUzLjggMTM5LjYtNzcwLjQtNzYuNyA1NS4yLTQ2LjIgMTEwLjctOTIuNiAxNzAtMTQyLjIgMjE0IDEzOC42IDQwMS4xIDEzMi4xIDU0MC4xLTMyLjEgMTE4LjUtMTQwIDExNS45LTM0OC44LTYtNDg1LjgtMTQwLjctMTU4LjItMzI5LjItMTYzLTU1Ny0xMS4yLTk0LjUtMTY3LjctMTkwLjYtMzM0LTI4Mi4yLTUwMi44LTMwLjktNTYuOS02NC45LTg5LjktMTM0LjUtMTAyLTExNi4xLTIwLjEtMTkxLjEtMTE5LjktMTk1LjYtMjMxLjYtNC40LTExMC41IDYwLjctMjEwLjQgMTYyLjQtMjQ5LjMgMTAwLjgtMzguNiAyMTkuMS03LjQgMjg2LjkgNzguMyA1NS40IDcwIDczIDE0OC44IDQzLjkgMjM1LjItOC4xIDI0LjEtMTguNiA0Ny40LTMwIDc1Ljl6IiBmaWxsPSIjNGI0YjRiIi8+PHBhdGggZD0iTTI1ODEuOCAxMDU3LjJoLTQ0N2MtNDIuOCAxNzYuMi0xMzUuNCAzMTguNS0yOTQuOCA0MDguOS0xMjQgNzAuMy0yNTcuNSA5NC4yLTM5OS43IDcxLjItMjYxLjgtNDIuMi00NzUuOS0yNzcuOS00OTQuNy01NDMuMy0yMS4zLTMwMC42IDE4NS4zLTU2Ny44IDQ2MC43LTYyNy45IDE5IDY5LjEgMzguMiAxMzguOCA1Ny4yIDIwNy43LTI1Mi43IDEyOC45LTM0MC4yIDI5MS40LTI2OS40IDQ5NC41IDYyLjMgMTc4LjggMjM5LjEgMjc2LjcgNDMxLjEgMjM4LjggMTk2LjEtMzguNyAyOTUtMjAxLjcgMjgyLjktNDYzLjIgMTg1LjkgMCAzNzItMS45IDU1Ny45LjkgNzIuNiAxLjEgMTI4LjYtNi40IDE4My4zLTcwLjQgOTAtMTA1LjMgMjU1LjgtOTUuOCAzNTIuNyAzLjcgOTkuMSAxMDEuNyA5NC40IDI2NS4yLTEwLjUgMzYyLjYtMTAxLjIgOTMuOS0yNjEgODguOS0zNTUuNy0xMi4zLTE5LjUtMjAuOC0zNC44LTQ1LjUtNTQtNzEuMnoiIGZpbGw9IiM0YTRhNGEiLz48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Webhook",
        "camel.apache.org/kamelet.namespace" : "Cloud"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "Webhook Source",
        "description" : "Creates an HTTP endpoint that can be used as a bridge to forward data to the Kamelet sink.\n\nThe \"subpath\" parameter of the Webhook source allows to customize the subpath where the integration will respond to HTTP requests.\nIt's common to use a non-guessable ID for that parameter.\n\nWhen the \"subpath\" parameter is set to \"webhook\" (default), the integration will accept requests at the \"https://integration-external-url/webhook\" endpoint.",
        "type" : "object",
        "properties" : {
          "subpath" : {
            "title" : "Subpath",
            "description" : "The subpath where the webhook is registered\n",
            "type" : "string",
            "default" : "webhook"
          }
        }
      },
      "dependencies" : [ "camel:platform-http", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "platform-http:///{{subpath}}",
          "steps" : [ {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "Webhook Source",
      "description" : "Creates an HTTP endpoint that can be used as a bridge to forward data to the Kamelet sink.\n\nThe \"subpath\" parameter of the Webhook source allows to customize the subpath where the integration will respond to HTTP requests.\nIt's common to use a non-guessable ID for that parameter.\n\nWhen the \"subpath\" parameter is set to \"webhook\" (default), the integration will accept requests at the \"https://integration-external-url/webhook\" endpoint.",
      "properties" : {
        "subpath" : {
          "type" : "string",
          "title" : "Subpath",
          "description" : "The subpath where the webhook is registered\n",
          "default" : "webhook"
        }
      }
    }
  },
  "wttrin-source" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "wttrin-source",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1zdW4iIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1zdW4iIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOTYgMjA4YzAtNjEuODYgNTAuMTQtMTExLjEgMTExLjEtMTExLjFjNTIuNjUgMCA5Ni41IDM2LjQ1IDEwOC41IDg1LjQyQzMzNC43IDE3My4xIDM1NC43IDE2OCAzNzUuMSAxNjhjNC42MDcgMCA5LjE1MiAuMzgwOSAxMy42OCAuODIwM2wyNC4xMy0zNC43NmM1LjE0NS03LjQxNCAuODk2NS0xNy42Ny03Ljk4NC0xOS4yN0wzMTcuMiA5OC43OEwzMDEuMiAxMC4yMUMyOTkuNiAxLjMyNSAyODkuNC0yLjkxOSAyODEuOSAyLjIyNkwyMDggNTMuNTRMMTM0LjEgMi4yMjVDMTI2LjYtMi45MiAxMTYuNCAxLjMyNiAxMTQuOCAxMC4yMUw5OC43OCA5OC43OEwxMC4yMSAxMTQuOEMxLjMyNiAxMTYuNC0yLjkyMiAxMjYuNyAyLjIyMyAxMzQuMWw1MS4zIDczLjk0TDIuMjI0IDI4MS45Yy01LjE0NSA3LjQxNC0uODk3NSAxNy42NyA3Ljk4MyAxOS4yN0w5OC43OCAzMTcuMmwxNi4wMSA4OC41OGMxLjYwNCA4Ljg4MSAxMS44NiAxMy4xMyAxOS4yNyA3Ljk4MmwxMC43MS03LjQzMmMyLjcyNS0zNS4xNSAxOS44NS02Ni41MSA0NS44My04OC4xQzEzNy4xIDMwOS44IDk2IDI2My45IDk2IDIwOHpNMTI4IDIwOGMwIDQ0LjE4IDM1LjgyIDgwIDgwIDgwYzkuNzI5IDAgMTguOTMtMS45OTYgMjcuNTYtNS4xNzZjNy4wMDItMzMuNjUgMjUuNTMtNjIuODUgNTEuNTctODMuNDRDMjgyLjggMTU5LjMgMjQ5LjIgMTI4IDIwOCAxMjhDMTYzLjggMTI4IDEyOCAxNjMuOCAxMjggMjA4ek01NzUuMiAzMjUuNmMuMTI1LTIgLjc0NTMtMy43NDQgLjc0NTMtNS42MTljMC0zNS4zOC0yOC43NS02NC02My4xLTY0Yy0xMi42MiAwLTI0LjI1IDMuNzQ5LTM0LjEzIDkuOTk5Yy0xNy42Mi0zOC44OC01Ni41LTY1LjEtMTAxLjktNjUuMWMtNjEuNzUgMC0xMTIgNTAuMTItMTEyIDExMS4xYzAgMyAuNzUyMiA1Ljc0MyAuODc3MiA4LjYxOGMtNDkuNjMgMy43NS04OC44OCA0NC43NC04OC44OCA5NS4zN0MxNzUuMSA0NjkgMjE4LjEgNTEyIDI3MS4xIDUxMmgyNzJjNTMgMCA5Ni00Mi45OSA5Ni05NS45OUM2MzkuMSAzNzMuOSA2MTIuNyAzMzguNiA1NzUuMiAzMjUuNnoiPjwvcGF0aD48L3N2Zz4=",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Weather",
        "camel.apache.org/kamelet.namespace" : "Dataset"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "source"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "wttr.in Source",
        "description" : "Get weather forecasts from the wttr.in weather forecast service",
        "type" : "object",
        "properties" : {
          "period" : {
            "title" : "Period",
            "description" : "The interval between fetches to the wttr.in service in milliseconds",
            "type" : "integer",
            "default" : 60000
          },
          "wttrLocation" : {
            "title" : "Location",
            "description" : "The location to get weather forecasts",
            "type" : "string",
            "example" : "\"paris\", \"~Eiffel+tower\", \"Москва\", \"muc\", \"@stackoverflow.com\", \"94107\", \"-78.46,106.79\""
          },
          "wttrLanguage" : {
            "title" : "Language",
            "description" : "The language to use for displaying weather forecasts",
            "type" : "string",
            "example" : "am ar af be bn ca da de el et fr fa hi hu ia id it lt mg nb nl oc pl pt-br ro ru ta tr th uk vi zh-cn zh-tw"
          },
          "output" : {
            "title" : "Output Type",
            "description" : "The type of output",
            "type" : "string",
            "example" : "current, weather, full",
            "default" : "current"
          }
        }
      },
      "types" : {
        "out" : {
          "mediaType" : "application/json"
        }
      },
      "dependencies" : [ "camel:core", "camel:http", "camel:jackson", "camel:jsonpath", "camel:kamelet", "camel:timer" ],
      "template" : {
        "from" : {
          "uri" : "timer:wttr.in",
          "parameters" : {
            "period" : "{{period}}"
          },
          "steps" : [ {
            "to" : "https://wttr.in/{{?wttrLocation}}?format=j1&lang={{?wttrLanguage}}"
          }, {
            "choice" : {
              "when" : [ {
                "simple" : "'{{output}}' == 'current'",
                "steps" : [ {
                  "transform" : {
                    "jsonpath" : "$.current_condition[0]"
                  }
                }, {
                  "marshal" : {
                    "json" : { }
                  }
                } ]
              }, {
                "simple" : "'{{output}}' == 'weather'",
                "steps" : [ {
                  "transform" : {
                    "jsonpath" : "$.weather"
                  }
                }, {
                  "marshal" : {
                    "json" : { }
                  }
                } ]
              } ]
            }
          }, {
            "to" : "kamelet:sink"
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "wttr.in Source",
      "description" : "Get weather forecasts from the wttr.in weather forecast service",
      "properties" : {
        "period" : {
          "type" : "integer",
          "title" : "Period",
          "description" : "The interval between fetches to the wttr.in service in milliseconds",
          "default" : 60000
        },
        "wttrLocation" : {
          "type" : "string",
          "title" : "Location",
          "description" : "The location to get weather forecasts"
        },
        "wttrLanguage" : {
          "type" : "string",
          "title" : "Language",
          "description" : "The language to use for displaying weather forecasts"
        },
        "output" : {
          "type" : "string",
          "title" : "Output Type",
          "description" : "The type of output",
          "default" : "current"
        }
      }
    }
  },
  "xj-identity-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "xj-identity-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "XJ Identity Action",
        "description" : "Apply the XJ Identity Transformation to transform JSON to XML and XML to JSON. ",
        "required" : [ "direction" ],
        "type" : "object",
        "properties" : {
          "direction" : {
            "title" : "Direction",
            "description" : "The transform direction.",
            "type" : "string",
            "enum" : [ "XML2JSON", "JSON2XML" ]
          }
        }
      },
      "dependencies" : [ "camel:xj", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "xj:identity",
              "parameters" : {
                "transformDirection" : "{{direction}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "XJ Identity Action",
      "description" : "Apply the XJ Identity Transformation to transform JSON to XML and XML to JSON. ",
      "required" : [ "direction" ],
      "properties" : {
        "direction" : {
          "type" : "string",
          "title" : "Direction",
          "description" : "The transform direction.",
          "enum" : [ "XML2JSON", "JSON2XML" ]
        }
      }
    }
  },
  "xj-template-action" : {
    "apiVersion" : "camel.apache.org/v1",
    "kind" : "Kamelet",
    "metadata" : {
      "name" : "xj-template-action",
      "annotations" : {
        "camel.apache.org/kamelet.support.level" : "Stable",
        "camel.apache.org/catalog.version" : "4.4.1",
        "camel.apache.org/kamelet.icon" : "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAtMjU2IDE3OTIgMTc5MiIKICAgaWQ9InN2ZzMwMjUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHdpZHRoPSIxMDAlIgogICBoZWlnaHQ9IjEwMCUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvZ19mb250X2F3ZXNvbWUuc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEzMDM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzAzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjY0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI0ODAiCiAgICAgaWQ9Im5hbWVkdmlldzMwMzEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMTMxNjk2NDMiCiAgICAgaW5rc2NhcGU6Y3g9Ijg5NiIKICAgICBpbmtzY2FwZTpjeT0iODk2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzMwMjUiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwxMjEuNDkxNTMsMTI4NS40MjM3KSIKICAgICBpZD0iZzMwMjciPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTAyNCw2NDAgcSAwLDEwNiAtNzUsMTgxIC03NSw3NSAtMTgxLDc1IC0xMDYsMCAtMTgxLC03NSAtNzUsLTc1IC03NSwtMTgxIDAsLTEwNiA3NSwtMTgxIDc1LC03NSAxODEsLTc1IDEwNiwwIDE4MSw3NSA3NSw3NSA3NSwxODEgeiBtIDUxMiwxMDkgViA1MjcgcSAwLC0xMiAtOCwtMjMgLTgsLTExIC0yMCwtMTMgbCAtMTg1LC0yOCBxIC0xOSwtNTQgLTM5LC05MSAzNSwtNTAgMTA3LC0xMzggMTAsLTEyIDEwLC0yNSAwLC0xMyAtOSwtMjMgLTI3LC0zNyAtOTksLTEwOCAtNzIsLTcxIC05NCwtNzEgLTEyLDAgLTI2LDkgbCAtMTM4LDEwOCBxIC00NCwtMjMgLTkxLC0zOCAtMTYsLTEzNiAtMjksLTE4NiAtNywtMjggLTM2LC0yOCBIIDY1NyBxIC0xNCwwIC0yNC41LDguNSBRIDYyMiwtMTExIDYyMSwtOTggTCA1OTMsODYgcSAtNDksMTYgLTkwLDM3IEwgMzYyLDE2IFEgMzUyLDcgMzM3LDcgMzIzLDcgMzEyLDE4IDE4NiwxMzIgMTQ3LDE4NiBxIC03LDEwIC03LDIzIDAsMTIgOCwyMyAxNSwyMSA1MSw2Ni41IDM2LDQ1LjUgNTQsNzAuNSAtMjcsNTAgLTQxLDk5IEwgMjksNDk1IFEgMTYsNDk3IDgsNTA3LjUgMCw1MTggMCw1MzEgdiAyMjIgcSAwLDEyIDgsMjMgOCwxMSAxOSwxMyBsIDE4NiwyOCBxIDE0LDQ2IDM5LDkyIC00MCw1NyAtMTA3LDEzOCAtMTAsMTIgLTEwLDI0IDAsMTAgOSwyMyAyNiwzNiA5OC41LDEwNy41IDcyLjUsNzEuNSA5NC41LDcxLjUgMTMsMCAyNiwtMTAgbCAxMzgsLTEwNyBxIDQ0LDIzIDkxLDM4IDE2LDEzNiAyOSwxODYgNywyOCAzNiwyOCBoIDIyMiBxIDE0LDAgMjQuNSwtOC41IFEgOTE0LDEzOTEgOTE1LDEzNzggbCAyOCwtMTg0IHEgNDksLTE2IDkwLC0zNyBsIDE0MiwxMDcgcSA5LDkgMjQsOSAxMywwIDI1LC0xMCAxMjksLTExOSAxNjUsLTE3MCA3LC04IDcsLTIyIDAsLTEyIC04LC0yMyAtMTUsLTIxIC01MSwtNjYuNSAtMzYsLTQ1LjUgLTU0LC03MC41IDI2LC01MCA0MSwtOTggbCAxODMsLTI4IHEgMTMsLTIgMjEsLTEyLjUgOCwtMTAuNSA4LC0yMy41IHoiCiAgICAgICBpZD0icGF0aDMwMjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIiAvPgogIDwvZz4KPC9zdmc+Cg==",
        "camel.apache.org/provider" : "Apache Software Foundation",
        "camel.apache.org/kamelet.group" : "Actions",
        "camel.apache.org/kamelet.namespace" : "Transformation"
      },
      "labels" : {
        "camel.apache.org/kamelet.type" : "action"
      }
    },
    "spec" : {
      "definition" : {
        "title" : "XJ Template Action",
        "description" : "Apply the XJ Template Transformation to transform JSON to XML and XML to JSON. ",
        "required" : [ "direction", "template" ],
        "type" : "object",
        "properties" : {
          "direction" : {
            "title" : "Direction",
            "description" : "The transform direction.",
            "type" : "string",
            "enum" : [ "XML2JSON", "JSON2XML" ]
          },
          "template" : {
            "title" : "Template",
            "description" : "The inline template to apply a transformation through template.",
            "type" : "string",
            "example" : "file:////template.vm",
            "pattern" : "^(http|https|file|classpath)://.*"
          }
        }
      },
      "dependencies" : [ "camel:xj", "camel:kamelet" ],
      "template" : {
        "from" : {
          "uri" : "kamelet:source",
          "steps" : [ {
            "to" : {
              "uri" : "xj:",
              "parameters" : {
                "resourceUri" : "{{template}}",
                "transformDirection" : "{{direction}}"
              }
            }
          } ]
        }
      }
    },
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-07/schema#",
      "type" : "object",
      "title" : "XJ Template Action",
      "description" : "Apply the XJ Template Transformation to transform JSON to XML and XML to JSON. ",
      "required" : [ "direction", "template" ],
      "properties" : {
        "direction" : {
          "type" : "string",
          "title" : "Direction",
          "description" : "The transform direction.",
          "enum" : [ "XML2JSON", "JSON2XML" ]
        },
        "template" : {
          "type" : "string",
          "title" : "Template",
          "description" : "The inline template to apply a transformation through template."
        }
      }
    }
  }
}