{
  "factory": {
    "id": "mongo-connection",
    "type": "entaxy.runtime.connection",
    "parent": "abstract-connection",
    "isAbstract": false,
    "camelOriginComponent": "mongodb",
    "label": "database,nosql,mongodb",
    "description": "MongoDB is a very popular NoSQL solution and the camel-mongodb component integrates Camel with MongoDB allowing you to interact with MongoDB collections both as a producer (performing operations on the collection) and as a consumer (consuming documents from a MongoDB collection). For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
    "displayName": "MONGODB",
    "camelOrigin": "camel-mongodb",
    "camelOriginJavaType": "org.apache.camel.component.mongodb.MongoDbComponent"
  },
  "entaxy.runtime.connection": {},
  "fields": {
    "bridgeErrorHandler": {
      "displayName": "Bridge Error Handler",
      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "consumer",
      "type": "boolean",
      "required": false,
      "hidden": false,
      "defaultValue": false,
      "group": "consumer",
      "##origin": "camel",
      "kind": [
        "property",
        "parameter"
      ],
      "##camelDiff": {
        "old": {
          "javaType": "boolean",
          "deprecated": false
        },
        "new": {
          "javaType": "boolean",
          "deprecated": false
        }
      }
    },
    "lazyStartProducer": {
      "displayName": "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\u0027s 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. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "producer",
      "type": "boolean",
      "required": false,
      "hidden": false,
      "defaultValue": false,
      "group": "producer",
      "##origin": "camel",
      "kind": [
        "property",
        "parameter"
      ],
      "##camelDiff": {
        "old": {
          "javaType": "boolean",
          "deprecated": false
        },
        "new": {
          "javaType": "boolean",
          "deprecated": false
        }
      }
    },
    "basicPropertyBinding": {
      "displayName": "Basic Property Binding",
      "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "advanced",
      "type": "boolean",
      "required": false,
      "hidden": false,
      "defaultValue": false,
      "group": "advanced",
      "##origin": "camel",
      "kind": [
        "property",
        "parameter"
      ],
      "##camelDiff": {
        "old": {
          "javaType": "boolean",
          "deprecated": false
        },
        "new": {
          "javaType": "boolean",
          "deprecated": false
        }
      }
    },
    "connectionBean": {
      "displayName": "Connection Bean",
      "description": "Sets the connection bean reference used to lookup a client for connecting to a database. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "",
      "type": "string",
      "kind": "path",
      "required": true,
      "hidden": false,
      "group": "common",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false,
        "deprecationNote": ""
      }
    },
    "collection": {
      "displayName": "Collection",
      "description": "Sets the name of the MongoDB collection to bind to this endpoint For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "common",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "collectionIndex": {
      "displayName": "Collection Index",
      "description": "Sets the collection index (JSON FORMAT : { field1 : order1, field2 : order2}) For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "common",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "createCollection": {
      "displayName": "Create Collection",
      "description": "Create collection during initialisation if it doesn\u0027t exist. Default is true. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "",
      "type": "boolean",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": true,
      "group": "common",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "boolean",
        "deprecated": false
      }
    },
    "database": {
      "displayName": "Database",
      "description": "Sets the name of the MongoDB database to target For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "common",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "operation": {
      "displayName": "Operation",
      "description": "Sets the operation this endpoint will execute against MongoDB. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "common",
      "@TYPEINFO": {
        "type": "enum",
        "values": [
          "findById",
          "findOneByQuery",
          "findAll",
          "findDistinct",
          "insert",
          "save",
          "update",
          "remove",
          "bulkWrite",
          "aggregate",
          "getDbStats",
          "getColStats",
          "count",
          "command"
        ]
      },
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "org.apache.camel.component.mongodb.MongoDbOperation",
        "deprecated": false
      }
    },
    "outputType": {
      "displayName": "Output Type",
      "description": "Convert the output of the producer to the selected type : DocumentList Document or MongoIterable. DocumentList or MongoIterable applies to findAll and aggregate. Document applies to all other operations. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "common",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "common",
      "@TYPEINFO": {
        "type": "enum",
        "values": [
          "DocumentList",
          "Document",
          "MongoIterable"
        ]
      },
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "org.apache.camel.component.mongodb.MongoDbOutputType",
        "deprecated": false
      }
    },
    "consumerType": {
      "displayName": "Consumer Type",
      "description": "Consumer type. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "consumer",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "consumer",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "exceptionHandler": {
      "displayName": "Exception Handler",
      "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "consumer,advanced",
      "type": "object",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "consumer (advanced)",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "org.apache.camel.spi.ExceptionHandler",
        "optionalPrefix": "consumer.",
        "deprecated": false
      }
    },
    "exchangePattern": {
      "displayName": "Exchange Pattern",
      "description": "Sets the exchange pattern when the consumer creates an exchange. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "consumer,advanced",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "consumer (advanced)",
      "@TYPEINFO": {
        "type": "enum",
        "values": [
          "InOnly",
          "InOut",
          "InOptionalOut"
        ]
      },
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "org.apache.camel.ExchangePattern",
        "deprecated": false
      }
    },
    "cursorRegenerationDelay": {
      "displayName": "Cursor Regeneration Delay",
      "description": "MongoDB tailable cursors will block until new data arrives. If no new data is inserted, after some time the cursor will be automatically freed and closed by the MongoDB server. The client is expected to regenerate the cursor if needed. This value specifies the time to wait before attempting to fetch a new cursor, and if the attempt fails, how long before the next attempt is made. Default value is 1000ms. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "advanced",
      "type": "duration",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": "1000",
      "group": "advanced",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "long",
        "deprecated": false
      }
    },
    "dynamicity": {
      "displayName": "Dynamicity",
      "description": "Sets whether this endpoint will attempt to dynamically resolve the target database and collection from the incoming Exchange properties. Can be used to override at runtime the database and collection specified on the otherwise static endpoint URI. It is disabled by default to boost performance. Enabling it will take a minimal performance hit. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "advanced",
      "type": "boolean",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": false,
      "group": "advanced",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "boolean",
        "deprecated": false
      }
    },
    "readPreference": {
      "displayName": "Read Preference",
      "description": "Configure how MongoDB clients route read operations to the members of a replica set. Possible values are PRIMARY, PRIMARY_PREFERRED, SECONDARY, SECONDARY_PREFERRED or NEAREST For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "advanced",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": "PRIMARY",
      "group": "advanced",
      "@TYPEINFO": {
        "type": "enum",
        "values": [
          "PRIMARY",
          "PRIMARY_PREFERRED",
          "SECONDARY",
          "SECONDARY_PREFERRED",
          "NEAREST"
        ]
      },
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "synchronous": {
      "displayName": "Synchronous",
      "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "advanced",
      "type": "boolean",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": false,
      "group": "advanced",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "boolean",
        "deprecated": false
      }
    },
    "writeConcern": {
      "displayName": "Write Concern",
      "description": "Configure the connection bean with the level of acknowledgment requested from MongoDB for write operations to a standalone mongod, replicaset or cluster. Possible values are ACKNOWLEDGED, W1, W2, W3, UNACKNOWLEDGED, JOURNALED or MAJORITY. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "advanced",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": "ACKNOWLEDGED",
      "group": "advanced",
      "@TYPEINFO": {
        "type": "enum",
        "values": [
          "ACKNOWLEDGED",
          "W1",
          "W2",
          "W3",
          "UNACKNOWLEDGED",
          "JOURNALED",
          "MAJORITY"
        ]
      },
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "writeResultAsHeader": {
      "displayName": "Write Result As Header",
      "description": "In write operations, it determines whether instead of returning WriteResult as the body of the OUT message, we transfer the IN message to the OUT and attach the WriteResult as a header. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "advanced",
      "type": "boolean",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": false,
      "group": "advanced",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "boolean",
        "deprecated": false
      }
    },
    "streamFilter": {
      "displayName": "Stream Filter",
      "description": "Filter condition for change streams consumer. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "changeStream",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "changeStream",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "persistentId": {
      "displayName": "Persistent Id",
      "description": "One tail tracking collection can host many trackers for several tailable consumers. To keep them separate, each tracker should have its own unique persistentId. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "tail",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "tail",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "persistentTailTracking": {
      "displayName": "Persistent Tail Tracking",
      "description": "Enable persistent tail tracking, which is a mechanism to keep track of the last consumed message across system restarts. The next time the system is up, the endpoint will recover the cursor from the point where it last stopped slurping records. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "tail",
      "type": "boolean",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "defaultValue": false,
      "group": "tail",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "boolean",
        "deprecated": false
      }
    },
    "tailTrackCollection": {
      "displayName": "Tail Track Collection",
      "description": "Collection where tail tracking information will be persisted. If not specified, MongoDbTailTrackingConfig#DEFAULT_COLLECTION will be used by default. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "tail",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "tail",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "tailTrackDb": {
      "displayName": "Tail Track Db",
      "description": "Indicates what database the tail tracking mechanism will persist to. If not specified, the current database will be picked by default. Dynamicity will not be taken into account even if enabled, i.e. the tail tracking database will not vary past endpoint initialisation. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "tail",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "tail",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "tailTrackField": {
      "displayName": "Tail Track Field",
      "description": "Field where the last tracked value will be placed. If not specified, MongoDbTailTrackingConfig#DEFAULT_FIELD will be used by default. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "tail",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "tail",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    },
    "tailTrackIncreasingField": {
      "displayName": "Tail Track Increasing Field",
      "description": "Correlation field in the incoming record which is of increasing nature and will be used to position the tailing cursor every time it is generated. The cursor will be (re)created with a query of type: tailTrackIncreasingField greater than lastValue (possibly recovered from persistent tail tracking). Can be of type Integer, Date, String, etc. NOTE: No support for dot notation at the current time, so the field should be at the top level of the document. For more details see <a target=\"_blank\" href=\"https://camel-docs.entaxy.ru/components/${camel-docs.version}/mongodb-component.html\">Camel docs</a>",
      "label": "tail",
      "type": "string",
      "kind": "parameter",
      "required": false,
      "hidden": false,
      "group": "tail",
      "##origin": "camel",
      "##camelDiff": {
        "javaType": "java.lang.String",
        "deprecated": false
      }
    }
  },
  "##camel": {
    "settings": {
      "import": {
        "factory": {
          "attributes": {
            "name": [
              "id",
              "camelOriginComponent"
            ],
            "label": {
              "target": "label",
              "replaceIfEmpty": true
            },
            "description": {
              "target": "description",
              "policy": "firstOnly",
              "replaceIfEmpty": true
            },
            "artifactId": "camelOrigin",
            "javaType": "camelOriginJavaType"
          }
        },
        "fileds": {
          "attributes": {
            "displayName": "displayName",
            "description": {
              "target": "description",
              "policy": "firstOnly"
            },
            "label": "label",
            "type": {
              "target": "type",
              "map": {
                "integer": "number"
              }
            },
            "kind": {
              "target": "kind",
              "policy": "both"
            },
            "required": "required",
            "secret": "hidden",
            "defaultValue": {
              "target": "defaultValue",
              "convertTo": "@type"
            },
            "group": "group",
            "enum": {
              "target": "@TYPEINFO/values",
              "targetObject": {
                "@TYPEINFO": {
                  "type": "enum"
                }
              }
            }
          }
        },
        "outputs": {
          "init": {
            "fields": {
              "@IMPORT": [
                {
                  "sourceFactoryId": "#",
                  "location": "fields",
                  "prefix": "camel_",
                  "filter": {
                    "contains": [
                      {
                        "attribute": "kind",
                        "values": [
                          "property"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          },
          "path": {
            "fields": {
              "@IMPORT": [
                {
                  "sourceFactoryId": "#",
                  "location": "fields",
                  "prefix": "camel_",
                  "filter": {
                    "contains": [
                      {
                        "attribute": "kind",
                        "values": [
                          "path"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          },
          "consumer": {
            "fields": {
              "@IMPORT": [
                {
                  "sourceFactoryId": "#",
                  "location": "fields",
                  "prefix": "camel_",
                  "filter": {
                    "contains": [
                      {
                        "attribute": "kind",
                        "values": [
                          "parameter"
                        ]
                      },
                      {
                        "attribute": "label",
                        "inverse": true,
                        "values": [
                          "producer"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          },
          "producer": {
            "fields": {
              "@IMPORT": [
                {
                  "sourceFactoryId": "#",
                  "location": "fields",
                  "prefix": "camel_",
                  "filter": {
                    "contains": [
                      {
                        "attribute": "kind",
                        "values": [
                          "parameter"
                        ]
                      },
                      {
                        "attribute": "label",
                        "inverse": true,
                        "values": [
                          "consumer"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          },
          "__objects": {
            "fields": {
              "@IMPORT": [
                {
                  "sourceFactoryId": "#",
                  "location": "fields",
                  "prefix": "",
                  "filter": {
                    "contains": [
                      {
                        "attribute": "type",
                        "values": [
                          "Object",
                          "object"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      }
    },
    "origin": {
      "component": {
        "kind": "component",
        "name": "mongodb",
        "title": "MongoDB",
        "description": "Perform operations on MongoDB documents and collections.",
        "deprecated": false,
        "firstVersion": "2.19.0",
        "label": "database,nosql",
        "javaType": "org.apache.camel.component.mongodb.MongoDbComponent",
        "supportLevel": "Stable",
        "groupId": "org.apache.camel",
        "artifactId": "camel-mongodb",
        "version": "3.4.5",
        "scheme": "mongodb",
        "extendsScheme": "",
        "syntax": "mongodb:connectionBean",
        "async": false,
        "consumerOnly": false,
        "producerOnly": false,
        "lenientProperties": false
      },
      "componentProperties": {
        "mongoConnection": {
          "kind": "property",
          "displayName": "Mongo Connection",
          "group": "common",
          "required": false,
          "type": "object",
          "javaType": "com.mongodb.client.MongoClient",
          "deprecated": false,
          "secret": false,
          "description": "A connection client provided externally"
        },
        "bridgeErrorHandler": {
          "kind": "property",
          "displayName": "Bridge Error Handler",
          "group": "consumer",
          "label": "consumer",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored."
        },
        "lazyStartProducer": {
          "kind": "property",
          "displayName": "Lazy Start Producer",
          "group": "producer",
          "label": "producer",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "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\u0027s 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."
        },
        "basicPropertyBinding": {
          "kind": "property",
          "displayName": "Basic Property Binding",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities"
        }
      },
      "properties": {
        "connectionBean": {
          "kind": "path",
          "displayName": "Connection Bean",
          "group": "common",
          "label": "",
          "required": true,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "deprecationNote": "",
          "secret": false,
          "description": "Sets the connection bean reference used to lookup a client for connecting to a database."
        },
        "collection": {
          "kind": "parameter",
          "displayName": "Collection",
          "group": "common",
          "label": "",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Sets the name of the MongoDB collection to bind to this endpoint"
        },
        "collectionIndex": {
          "kind": "parameter",
          "displayName": "Collection Index",
          "group": "common",
          "label": "",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Sets the collection index (JSON FORMAT : { field1 : order1, field2 : order2})"
        },
        "createCollection": {
          "kind": "parameter",
          "displayName": "Create Collection",
          "group": "common",
          "label": "",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": "true",
          "description": "Create collection during initialisation if it doesn\u0027t exist. Default is true."
        },
        "database": {
          "kind": "parameter",
          "displayName": "Database",
          "group": "common",
          "label": "",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Sets the name of the MongoDB database to target"
        },
        "mongoConnection": {
          "kind": "parameter",
          "displayName": "Mongo Connection",
          "group": "common",
          "label": "",
          "required": false,
          "type": "object",
          "javaType": "com.mongodb.client.MongoClient",
          "deprecated": false,
          "secret": false,
          "description": "Sets the connection bean used as a client for connecting to a database."
        },
        "operation": {
          "kind": "parameter",
          "displayName": "Operation",
          "group": "common",
          "label": "",
          "required": false,
          "type": "object",
          "javaType": "org.apache.camel.component.mongodb.MongoDbOperation",
          "enum": [
            "findById",
            "findOneByQuery",
            "findAll",
            "findDistinct",
            "insert",
            "save",
            "update",
            "remove",
            "bulkWrite",
            "aggregate",
            "getDbStats",
            "getColStats",
            "count",
            "command"
          ],
          "deprecated": false,
          "secret": false,
          "description": "Sets the operation this endpoint will execute against MongoDB."
        },
        "outputType": {
          "kind": "parameter",
          "displayName": "Output Type",
          "group": "common",
          "label": "common",
          "required": false,
          "type": "object",
          "javaType": "org.apache.camel.component.mongodb.MongoDbOutputType",
          "enum": [
            "DocumentList",
            "Document",
            "MongoIterable"
          ],
          "deprecated": false,
          "secret": false,
          "description": "Convert the output of the producer to the selected type : DocumentList Document or MongoIterable. DocumentList or MongoIterable applies to findAll and aggregate. Document applies to all other operations."
        },
        "bridgeErrorHandler": {
          "kind": "parameter",
          "displayName": "Bridge Error Handler",
          "group": "consumer",
          "label": "consumer",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored."
        },
        "consumerType": {
          "kind": "parameter",
          "displayName": "Consumer Type",
          "group": "consumer",
          "label": "consumer",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Consumer type."
        },
        "exceptionHandler": {
          "kind": "parameter",
          "displayName": "Exception Handler",
          "group": "consumer (advanced)",
          "label": "consumer,advanced",
          "required": false,
          "type": "object",
          "javaType": "org.apache.camel.spi.ExceptionHandler",
          "optionalPrefix": "consumer.",
          "deprecated": false,
          "secret": false,
          "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored."
        },
        "exchangePattern": {
          "kind": "parameter",
          "displayName": "Exchange Pattern",
          "group": "consumer (advanced)",
          "label": "consumer,advanced",
          "required": false,
          "type": "object",
          "javaType": "org.apache.camel.ExchangePattern",
          "enum": [
            "InOnly",
            "InOut",
            "InOptionalOut"
          ],
          "deprecated": false,
          "secret": false,
          "description": "Sets the exchange pattern when the consumer creates an exchange."
        },
        "lazyStartProducer": {
          "kind": "parameter",
          "displayName": "Lazy Start Producer",
          "group": "producer",
          "label": "producer",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "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\u0027s 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."
        },
        "basicPropertyBinding": {
          "kind": "parameter",
          "displayName": "Basic Property Binding",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities"
        },
        "cursorRegenerationDelay": {
          "kind": "parameter",
          "displayName": "Cursor Regeneration Delay",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "duration",
          "javaType": "long",
          "deprecated": false,
          "secret": false,
          "defaultValue": "1000",
          "description": "MongoDB tailable cursors will block until new data arrives. If no new data is inserted, after some time the cursor will be automatically freed and closed by the MongoDB server. The client is expected to regenerate the cursor if needed. This value specifies the time to wait before attempting to fetch a new cursor, and if the attempt fails, how long before the next attempt is made. Default value is 1000ms."
        },
        "dynamicity": {
          "kind": "parameter",
          "displayName": "Dynamicity",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "description": "Sets whether this endpoint will attempt to dynamically resolve the target database and collection from the incoming Exchange properties. Can be used to override at runtime the database and collection specified on the otherwise static endpoint URI. It is disabled by default to boost performance. Enabling it will take a minimal performance hit."
        },
        "readPreference": {
          "kind": "parameter",
          "displayName": "Read Preference",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "enum": [
            "PRIMARY",
            "PRIMARY_PREFERRED",
            "SECONDARY",
            "SECONDARY_PREFERRED",
            "NEAREST"
          ],
          "deprecated": false,
          "secret": false,
          "defaultValue": "PRIMARY",
          "description": "Configure how MongoDB clients route read operations to the members of a replica set. Possible values are PRIMARY, PRIMARY_PREFERRED, SECONDARY, SECONDARY_PREFERRED or NEAREST"
        },
        "synchronous": {
          "kind": "parameter",
          "displayName": "Synchronous",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": "false",
          "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)."
        },
        "writeConcern": {
          "kind": "parameter",
          "displayName": "Write Concern",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "enum": [
            "ACKNOWLEDGED",
            "W1",
            "W2",
            "W3",
            "UNACKNOWLEDGED",
            "JOURNALED",
            "MAJORITY"
          ],
          "deprecated": false,
          "secret": false,
          "defaultValue": "ACKNOWLEDGED",
          "description": "Configure the connection bean with the level of acknowledgment requested from MongoDB for write operations to a standalone mongod, replicaset or cluster. Possible values are ACKNOWLEDGED, W1, W2, W3, UNACKNOWLEDGED, JOURNALED or MAJORITY."
        },
        "writeResultAsHeader": {
          "kind": "parameter",
          "displayName": "Write Result As Header",
          "group": "advanced",
          "label": "advanced",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "description": "In write operations, it determines whether instead of returning WriteResult as the body of the OUT message, we transfer the IN message to the OUT and attach the WriteResult as a header."
        },
        "streamFilter": {
          "kind": "parameter",
          "displayName": "Stream Filter",
          "group": "changeStream",
          "label": "changeStream",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Filter condition for change streams consumer."
        },
        "persistentId": {
          "kind": "parameter",
          "displayName": "Persistent Id",
          "group": "tail",
          "label": "tail",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "One tail tracking collection can host many trackers for several tailable consumers. To keep them separate, each tracker should have its own unique persistentId."
        },
        "persistentTailTracking": {
          "kind": "parameter",
          "displayName": "Persistent Tail Tracking",
          "group": "tail",
          "label": "tail",
          "required": false,
          "type": "boolean",
          "javaType": "boolean",
          "deprecated": false,
          "secret": false,
          "defaultValue": false,
          "description": "Enable persistent tail tracking, which is a mechanism to keep track of the last consumed message across system restarts. The next time the system is up, the endpoint will recover the cursor from the point where it last stopped slurping records."
        },
        "tailTrackCollection": {
          "kind": "parameter",
          "displayName": "Tail Track Collection",
          "group": "tail",
          "label": "tail",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Collection where tail tracking information will be persisted. If not specified, MongoDbTailTrackingConfig#DEFAULT_COLLECTION will be used by default."
        },
        "tailTrackDb": {
          "kind": "parameter",
          "displayName": "Tail Track Db",
          "group": "tail",
          "label": "tail",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Indicates what database the tail tracking mechanism will persist to. If not specified, the current database will be picked by default. Dynamicity will not be taken into account even if enabled, i.e. the tail tracking database will not vary past endpoint initialisation."
        },
        "tailTrackField": {
          "kind": "parameter",
          "displayName": "Tail Track Field",
          "group": "tail",
          "label": "tail",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Field where the last tracked value will be placed. If not specified, MongoDbTailTrackingConfig#DEFAULT_FIELD will be used by default."
        },
        "tailTrackIncreasingField": {
          "kind": "parameter",
          "displayName": "Tail Track Increasing Field",
          "group": "tail",
          "label": "tail",
          "required": false,
          "type": "string",
          "javaType": "java.lang.String",
          "deprecated": false,
          "secret": false,
          "description": "Correlation field in the incoming record which is of increasing nature and will be used to position the tailing cursor every time it is generated. The cursor will be (re)created with a query of type: tailTrackIncreasingField greater than lastValue (possibly recovered from persistent tail tracking). Can be of type Integer, Date, String, etc. NOTE: No support for dot notation at the current time, so the field should be at the top level of the document."
        }
      }
    }
  },
  "outputs": {
    "init": {
      "fields": {
        "@IMPORT": [
          {
            "sourceFactoryId": "#",
            "location": "fields",
            "prefix": "camel_",
            "filter": {
              "contains": [
                {
                  "attribute": "kind",
                  "values": [
                    "property"
                  ]
                }
              ]
            }
          }
        ],
        "connectionString": {
          "displayName": "Connection String",
          "description": "The connection string to be passed to mongodb to establish a connection. Examples: 'mongodb://entaxy:entaxy@localhost:27017/'",
          "type": "String",
          "group": "mongoConnection",
          "required": false
        }
      },
      "config": {
        "configurable": true,
        "fieldsConfigurableByDefault": true,
        "configurableFields": {
          "includeNames":["connectionString"],
          "includePatterns":[]
        }
      }
    },
    "path": {
      "fields": {
        "@IMPORT": [
          {
            "sourceFactoryId": "#",
            "location": "fields",
            "prefix": "camel_",
            "filter": {
              "contains": [
                {
                  "attribute": "kind",
                  "values": [
                    "path"
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "consumer": {
      "fields": {
        "@IMPORT": [
          {
            "sourceFactoryId": "#",
            "location": "fields",
            "prefix": "camel_",
            "filter": {
              "contains": [
                {
                  "attribute": "kind",
                  "values": [
                    "parameter"
                  ]
                },
                {
                  "attribute": "label",
                  "inverse": true,
                  "values": [
                    "producer"
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "producer": {
      "fields": {
        "@IMPORT": [
          {
            "sourceFactoryId": "#",
            "location": "fields",
            "prefix": "camel_",
            "filter": {
              "contains": [
                {
                  "attribute": "kind",
                  "values": [
                    "parameter"
                  ]
                },
                {
                  "attribute": "label",
                  "inverse": true,
                  "values": [
                    "consumer"
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "__objects": {
      "fields": {
        "@IMPORT": [
          {
            "sourceFactoryId": "#",
            "location": "fields",
            "prefix": "",
            "filter": {
              "contains": [
                {
                  "attribute": "type",
                  "values": [
                    "Object",
                    "object"
                  ]
                }
              ]
            }
          }
        ]
      }
    }
  }
}
