--- results/org.apache.nifi/nifi/2.0.0-M4/oss-rebuild-improved-2/reference/nifi-standard-nar-2.0.0-M4-nar-extension-manifest.xml:extension-manifest.xml	2025-04-06 12:19:17.918902449 +0000
+++ results/org.apache.nifi/nifi/2.0.0-M4/oss-rebuild-improved-2/rebuild/nifi-standard-nar-2.0.0-M4-nar-extension-manifest.xml:extension-manifest.xml	2025-04-06 12:19:25.714780008 +0000
@@ -35,7 +35,7 @@
 Process the file using any combination of processors.
 Store the resulting file to a destination, e.g. using 'PutSFTP'.
 Using 'DeleteFile', delete the file from the filesystem only after the result has been stored.
-</configuration></useCase></useCases></extension><extension><name>org.apache.nifi.processors.standard.DetectDuplicate</name><type>PROCESSOR</type><description>Caches a value, computed from FlowFile attributes, for each incoming FlowFile and determines if the cached value has already been seen. If so, routes the FlowFile to 'duplicate' with an attribute named 'original.identifier' that specifies the original FlowFile's "description", which is specified in the &lt;FlowFile Description&gt; property. If the FlowFile is not determined to be a duplicate, the Processor routes the FlowFile to 'non-duplicate'</description><tags><tag>hash</tag><tag>dupe</tag><tag>duplicate</tag><tag>dedupe</tag></tags><properties><property><name>Cache Entry Identifier</name><displayName>Cache Entry Identifier</displayName><description>A FlowFile attribute, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the value used to identify duplicates; it is this value that is cached</description><defaultValue>${hash.value}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>FlowFile Description</name><displayName>FlowFile Description</displayName><description>When a FlowFile is added to the cache, this value is stored along with it so that if a duplicate is found, this description of the original FlowFile will be added to the duplicate's "original.flowfile.description" attribute</description><defaultValue></defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Age Off Duration</name><displayName>Age Off Duration</displayName><description>Time interval to age off cached FlowFiles</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distributed Cache Service</name><displayName>Distributed Cache Service</displayName><description>The Controller Service that is used to cache unique identifiers, used to determine duplicates</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Cache The Entry Identifier</name><displayName>Cache The Entry Identifier</displayName><description>When true this cause the processor to check for duplicates and cache the Entry Identifier. When false, the processor would only check for duplicates and not cache the Entry Identifier, requiring another processor to add identifiers to the distributed cache.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>duplicate</name><description>If a FlowFile has been detected to be a duplicate, it will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>non-duplicate</name><description>If a FlowFile's Cache Entry Identifier was not found in the cache, it will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If unable to communicate with the cache, the FlowFile will be penalized and routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>original.flowfile.description</name><description>All FlowFiles routed to the duplicate relationship will have an attribute added named original.flowfile.description. The value of this attribute is determined by the attributes of the original copy of the data and by the FlowFile Description property.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService</see><see>org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.DistributeLoad</name><type>PROCESSOR</type><description>Distributes FlowFiles to downstream processors based on a Distribution Strategy. If using the Round Robin strategy, the default is to assign each destination a weighting of 1 (evenly distributed). However, optional properties can be added to the change this; adding a property with the name '5' and value '10' means that the relationship with name '5' will be receive 10 FlowFiles in each iteration instead of 1.</description><tags><tag>distribute</tag><tag>load balance</tag><tag>route</tag><tag>round robin</tag><tag>weighted</tag></tags><properties><property><name>Number of Relationships</name><displayName>Number of Relationships</displayName><description>Determines the number of Relationships to which the load should be distributed</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distribution Strategy</name><displayName>Distribution Strategy</displayName><description>Determines how the load will be distributed. Relationship weight is in numeric order where '1' has the greatest weight.</description><defaultValue>round robin</defaultValue><allowableValues><allowableValue><displayName>round robin</displayName><value>round robin</value><description>Relationship selection is evenly distributed in a round robin fashion; all relationships must be available.</description></allowableValue><allowableValue><displayName>next available</displayName><value>next available</value><description>Relationship selection is distributed across all available relationships in order of their weight; at least one relationship must be available.</description></allowableValue><allowableValue><displayName>overflow</displayName><value>overflow</value><description>Relationship selection is the first available relationship without further distribution among all relationships; at least one relationship must be available.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>The relationship name (positive number)</name><value>The relationship Weight (positive number)</value><description>Adding a property with the name '5' and value '10' means that the relationship with name '5' will receive 10 FlowFiles in each iteration instead of 1.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>1</name><description>Where to route flowfiles for this relationship index</description><autoTerminated>false</autoTerminated></relationship></relationships><dynamicRelationship><name>A number 1..&lt;Number Of Relationships&gt;</name><description>FlowFiles are sent to this relationship per the &lt;Distribution Strategy&gt;</description></dynamicRelationship><writesAttributes><writesAttribute><name>distribute.load.relationship</name><description>The name of the specific relationship the FlowFile has been routed through</description></writesAttribute></writesAttributes><triggerWhenAnyDestinationAvailable>true</triggerWhenAnyDestinationAvailable><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.DuplicateFlowFile</name><type>PROCESSOR</type><description>Intended for load testing, this processor will create the configured number of copies of each incoming FlowFile. The original FlowFile as well as all generated copies are sent to the 'success' relationship. In addition, each FlowFile gets an attribute 'copy.index' set to the copy number, where the original FlowFile gets a value of zero, and all copies receive incremented integer values.</description><tags><tag>test</tag><tag>load</tag><tag>duplicate</tag></tags><properties><property><name>Number of Copies</name><displayName>Number of Copies</displayName><description>Specifies how many copies of each incoming FlowFile will be made</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>The original FlowFile and all copies will be sent to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>copy.index</name><description>A zero-based incrementing integer value based on which copy the FlowFile is.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EncodeContent</name><type>PROCESSOR</type><description>Encode or decode the contents of a FlowFile using Base64, Base32, or hex encoding schemes</description><tags><tag>encode</tag><tag>decode</tag><tag>base64</tag><tag>base32</tag><tag>hex</tag></tags><properties><property><name>Mode</name><displayName>Mode</displayName><description>Specifies whether the content should be encoded or decoded.</description><defaultValue>Encode</defaultValue><allowableValues><allowableValue><displayName>Encode</displayName><value>Encode</value><description>Transform original input to encoded representation</description></allowableValue><allowableValue><displayName>Decode</displayName><value>Decode</value><description>Transform encoded input to original representation</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Encoding</name><displayName>Encoding</displayName><description>Specifies the type of encoding used.</description><defaultValue>base64</defaultValue><allowableValues><allowableValue><displayName>Base64</displayName><value>base64</value><description>Encode or decode using Base64 set of characters</description></allowableValue><allowableValue><displayName>Base32</displayName><value>base32</value><description>Encode or decode using Base32 set of characters</description></allowableValue><allowableValue><displayName>Hexadecimal</displayName><value>hex</value><description>Encode or decode using hexadecimal set of characters</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Line Output Mode</name><displayName>Line Output Mode</displayName><description>Controls the line formatting for encoded content based on selected property values.</description><defaultValue>SINGLE_LINE</defaultValue><allowableValues><allowableValue><displayName>Single Line</displayName><value>SINGLE_LINE</value><description>The encoded content will be written as a single line.</description></allowableValue><allowableValue><displayName>Multiple Lines</displayName><value>MULTIPLE_LINES</value><description>The encoded content will be written as multiple lines.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Encoding</propertyName><propertyDisplayName>Encoding</propertyDisplayName><dependentValues><dependentValue>base32</dependentValue><dependentValue>base64</dependentValue></dependentValues></dependency><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>Encode</dependentValue></dependentValues></dependency></dependencies></property><property><name>Encoded Line Length</name><displayName>Encoded Line Length</displayName><description>Each line of encoded data will contain up to the configured number of characters, rounded down to the nearest multiple of 4.</description><defaultValue>76</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Encoding</propertyName><propertyDisplayName>Encoding</propertyDisplayName><dependentValues><dependentValue>base32</dependentValue><dependentValue>base64</dependentValue></dependentValues></dependency><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>Encode</dependentValue></dependentValues></dependency><dependency><propertyName>Line Output Mode</propertyName><propertyDisplayName>Line Output Mode</propertyDisplayName><dependentValues><dependentValue>MULTIPLE_LINES</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>failure</name><description>Any FlowFile that cannot be encoded or decoded will be routed to failure</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>Any FlowFile that is successfully encoded or decoded will be routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EnforceOrder</name><type>PROCESSOR</type><description>Enforces expected ordering of FlowFiles that belong to the same data group within a single node.  Although PriorityAttributePrioritizer can be used on a connection to ensure that flow files going through that connection are in priority order, depending on error-handling, branching, and other flow designs, it is possible for FlowFiles to get out-of-order. EnforceOrder can be used to enforce original ordering for those FlowFiles. [IMPORTANT] In order to take effect of EnforceOrder, FirstInFirstOutPrioritizer should be used at EVERY downstream relationship UNTIL the order of FlowFiles physically get FIXED by operation such as MergeContent or being stored to the final destination.</description><tags><tag>sort</tag><tag>order</tag></tags><properties><property><name>group-id</name><displayName>Group Identifier</displayName><description>EnforceOrder is capable of multiple ordering groups. 'Group Identifier' is used to determine which group a FlowFile belongs to. This property will be evaluated with each incoming FlowFile. If evaluated result is empty, the FlowFile will be routed to failure.</description><defaultValue>${filename}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>order-attribute</name><displayName>Order Attribute</displayName><description>A name of FlowFile attribute whose value will be used to enforce order of FlowFiles within a group. If a FlowFile does not have this attribute, or its value is not an integer, the FlowFile will be routed to failure.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>initial-order</name><displayName>Initial Order</displayName><description>When the first FlowFile of a group arrives, initial target order will be computed and stored in the managed state. After that, target order will start being tracked by EnforceOrder and stored in the state management store. If Expression Language is used but evaluated result was not an integer, then the FlowFile will be routed to failure, and initial order will be left unknown until consecutive FlowFiles provide a valid initial order.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>maximum-order</name><displayName>Maximum Order</displayName><description>If specified, any FlowFiles that have larger order will be routed to failure. This property is computed only once for a given group. After a maximum order is computed, it will be persisted in the state management store and used for other FlowFiles belonging to the same group. If Expression Language is used but evaluated result was not an integer, then the FlowFile will be routed to failure, and maximum order will be left unknown until consecutive FlowFiles provide a valid maximum order.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>batch-count</name><displayName>Batch Count</displayName><description>The maximum number of FlowFiles that EnforceOrder can process at an execution.</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-timeout</name><displayName>Wait Timeout</displayName><description>Indicates the duration after which waiting FlowFiles will be routed to the 'overtook' relationship.</description><defaultValue>10 min</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>inactive-timeout</name><displayName>Inactive Timeout</displayName><description>Indicates the duration after which state for an inactive group will be cleared from managed state. Group is determined as inactive if any new incoming FlowFile has not seen for a group for specified duration. Inactive Timeout must be longer than Wait Timeout. If a FlowFile arrives late after its group is already cleared, it will be treated as a brand new group, but will never match the order since expected preceding FlowFiles are already gone. The FlowFile will eventually timeout for waiting and routed to 'overtook'. To avoid this, group states should be kept long enough, however, shorter duration would be helpful for reusing the same group identifier again.</description><defaultValue>30 min</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>overtook</name><description>A FlowFile that waited for preceding FlowFiles longer than Wait Timeout and overtook those FlowFiles, will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>skipped</name><description>A FlowFile that has an order younger than current, which means arrived too late and skipped, will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>A FlowFile with a matching order number will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>wait</name><description>A FlowFile with non matching order will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>A FlowFiles which does not have required attributes, or fails to compute those will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>EnforceOrder.startedAt</name><description>All FlowFiles going through this processor will have this attribute. This value is used to determine wait timeout.</description></writesAttribute><writesAttribute><name>EnforceOrder.result</name><description>All FlowFiles going through this processor will have this attribute denoting which relationship it was routed to.</description></writesAttribute><writesAttribute><name>EnforceOrder.detail</name><description>FlowFiles routed to 'failure' or 'skipped' relationship will have this attribute describing details.</description></writesAttribute><writesAttribute><name>EnforceOrder.expectedOrder</name><description>FlowFiles routed to 'wait' or 'skipped' relationship will have this attribute denoting expected order when the FlowFile was processed.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><stateful><description>EnforceOrder uses following states per ordering group: '&lt;groupId&gt;.target' is a order number which is being waited to arrive next. When a FlowFile with a matching order arrives, or a FlowFile overtakes the FlowFile being waited for because of wait timeout, target order will be updated to (FlowFile.order + 1). '&lt;groupId&gt;.max is the maximum order number for a group. '&lt;groupId&gt;.updatedAt' is a timestamp when the order of a group was updated last time. These managed states will be removed automatically once a group is determined as inactive, see 'Inactive Timeout' for detail.</description><scopes><scope>LOCAL</scope></scopes></stateful><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EvaluateJsonPath</name><type>PROCESSOR</type><description>Evaluates one or more JsonPath expressions against the content of a FlowFile. The results of those expressions are assigned to FlowFile Attributes or are written to the content of the FlowFile itself, depending on configuration of the Processor. JsonPaths are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed (if the Destination is flowfile-attribute; otherwise, the property name is ignored). The value of the property must be a valid JsonPath expression. A Return Type of 'auto-detect' will make a determination based off the configured destination. When 'Destination' is set to 'flowfile-attribute,' a return type of 'scalar' will be used. When 'Destination' is set to 'flowfile-content,' a return type of 'JSON' will be used.If the JsonPath evaluates to a JSON array or JSON object and the Return Type is set to 'scalar' the FlowFile will be unmodified and will be routed to failure. A Return Type of JSON can return scalar values if the provided JsonPath evaluates to the specified value and will be routed as a match.If Destination is 'flowfile-content' and the JsonPath does not evaluate to a defined path, the FlowFile will be routed to 'unmatched' without having its contents modified. If Destination is 'flowfile-attribute' and the expression matches nothing, attributes will be created with empty strings as the value unless 'Path Not Found Behaviour' is set to 'skip', and the FlowFile will always be routed to 'matched.'</description><tags><tag>JSON</tag><tag>evaluate</tag><tag>JsonPath</tag></tags><properties><property><name>Destination</name><displayName>Destination</displayName><description>Indicates whether the results of the JsonPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one JsonPath may be specified, and the property name is ignored.</description><defaultValue>flowfile-content</defaultValue><allowableValues><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Return Type</name><displayName>Return Type</displayName><description>Indicates the desired return type of the JSON Path expressions.  Selecting 'auto-detect' will set the return type to 'json' for a Destination of 'flowfile-content', and 'scalar' for a Destination of 'flowfile-attribute'.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>auto-detect</displayName><value>auto-detect</value><description></description></allowableValue><allowableValue><displayName>json</displayName><value>json</value><description></description></allowableValue><allowableValue><displayName>scalar</displayName><value>scalar</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Not Found Behavior</name><displayName>Path Not Found Behavior</displayName><description>Indicates how to handle missing JSON path expressions when destination is set to 'flowfile-attribute'. Selecting 'warn' will generate a warning when a JSON path expression is not found. Selecting 'skip' will omit attributes for any unmatched JSON path expressions.</description><defaultValue>ignore</defaultValue><allowableValues><allowableValue><displayName>warn</displayName><value>warn</value><description></description></allowableValue><allowableValue><displayName>ignore</displayName><value>ignore</value><description></description></allowableValue><allowableValue><displayName>skip</displayName><value>skip</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Destination</propertyName><propertyDisplayName>Destination</propertyDisplayName><dependentValues><dependentValue>flowfile-attribute</dependentValue></dependentValues></dependency></dependencies></property><property><name>Null Value Representation</name><displayName>Null Value Representation</displayName><description>Indicates the desired representation of JSON Path expressions resulting in a null value.</description><defaultValue>empty string</defaultValue><allowableValues><allowableValue><displayName>empty string</displayName><value>empty string</value><description></description></allowableValue><allowableValue><displayName>the string 'null'</displayName><value>the string 'null'</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max String Length</name><displayName>Max String Length</displayName><description>The maximum allowed length of a string value when parsing the JSON document</description><defaultValue>20 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>A FlowFile attribute(if &lt;Destination&gt; is set to 'flowfile-attribute')</name><value>A JsonPath expression</value><description>If &lt;Destination&gt;='flowfile-attribute' then that FlowFile attribute will be set to any JSON objects that match the JsonPath.  If &lt;Destination&gt;='flowfile-content' then the FlowFile content will be updated to any JSON objects that match the JsonPath.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles are routed to this relationship when the JsonPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid JSON</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when the JsonPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the JsonPath is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EvaluateXPath</name><type>PROCESSOR</type><description>Evaluates one or more XPaths against the content of a FlowFile. The results of those XPaths are assigned to FlowFile Attributes or are written to the content of the FlowFile itself, depending on configuration of the Processor. XPaths are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed (if the Destination is flowfile-attribute; otherwise, the property name is ignored). The value of the property must be a valid XPath expression. If the XPath evaluates to more than one node and the Return Type is set to 'nodeset' (either directly, or via 'auto-detect' with a Destination of 'flowfile-content'), the FlowFile will be unmodified and will be routed to failure. If the XPath does not evaluate to a Node, the FlowFile will be routed to 'unmatched' without having its contents modified. If Destination is flowfile-attribute and the expression matches nothing, attributes will be created with empty strings as the value, and the FlowFile will always be routed to 'matched'</description><tags><tag>XML</tag><tag>evaluate</tag><tag>XPath</tag></tags><properties><property><name>Destination</name><displayName>Destination</displayName><description>Indicates whether the results of the XPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one XPath may be specified, and the property name is ignored.</description><defaultValue>flowfile-content</defaultValue><allowableValues><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Return Type</name><displayName>Return Type</displayName><description>Indicates the desired return type of the Xpath expressions.  Selecting 'auto-detect' will set the return type to 'nodeset' for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>auto-detect</displayName><value>auto-detect</value><description></description></allowableValue><allowableValue><displayName>nodeset</displayName><value>nodeset</value><description></description></allowableValue><allowableValue><displayName>string</displayName><value>string</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Validate DTD</name><displayName>Allow DTD</displayName><description>Allow embedded Document Type Declaration in XML. This feature should be disabled to avoid XML entity expansion vulnerabilities.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>A FlowFile attribute(if &lt;Destination&gt; is set to 'flowfile-attribute'</name><value>An XPath expression</value><description>If &lt;Destination&gt;='flowfile-attribute' then the FlowFile attribute is set to the result of the XPath Expression.  If &lt;Destination&gt;='flowfile-content' then the FlowFile content is set to the result of the XPath Expression.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles are routed to this relationship when the XPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid XML, or if the Return Type is 'nodeset' and the XPath evaluates to multiple nodes</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when the XPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the XPath is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>user-defined</name><description>This processor adds user-defined attributes if the &lt;Destination&gt; property is set to flowfile-attribute.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>Processing requires reading the entire FlowFile into memory</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.EvaluateXQuery</name><type>PROCESSOR</type><description>Evaluates one or more XQueries against the content of a FlowFile.  The results of those XQueries are assigned to FlowFile Attributes or are written to the content of the FlowFile itself, depending on configuration of the Processor.  XQueries are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed (if the Destination is 'flowfile-attribute'; otherwise, the property name is ignored).  The value of the property must be a valid XQuery.  If the XQuery returns more than one result, new attributes or FlowFiles (for Destinations of 'flowfile-attribute' or 'flowfile-content' respectively) will be created for each result (attributes will have a '.n' one-up number appended to the specified attribute name).  If any provided XQuery returns a result, the FlowFile(s) will be routed to 'matched'. If no provided XQuery returns a result, the FlowFile will be routed to 'unmatched'.  If the Destination is 'flowfile-attribute' and the XQueries matche nothing, no attributes will be applied to the FlowFile.</description><tags><tag>XML</tag><tag>evaluate</tag><tag>XPath</tag><tag>XQuery</tag></tags><properties><property><name>Destination</name><displayName>Destination</displayName><description>Indicates whether the results of the XQuery evaluation are written to the FlowFile content or a FlowFile attribute. If set to &lt;flowfile-content&gt;, only one XQuery may be specified and the property name is ignored.  If set to &lt;flowfile-attribute&gt; and the XQuery returns more than one result, multiple attributes will be added to theFlowFile, each named with a '.n' one-up number appended to the specified attribute name</description><defaultValue>flowfile-content</defaultValue><allowableValues><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output: Method</name><displayName>Output: Method</displayName><description>Identifies the overall method that should be used for outputting a result tree.</description><defaultValue>xml</defaultValue><allowableValues><allowableValue><displayName>xml</displayName><value>xml</value><description></description></allowableValue><allowableValue><displayName>html</displayName><value>html</value><description></description></allowableValue><allowableValue><displayName>text</displayName><value>text</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output: Omit XML Declaration</name><displayName>Output: Omit XML Declaration</displayName><description>Specifies whether the processor should output an XML declaration when transforming a result tree.</description><defaultValue>false</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output: Indent</name><displayName>Output: Indent</displayName><description>Specifies whether the processor may add additional whitespace when outputting a result tree.</description><defaultValue>false</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Validate DTD</name><displayName>Allow DTD</displayName><description>Allow embedded Document Type Declaration in XML. This feature should be disabled to avoid XML entity expansion vulnerabilities.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>A FlowFile attribute(if &lt;Destination&gt; is set to 'flowfile-attribute'</name><value>An XQuery</value><description>If &lt;Destination&gt;='flowfile-attribute' then the FlowFile attribute is set to the result of the XQuery.  If &lt;Destination&gt;='flowfile-content' then the FlowFile content is set to the result of the XQuery.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles are routed to this relationship when the XQuery cannot be evaluated against the content of the FlowFile.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when the XQuery does not match the content of the FlowFile and the Destination is set to flowfile-content</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the XQuery is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>user-defined</name><description>This processor adds user-defined attributes if the &lt;Destination&gt; property is set to flowfile-attribute .</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>Processing requires reading the entire FlowFile into memory</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.ExecuteProcess</name><type>PROCESSOR</type><description>Runs an operating system command specified by the user and writes the output of that command to a FlowFile. If the command is expected to be long-running, the Processor can output the partial data on a specified interval. When this option is used, the output is expected to be in textual format, as it typically does not make sense to split binary data on arbitrary time-based intervals.</description><tags><tag>command</tag><tag>process</tag><tag>source</tag><tag>external</tag><tag>invoke</tag><tag>script</tag></tags><properties><property><name>Command</name><displayName>Command</displayName><description>Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Command Arguments</name><displayName>Command Arguments</displayName><description>The arguments to supply to the executable delimited by white space. White space can be escaped by enclosing it in double-quotes.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Batch Duration</name><displayName>Batch Duration</displayName><description>If the process is expected to be long-running and produce textual output, a batch duration can be specified so that the output will be captured for this amount of time and a FlowFile will then be sent out with the results and a new FlowFile will be started, rather than waiting for the process to finish before sending out the results</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Redirect Error Stream</name><displayName>Redirect Error Stream</displayName><description>If true will redirect any error stream output of the process to the output stream. This is particularly helpful for processes which write extensively to the error stream or for troubleshooting.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Working Directory</name><displayName>Working Directory</displayName><description>The directory to use as the current working directory when executing the command</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Argument Delimiter</name><displayName>Argument Delimiter</displayName><description>Delimiter to use to separate arguments for a command [default: space]. Must be a single character.</description><defaultValue> </defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output MIME type</name><displayName>Output MIME Type</displayName><description>Specifies the value to set for the "mime.type" attribute. This property is ignored if 'Batch Duration' is set.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>An environment variable name</name><value>An environment variable value</value><description>These environment variables are passed to the process spawned by this Processor</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>All created FlowFiles are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>command</name><description>Executed command</description></writesAttribute><writesAttribute><name>command.arguments</name><description>Arguments of the command</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the MIME type of the output if the 'Output MIME Type' property is set and 'Batch Duration' is not set</description></writesAttribute></writesAttributes><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExecuteSQL</name><type>PROCESSOR</type><description>Executes provided SQL select query. Query result will be converted to Avro format. Streaming is used so arbitrarily large result sets are supported. This processor can be scheduled to run on a timer, or cron expression, using the standard scheduling methods, or it can be triggered by an incoming FlowFile. If it is triggered by an incoming FlowFile, then attributes of that FlowFile will be available when evaluating the select query, and the query may use the ? to escape parameters. In this case, the parameters to use must exist as FlowFile attributes with the naming convention sql.args.N.type and sql.args.N.value, where N is a positive integer. The sql.args.N.type is expected to be a number indicating the JDBC Type. The content of the FlowFile is expected to be in UTF-8 format. FlowFile attribute 'executesql.row.count' indicates how many rows were selected.</description><tags><tag>sql</tag><tag>select</tag><tag>jdbc</tag><tag>query</tag><tag>database</tag></tags><properties><property><name>Database Connection Pooling Service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain connection to database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-pre-query</name><displayName>SQL Pre-Query</displayName><description>A semicolon-delimited list of queries executed before the main SQL query is executed. For example, set session properties before main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SQL select query</name><displayName>SQL select query</displayName><description>The SQL select query to execute. The query can be empty, a constant value, or built from attributes using Expression Language. If this property is specified, it will be used regardless of the content of incoming flowfiles. If this property is empty, the content of the incoming flow file is expected to contain a valid SQL select query, to be issued by the processor to the database. Note that Expression Language is not evaluated for flow file contents.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-post-query</name><displayName>SQL Post-Query</displayName><description>A semicolon-delimited list of queries executed after the main SQL query is executed. Example like setting session properties after main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Wait Time</name><displayName>Max Wait Time</displayName><description>The maximum amount of time allowed for a running SQL select query  , zero means there is no limit. Max time less than 1 second will be equal to zero.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-normalize</name><displayName>Normalize Table/Column Names</displayName><description>Whether to change non-Avro-compatible characters in column names to Avro-compatible characters. For example, colons and periods will be changed to underscores in order to build a valid Avro record.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-user-logical-types</name><displayName>Use Avro Logical Types</displayName><description>Whether to use Avro Logical Types for DECIMAL/NUMBER, DATE, TIME and TIMESTAMP columns. If disabled, written as string. If enabled, Logical types are used and written as its underlying type, specifically, DECIMAL/NUMBER as logical 'decimal': written as bytes with additional precision and scale meta data, DATE as logical 'date-millis': written as int denoting days since Unix epoch (1970-01-01), TIME as logical 'time-millis': written as int denoting milliseconds since Unix epoch, and TIMESTAMP as logical 'timestamp-millis': written as long denoting milliseconds since Unix epoch. If a reader of written Avro records also knows these logical types, then these values can be deserialized with more context depending on reader implementation.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>compression-format</name><displayName>Compression Format</displayName><description>Compression type to use when writing Avro files. Default is None.</description><defaultValue>NONE</defaultValue><allowableValues><allowableValue><displayName>BZIP2</displayName><value>BZIP2</value><description></description></allowableValue><allowableValue><displayName>DEFLATE</displayName><value>DEFLATE</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue><allowableValue><displayName>SNAPPY</displayName><value>SNAPPY</value><description></description></allowableValue><allowableValue><displayName>LZO</displayName><value>LZO</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-precision</name><displayName>Default Decimal Precision</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'precision' denoting number of available digits is required. Generally, precision is defined by column data type definition or database engines default. However undefined precision (0) can be returned from some database engines. 'Default Decimal Precision' is used when writing those undefined precision numbers.</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-scale</name><displayName>Default Decimal Scale</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'scale' denoting number of available decimal digits is required. Generally, scale is defined by column data type definition or database engines default. However when undefined precision (0) is returned, scale can also be uncertain with some database engines. 'Default Decimal Scale' is used when writing those undefined numbers. If a value has more decimals than specified scale, then the value will be rounded-up, e.g. 1.53 becomes 2 with scale 0, and 1.5 with scale 1.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-max-rows</name><displayName>Max Rows Per Flow File</displayName><description>The maximum number of result rows that will be included in a single FlowFile. This will allow you to break up very large result sets into multiple FlowFiles. If the value specified is zero, then all rows are returned in a single FlowFile.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-output-batch-size</name><displayName>Output Batch Size</displayName><description>The number of output FlowFiles to queue before committing the process session. When set to zero, the session will be committed when all result set rows have been processed and the output FlowFiles are ready for transfer to the downstream relationship. For large result sets, this can cause a large burst of FlowFiles to be transferred at the end of processor execution. If this property is set, then when the specified number of FlowFiles are ready for transfer, then the session will be committed, thus releasing the FlowFiles to the downstream relationship. NOTE: The fragment.count attribute will not be set on FlowFiles when this property is set.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-fetch-size</name><displayName>Fetch Size</displayName><description>The number of result rows to be fetched from the result set at a time. This is a hint to the database driver and may not be honored and/or exact. If the value specified is zero, then the hint is ignored.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-auto-commit</name><displayName>Set Auto Commit</displayName><description>Enables or disables the auto commit functionality of the DB connection. Default value is 'true'. The default value can be used with most of the JDBC drivers and this functionality doesn't have any impact in most of the cases since this processor is used to read data. However, for some JDBC drivers such as PostgreSQL driver, it is required to disable the auto committing functionality to limit the number of result rows fetching at a time. When auto commit is enabled, postgreSQL driver loads whole result set to memory at once. This could lead for a large amount of memory usage when executing queries which fetch large data sets. More Details of this behaviour in PostgreSQL driver can be found in https://jdbc.postgresql.org//documentation/head/query.html. </description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>sql.args.N.type</name><value>SQL type argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.value</name><value>Argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.format</name><value>SQL format argument to be supplied</value><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>success</name><description>Successfully created FlowFile from SQL query result set.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>SQL query execution failed. Incoming FlowFile will be penalized and routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>sql.args.N.type</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description></readsAttribute><readsAttribute><name>sql.args.N.value</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description></readsAttribute><readsAttribute><name>sql.args.N.format</name><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>executesql.row.count</name><description>Contains the number of rows returned by the query. If 'Max Rows Per Flow File' is set, then this number will reflect the number of rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>executesql.query.duration</name><description>Combined duration of the query execution time and fetch time in milliseconds. If 'Max Rows Per Flow File' is set, then this number will reflect only the fetch time for the rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>executesql.query.executiontime</name><description>Duration of the query execution time in milliseconds. This number will reflect the query execution time regardless of the 'Max Rows Per Flow File' setting.</description></writesAttribute><writesAttribute><name>executesql.query.fetchtime</name><description>Duration of the result set fetch time in milliseconds. If 'Max Rows Per Flow File' is set, then this number will reflect only the fetch time for the rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>executesql.resultset.index</name><description>Assuming multiple result sets are returned, the zero based index of this result set.</description></writesAttribute><writesAttribute><name>executesql.error.message</name><description>If processing an incoming flow file causes an Exception, the Flow File is routed to failure and this attribute is set to the exception message.</description></writesAttribute><writesAttribute><name>fragment.identifier</name><description>If 'Max Rows Per Flow File' is set then all FlowFiles from the same query result set will have the same value for the fragment.identifier attribute. This can then be used to correlate the results.</description></writesAttribute><writesAttribute><name>fragment.count</name><description>If 'Max Rows Per Flow File' is set then this is the total number of  FlowFiles produced by a single ResultSet. This can be used in conjunction with the fragment.identifier attribute in order to know how many FlowFiles belonged to the same incoming ResultSet. If Output Batch Size is set, then this attribute will not be populated.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>If 'Max Rows Per Flow File' is set then the position of this FlowFile in the list of outgoing FlowFiles that were all derived from the same result set FlowFile. This can be used in conjunction with the fragment.identifier attribute to know which FlowFiles originated from the same query result set and in what order  FlowFiles were produced</description></writesAttribute><writesAttribute><name>input.flowfile.uuid</name><description>If the processor has an incoming connection, outgoing FlowFiles will have this attribute set to the value of the input FlowFile's UUID. If there is no incoming connection, the attribute will not be added.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExecuteSQLRecord</name><type>PROCESSOR</type><description>Executes provided SQL select query. Query result will be converted to the format specified by a Record Writer. Streaming is used so arbitrarily large result sets are supported. This processor can be scheduled to run on a timer, or cron expression, using the standard scheduling methods, or it can be triggered by an incoming FlowFile. If it is triggered by an incoming FlowFile, then attributes of that FlowFile will be available when evaluating the select query, and the query may use the ? to escape parameters. In this case, the parameters to use must exist as FlowFile attributes with the naming convention sql.args.N.type and sql.args.N.value, where N is a positive integer. The sql.args.N.type is expected to be a number indicating the JDBC Type. The content of the FlowFile is expected to be in UTF-8 format. FlowFile attribute 'executesql.row.count' indicates how many rows were selected.</description><tags><tag>sql</tag><tag>select</tag><tag>jdbc</tag><tag>query</tag><tag>database</tag><tag>record</tag></tags><properties><property><name>Database Connection Pooling Service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain connection to database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-pre-query</name><displayName>SQL Pre-Query</displayName><description>A semicolon-delimited list of queries executed before the main SQL query is executed. For example, set session properties before main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SQL select query</name><displayName>SQL select query</displayName><description>The SQL select query to execute. The query can be empty, a constant value, or built from attributes using Expression Language. If this property is specified, it will be used regardless of the content of incoming flowfiles. If this property is empty, the content of the incoming flow file is expected to contain a valid SQL select query, to be issued by the processor to the database. Note that Expression Language is not evaluated for flow file contents.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-post-query</name><displayName>SQL Post-Query</displayName><description>A semicolon-delimited list of queries executed after the main SQL query is executed. Example like setting session properties after main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Wait Time</name><displayName>Max Wait Time</displayName><description>The maximum amount of time allowed for a running SQL select query  , zero means there is no limit. Max time less than 1 second will be equal to zero.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esqlrecord-record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing results to a FlowFile. The Record Writer may use Inherit Schema to emulate the inferred schema behavior, i.e. an explicit schema need not be defined in the writer, and will be supplied by the same logic used to infer the schema from the column types.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esqlrecord-normalize</name><displayName>Normalize Table/Column Names</displayName><description>Whether to change characters in column names. For example, colons and periods will be changed to underscores.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-user-logical-types</name><displayName>Use Avro Logical Types</displayName><description>Whether to use Avro Logical Types for DECIMAL/NUMBER, DATE, TIME and TIMESTAMP columns. If disabled, written as string. If enabled, Logical types are used and written as its underlying type, specifically, DECIMAL/NUMBER as logical 'decimal': written as bytes with additional precision and scale meta data, DATE as logical 'date-millis': written as int denoting days since Unix epoch (1970-01-01), TIME as logical 'time-millis': written as int denoting milliseconds since Unix epoch, and TIMESTAMP as logical 'timestamp-millis': written as long denoting milliseconds since Unix epoch. If a reader of written Avro records also knows these logical types, then these values can be deserialized with more context depending on reader implementation.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-precision</name><displayName>Default Decimal Precision</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'precision' denoting number of available digits is required. Generally, precision is defined by column data type definition or database engines default. However undefined precision (0) can be returned from some database engines. 'Default Decimal Precision' is used when writing those undefined precision numbers.</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-scale</name><displayName>Default Decimal Scale</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'scale' denoting number of available decimal digits is required. Generally, scale is defined by column data type definition or database engines default. However when undefined precision (0) is returned, scale can also be uncertain with some database engines. 'Default Decimal Scale' is used when writing those undefined numbers. If a value has more decimals than specified scale, then the value will be rounded-up, e.g. 1.53 becomes 2 with scale 0, and 1.5 with scale 1.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-max-rows</name><displayName>Max Rows Per Flow File</displayName><description>The maximum number of result rows that will be included in a single FlowFile. This will allow you to break up very large result sets into multiple FlowFiles. If the value specified is zero, then all rows are returned in a single FlowFile.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-output-batch-size</name><displayName>Output Batch Size</displayName><description>The number of output FlowFiles to queue before committing the process session. When set to zero, the session will be committed when all result set rows have been processed and the output FlowFiles are ready for transfer to the downstream relationship. For large result sets, this can cause a large burst of FlowFiles to be transferred at the end of processor execution. If this property is set, then when the specified number of FlowFiles are ready for transfer, then the session will be committed, thus releasing the FlowFiles to the downstream relationship. NOTE: The fragment.count attribute will not be set on FlowFiles when this property is set.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-fetch-size</name><displayName>Fetch Size</displayName><description>The number of result rows to be fetched from the result set at a time. This is a hint to the database driver and may not be honored and/or exact. If the value specified is zero, then the hint is ignored.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-auto-commit</name><displayName>Set Auto Commit</displayName><description>Enables or disables the auto commit functionality of the DB connection. Default value is 'true'. The default value can be used with most of the JDBC drivers and this functionality doesn't have any impact in most of the cases since this processor is used to read data. However, for some JDBC drivers such as PostgreSQL driver, it is required to disable the auto committing functionality to limit the number of result rows fetching at a time. When auto commit is enabled, postgreSQL driver loads whole result set to memory at once. This could lead for a large amount of memory usage when executing queries which fetch large data sets. More Details of this behaviour in PostgreSQL driver can be found in https://jdbc.postgresql.org//documentation/head/query.html. </description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>sql.args.N.type</name><value>SQL type argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.value</name><value>Argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.format</name><value>SQL format argument to be supplied</value><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>success</name><description>Successfully created FlowFile from SQL query result set.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>SQL query execution failed. Incoming FlowFile will be penalized and routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>sql.args.N.type</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description></readsAttribute><readsAttribute><name>sql.args.N.value</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description></readsAttribute><readsAttribute><name>sql.args.N.format</name><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>executesql.row.count</name><description>Contains the number of rows returned in the select query</description></writesAttribute><writesAttribute><name>executesql.query.duration</name><description>Combined duration of the query execution time and fetch time in milliseconds</description></writesAttribute><writesAttribute><name>executesql.query.executiontime</name><description>Duration of the query execution time in milliseconds</description></writesAttribute><writesAttribute><name>executesql.query.fetchtime</name><description>Duration of the result set fetch time in milliseconds</description></writesAttribute><writesAttribute><name>executesql.resultset.index</name><description>Assuming multiple result sets are returned, the zero based index of this result set.</description></writesAttribute><writesAttribute><name>executesql.error.message</name><description>If processing an incoming flow file causes an Exception, the Flow File is routed to failure and this attribute is set to the exception message.</description></writesAttribute><writesAttribute><name>fragment.identifier</name><description>If 'Max Rows Per Flow File' is set then all FlowFiles from the same query result set will have the same value for the fragment.identifier attribute. This can then be used to correlate the results.</description></writesAttribute><writesAttribute><name>fragment.count</name><description>If 'Max Rows Per Flow File' is set then this is the total number of  FlowFiles produced by a single ResultSet. This can be used in conjunction with the fragment.identifier attribute in order to know how many FlowFiles belonged to the same incoming ResultSet. If Output Batch Size is set, then this attribute will not be populated.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>If 'Max Rows Per Flow File' is set then the position of this FlowFile in the list of outgoing FlowFiles that were all derived from the same result set FlowFile. This can be used in conjunction with the fragment.identifier attribute to know which FlowFiles originated from the same query result set and in what order  FlowFiles were produced</description></writesAttribute><writesAttribute><name>input.flowfile.uuid</name><description>If the processor has an incoming connection, outgoing FlowFiles will have this attribute set to the value of the input FlowFile's UUID. If there is no incoming connection, the attribute will not be added.</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer.</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records output by the Record Writer.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExecuteStreamCommand</name><type>PROCESSOR</type><description>The ExecuteStreamCommand processor provides a flexible way to integrate external commands and scripts into NiFi data flows. ExecuteStreamCommand can pass the incoming FlowFile's content to the command that it executes similarly how piping works.</description><tags><tag>command execution</tag><tag>command</tag><tag>stream</tag><tag>execute</tag></tags><properties><property><name>Working Directory</name><displayName>Working Directory</displayName><description>The directory to use as the current working directory when executing the command</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Command Path</name><displayName>Command Path</displayName><description>Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>argumentsStrategy</name><displayName>Command Arguments Strategy</displayName><description>Strategy for configuring arguments to be supplied to the command.</description><defaultValue>Command Arguments Property</defaultValue><allowableValues><allowableValue><displayName>Command Arguments Property</displayName><value>Command Arguments Property</value><description>Arguments to be supplied to the executable are taken from the Command Arguments property</description></allowableValue><allowableValue><displayName>Dynamic Property Arguments</displayName><value>Dynamic Property Arguments</value><description>Arguments to be supplied to the executable are taken from dynamic properties with pattern of 'command.argument.&lt;commandIndex&gt;'</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Command Arguments</name><displayName>Command Arguments</displayName><description>The arguments to supply to the executable delimited by the ';' character.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>argumentsStrategy</propertyName><propertyDisplayName>Command Arguments Strategy</propertyDisplayName><dependentValues><dependentValue>Command Arguments Property</dependentValue></dependentValues></dependency></dependencies></property><property><name>Argument Delimiter</name><displayName>Argument Delimiter</displayName><description>Delimiter to use to separate arguments for a command [default: ;]. Must be a single character</description><defaultValue>;</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>argumentsStrategy</propertyName><propertyDisplayName>Command Arguments Strategy</propertyDisplayName><dependentValues><dependentValue>Command Arguments Property</dependentValue></dependentValues></dependency></dependencies></property><property><name>Ignore STDIN</name><displayName>Ignore STDIN</displayName><description>If true, the contents of the incoming flowfile will not be passed to the executing command</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output Destination Attribute</name><displayName>Output Destination Attribute</displayName><description>If set, the output of the stream command will be put into an attribute of the original FlowFile instead of a separate FlowFile. There will no longer be a relationship for 'output stream' or 'nonzero status'. The value of this property will be the key for the output attribute.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Attribute Length</name><displayName>Max Attribute Length</displayName><description>If routing the output of the stream command to an attribute, the number of characters put to the attribute value will be at most this amount. This is important because attributes are held in memory and large attributes will quickly cause out of memory issues. If the output goes longer than this value, it will truncated to fit. Consider making this smaller if able.</description><defaultValue>256</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output MIME Type</name><displayName>Output MIME Type</displayName><description>Specifies the value to set for the "mime.type" attribute. This property is ignored if 'Output Destination Attribute' is set.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>An environment variable name</name><value>An environment variable value</value><description>These environment variables are passed to the process spawned by this Processor</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>command.argument.&lt;commandIndex&gt;</name><value>Argument to be supplied to the command</value><description>These arguments are supplied to the process spawned by this Processor when using the Command Arguments Strategy : Dynamic Property Arguments. &lt;commandIndex&gt; is a number and it will determine the order.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>output stream</name><description>The destination path for the flow file created from the command's output, if the returned status code is zero.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>nonzero status</name><description>The destination path for the flow file created from the command's output, if the returned status code is non-zero. All flow files routed to this relationship will be penalized.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original FlowFile will be routed. It will have new attributes detailing the result of the script execution.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>execution.command</name><description>The name of the command executed</description></writesAttribute><writesAttribute><name>execution.command.args</name><description>The semi-colon delimited list of arguments. Sensitive properties will be masked</description></writesAttribute><writesAttribute><name>execution.status</name><description>The exit status code returned from executing the command</description></writesAttribute><writesAttribute><name>execution.error</name><description>Any error messages returned from executing the command</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the MIME type of the output if the 'Output MIME Type' property is set and 'Output Destination Attribute' is not set</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExtractGrok</name><type>PROCESSOR</type><description>Evaluates one or more Grok Expressions against the content of a FlowFile, adding the results as attributes or replacing the content of the FlowFile with a JSON notation of the matched content</description><tags><tag>grok</tag><tag>log</tag><tag>text</tag><tag>parse</tag><tag>delimit</tag><tag>extract</tag></tags><properties><property><name>Grok Expression</name><displayName>Grok Expression</displayName><description>Grok expression. If other Grok expressions are referenced in this expression, they must be provided in the Grok Pattern File if set or exist in the default Grok patterns</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Grok Pattern file</name><displayName>Grok Patterns</displayName><description>Custom Grok pattern definitions. These definitions will be loaded after the default Grok patterns. The Grok Parser will use the default Grok patterns when this property is not configured.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>URL</resourceType><resourceType>FILE</resourceType><resourceType>TEXT</resourceType></resourceTypes></resourceDefinition></property><property><name>Destination</name><displayName>Destination</displayName><description>Control if Grok output value is written as a new flowfile attributes, in this case each of the Grok identifier that is matched in the flowfile will be added as an attribute, prefixed with "grok." or written in the flowfile content. Writing to flowfile content will overwrite any existing flowfile content.</description><defaultValue>flowfile-attribute</defaultValue><allowableValues><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>The Character Set in which the file is encoded</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Buffer Size</name><displayName>Maximum Buffer Size</displayName><description>Specifies the maximum amount of data to buffer (per file) in order to apply the Grok expressions. Files larger than the specified maximum will not be fully evaluated.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Named captures only</name><displayName>Named captures only</displayName><description>Only store named captures from grok</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Keep Empty Captures</name><displayName>Keep Empty Captures</displayName><description>If true, then empty capture values will be included in the returned capture map.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when no provided Grok Expression matches the content of the FlowFile</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the Grok Expression is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>grok.XXX</name><description>When operating in flowfile-attribute mode, each of the Grok identifier that is matched in the flowfile will be added as an attribute, prefixed with "grok." For example,if the grok identifier "timestamp" is matched, then the value will be added to an attribute named "grok.timestamp"</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>reference remote resources</requiredPermission><explanation>Patterns can reference resources over HTTP</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExtractRecordSchema</name><type>PROCESSOR</type><description>Extracts the record schema from the FlowFile using the supplied Record Reader and writes it to the `avro.schema` attribute.</description><tags><tag>record</tag><tag>generic</tag><tag>schema</tag><tag>json</tag><tag>csv</tag><tag>avro</tag><tag>freeform</tag><tag>text</tag><tag>xml</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for reading incoming data</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>cache-size</name><displayName>Schema Cache Size</displayName><description>Specifies the number of schemas to cache. This value should reflect the expected number of different schemas that may be in the incoming FlowFiles. This ensures more efficient retrieval of the schemas and thus the processor performance.</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>FlowFiles whose record schemas are successfully extracted will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If a FlowFile's record schema cannot be extracted from the configured input format, the FlowFile will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>record.error.message</name><description>This attribute provides on failure the error message encountered by the Reader.</description></writesAttribute><writesAttribute><name>avro.schema</name><description>This attribute provides the schema extracted from the input FlowFile using the provided RecordReader.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExtractText</name><type>PROCESSOR</type><description>Evaluates one or more Regular Expressions against the content of a FlowFile.  The results of those Regular Expressions are assigned to FlowFile Attributes.  Regular Expressions are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed.  The attributes are generated differently based on the enabling of named capture groups.  If named capture groups are not enabled:  The first capture group, if any found, will be placed into that attribute name.But all capture groups, including the matching string sequence itself will also be provided at that attribute name with an index value provided, with the exception of a capturing group that is optional and does not match - for example, given the attribute name "regex" and expression "abc(def)?(g)" we would add an attribute "regex.1" with a value of "def" if the "def" matched. If the "def" did not match, no attribute named "regex.1" would be added but an attribute named "regex.2" with a value of "g" will be added regardless.If named capture groups are enabled:  Each named capture group, if found will be placed into the attributes name with the name provided.  If enabled the matching string sequence itself will be placed into the attribute name.  If multiple matches are enabled, and index will be applied after the first set of matches. The exception is a capturing group that is optional and does not match  For example, given the attribute name "regex" and expression "abc(?&lt;NAMED&gt;def)?(?&lt;NAMED-TWO&gt;g)"  we would add an attribute "regex.NAMED" with the value of "def" if the "def" matched.  We would   add an attribute "regex.NAMED-TWO" with the value of "g" if the "g" matched regardless.  The value of the property must be a valid Regular Expressions with one or more capturing groups. If named capture groups are enabled, all capture groups must be named.  If they are not, then the  processor configuration will fail validation.  If the Regular Expression matches more than once, only the first match will be used unless the property enabling repeating capture group is set to true. If any provided Regular Expression matches, the FlowFile(s) will be routed to 'matched'. If no provided Regular Expression matches, the FlowFile will be routed to 'unmatched' and no attributes will be applied to the FlowFile.</description><tags><tag>evaluate</tag><tag>extract</tag><tag>Text</tag><tag>Regular Expression</tag><tag>regex</tag></tags><properties><property><name>Character Set</name><displayName>Character Set</displayName><description>The Character Set in which the file is encoded</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Buffer Size</name><displayName>Maximum Buffer Size</displayName><description>Specifies the maximum amount of data to buffer (per FlowFile) in order to apply the regular expressions. FlowFiles larger than the specified maximum will not be fully evaluated.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Capture Group Length</name><displayName>Maximum Capture Group Length</displayName><description>Specifies the maximum number of characters a given capture group value can have. Any characters beyond the max will be truncated.</description><defaultValue>1024</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Canonical Equivalence</name><displayName>Enable Canonical Equivalence</displayName><description>Indicates that two characters match only when their full canonical decompositions match.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Case-insensitive Matching</name><displayName>Enable Case-insensitive Matching</displayName><description>Indicates that two characters match even if they are in a different case.  Can also be specified via the embedded flag (?i).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Permit Whitespace and Comments in Pattern</name><displayName>Permit Whitespace and Comments in Pattern</displayName><description>In this mode, whitespace is ignored, and embedded comments starting with # are ignored until the end of a line.  Can also be specified via the embedded flag (?x).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable DOTALL Mode</name><displayName>Enable DOTALL Mode</displayName><description>Indicates that the expression '.' should match any character, including a line terminator.  Can also be specified via the embedded flag (?s).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Literal Parsing of the Pattern</name><displayName>Enable Literal Parsing of the Pattern</displayName><description>Indicates that Metacharacters and escape characters should be given no special meaning.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Multiline Mode</name><displayName>Enable Multiline Mode</displayName><description>Indicates that '^' and '$' should match just after and just before a line terminator or end of sequence, instead of only the beginning or end of the entire input.  Can also be specified via the embeded flag (?m).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Unicode-aware Case Folding</name><displayName>Enable Unicode-aware Case Folding</displayName><description>When used with 'Enable Case-insensitive Matching', matches in a manner consistent with the Unicode Standard.  Can also be specified via the embedded flag (?u).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Unicode Predefined Character Classes</name><displayName>Enable Unicode Predefined Character Classes</displayName><description>Specifies conformance with the Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility Properties.  Can also be specified via the embedded flag (?U).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Unix Lines Mode</name><displayName>Enable Unix Lines Mode</displayName><description>Indicates that only the '
+</configuration></useCase></useCases></extension><extension><name>org.apache.nifi.processors.standard.DetectDuplicate</name><type>PROCESSOR</type><description>Caches a value, computed from FlowFile attributes, for each incoming FlowFile and determines if the cached value has already been seen. If so, routes the FlowFile to 'duplicate' with an attribute named 'original.identifier' that specifies the original FlowFile's "description", which is specified in the &lt;FlowFile Description&gt; property. If the FlowFile is not determined to be a duplicate, the Processor routes the FlowFile to 'non-duplicate'</description><tags><tag>hash</tag><tag>dupe</tag><tag>duplicate</tag><tag>dedupe</tag></tags><properties><property><name>Cache Entry Identifier</name><displayName>Cache Entry Identifier</displayName><description>A FlowFile attribute, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the value used to identify duplicates; it is this value that is cached</description><defaultValue>${hash.value}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>FlowFile Description</name><displayName>FlowFile Description</displayName><description>When a FlowFile is added to the cache, this value is stored along with it so that if a duplicate is found, this description of the original FlowFile will be added to the duplicate's "original.flowfile.description" attribute</description><defaultValue></defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Age Off Duration</name><displayName>Age Off Duration</displayName><description>Time interval to age off cached FlowFiles</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distributed Cache Service</name><displayName>Distributed Cache Service</displayName><description>The Controller Service that is used to cache unique identifiers, used to determine duplicates</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Cache The Entry Identifier</name><displayName>Cache The Entry Identifier</displayName><description>When true this cause the processor to check for duplicates and cache the Entry Identifier. When false, the processor would only check for duplicates and not cache the Entry Identifier, requiring another processor to add identifiers to the distributed cache.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>duplicate</name><description>If a FlowFile has been detected to be a duplicate, it will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>non-duplicate</name><description>If a FlowFile's Cache Entry Identifier was not found in the cache, it will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If unable to communicate with the cache, the FlowFile will be penalized and routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>original.flowfile.description</name><description>All FlowFiles routed to the duplicate relationship will have an attribute added named original.flowfile.description. The value of this attribute is determined by the attributes of the original copy of the data and by the FlowFile Description property.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService</see><see>org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.DistributeLoad</name><type>PROCESSOR</type><description>Distributes FlowFiles to downstream processors based on a Distribution Strategy. If using the Round Robin strategy, the default is to assign each destination a weighting of 1 (evenly distributed). However, optional properties can be added to the change this; adding a property with the name '5' and value '10' means that the relationship with name '5' will be receive 10 FlowFiles in each iteration instead of 1.</description><tags><tag>distribute</tag><tag>load balance</tag><tag>route</tag><tag>round robin</tag><tag>weighted</tag></tags><properties><property><name>Number of Relationships</name><displayName>Number of Relationships</displayName><description>Determines the number of Relationships to which the load should be distributed</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distribution Strategy</name><displayName>Distribution Strategy</displayName><description>Determines how the load will be distributed. Relationship weight is in numeric order where '1' has the greatest weight.</description><defaultValue>round robin</defaultValue><allowableValues><allowableValue><displayName>round robin</displayName><value>round robin</value><description>Relationship selection is evenly distributed in a round robin fashion; all relationships must be available.</description></allowableValue><allowableValue><displayName>next available</displayName><value>next available</value><description>Relationship selection is distributed across all available relationships in order of their weight; at least one relationship must be available.</description></allowableValue><allowableValue><displayName>overflow</displayName><value>overflow</value><description>Relationship selection is the first available relationship without further distribution among all relationships; at least one relationship must be available.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>The relationship name (positive number)</name><value>The relationship Weight (positive number)</value><description>Adding a property with the name '5' and value '10' means that the relationship with name '5' will receive 10 FlowFiles in each iteration instead of 1.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>1</name><description>Where to route flowfiles for this relationship index</description><autoTerminated>false</autoTerminated></relationship></relationships><dynamicRelationship><name>A number 1..&lt;Number Of Relationships&gt;</name><description>FlowFiles are sent to this relationship per the &lt;Distribution Strategy&gt;</description></dynamicRelationship><writesAttributes><writesAttribute><name>distribute.load.relationship</name><description>The name of the specific relationship the FlowFile has been routed through</description></writesAttribute></writesAttributes><triggerWhenAnyDestinationAvailable>true</triggerWhenAnyDestinationAvailable><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.DuplicateFlowFile</name><type>PROCESSOR</type><description>Intended for load testing, this processor will create the configured number of copies of each incoming FlowFile. The original FlowFile as well as all generated copies are sent to the 'success' relationship. In addition, each FlowFile gets an attribute 'copy.index' set to the copy number, where the original FlowFile gets a value of zero, and all copies receive incremented integer values.</description><tags><tag>test</tag><tag>load</tag><tag>duplicate</tag></tags><properties><property><name>Number of Copies</name><displayName>Number of Copies</displayName><description>Specifies how many copies of each incoming FlowFile will be made</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>The original FlowFile and all copies will be sent to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>copy.index</name><description>A zero-based incrementing integer value based on which copy the FlowFile is.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EncodeContent</name><type>PROCESSOR</type><description>Encode or decode the contents of a FlowFile using Base64, Base32, or hex encoding schemes</description><tags><tag>encode</tag><tag>decode</tag><tag>base64</tag><tag>base32</tag><tag>hex</tag></tags><properties><property><name>Mode</name><displayName>Mode</displayName><description>Specifies whether the content should be encoded or decoded.</description><defaultValue>Encode</defaultValue><allowableValues><allowableValue><displayName>Encode</displayName><value>Encode</value><description>Transform original input to encoded representation</description></allowableValue><allowableValue><displayName>Decode</displayName><value>Decode</value><description>Transform encoded input to original representation</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Encoding</name><displayName>Encoding</displayName><description>Specifies the type of encoding used.</description><defaultValue>base64</defaultValue><allowableValues><allowableValue><displayName>Base64</displayName><value>base64</value><description>Encode or decode using Base64 set of characters</description></allowableValue><allowableValue><displayName>Base32</displayName><value>base32</value><description>Encode or decode using Base32 set of characters</description></allowableValue><allowableValue><displayName>Hexadecimal</displayName><value>hex</value><description>Encode or decode using hexadecimal set of characters</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Line Output Mode</name><displayName>Line Output Mode</displayName><description>Controls the line formatting for encoded content based on selected property values.</description><defaultValue>SINGLE_LINE</defaultValue><allowableValues><allowableValue><displayName>Single Line</displayName><value>SINGLE_LINE</value><description>The encoded content will be written as a single line.</description></allowableValue><allowableValue><displayName>Multiple Lines</displayName><value>MULTIPLE_LINES</value><description>The encoded content will be written as multiple lines.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Encoding</propertyName><propertyDisplayName>Encoding</propertyDisplayName><dependentValues><dependentValue>base32</dependentValue><dependentValue>base64</dependentValue></dependentValues></dependency><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>Encode</dependentValue></dependentValues></dependency></dependencies></property><property><name>Encoded Line Length</name><displayName>Encoded Line Length</displayName><description>Each line of encoded data will contain up to the configured number of characters, rounded down to the nearest multiple of 4.</description><defaultValue>76</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Encoding</propertyName><propertyDisplayName>Encoding</propertyDisplayName><dependentValues><dependentValue>base32</dependentValue><dependentValue>base64</dependentValue></dependentValues></dependency><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>Encode</dependentValue></dependentValues></dependency><dependency><propertyName>Line Output Mode</propertyName><propertyDisplayName>Line Output Mode</propertyDisplayName><dependentValues><dependentValue>MULTIPLE_LINES</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>failure</name><description>Any FlowFile that cannot be encoded or decoded will be routed to failure</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>Any FlowFile that is successfully encoded or decoded will be routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EnforceOrder</name><type>PROCESSOR</type><description>Enforces expected ordering of FlowFiles that belong to the same data group within a single node.  Although PriorityAttributePrioritizer can be used on a connection to ensure that flow files going through that connection are in priority order, depending on error-handling, branching, and other flow designs, it is possible for FlowFiles to get out-of-order. EnforceOrder can be used to enforce original ordering for those FlowFiles. [IMPORTANT] In order to take effect of EnforceOrder, FirstInFirstOutPrioritizer should be used at EVERY downstream relationship UNTIL the order of FlowFiles physically get FIXED by operation such as MergeContent or being stored to the final destination.</description><tags><tag>sort</tag><tag>order</tag></tags><properties><property><name>group-id</name><displayName>Group Identifier</displayName><description>EnforceOrder is capable of multiple ordering groups. 'Group Identifier' is used to determine which group a FlowFile belongs to. This property will be evaluated with each incoming FlowFile. If evaluated result is empty, the FlowFile will be routed to failure.</description><defaultValue>${filename}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>order-attribute</name><displayName>Order Attribute</displayName><description>A name of FlowFile attribute whose value will be used to enforce order of FlowFiles within a group. If a FlowFile does not have this attribute, or its value is not an integer, the FlowFile will be routed to failure.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>initial-order</name><displayName>Initial Order</displayName><description>When the first FlowFile of a group arrives, initial target order will be computed and stored in the managed state. After that, target order will start being tracked by EnforceOrder and stored in the state management store. If Expression Language is used but evaluated result was not an integer, then the FlowFile will be routed to failure, and initial order will be left unknown until consecutive FlowFiles provide a valid initial order.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>maximum-order</name><displayName>Maximum Order</displayName><description>If specified, any FlowFiles that have larger order will be routed to failure. This property is computed only once for a given group. After a maximum order is computed, it will be persisted in the state management store and used for other FlowFiles belonging to the same group. If Expression Language is used but evaluated result was not an integer, then the FlowFile will be routed to failure, and maximum order will be left unknown until consecutive FlowFiles provide a valid maximum order.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>batch-count</name><displayName>Batch Count</displayName><description>The maximum number of FlowFiles that EnforceOrder can process at an execution.</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-timeout</name><displayName>Wait Timeout</displayName><description>Indicates the duration after which waiting FlowFiles will be routed to the 'overtook' relationship.</description><defaultValue>10 min</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>inactive-timeout</name><displayName>Inactive Timeout</displayName><description>Indicates the duration after which state for an inactive group will be cleared from managed state. Group is determined as inactive if any new incoming FlowFile has not seen for a group for specified duration. Inactive Timeout must be longer than Wait Timeout. If a FlowFile arrives late after its group is already cleared, it will be treated as a brand new group, but will never match the order since expected preceding FlowFiles are already gone. The FlowFile will eventually timeout for waiting and routed to 'overtook'. To avoid this, group states should be kept long enough, however, shorter duration would be helpful for reusing the same group identifier again.</description><defaultValue>30 min</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>overtook</name><description>A FlowFile that waited for preceding FlowFiles longer than Wait Timeout and overtook those FlowFiles, will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>skipped</name><description>A FlowFile that has an order younger than current, which means arrived too late and skipped, will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>A FlowFile with a matching order number will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>wait</name><description>A FlowFile with non matching order will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>A FlowFiles which does not have required attributes, or fails to compute those will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>EnforceOrder.startedAt</name><description>All FlowFiles going through this processor will have this attribute. This value is used to determine wait timeout.</description></writesAttribute><writesAttribute><name>EnforceOrder.result</name><description>All FlowFiles going through this processor will have this attribute denoting which relationship it was routed to.</description></writesAttribute><writesAttribute><name>EnforceOrder.detail</name><description>FlowFiles routed to 'failure' or 'skipped' relationship will have this attribute describing details.</description></writesAttribute><writesAttribute><name>EnforceOrder.expectedOrder</name><description>FlowFiles routed to 'wait' or 'skipped' relationship will have this attribute denoting expected order when the FlowFile was processed.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><stateful><description>EnforceOrder uses following states per ordering group: '&lt;groupId&gt;.target' is a order number which is being waited to arrive next. When a FlowFile with a matching order arrives, or a FlowFile overtakes the FlowFile being waited for because of wait timeout, target order will be updated to (FlowFile.order + 1). '&lt;groupId&gt;.max is the maximum order number for a group. '&lt;groupId&gt;.updatedAt' is a timestamp when the order of a group was updated last time. These managed states will be removed automatically once a group is determined as inactive, see 'Inactive Timeout' for detail.</description><scopes><scope>LOCAL</scope></scopes></stateful><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EvaluateJsonPath</name><type>PROCESSOR</type><description>Evaluates one or more JsonPath expressions against the content of a FlowFile. The results of those expressions are assigned to FlowFile Attributes or are written to the content of the FlowFile itself, depending on configuration of the Processor. JsonPaths are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed (if the Destination is flowfile-attribute; otherwise, the property name is ignored). The value of the property must be a valid JsonPath expression. A Return Type of 'auto-detect' will make a determination based off the configured destination. When 'Destination' is set to 'flowfile-attribute,' a return type of 'scalar' will be used. When 'Destination' is set to 'flowfile-content,' a return type of 'JSON' will be used.If the JsonPath evaluates to a JSON array or JSON object and the Return Type is set to 'scalar' the FlowFile will be unmodified and will be routed to failure. A Return Type of JSON can return scalar values if the provided JsonPath evaluates to the specified value and will be routed as a match.If Destination is 'flowfile-content' and the JsonPath does not evaluate to a defined path, the FlowFile will be routed to 'unmatched' without having its contents modified. If Destination is 'flowfile-attribute' and the expression matches nothing, attributes will be created with empty strings as the value unless 'Path Not Found Behaviour' is set to 'skip', and the FlowFile will always be routed to 'matched.'</description><tags><tag>JSON</tag><tag>evaluate</tag><tag>JsonPath</tag></tags><properties><property><name>Destination</name><displayName>Destination</displayName><description>Indicates whether the results of the JsonPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one JsonPath may be specified, and the property name is ignored.</description><defaultValue>flowfile-content</defaultValue><allowableValues><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Return Type</name><displayName>Return Type</displayName><description>Indicates the desired return type of the JSON Path expressions.  Selecting 'auto-detect' will set the return type to 'json' for a Destination of 'flowfile-content', and 'scalar' for a Destination of 'flowfile-attribute'.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>auto-detect</displayName><value>auto-detect</value><description></description></allowableValue><allowableValue><displayName>json</displayName><value>json</value><description></description></allowableValue><allowableValue><displayName>scalar</displayName><value>scalar</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Not Found Behavior</name><displayName>Path Not Found Behavior</displayName><description>Indicates how to handle missing JSON path expressions when destination is set to 'flowfile-attribute'. Selecting 'warn' will generate a warning when a JSON path expression is not found. Selecting 'skip' will omit attributes for any unmatched JSON path expressions.</description><defaultValue>ignore</defaultValue><allowableValues><allowableValue><displayName>warn</displayName><value>warn</value><description></description></allowableValue><allowableValue><displayName>ignore</displayName><value>ignore</value><description></description></allowableValue><allowableValue><displayName>skip</displayName><value>skip</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Destination</propertyName><propertyDisplayName>Destination</propertyDisplayName><dependentValues><dependentValue>flowfile-attribute</dependentValue></dependentValues></dependency></dependencies></property><property><name>Null Value Representation</name><displayName>Null Value Representation</displayName><description>Indicates the desired representation of JSON Path expressions resulting in a null value.</description><defaultValue>empty string</defaultValue><allowableValues><allowableValue><displayName>empty string</displayName><value>empty string</value><description></description></allowableValue><allowableValue><displayName>the string 'null'</displayName><value>the string 'null'</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max String Length</name><displayName>Max String Length</displayName><description>The maximum allowed length of a string value when parsing the JSON document</description><defaultValue>20 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>A FlowFile attribute(if &lt;Destination&gt; is set to 'flowfile-attribute')</name><value>A JsonPath expression</value><description>If &lt;Destination&gt;='flowfile-attribute' then that FlowFile attribute will be set to any JSON objects that match the JsonPath.  If &lt;Destination&gt;='flowfile-content' then the FlowFile content will be updated to any JSON objects that match the JsonPath.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles are routed to this relationship when the JsonPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid JSON</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when the JsonPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the JsonPath is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.EvaluateXPath</name><type>PROCESSOR</type><description>Evaluates one or more XPaths against the content of a FlowFile. The results of those XPaths are assigned to FlowFile Attributes or are written to the content of the FlowFile itself, depending on configuration of the Processor. XPaths are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed (if the Destination is flowfile-attribute; otherwise, the property name is ignored). The value of the property must be a valid XPath expression. If the XPath evaluates to more than one node and the Return Type is set to 'nodeset' (either directly, or via 'auto-detect' with a Destination of 'flowfile-content'), the FlowFile will be unmodified and will be routed to failure. If the XPath does not evaluate to a Node, the FlowFile will be routed to 'unmatched' without having its contents modified. If Destination is flowfile-attribute and the expression matches nothing, attributes will be created with empty strings as the value, and the FlowFile will always be routed to 'matched'</description><tags><tag>XML</tag><tag>evaluate</tag><tag>XPath</tag></tags><properties><property><name>Destination</name><displayName>Destination</displayName><description>Indicates whether the results of the XPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one XPath may be specified, and the property name is ignored.</description><defaultValue>flowfile-content</defaultValue><allowableValues><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Return Type</name><displayName>Return Type</displayName><description>Indicates the desired return type of the Xpath expressions.  Selecting 'auto-detect' will set the return type to 'nodeset' for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>auto-detect</displayName><value>auto-detect</value><description></description></allowableValue><allowableValue><displayName>nodeset</displayName><value>nodeset</value><description></description></allowableValue><allowableValue><displayName>string</displayName><value>string</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Validate DTD</name><displayName>Allow DTD</displayName><description>Allow embedded Document Type Declaration in XML. This feature should be disabled to avoid XML entity expansion vulnerabilities.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>A FlowFile attribute(if &lt;Destination&gt; is set to 'flowfile-attribute'</name><value>An XPath expression</value><description>If &lt;Destination&gt;='flowfile-attribute' then the FlowFile attribute is set to the result of the XPath Expression.  If &lt;Destination&gt;='flowfile-content' then the FlowFile content is set to the result of the XPath Expression.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles are routed to this relationship when the XPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid XML, or if the Return Type is 'nodeset' and the XPath evaluates to multiple nodes</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when the XPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the XPath is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>user-defined</name><description>This processor adds user-defined attributes if the &lt;Destination&gt; property is set to flowfile-attribute.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>Processing requires reading the entire FlowFile into memory</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.EvaluateXQuery</name><type>PROCESSOR</type><description>Evaluates one or more XQueries against the content of a FlowFile.  The results of those XQueries are assigned to FlowFile Attributes or are written to the content of the FlowFile itself, depending on configuration of the Processor.  XQueries are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed (if the Destination is 'flowfile-attribute'; otherwise, the property name is ignored).  The value of the property must be a valid XQuery.  If the XQuery returns more than one result, new attributes or FlowFiles (for Destinations of 'flowfile-attribute' or 'flowfile-content' respectively) will be created for each result (attributes will have a '.n' one-up number appended to the specified attribute name).  If any provided XQuery returns a result, the FlowFile(s) will be routed to 'matched'. If no provided XQuery returns a result, the FlowFile will be routed to 'unmatched'.  If the Destination is 'flowfile-attribute' and the XQueries matche nothing, no attributes will be applied to the FlowFile.</description><tags><tag>XML</tag><tag>evaluate</tag><tag>XPath</tag><tag>XQuery</tag></tags><properties><property><name>Destination</name><displayName>Destination</displayName><description>Indicates whether the results of the XQuery evaluation are written to the FlowFile content or a FlowFile attribute. If set to &lt;flowfile-content&gt;, only one XQuery may be specified and the property name is ignored.  If set to &lt;flowfile-attribute&gt; and the XQuery returns more than one result, multiple attributes will be added to theFlowFile, each named with a '.n' one-up number appended to the specified attribute name</description><defaultValue>flowfile-content</defaultValue><allowableValues><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output: Method</name><displayName>Output: Method</displayName><description>Identifies the overall method that should be used for outputting a result tree.</description><defaultValue>xml</defaultValue><allowableValues><allowableValue><displayName>xml</displayName><value>xml</value><description></description></allowableValue><allowableValue><displayName>html</displayName><value>html</value><description></description></allowableValue><allowableValue><displayName>text</displayName><value>text</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output: Omit XML Declaration</name><displayName>Output: Omit XML Declaration</displayName><description>Specifies whether the processor should output an XML declaration when transforming a result tree.</description><defaultValue>false</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output: Indent</name><displayName>Output: Indent</displayName><description>Specifies whether the processor may add additional whitespace when outputting a result tree.</description><defaultValue>false</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Validate DTD</name><displayName>Allow DTD</displayName><description>Allow embedded Document Type Declaration in XML. This feature should be disabled to avoid XML entity expansion vulnerabilities.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>A FlowFile attribute(if &lt;Destination&gt; is set to 'flowfile-attribute'</name><value>An XQuery</value><description>If &lt;Destination&gt;='flowfile-attribute' then the FlowFile attribute is set to the result of the XQuery.  If &lt;Destination&gt;='flowfile-content' then the FlowFile content is set to the result of the XQuery.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles are routed to this relationship when the XQuery cannot be evaluated against the content of the FlowFile.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when the XQuery does not match the content of the FlowFile and the Destination is set to flowfile-content</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the XQuery is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>user-defined</name><description>This processor adds user-defined attributes if the &lt;Destination&gt; property is set to flowfile-attribute .</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>Processing requires reading the entire FlowFile into memory</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.ExecuteProcess</name><type>PROCESSOR</type><description>Runs an operating system command specified by the user and writes the output of that command to a FlowFile. If the command is expected to be long-running, the Processor can output the partial data on a specified interval. When this option is used, the output is expected to be in textual format, as it typically does not make sense to split binary data on arbitrary time-based intervals.</description><tags><tag>command</tag><tag>process</tag><tag>source</tag><tag>external</tag><tag>invoke</tag><tag>script</tag></tags><properties><property><name>Command</name><displayName>Command</displayName><description>Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Command Arguments</name><displayName>Command Arguments</displayName><description>The arguments to supply to the executable delimited by white space. White space can be escaped by enclosing it in double-quotes.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Batch Duration</name><displayName>Batch Duration</displayName><description>If the process is expected to be long-running and produce textual output, a batch duration can be specified so that the output will be captured for this amount of time and a FlowFile will then be sent out with the results and a new FlowFile will be started, rather than waiting for the process to finish before sending out the results</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Redirect Error Stream</name><displayName>Redirect Error Stream</displayName><description>If true will redirect any error stream output of the process to the output stream. This is particularly helpful for processes which write extensively to the error stream or for troubleshooting.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Working Directory</name><displayName>Working Directory</displayName><description>The directory to use as the current working directory when executing the command</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Argument Delimiter</name><displayName>Argument Delimiter</displayName><description>Delimiter to use to separate arguments for a command [default: space]. Must be a single character.</description><defaultValue> </defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output MIME type</name><displayName>Output MIME Type</displayName><description>Specifies the value to set for the "mime.type" attribute. This property is ignored if 'Batch Duration' is set.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>An environment variable name</name><value>An environment variable value</value><description>These environment variables are passed to the process spawned by this Processor</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>All created FlowFiles are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>command</name><description>Executed command</description></writesAttribute><writesAttribute><name>command.arguments</name><description>Arguments of the command</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the MIME type of the output if the 'Output MIME Type' property is set and 'Batch Duration' is not set</description></writesAttribute></writesAttributes><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExecuteSQL</name><type>PROCESSOR</type><description>Executes provided SQL select query. Query result will be converted to Avro format. Streaming is used so arbitrarily large result sets are supported. This processor can be scheduled to run on a timer, or cron expression, using the standard scheduling methods, or it can be triggered by an incoming FlowFile. If it is triggered by an incoming FlowFile, then attributes of that FlowFile will be available when evaluating the select query, and the query may use the ? to escape parameters. In this case, the parameters to use must exist as FlowFile attributes with the naming convention sql.args.N.type and sql.args.N.value, where N is a positive integer. The sql.args.N.type is expected to be a number indicating the JDBC Type. The content of the FlowFile is expected to be in UTF-8 format. FlowFile attribute 'executesql.row.count' indicates how many rows were selected.</description><tags><tag>sql</tag><tag>select</tag><tag>jdbc</tag><tag>query</tag><tag>database</tag></tags><properties><property><name>Database Connection Pooling Service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain connection to database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-pre-query</name><displayName>SQL Pre-Query</displayName><description>A semicolon-delimited list of queries executed before the main SQL query is executed. For example, set session properties before main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SQL select query</name><displayName>SQL select query</displayName><description>The SQL select query to execute. The query can be empty, a constant value, or built from attributes using Expression Language. If this property is specified, it will be used regardless of the content of incoming flowfiles. If this property is empty, the content of the incoming flow file is expected to contain a valid SQL select query, to be issued by the processor to the database. Note that Expression Language is not evaluated for flow file contents.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-post-query</name><displayName>SQL Post-Query</displayName><description>A semicolon-delimited list of queries executed after the main SQL query is executed. Example like setting session properties after main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Wait Time</name><displayName>Max Wait Time</displayName><description>The maximum amount of time allowed for a running SQL select query  , zero means there is no limit. Max time less than 1 second will be equal to zero.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-normalize</name><displayName>Normalize Table/Column Names</displayName><description>Whether to change non-Avro-compatible characters in column names to Avro-compatible characters. For example, colons and periods will be changed to underscores in order to build a valid Avro record.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-user-logical-types</name><displayName>Use Avro Logical Types</displayName><description>Whether to use Avro Logical Types for DECIMAL/NUMBER, DATE, TIME and TIMESTAMP columns. If disabled, written as string. If enabled, Logical types are used and written as its underlying type, specifically, DECIMAL/NUMBER as logical 'decimal': written as bytes with additional precision and scale meta data, DATE as logical 'date-millis': written as int denoting days since Unix epoch (1970-01-01), TIME as logical 'time-millis': written as int denoting milliseconds since Unix epoch, and TIMESTAMP as logical 'timestamp-millis': written as long denoting milliseconds since Unix epoch. If a reader of written Avro records also knows these logical types, then these values can be deserialized with more context depending on reader implementation.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>compression-format</name><displayName>Compression Format</displayName><description>Compression type to use when writing Avro files. Default is None.</description><defaultValue>NONE</defaultValue><allowableValues><allowableValue><displayName>BZIP2</displayName><value>BZIP2</value><description></description></allowableValue><allowableValue><displayName>DEFLATE</displayName><value>DEFLATE</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue><allowableValue><displayName>SNAPPY</displayName><value>SNAPPY</value><description></description></allowableValue><allowableValue><displayName>LZO</displayName><value>LZO</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-precision</name><displayName>Default Decimal Precision</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'precision' denoting number of available digits is required. Generally, precision is defined by column data type definition or database engines default. However undefined precision (0) can be returned from some database engines. 'Default Decimal Precision' is used when writing those undefined precision numbers.</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-scale</name><displayName>Default Decimal Scale</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'scale' denoting number of available decimal digits is required. Generally, scale is defined by column data type definition or database engines default. However when undefined precision (0) is returned, scale can also be uncertain with some database engines. 'Default Decimal Scale' is used when writing those undefined numbers. If a value has more decimals than specified scale, then the value will be rounded-up, e.g. 1.53 becomes 2 with scale 0, and 1.5 with scale 1.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-max-rows</name><displayName>Max Rows Per Flow File</displayName><description>The maximum number of result rows that will be included in a single FlowFile. This will allow you to break up very large result sets into multiple FlowFiles. If the value specified is zero, then all rows are returned in a single FlowFile.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-output-batch-size</name><displayName>Output Batch Size</displayName><description>The number of output FlowFiles to queue before committing the process session. When set to zero, the session will be committed when all result set rows have been processed and the output FlowFiles are ready for transfer to the downstream relationship. For large result sets, this can cause a large burst of FlowFiles to be transferred at the end of processor execution. If this property is set, then when the specified number of FlowFiles are ready for transfer, then the session will be committed, thus releasing the FlowFiles to the downstream relationship. NOTE: The fragment.count attribute will not be set on FlowFiles when this property is set.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-fetch-size</name><displayName>Fetch Size</displayName><description>The number of result rows to be fetched from the result set at a time. This is a hint to the database driver and may not be honored and/or exact. If the value specified is zero, then the hint is ignored.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-auto-commit</name><displayName>Set Auto Commit</displayName><description>Enables or disables the auto commit functionality of the DB connection. Default value is 'true'. The default value can be used with most of the JDBC drivers and this functionality doesn't have any impact in most of the cases since this processor is used to read data. However, for some JDBC drivers such as PostgreSQL driver, it is required to disable the auto committing functionality to limit the number of result rows fetching at a time. When auto commit is enabled, postgreSQL driver loads whole result set to memory at once. This could lead for a large amount of memory usage when executing queries which fetch large data sets. More Details of this behaviour in PostgreSQL driver can be found in https://jdbc.postgresql.org//documentation/head/query.html. </description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>sql.args.N.type</name><value>SQL type argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.value</name><value>Argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.format</name><value>SQL format argument to be supplied</value><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>success</name><description>Successfully created FlowFile from SQL query result set.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>SQL query execution failed. Incoming FlowFile will be penalized and routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>sql.args.N.type</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description></readsAttribute><readsAttribute><name>sql.args.N.value</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description></readsAttribute><readsAttribute><name>sql.args.N.format</name><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>executesql.row.count</name><description>Contains the number of rows returned by the query. If 'Max Rows Per Flow File' is set, then this number will reflect the number of rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>executesql.query.duration</name><description>Combined duration of the query execution time and fetch time in milliseconds. If 'Max Rows Per Flow File' is set, then this number will reflect only the fetch time for the rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>executesql.query.executiontime</name><description>Duration of the query execution time in milliseconds. This number will reflect the query execution time regardless of the 'Max Rows Per Flow File' setting.</description></writesAttribute><writesAttribute><name>executesql.query.fetchtime</name><description>Duration of the result set fetch time in milliseconds. If 'Max Rows Per Flow File' is set, then this number will reflect only the fetch time for the rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>executesql.resultset.index</name><description>Assuming multiple result sets are returned, the zero based index of this result set.</description></writesAttribute><writesAttribute><name>executesql.error.message</name><description>If processing an incoming flow file causes an Exception, the Flow File is routed to failure and this attribute is set to the exception message.</description></writesAttribute><writesAttribute><name>fragment.identifier</name><description>If 'Max Rows Per Flow File' is set then all FlowFiles from the same query result set will have the same value for the fragment.identifier attribute. This can then be used to correlate the results.</description></writesAttribute><writesAttribute><name>fragment.count</name><description>If 'Max Rows Per Flow File' is set then this is the total number of  FlowFiles produced by a single ResultSet. This can be used in conjunction with the fragment.identifier attribute in order to know how many FlowFiles belonged to the same incoming ResultSet. If Output Batch Size is set, then this attribute will not be populated.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>If 'Max Rows Per Flow File' is set then the position of this FlowFile in the list of outgoing FlowFiles that were all derived from the same result set FlowFile. This can be used in conjunction with the fragment.identifier attribute to know which FlowFiles originated from the same query result set and in what order  FlowFiles were produced</description></writesAttribute><writesAttribute><name>input.flowfile.uuid</name><description>If the processor has an incoming connection, outgoing FlowFiles will have this attribute set to the value of the input FlowFile's UUID. If there is no incoming connection, the attribute will not be added.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExecuteSQLRecord</name><type>PROCESSOR</type><description>Executes provided SQL select query. Query result will be converted to the format specified by a Record Writer. Streaming is used so arbitrarily large result sets are supported. This processor can be scheduled to run on a timer, or cron expression, using the standard scheduling methods, or it can be triggered by an incoming FlowFile. If it is triggered by an incoming FlowFile, then attributes of that FlowFile will be available when evaluating the select query, and the query may use the ? to escape parameters. In this case, the parameters to use must exist as FlowFile attributes with the naming convention sql.args.N.type and sql.args.N.value, where N is a positive integer. The sql.args.N.type is expected to be a number indicating the JDBC Type. The content of the FlowFile is expected to be in UTF-8 format. FlowFile attribute 'executesql.row.count' indicates how many rows were selected.</description><tags><tag>sql</tag><tag>select</tag><tag>jdbc</tag><tag>query</tag><tag>database</tag><tag>record</tag></tags><properties><property><name>Database Connection Pooling Service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain connection to database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-pre-query</name><displayName>SQL Pre-Query</displayName><description>A semicolon-delimited list of queries executed before the main SQL query is executed. For example, set session properties before main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SQL select query</name><displayName>SQL select query</displayName><description>The SQL select query to execute. The query can be empty, a constant value, or built from attributes using Expression Language. If this property is specified, it will be used regardless of the content of incoming flowfiles. If this property is empty, the content of the incoming flow file is expected to contain a valid SQL select query, to be issued by the processor to the database. Note that Expression Language is not evaluated for flow file contents.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sql-post-query</name><displayName>SQL Post-Query</displayName><description>A semicolon-delimited list of queries executed after the main SQL query is executed. Example like setting session properties after main query. It's possible to include semicolons in the statements themselves by escaping them with a backslash ('\;'). Results/outputs from these queries will be suppressed if there are no errors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Wait Time</name><displayName>Max Wait Time</displayName><description>The maximum amount of time allowed for a running SQL select query  , zero means there is no limit. Max time less than 1 second will be equal to zero.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esqlrecord-record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing results to a FlowFile. The Record Writer may use Inherit Schema to emulate the inferred schema behavior, i.e. an explicit schema need not be defined in the writer, and will be supplied by the same logic used to infer the schema from the column types.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esqlrecord-normalize</name><displayName>Normalize Table/Column Names</displayName><description>Whether to change characters in column names. For example, colons and periods will be changed to underscores.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-user-logical-types</name><displayName>Use Avro Logical Types</displayName><description>Whether to use Avro Logical Types for DECIMAL/NUMBER, DATE, TIME and TIMESTAMP columns. If disabled, written as string. If enabled, Logical types are used and written as its underlying type, specifically, DECIMAL/NUMBER as logical 'decimal': written as bytes with additional precision and scale meta data, DATE as logical 'date-millis': written as int denoting days since Unix epoch (1970-01-01), TIME as logical 'time-millis': written as int denoting milliseconds since Unix epoch, and TIMESTAMP as logical 'timestamp-millis': written as long denoting milliseconds since Unix epoch. If a reader of written Avro records also knows these logical types, then these values can be deserialized with more context depending on reader implementation.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-precision</name><displayName>Default Decimal Precision</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'precision' denoting number of available digits is required. Generally, precision is defined by column data type definition or database engines default. However undefined precision (0) can be returned from some database engines. 'Default Decimal Precision' is used when writing those undefined precision numbers.</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbf-default-scale</name><displayName>Default Decimal Scale</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'scale' denoting number of available decimal digits is required. Generally, scale is defined by column data type definition or database engines default. However when undefined precision (0) is returned, scale can also be uncertain with some database engines. 'Default Decimal Scale' is used when writing those undefined numbers. If a value has more decimals than specified scale, then the value will be rounded-up, e.g. 1.53 becomes 2 with scale 0, and 1.5 with scale 1.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-max-rows</name><displayName>Max Rows Per Flow File</displayName><description>The maximum number of result rows that will be included in a single FlowFile. This will allow you to break up very large result sets into multiple FlowFiles. If the value specified is zero, then all rows are returned in a single FlowFile.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-output-batch-size</name><displayName>Output Batch Size</displayName><description>The number of output FlowFiles to queue before committing the process session. When set to zero, the session will be committed when all result set rows have been processed and the output FlowFiles are ready for transfer to the downstream relationship. For large result sets, this can cause a large burst of FlowFiles to be transferred at the end of processor execution. If this property is set, then when the specified number of FlowFiles are ready for transfer, then the session will be committed, thus releasing the FlowFiles to the downstream relationship. NOTE: The fragment.count attribute will not be set on FlowFiles when this property is set.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-fetch-size</name><displayName>Fetch Size</displayName><description>The number of result rows to be fetched from the result set at a time. This is a hint to the database driver and may not be honored and/or exact. If the value specified is zero, then the hint is ignored.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>esql-auto-commit</name><displayName>Set Auto Commit</displayName><description>Enables or disables the auto commit functionality of the DB connection. Default value is 'true'. The default value can be used with most of the JDBC drivers and this functionality doesn't have any impact in most of the cases since this processor is used to read data. However, for some JDBC drivers such as PostgreSQL driver, it is required to disable the auto committing functionality to limit the number of result rows fetching at a time. When auto commit is enabled, postgreSQL driver loads whole result set to memory at once. This could lead for a large amount of memory usage when executing queries which fetch large data sets. More Details of this behaviour in PostgreSQL driver can be found in https://jdbc.postgresql.org//documentation/head/query.html. </description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>sql.args.N.type</name><value>SQL type argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.value</name><value>Argument to be supplied</value><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>sql.args.N.format</name><value>SQL format argument to be supplied</value><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>success</name><description>Successfully created FlowFile from SQL query result set.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>SQL query execution failed. Incoming FlowFile will be penalized and routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>sql.args.N.type</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter. The following types are accepted: [LONGNVARCHAR: -16], [BIT: -7], [BOOLEAN: 16], [TINYINT: -6], [BIGINT: -5], [LONGVARBINARY: -4], [VARBINARY: -3], [BINARY: -2], [LONGVARCHAR: -1], [CHAR: 1], [NUMERIC: 2], [DECIMAL: 3], [INTEGER: 4], [SMALLINT: 5] [FLOAT: 6], [REAL: 7], [DOUBLE: 8], [VARCHAR: 12], [DATE: 91], [TIME: 92], [TIMESTAMP: 93], [VARCHAR: 12], [CLOB: 2005], [NCLOB: 2011]</description></readsAttribute><readsAttribute><name>sql.args.N.value</name><description>Incoming FlowFiles are expected to be parametrized SQL statements. The value of the Parameters are specified as sql.args.1.value, sql.args.2.value, sql.args.3.value, and so on. The type of the sql.args.1.value Parameter is specified by the sql.args.1.type attribute.</description></readsAttribute><readsAttribute><name>sql.args.N.format</name><description>This attribute is always optional, but default options may not always work for your data. Incoming FlowFiles are expected to be parametrized SQL statements. In some cases a format option needs to be specified, currently this is only applicable for binary data types, dates, times and timestamps. Binary Data Types (defaults to 'ascii') - ascii: each string character in your attribute value represents a single byte. This is the format provided by Avro Processors. base64: the string is a Base64 encoded string that can be decoded to bytes. hex: the string is hex encoded with all letters in upper case and no '0x' at the beginning. Dates/Times/Timestamps - Date, Time and Timestamp formats all support both custom formats or named format ('yyyy-MM-dd','ISO_OFFSET_DATE_TIME') as specified according to java.time.format.DateTimeFormatter. If not specified, a long value input is expected to be an unix epoch (milli seconds from 1970/1/1), or a string value in 'yyyy-MM-dd' format for Date, 'HH:mm:ss.SSS' for Time (some database engines e.g. Derby or MySQL do not support milliseconds and will truncate milliseconds), 'yyyy-MM-dd HH:mm:ss.SSS' for Timestamp is used.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>executesql.row.count</name><description>Contains the number of rows returned in the select query</description></writesAttribute><writesAttribute><name>executesql.query.duration</name><description>Combined duration of the query execution time and fetch time in milliseconds</description></writesAttribute><writesAttribute><name>executesql.query.executiontime</name><description>Duration of the query execution time in milliseconds</description></writesAttribute><writesAttribute><name>executesql.query.fetchtime</name><description>Duration of the result set fetch time in milliseconds</description></writesAttribute><writesAttribute><name>executesql.resultset.index</name><description>Assuming multiple result sets are returned, the zero based index of this result set.</description></writesAttribute><writesAttribute><name>executesql.error.message</name><description>If processing an incoming flow file causes an Exception, the Flow File is routed to failure and this attribute is set to the exception message.</description></writesAttribute><writesAttribute><name>fragment.identifier</name><description>If 'Max Rows Per Flow File' is set then all FlowFiles from the same query result set will have the same value for the fragment.identifier attribute. This can then be used to correlate the results.</description></writesAttribute><writesAttribute><name>fragment.count</name><description>If 'Max Rows Per Flow File' is set then this is the total number of  FlowFiles produced by a single ResultSet. This can be used in conjunction with the fragment.identifier attribute in order to know how many FlowFiles belonged to the same incoming ResultSet. If Output Batch Size is set, then this attribute will not be populated.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>If 'Max Rows Per Flow File' is set then the position of this FlowFile in the list of outgoing FlowFiles that were all derived from the same result set FlowFile. This can be used in conjunction with the fragment.identifier attribute to know which FlowFiles originated from the same query result set and in what order  FlowFiles were produced</description></writesAttribute><writesAttribute><name>input.flowfile.uuid</name><description>If the processor has an incoming connection, outgoing FlowFiles will have this attribute set to the value of the input FlowFile's UUID. If there is no incoming connection, the attribute will not be added.</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer.</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records output by the Record Writer.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExecuteStreamCommand</name><type>PROCESSOR</type><description>The ExecuteStreamCommand processor provides a flexible way to integrate external commands and scripts into NiFi data flows. ExecuteStreamCommand can pass the incoming FlowFile's content to the command that it executes similarly how piping works.</description><tags><tag>command execution</tag><tag>command</tag><tag>stream</tag><tag>execute</tag></tags><properties><property><name>Working Directory</name><displayName>Working Directory</displayName><description>The directory to use as the current working directory when executing the command</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Command Path</name><displayName>Command Path</displayName><description>Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>argumentsStrategy</name><displayName>Command Arguments Strategy</displayName><description>Strategy for configuring arguments to be supplied to the command.</description><defaultValue>Command Arguments Property</defaultValue><allowableValues><allowableValue><displayName>Command Arguments Property</displayName><value>Command Arguments Property</value><description>Arguments to be supplied to the executable are taken from the Command Arguments property</description></allowableValue><allowableValue><displayName>Dynamic Property Arguments</displayName><value>Dynamic Property Arguments</value><description>Arguments to be supplied to the executable are taken from dynamic properties with pattern of 'command.argument.&lt;commandIndex&gt;'</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Command Arguments</name><displayName>Command Arguments</displayName><description>The arguments to supply to the executable delimited by the ';' character.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>argumentsStrategy</propertyName><propertyDisplayName>Command Arguments Strategy</propertyDisplayName><dependentValues><dependentValue>Command Arguments Property</dependentValue></dependentValues></dependency></dependencies></property><property><name>Argument Delimiter</name><displayName>Argument Delimiter</displayName><description>Delimiter to use to separate arguments for a command [default: ;]. Must be a single character</description><defaultValue>;</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>argumentsStrategy</propertyName><propertyDisplayName>Command Arguments Strategy</propertyDisplayName><dependentValues><dependentValue>Command Arguments Property</dependentValue></dependentValues></dependency></dependencies></property><property><name>Ignore STDIN</name><displayName>Ignore STDIN</displayName><description>If true, the contents of the incoming flowfile will not be passed to the executing command</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output Destination Attribute</name><displayName>Output Destination Attribute</displayName><description>If set, the output of the stream command will be put into an attribute of the original FlowFile instead of a separate FlowFile. There will no longer be a relationship for 'output stream' or 'nonzero status'. The value of this property will be the key for the output attribute.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Attribute Length</name><displayName>Max Attribute Length</displayName><description>If routing the output of the stream command to an attribute, the number of characters put to the attribute value will be at most this amount. This is important because attributes are held in memory and large attributes will quickly cause out of memory issues. If the output goes longer than this value, it will truncated to fit. Consider making this smaller if able.</description><defaultValue>256</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output MIME Type</name><displayName>Output MIME Type</displayName><description>Specifies the value to set for the "mime.type" attribute. This property is ignored if 'Output Destination Attribute' is set.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>An environment variable name</name><value>An environment variable value</value><description>These environment variables are passed to the process spawned by this Processor</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty><dynamicProperty><name>command.argument.&lt;commandIndex&gt;</name><value>Argument to be supplied to the command</value><description>These arguments are supplied to the process spawned by this Processor when using the Command Arguments Strategy : Dynamic Property Arguments. &lt;commandIndex&gt; is a number and it will determine the order.</description><expressionLanguageScope>NONE</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>output stream</name><description>The destination path for the flow file created from the command's output, if the returned status code is zero.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>nonzero status</name><description>The destination path for the flow file created from the command's output, if the returned status code is non-zero. All flow files routed to this relationship will be penalized.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original FlowFile will be routed. It will have new attributes detailing the result of the script execution.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>execution.command</name><description>The name of the command executed</description></writesAttribute><writesAttribute><name>execution.command.args</name><description>The semi-colon delimited list of arguments. Sensitive properties will be masked</description></writesAttribute><writesAttribute><name>execution.status</name><description>The exit status code returned from executing the command</description></writesAttribute><writesAttribute><name>execution.error</name><description>Any error messages returned from executing the command</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the MIME type of the output if the 'Output MIME Type' property is set and 'Output Destination Attribute' is not set</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExtractGrok</name><type>PROCESSOR</type><description>Evaluates one or more Grok Expressions against the content of a FlowFile, adding the results as attributes or replacing the content of the FlowFile with a JSON notation of the matched content</description><tags><tag>grok</tag><tag>log</tag><tag>text</tag><tag>parse</tag><tag>delimit</tag><tag>extract</tag></tags><properties><property><name>Grok Expression</name><displayName>Grok Expression</displayName><description>Grok expression. If other Grok expressions are referenced in this expression, they must be provided in the Grok Pattern File if set or exist in the default Grok patterns</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Grok Pattern file</name><displayName>Grok Patterns</displayName><description>Custom Grok pattern definitions. These definitions will be loaded after the default Grok patterns. The Grok Parser will use the default Grok patterns when this property is not configured.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>TEXT</resourceType><resourceType>URL</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Destination</name><displayName>Destination</displayName><description>Control if Grok output value is written as a new flowfile attributes, in this case each of the Grok identifier that is matched in the flowfile will be added as an attribute, prefixed with "grok." or written in the flowfile content. Writing to flowfile content will overwrite any existing flowfile content.</description><defaultValue>flowfile-attribute</defaultValue><allowableValues><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>The Character Set in which the file is encoded</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Buffer Size</name><displayName>Maximum Buffer Size</displayName><description>Specifies the maximum amount of data to buffer (per file) in order to apply the Grok expressions. Files larger than the specified maximum will not be fully evaluated.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Named captures only</name><displayName>Named captures only</displayName><description>Only store named captures from grok</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Keep Empty Captures</name><displayName>Keep Empty Captures</displayName><description>If true, then empty capture values will be included in the returned capture map.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>unmatched</name><description>FlowFiles are routed to this relationship when no provided Grok Expression matches the content of the FlowFile</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles are routed to this relationship when the Grok Expression is successfully evaluated and the FlowFile is modified as a result</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>grok.XXX</name><description>When operating in flowfile-attribute mode, each of the Grok identifier that is matched in the flowfile will be added as an attribute, prefixed with "grok." For example,if the grok identifier "timestamp" is matched, then the value will be added to an attribute named "grok.timestamp"</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>reference remote resources</requiredPermission><explanation>Patterns can reference resources over HTTP</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExtractRecordSchema</name><type>PROCESSOR</type><description>Extracts the record schema from the FlowFile using the supplied Record Reader and writes it to the `avro.schema` attribute.</description><tags><tag>record</tag><tag>generic</tag><tag>schema</tag><tag>json</tag><tag>csv</tag><tag>avro</tag><tag>freeform</tag><tag>text</tag><tag>xml</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for reading incoming data</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>cache-size</name><displayName>Schema Cache Size</displayName><description>Specifies the number of schemas to cache. This value should reflect the expected number of different schemas that may be in the incoming FlowFiles. This ensures more efficient retrieval of the schemas and thus the processor performance.</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>FlowFiles whose record schemas are successfully extracted will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If a FlowFile's record schema cannot be extracted from the configured input format, the FlowFile will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>record.error.message</name><description>This attribute provides on failure the error message encountered by the Reader.</description></writesAttribute><writesAttribute><name>avro.schema</name><description>This attribute provides the schema extracted from the input FlowFile using the provided RecordReader.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ExtractText</name><type>PROCESSOR</type><description>Evaluates one or more Regular Expressions against the content of a FlowFile.  The results of those Regular Expressions are assigned to FlowFile Attributes.  Regular Expressions are entered by adding user-defined properties; the name of the property maps to the Attribute Name into which the result will be placed.  The attributes are generated differently based on the enabling of named capture groups.  If named capture groups are not enabled:  The first capture group, if any found, will be placed into that attribute name.But all capture groups, including the matching string sequence itself will also be provided at that attribute name with an index value provided, with the exception of a capturing group that is optional and does not match - for example, given the attribute name "regex" and expression "abc(def)?(g)" we would add an attribute "regex.1" with a value of "def" if the "def" matched. If the "def" did not match, no attribute named "regex.1" would be added but an attribute named "regex.2" with a value of "g" will be added regardless.If named capture groups are enabled:  Each named capture group, if found will be placed into the attributes name with the name provided.  If enabled the matching string sequence itself will be placed into the attribute name.  If multiple matches are enabled, and index will be applied after the first set of matches. The exception is a capturing group that is optional and does not match  For example, given the attribute name "regex" and expression "abc(?&lt;NAMED&gt;def)?(?&lt;NAMED-TWO&gt;g)"  we would add an attribute "regex.NAMED" with the value of "def" if the "def" matched.  We would   add an attribute "regex.NAMED-TWO" with the value of "g" if the "g" matched regardless.  The value of the property must be a valid Regular Expressions with one or more capturing groups. If named capture groups are enabled, all capture groups must be named.  If they are not, then the  processor configuration will fail validation.  If the Regular Expression matches more than once, only the first match will be used unless the property enabling repeating capture group is set to true. If any provided Regular Expression matches, the FlowFile(s) will be routed to 'matched'. If no provided Regular Expression matches, the FlowFile will be routed to 'unmatched' and no attributes will be applied to the FlowFile.</description><tags><tag>evaluate</tag><tag>extract</tag><tag>Text</tag><tag>Regular Expression</tag><tag>regex</tag></tags><properties><property><name>Character Set</name><displayName>Character Set</displayName><description>The Character Set in which the file is encoded</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Buffer Size</name><displayName>Maximum Buffer Size</displayName><description>Specifies the maximum amount of data to buffer (per FlowFile) in order to apply the regular expressions. FlowFiles larger than the specified maximum will not be fully evaluated.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Capture Group Length</name><displayName>Maximum Capture Group Length</displayName><description>Specifies the maximum number of characters a given capture group value can have. Any characters beyond the max will be truncated.</description><defaultValue>1024</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Canonical Equivalence</name><displayName>Enable Canonical Equivalence</displayName><description>Indicates that two characters match only when their full canonical decompositions match.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Case-insensitive Matching</name><displayName>Enable Case-insensitive Matching</displayName><description>Indicates that two characters match even if they are in a different case.  Can also be specified via the embedded flag (?i).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Permit Whitespace and Comments in Pattern</name><displayName>Permit Whitespace and Comments in Pattern</displayName><description>In this mode, whitespace is ignored, and embedded comments starting with # are ignored until the end of a line.  Can also be specified via the embedded flag (?x).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable DOTALL Mode</name><displayName>Enable DOTALL Mode</displayName><description>Indicates that the expression '.' should match any character, including a line terminator.  Can also be specified via the embedded flag (?s).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Literal Parsing of the Pattern</name><displayName>Enable Literal Parsing of the Pattern</displayName><description>Indicates that Metacharacters and escape characters should be given no special meaning.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Multiline Mode</name><displayName>Enable Multiline Mode</displayName><description>Indicates that '^' and '$' should match just after and just before a line terminator or end of sequence, instead of only the beginning or end of the entire input.  Can also be specified via the embeded flag (?m).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Unicode-aware Case Folding</name><displayName>Enable Unicode-aware Case Folding</displayName><description>When used with 'Enable Case-insensitive Matching', matches in a manner consistent with the Unicode Standard.  Can also be specified via the embedded flag (?u).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Unicode Predefined Character Classes</name><displayName>Enable Unicode Predefined Character Classes</displayName><description>Specifies conformance with the Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility Properties.  Can also be specified via the embedded flag (?U).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable Unix Lines Mode</name><displayName>Enable Unix Lines Mode</displayName><description>Indicates that only the '
 ' line terminator is recognized in the behavior of '.', '^', and '$'.  Can also be specified via the embedded flag (?d).</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Include Capture Group 0</name><displayName>Include Capture Group 0</displayName><description>Indicates that Capture Group 0 should be included as an attribute. Capture Group 0 represents the entirety of the regular expression match, is typically not used, and could have considerable length.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable repeating capture group</name><displayName>Enable repeating capture group</displayName><description>If set to true, every string matching the capture groups will be extracted. Otherwise, if the Regular Expression matches more than once, only the first match will be extracted.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enable named group support</name><displayName>Enable named group support</displayName><description>If set to true, when named groups are present in the regular expression, the name of the
 group will be used in the attribute name as opposed to the group index.  All capturing groups
 must be named, if the number of groups (not including capture group 0) does not equal the
@@ -49,7 +49,7 @@
 "Remote File" = "${path}/${filename}"
 "Username" = "${ftp.listing.user}"
 "Password" = "#{FTP_PASSWORD}"
-</configuration></processorConfiguration></processorConfigurations></multiProcessorUseCase></multiProcessorUseCases><seeAlso><see>org.apache.nifi.processors.standard.GetSFTP</see><see>org.apache.nifi.processors.standard.PutSFTP</see><see>org.apache.nifi.processors.standard.GetFTP</see><see>org.apache.nifi.processors.standard.PutFTP</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.FetchFile</name><type>PROCESSOR</type><description>Reads the contents of a file from disk and streams it into the contents of an incoming FlowFile. Once this is done, the file is optionally moved elsewhere or deleted to help keep the file system organized.</description><tags><tag>local</tag><tag>files</tag><tag>filesystem</tag><tag>ingest</tag><tag>ingress</tag><tag>get</tag><tag>source</tag><tag>input</tag><tag>fetch</tag></tags><properties><property><name>File to Fetch</name><displayName>File to Fetch</displayName><description>The fully-qualified filename of the file to fetch from the file system</description><defaultValue>${absolute.path}/${filename}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Completion Strategy</name><displayName>Completion Strategy</displayName><description>Specifies what to do with the original file on the file system once it has been pulled into NiFi</description><defaultValue>None</defaultValue><allowableValues><allowableValue><displayName>None</displayName><value>None</value><description>Leave the file as-is</description></allowableValue><allowableValue><displayName>Move File</displayName><value>Move File</value><description>Moves the file to the directory specified by the &lt;Move Destination Directory&gt; property</description></allowableValue><allowableValue><displayName>Delete File</displayName><value>Delete File</value><description>Deletes the original file from the file system</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Move Destination Directory</name><displayName>Move Destination Directory</displayName><description>The directory to the move the original file to once it has been fetched from the file system. This property is ignored unless the Completion Strategy is set to "Move File". If the directory does not exist, it will be created.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Move Conflict Strategy</name><displayName>Move Conflict Strategy</displayName><description>If Completion Strategy is set to Move File and a file already exists in the destination directory with the same name, this property specifies how that naming conflict should be resolved</description><defaultValue>Rename</defaultValue><allowableValues><allowableValue><displayName>Rename</displayName><value>Rename</value><description>The existing destination file should remain intact. The newly ingested file should be moved to the destination directory but be renamed to a random filename</description></allowableValue><allowableValue><displayName>Replace File</displayName><value>Replace File</value><description>The newly ingested file should replace the existing file in the Destination Directory</description></allowableValue><allowableValue><displayName>Keep Existing</displayName><value>Keep Existing</value><description>The existing file should in the Destination Directory should stay intact and the newly ingested file should be deleted</description></allowableValue><allowableValue><displayName>Fail</displayName><value>Fail</value><description>The existing destination file should remain intact and the incoming FlowFile should be routed to failure</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log level when file not found</name><displayName>Log level when file not found</displayName><description>Log level to use in case the file does not exist when the processor is triggered</description><defaultValue>ERROR</defaultValue><allowableValues><allowableValue><displayName>TRACE</displayName><value>TRACE</value><description></description></allowableValue><allowableValue><displayName>DEBUG</displayName><value>DEBUG</value><description></description></allowableValue><allowableValue><displayName>INFO</displayName><value>INFO</value><description></description></allowableValue><allowableValue><displayName>WARN</displayName><value>WARN</value><description></description></allowableValue><allowableValue><displayName>ERROR</displayName><value>ERROR</value><description></description></allowableValue><allowableValue><displayName>FATAL</displayName><value>FATAL</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log level when permission denied</name><displayName>Log level when permission denied</displayName><description>Log level to use in case user exceptionfactory does not have sufficient permissions to read the file</description><defaultValue>ERROR</defaultValue><allowableValues><allowableValue><displayName>TRACE</displayName><value>TRACE</value><description></description></allowableValue><allowableValue><displayName>DEBUG</displayName><value>DEBUG</value><description></description></allowableValue><allowableValue><displayName>INFO</displayName><value>INFO</value><description></description></allowableValue><allowableValue><displayName>WARN</displayName><value>WARN</value><description></description></allowableValue><allowableValue><displayName>ERROR</displayName><value>ERROR</value><description></description></allowableValue><allowableValue><displayName>FATAL</displayName><value>FATAL</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Any FlowFile that is successfully fetched from the file system will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>not.found</name><description>Any FlowFile that could not be fetched from the file system because the file could not be found will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>permission.denied</name><description>Any FlowFile that could not be fetched from the file system due to the user running NiFi not having sufficient permissions will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>Any FlowFile that could not be fetched from the file system for any reason other than insufficient permissions or the file not existing will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><restricted><restrictions><restriction><requiredPermission>read filesystem</requiredPermission><explanation>Provides operator the ability to read from any file that NiFi has access to.</explanation></restriction><restriction><requiredPermission>write filesystem</requiredPermission><explanation>Provides operator the ability to delete any file that NiFi has access to.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><multiProcessorUseCases><multiProcessorUseCase><description>Ingest all files from a directory into NiFi</description><notes></notes><keywords><keyword>local</keyword><keyword>files</keyword><keyword>filesystem</keyword><keyword>ingest</keyword><keyword>ingress</keyword><keyword>get</keyword><keyword>source</keyword><keyword>input</keyword><keyword>fetch</keyword></keywords><processorConfigurations><processorConfiguration><processorClassName>org.apache.nifi.processors.standard.ListFile</processorClassName><configuration>Configure the "Input Directory" property to point to the directory that you want to ingest files from.
+</configuration></processorConfiguration></processorConfigurations></multiProcessorUseCase></multiProcessorUseCases><seeAlso><see>org.apache.nifi.processors.standard.GetSFTP</see><see>org.apache.nifi.processors.standard.PutSFTP</see><see>org.apache.nifi.processors.standard.GetFTP</see><see>org.apache.nifi.processors.standard.PutFTP</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.FetchFile</name><type>PROCESSOR</type><description>Reads the contents of a file from disk and streams it into the contents of an incoming FlowFile. Once this is done, the file is optionally moved elsewhere or deleted to help keep the file system organized.</description><tags><tag>local</tag><tag>files</tag><tag>filesystem</tag><tag>ingest</tag><tag>ingress</tag><tag>get</tag><tag>source</tag><tag>input</tag><tag>fetch</tag></tags><properties><property><name>File to Fetch</name><displayName>File to Fetch</displayName><description>The fully-qualified filename of the file to fetch from the file system</description><defaultValue>${absolute.path}/${filename}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Completion Strategy</name><displayName>Completion Strategy</displayName><description>Specifies what to do with the original file on the file system once it has been pulled into NiFi</description><defaultValue>None</defaultValue><allowableValues><allowableValue><displayName>None</displayName><value>None</value><description>Leave the file as-is</description></allowableValue><allowableValue><displayName>Move File</displayName><value>Move File</value><description>Moves the file to the directory specified by the &lt;Move Destination Directory&gt; property</description></allowableValue><allowableValue><displayName>Delete File</displayName><value>Delete File</value><description>Deletes the original file from the file system</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Move Destination Directory</name><displayName>Move Destination Directory</displayName><description>The directory to the move the original file to once it has been fetched from the file system. This property is ignored unless the Completion Strategy is set to "Move File". If the directory does not exist, it will be created.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Move Conflict Strategy</name><displayName>Move Conflict Strategy</displayName><description>If Completion Strategy is set to Move File and a file already exists in the destination directory with the same name, this property specifies how that naming conflict should be resolved</description><defaultValue>Rename</defaultValue><allowableValues><allowableValue><displayName>Rename</displayName><value>Rename</value><description>The existing destination file should remain intact. The newly ingested file should be moved to the destination directory but be renamed to a random filename</description></allowableValue><allowableValue><displayName>Replace File</displayName><value>Replace File</value><description>The newly ingested file should replace the existing file in the Destination Directory</description></allowableValue><allowableValue><displayName>Keep Existing</displayName><value>Keep Existing</value><description>The existing file should in the Destination Directory should stay intact and the newly ingested file should be deleted</description></allowableValue><allowableValue><displayName>Fail</displayName><value>Fail</value><description>The existing destination file should remain intact and the incoming FlowFile should be routed to failure</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log level when file not found</name><displayName>Log level when file not found</displayName><description>Log level to use in case the file does not exist when the processor is triggered</description><defaultValue>ERROR</defaultValue><allowableValues><allowableValue><displayName>TRACE</displayName><value>TRACE</value><description></description></allowableValue><allowableValue><displayName>DEBUG</displayName><value>DEBUG</value><description></description></allowableValue><allowableValue><displayName>INFO</displayName><value>INFO</value><description></description></allowableValue><allowableValue><displayName>WARN</displayName><value>WARN</value><description></description></allowableValue><allowableValue><displayName>ERROR</displayName><value>ERROR</value><description></description></allowableValue><allowableValue><displayName>FATAL</displayName><value>FATAL</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log level when permission denied</name><displayName>Log level when permission denied</displayName><description>Log level to use in case user aman does not have sufficient permissions to read the file</description><defaultValue>ERROR</defaultValue><allowableValues><allowableValue><displayName>TRACE</displayName><value>TRACE</value><description></description></allowableValue><allowableValue><displayName>DEBUG</displayName><value>DEBUG</value><description></description></allowableValue><allowableValue><displayName>INFO</displayName><value>INFO</value><description></description></allowableValue><allowableValue><displayName>WARN</displayName><value>WARN</value><description></description></allowableValue><allowableValue><displayName>ERROR</displayName><value>ERROR</value><description></description></allowableValue><allowableValue><displayName>FATAL</displayName><value>FATAL</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Any FlowFile that is successfully fetched from the file system will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>not.found</name><description>Any FlowFile that could not be fetched from the file system because the file could not be found will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>permission.denied</name><description>Any FlowFile that could not be fetched from the file system due to the user running NiFi not having sufficient permissions will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>Any FlowFile that could not be fetched from the file system for any reason other than insufficient permissions or the file not existing will be transferred to this Relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><restricted><restrictions><restriction><requiredPermission>read filesystem</requiredPermission><explanation>Provides operator the ability to read from any file that NiFi has access to.</explanation></restriction><restriction><requiredPermission>write filesystem</requiredPermission><explanation>Provides operator the ability to delete any file that NiFi has access to.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><multiProcessorUseCases><multiProcessorUseCase><description>Ingest all files from a directory into NiFi</description><notes></notes><keywords><keyword>local</keyword><keyword>files</keyword><keyword>filesystem</keyword><keyword>ingest</keyword><keyword>ingress</keyword><keyword>get</keyword><keyword>source</keyword><keyword>input</keyword><keyword>fetch</keyword></keywords><processorConfigurations><processorConfiguration><processorClassName>org.apache.nifi.processors.standard.ListFile</processorClassName><configuration>Configure the "Input Directory" property to point to the directory that you want to ingest files from.
 Set the "Input Directory Location" property to "Local"
 Optionally, set "Minimum File Age" to a small value such as "1 min" to avoid ingesting files that are still being written to.
 
@@ -85,7 +85,7 @@
 This processor can accept incoming connections; the behavior of the processor is different whether incoming connections are provided:
   - If no incoming connection(s) are specified, the processor will generate SQL queries on the specified processor schedule. Expression Language is supported for many fields, but no FlowFile attributes are available. However the properties will be evaluated using the Environment/System properties.
   - If incoming connection(s) are specified and no FlowFile is available to a processor task, no work will be performed.
-  - If incoming connection(s) are specified and a FlowFile is available to a processor task, the FlowFile's attributes may be used in Expression Language for such fields as Table Name and others. However, the Max-Value Columns and Columns to Return fields must be empty or refer to columns that are available in each specified table.</description><tags><tag>sql</tag><tag>select</tag><tag>jdbc</tag><tag>query</tag><tag>database</tag><tag>fetch</tag><tag>generate</tag></tags><properties><property><name>Database Connection Pooling Service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain a connection to the database.</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>db-fetch-db-type</name><displayName>Database Type</displayName><description>The type/flavor of database, used for generating database-specific code. In many cases the Generic type should suffice, but some databases (such as Oracle) require custom SQL clauses. </description><defaultValue>Generic</defaultValue><allowableValues><allowableValue><displayName>Generic</displayName><value>Generic</value><description>Generates ANSI SQL</description></allowableValue><allowableValue><displayName>Oracle</displayName><value>Oracle</value><description>Generates Oracle compliant SQL</description></allowableValue><allowableValue><displayName>Oracle 12+</displayName><value>Oracle 12+</value><description>Generates Oracle compliant SQL for version 12 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2012+</displayName><value>MS SQL 2012+</value><description>Generates MS SQL Compatible SQL, for version 2012 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2008</displayName><value>MS SQL 2008</value><description>Generates MS SQL Compatible SQL for version 2008</description></allowableValue><allowableValue><displayName>MySQL</displayName><value>MySQL</value><description>Generates MySQL compatible SQL</description></allowableValue><allowableValue><displayName>PostgreSQL</displayName><value>PostgreSQL</value><description>Generates PostgreSQL compatible SQL</description></allowableValue><allowableValue><displayName>Phoenix</displayName><value>Phoenix</value><description>Generates Phoenix compliant SQL</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Table Name</name><displayName>Table Name</displayName><description>The name of the database table to be queried.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Columns to Return</name><displayName>Columns to Return</displayName><description>A comma-separated list of column names to be used in the query. If your database requires special treatment of the names (quoting, e.g.), each name should include such treatment. If no column names are supplied, all columns in the specified table will be returned. NOTE: It is important to use consistent column names for a given table for incremental fetch to work properly.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum-value Columns</name><displayName>Maximum-value Columns</displayName><description>A comma-separated list of column names. The processor will keep track of the maximum value for each column that has been returned since the processor started running. Using multiple columns implies an order to the column list, and each column's values are expected to increase more slowly than the previous columns' values. Thus, using multiple columns implies a hierarchical structure of columns, which is usually used for partitioning tables. This processor can be used to retrieve only those rows that have been added/updated since the last retrieval. Note that some JDBC types such as bit/boolean are not conducive to maintaining maximum value, so columns of these types should not be listed in this property, and will result in error(s) during processing. If no columns are provided, all rows from the table will be considered, which could have a performance impact. NOTE: It is important to use consistent max-value column names for a given table for incremental fetch to work properly.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Wait Time</name><displayName>Max Wait Time</displayName><description>The maximum amount of time allowed for a running SQL select query , zero means there is no limit. Max time less than 1 second will be equal to zero.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-fetch-partition-size</name><displayName>Partition Size</displayName><description>The number of result rows to be fetched by each generated SQL statement. The total number of rows in the table divided by the partition size gives the number of SQL statements (i.e. FlowFiles) generated. A value of zero indicates that a single FlowFile is to be generated whose SQL statement will fetch all rows in the table.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-column-for-val-partitioning</name><displayName>Column for Value Partitioning</displayName><description>The name of a column whose values will be used for partitioning. The default behavior is to use row numbers on the result set for partitioning into 'pages' to be fetched from the database, using an offset/limit strategy. However for certain databases, it can be more efficient under the right circumstances to use the column values themselves to define the 'pages'. This property should only be used when the default queries are not performing well, when there is no maximum-value column or a single maximum-value column whose type can be coerced to a long integer (i.e. not date or timestamp), and the column values are evenly distributed and not sparse, for best performance.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>db-fetch-where-clause</name><displayName>Additional WHERE clause</displayName><description>A custom clause to be added in the WHERE condition when building SQL queries.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-custom-orderby-column</name><displayName>Custom ORDER BY Column</displayName><description>The name of a column to be used for ordering the results if Max-Value Columns are not provided and partitioning is enabled. This property is ignored if either Max-Value Columns is set or Partition Size = 0. NOTE: If neither Max-Value Columns nor Custom ORDER BY Column is set, then depending on the the database/driver, the processor may report an error and/or the generated SQL may result in missing and/or duplicate rows. This is because without an explicit ordering, fetching each partition is done using an arbitrary ordering.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-output-flowfile-on-zero-results</name><displayName>Output Empty FlowFile on Zero Results</displayName><description>Depending on the specified properties, an execution of this processor may not result in any SQL statements generated. When this property is true, an empty FlowFile will be generated (having the parent of the incoming FlowFile if present) and transferred to the 'success' relationship. When this property is false, no output FlowFiles will be generated.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>initial.maxvalue.&lt;max_value_column&gt;</name><value>Initial maximum value for the specified column</value><description>Specifies an initial max value for max value columns. Properties should be added in the format `initial.maxvalue.&lt;max_value_column&gt;`. This value is only used the first time the table is accessed (when a Maximum Value Column is specified). In the case of incoming connections, the value is only used the first time for each table specified in the FlowFiles.</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>Successfully created FlowFile from SQL query result set.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>This relationship is only used when SQL query execution (using an incoming FlowFile) failed. The incoming FlowFile will be penalized and routed to this relationship. If no incoming connection(s) are specified, this relationship is unused.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>generatetablefetch.sql.error</name><description>If the processor has incoming connections, and processing an incoming FlowFile causes a SQL Exception, the FlowFile is routed to failure and this attribute is set to the exception message.</description></writesAttribute><writesAttribute><name>generatetablefetch.tableName</name><description>The name of the database table to be queried.</description></writesAttribute><writesAttribute><name>generatetablefetch.columnNames</name><description>The comma-separated list of column names used in the query.</description></writesAttribute><writesAttribute><name>generatetablefetch.whereClause</name><description>Where clause used in the query to get the expected rows.</description></writesAttribute><writesAttribute><name>generatetablefetch.maxColumnNames</name><description>The comma-separated list of column names used to keep track of data that has been returned since the processor started running.</description></writesAttribute><writesAttribute><name>generatetablefetch.limit</name><description>The number of result rows to be fetched by the SQL statement.</description></writesAttribute><writesAttribute><name>generatetablefetch.offset</name><description>Offset to be used to retrieve the corresponding partition.</description></writesAttribute><writesAttribute><name>fragment.identifier</name><description>All FlowFiles generated from the same query result set will have the same value for the fragment.identifier attribute. This can then be used to correlate the results.</description></writesAttribute><writesAttribute><name>fragment.count</name><description>This is the total number of  FlowFiles produced by a single ResultSet. This can be used in conjunction with the fragment.identifier attribute in order to know how many FlowFiles belonged to the same incoming ResultSet.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>This is the position of this FlowFile in the list of outgoing FlowFiles that were all generated from the same execution. This can be used in conjunction with the fragment.identifier attribute to know which FlowFiles originated from the same execution and in what order  FlowFiles were produced</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><stateful><description>After performing a query on the specified table, the maximum values for the specified column(s) will be retained for use in future executions of the query. This allows the Processor to fetch only those records that have max values greater than the retained values. This can be used for incremental fetching, fetching of newly added rows, etc. To clear the maximum values, clear the state of the processor per the State Management documentation</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_ALLOWED</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.QueryDatabaseTable</see><see>org.apache.nifi.processors.standard.ExecuteSQL</see><see>org.apache.nifi.processors.standard.ListDatabaseTables</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.GetFTP</name><type>PROCESSOR</type><description>Fetches files from an FTP Server and creates FlowFiles from them</description><tags><tag>FTP</tag><tag>get</tag><tag>retrieve</tag><tag>files</tag><tag>fetch</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag></tags><properties><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port that the remote system is listening on for file transfers</description><defaultValue>21</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Mode</name><displayName>Connection Mode</displayName><description>The FTP Connection Mode</description><defaultValue>Passive</defaultValue><allowableValues><allowableValue><displayName>Active</displayName><value>Active</value><description></description></allowableValue><allowableValue><displayName>Passive</displayName><value>Passive</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Transfer Mode</name><displayName>Transfer Mode</displayName><description>The FTP Transfer Mode</description><defaultValue>Binary</defaultValue><allowableValues><allowableValue><displayName>Binary</displayName><value>Binary</value><description></description></allowableValue><allowableValue><displayName>ASCII</displayName><value>ASCII</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Polling Interval</name><displayName>Polling Interval</displayName><description>Determines how long to wait between fetching the listing for new files</description><defaultValue>60 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Delete Original</name><displayName>Delete Original</displayName><description>Determines whether or not the file is deleted from the remote system after it has been successfully transferred</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Selects</name><displayName>Max Selects</displayName><description>The maximum number of files to pull in a single connection</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Natural Ordering</name><displayName>Use Natural Ordering</displayName><description>If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Internal Buffer Size</name><displayName>Internal Buffer Size</displayName><description>Set the internal buffer size for buffered data streams</description><defaultValue>16KB</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ftp-use-utf8</name><displayName>Use UTF-8 Encoding</displayName><description>Tells the client to use UTF-8 encoding when processing files and filenames. If set to true, the server must also support UTF-8 encoding.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The filename is set to the name of the file on the remote server</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the path of the file's directory on the remote server. For example, if the &lt;Remote Path&gt; property is set to /tmp, files picked up from /tmp will have the path attribute set to /tmp. If the &lt;Search Recursively&gt; property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to /tmp/abc/1/2/3</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The date and time that the source file was last modified</description></writesAttribute><writesAttribute><name>file.lastAccessTime</name><description>The date and time that the file was last accessed. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutFTP</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.GetFile</name><type>PROCESSOR</type><description>Creates FlowFiles from files in a directory.  NiFi will ignore files it doesn't have at least read permissions for.</description><tags><tag>local</tag><tag>files</tag><tag>filesystem</tag><tag>ingest</tag><tag>ingress</tag><tag>get</tag><tag>source</tag><tag>input</tag></tags><properties><property><name>Input Directory</name><displayName>Input Directory</displayName><description>The input directory from which to pull files</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter</name><displayName>File Filter</displayName><description>Only files whose names match the given regular expression will be picked up</description><defaultValue>[^\.].*</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter</name><displayName>Path Filter</displayName><description>When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Batch Size</name><displayName>Batch Size</displayName><description>The maximum number of files to pull in each iteration</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Keep Source File</name><displayName>Keep Source File</displayName><description>If true, the file is not deleted after it has been copied to the Content Repository; this causes the file to be picked up continually and is useful for testing purposes.  If not keeping original NiFi will need write permissions on the directory it is pulling from otherwise it will ignore the file.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Recurse Subdirectories</name><displayName>Recurse Subdirectories</displayName><description>Indicates whether or not to pull files from subdirectories</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Polling Interval</name><displayName>Polling Interval</displayName><description>Indicates how long to wait before performing a directory listing</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Hidden Files</name><displayName>Ignore Hidden Files</displayName><description>Indicates whether or not hidden files should be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Age</name><displayName>Minimum File Age</displayName><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Age</name><displayName>Maximum File Age</displayName><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Size</name><displayName>Minimum File Size</displayName><description>The minimum size that a file must be in order to be pulled</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Size</name><displayName>Maximum File Size</displayName><description>The maximum size that a file can be in order to be pulled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All files are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The filename is set to the name of the file on disk</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the relative path of the file's directory on disk. For example, if the &lt;Input Directory&gt; property is set to /tmp, files picked up from /tmp will have the path attribute set to ./. If the &lt;Recurse Subdirectories&gt; property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to abc/1/2/3</description></writesAttribute><writesAttribute><name>file.creationTime</name><description>The date and time that the file was created. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The date and time that the file was last modified. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.lastAccessTime</name><description>The date and time that the file was last accessed. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.owner</name><description>The owner of the file. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.group</name><description>The group owner of the file. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the file. May not work on all file systems</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path</description></writesAttribute></writesAttributes><triggerWhenEmpty>true</triggerWhenEmpty><restricted><restrictions><restriction><requiredPermission>read filesystem</requiredPermission><explanation>Provides operator the ability to read from any file that NiFi has access to.</explanation></restriction><restriction><requiredPermission>write filesystem</requiredPermission><explanation>Provides operator the ability to delete any file that NiFi has access to.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutFile</see><see>org.apache.nifi.processors.standard.FetchFile</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.GetSFTP</name><type>PROCESSOR</type><description>Fetches files from an SFTP Server and creates FlowFiles from them</description><tags><tag>sftp</tag><tag>get</tag><tag>retrieve</tag><tag>files</tag><tag>fetch</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag></tags><properties><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port that the remote system is listening on for file transfers</description><defaultValue>22</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Private Key Path</name><displayName>Private Key Path</displayName><description>The fully qualified path to the Private Key file</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Private Key Passphrase</name><displayName>Private Key Passphrase</displayName><description>Password for the private key</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Polling Interval</name><displayName>Polling Interval</displayName><description>Determines how long to wait between fetching the listing for new files</description><defaultValue>60 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Delete Original</name><displayName>Delete Original</displayName><description>Determines whether or not the file is deleted from the remote system after it has been successfully transferred</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Host Key File</name><displayName>Host Key File</displayName><description>If supplied, the given file will be used as the Host Key; otherwise, if 'Strict Host Key Checking' property is applied (set to true) then uses the 'known_hosts' and 'known_hosts2' files from ~/.ssh directory else no host key file will be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Max Selects</name><displayName>Max Selects</displayName><description>The maximum number of files to pull in a single connection</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Strict Host Key Checking</name><displayName>Strict Host Key Checking</displayName><description>Indicates whether or not strict enforcement of hosts keys should be applied</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Send Keep Alive On Timeout</name><displayName>Send Keep Alive On Timeout</displayName><description>Send a Keep Alive message every 5 seconds up to 5 times for an overall timeout of 25 seconds.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Compression</name><displayName>Use Compression</displayName><description>Indicates whether or not ZLIB compression should be used when transferring files</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Natural Ordering</name><displayName>Use Natural Ordering</displayName><description>If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ciphers Allowed</name><displayName>Ciphers Allowed</displayName><description>A comma-separated list of Ciphers allowed for SFTP connections. Leave unset to allow all. Available options are: 3des-cbc, 3des-ctr, aes128-cbc, aes128-ctr, aes128-gcm@openssh.com, aes192-cbc, aes192-ctr, aes256-cbc, aes256-ctr, aes256-gcm@openssh.com, arcfour, arcfour128, arcfour256, blowfish-cbc, blowfish-ctr, cast128-cbc, cast128-ctr, chacha20-poly1305@openssh.com, idea-cbc, idea-ctr, serpent128-cbc, serpent128-ctr, serpent192-cbc, serpent192-ctr, serpent256-cbc, serpent256-ctr, twofish-cbc, twofish128-cbc, twofish128-ctr, twofish192-cbc, twofish192-ctr, twofish256-cbc, twofish256-ctr</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Algorithms Allowed</name><displayName>Key Algorithms Allowed</displayName><description>A comma-separated list of Key Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: ecdsa-sha2-nistp256, ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521, ecdsa-sha2-nistp521-cert-v01@openssh.com, rsa-sha2-256, rsa-sha2-512, ssh-dss, ssh-dss-cert-v01@openssh.com, ssh-ed25519, ssh-ed25519-cert-v01@openssh.com, ssh-rsa, ssh-rsa-cert-v01@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Exchange Algorithms Allowed</name><displayName>Key Exchange Algorithms Allowed</displayName><description>A comma-separated list of Key Exchange Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: curve25519-sha256, curve25519-sha256@libssh.org, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group14-sha256, diffie-hellman-group14-sha256@ssh.com, diffie-hellman-group15-sha256, diffie-hellman-group15-sha256@ssh.com, diffie-hellman-group15-sha384@ssh.com, diffie-hellman-group15-sha512, diffie-hellman-group16-sha256, diffie-hellman-group16-sha384@ssh.com, diffie-hellman-group16-sha512, diffie-hellman-group16-sha512@ssh.com, diffie-hellman-group17-sha512, diffie-hellman-group18-sha512, diffie-hellman-group18-sha512@ssh.com, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, ext-info-c</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Authentication Codes Allowed</name><displayName>Message Authentication Codes Allowed</displayName><description>A comma-separated list of Message Authentication Codes allowed for SFTP connections. Leave unset to allow all. Available options are: hmac-md5, hmac-md5-96, hmac-md5-96-etm@openssh.com, hmac-md5-etm@openssh.com, hmac-ripemd160, hmac-ripemd160-96, hmac-ripemd160-etm@openssh.com, hmac-ripemd160@openssh.com, hmac-sha1, hmac-sha1-96, hmac-sha1-96@openssh.com, hmac-sha1-etm@openssh.com, hmac-sha2-256, hmac-sha2-256-etm@openssh.com, hmac-sha2-512, hmac-sha2-512-etm@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The filename is set to the name of the file on the remote server</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the path of the file's directory on the remote server. For example, if the &lt;Remote Path&gt; property is set to /tmp, files picked up from /tmp will have the path attribute set to /tmp. If the &lt;Search Recursively&gt; property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to /tmp/abc/1/2/3</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The date and time that the source file was last modified</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutSFTP</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.HandleHttpRequest</name><type>PROCESSOR</type><description>Starts an HTTP Server and listens for HTTP Requests. For each request, creates a FlowFile and transfers to 'success'. This Processor is designed to be used in conjunction with the HandleHttpResponse Processor in order to create a Web Service. In case  of a multipart request, one FlowFile is generated for each part.</description><tags><tag>http</tag><tag>https</tag><tag>request</tag><tag>listen</tag><tag>ingress</tag><tag>web service</tag></tags><properties><property><name>Listening Port</name><displayName>Listening Port</displayName><description>The Port to listen on for incoming HTTP requests</description><defaultValue>80</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Hostname</name><displayName>Hostname</displayName><description>The Hostname to bind to. If not specified, will bind to all hosts</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The SSL Context Service to use in order to secure the server. If specified, the server will accept only HTTPS requests; otherwise, the server will accept only HTTP requests</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Protocols</name><displayName>HTTP Protocols</displayName><description>HTTP Protocols supported for Application Layer Protocol Negotiation with TLS</description><defaultValue>HTTP_1_1</defaultValue><allowableValues><allowableValue><displayName>http/1.1</displayName><value>HTTP_1_1</value><description>HTTP/1.1</description></allowableValue><allowableValue><displayName>h2 http/1.1</displayName><value>H2_HTTP_1_1</value><description>HTTP/2 and HTTP/1.1 negotiated based on requested protocols</description></allowableValue><allowableValue><displayName>h2</displayName><value>H2</value><description>HTTP/2</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>HTTP Context Map</name><displayName>HTTP Context Map</displayName><description>The HTTP Context Map Controller Service to use for caching the HTTP Request Information</description><controllerServiceDefinition><className>org.apache.nifi.http.HttpContextMap</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allowed Paths</name><displayName>Allowed Paths</displayName><description>A Regular Expression that specifies the valid HTTP Paths that are allowed in the incoming URL Requests. If this value is specified and the path of the HTTP Requests does not match this Regular Expression, the Processor will respond with a 404: NotFound</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Default URL Character Set</name><displayName>Default URL Character Set</displayName><description>The character set to use for decoding URL parameters if the HTTP Request does not supply one</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow GET</name><displayName>Allow GET</displayName><description>Allow HTTP GET Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow POST</name><displayName>Allow POST</displayName><description>Allow HTTP POST Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow PUT</name><displayName>Allow PUT</displayName><description>Allow HTTP PUT Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow DELETE</name><displayName>Allow DELETE</displayName><description>Allow HTTP DELETE Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow HEAD</name><displayName>Allow HEAD</displayName><description>Allow HTTP HEAD Method</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow OPTIONS</name><displayName>Allow OPTIONS</displayName><description>Allow HTTP OPTIONS Method</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Threads</name><displayName>Maximum Threads</displayName><description>The maximum number of threads that the embedded HTTP server will use for handling requests.</description><defaultValue>200</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Additional HTTP Methods</name><displayName>Additional HTTP Methods</displayName><description>A comma-separated list of non-standard HTTP Methods that should be allowed</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Client Authentication</name><displayName>Client Authentication</displayName><description>Specifies whether or not the Processor should authenticate clients. This value is ignored if the &lt;SSL Context Service&gt; Property is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.</description><defaultValue>No Authentication</defaultValue><allowableValues><allowableValue><displayName>No Authentication</displayName><value>No Authentication</value><description>Processor will not authenticate clients. Anyone can communicate with this Processor anonymously</description></allowableValue><allowableValue><displayName>Want Authentication</displayName><value>Want Authentication</value><description>Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously</description></allowableValue><allowableValue><displayName>Need Authentication</displayName><value>Need Authentication</value><description>Processor will reject communications from any client unless the client provides a certificate that is trusted by the TrustStorespecified in the SSL Context Service</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>container-queue-size</name><displayName>Container Queue Size</displayName><description>The size of the queue for Http Request Containers</description><defaultValue>50</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-request-max-size</name><displayName>Multipart Request Max Size</displayName><description>The max size of the request. Only applies for requests with Content-Type: multipart/form-data, and is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-read-buffer-size</name><displayName>Multipart Read Buffer Size</displayName><description>The threshold size, at which the contents of an incoming file would be written to disk. Only applies for requests with Content-Type: multipart/form-data. It is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space.</description><defaultValue>512 KB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameters-to-attributes</name><displayName>Parameters to Attributes List</displayName><description>A comma-separated list of HTTP parameters or form data to output as attributes</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All content that is received is routed to the 'success' relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>http.context.identifier</name><description>An identifier that allows the HandleHttpRequest and HandleHttpResponse to coordinate which FlowFile belongs to which HTTP Request/Response.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME Type of the data, according to the HTTP Header "Content-Type"</description></writesAttribute><writesAttribute><name>http.servlet.path</name><description>The part of the request URL that is considered the Servlet Path</description></writesAttribute><writesAttribute><name>http.context.path</name><description>The part of the request URL that is considered to be the Context Path</description></writesAttribute><writesAttribute><name>http.method</name><description>The HTTP Method that was used for the request, such as GET or POST</description></writesAttribute><writesAttribute><name>http.local.name</name><description>IP address/hostname of the server</description></writesAttribute><writesAttribute><name>http.server.port</name><description>Listening port of the server</description></writesAttribute><writesAttribute><name>http.query.string</name><description>The query string portion of the Request URL</description></writesAttribute><writesAttribute><name>http.remote.host</name><description>The hostname of the requestor</description></writesAttribute><writesAttribute><name>http.remote.addr</name><description>The hostname:port combination of the requestor</description></writesAttribute><writesAttribute><name>http.remote.user</name><description>The username of the requestor</description></writesAttribute><writesAttribute><name>http.protocol</name><description>The protocol used to communicate</description></writesAttribute><writesAttribute><name>http.request.uri</name><description>The full Request URL</description></writesAttribute><writesAttribute><name>http.auth.type</name><description>The type of HTTP Authorization used</description></writesAttribute><writesAttribute><name>http.principal.name</name><description>The name of the authenticated user making the request</description></writesAttribute><writesAttribute><name>http.query.param.XXX</name><description>Each of query parameters in the request will be added as an attribute, prefixed with "http.query.param."</description></writesAttribute><writesAttribute><name>http.param.XXX</name><description>Form parameters in the request that are configured by "Parameters to Attributes List" will be added as an attribute, prefixed with "http.param.". Putting form parameters of large size is not recommended.</description></writesAttribute><writesAttribute><name>http.subject.dn</name><description>The Distinguished Name of the requestor. This value will not be populated unless the Processor is configured to use an SSLContext Service</description></writesAttribute><writesAttribute><name>http.issuer.dn</name><description>The Distinguished Name of the entity that issued the Subject's certificate. This value will not be populated unless the Processor is configured to use an SSLContext Service</description></writesAttribute><writesAttribute><name>http.certificate.sans.N.name</name><description>X.509 Client Certificate Subject Alternative Name value from mutual TLS authentication. The attribute name has a zero-based index ordered according to the content of Client Certificate</description></writesAttribute><writesAttribute><name>http.certificate.sans.N.nameType</name><description>X.509 Client Certificate Subject Alternative Name type from mutual TLS authentication. The attribute name has a zero-based index ordered according to the content of Client Certificate. The attribute value is one of the General Names from RFC 3280 Section 4.1.2.7</description></writesAttribute><writesAttribute><name>http.headers.XXX</name><description>Each of the HTTP Headers that is received in the request will be added as an attribute, prefixed with "http.headers." For example, if the request contains an HTTP Header named "x-my-header", then the value will be added to an attribute named "http.headers.x-my-header"</description></writesAttribute><writesAttribute><name>http.headers.multipart.XXX</name><description>Each of the HTTP Headers that is received in the multipart request will be added as an attribute, prefixed with "http.headers.multipart." For example, if the multipart request contains an HTTP Header named "content-disposition", then the value will be added to an attribute named "http.headers.multipart.content-disposition"</description></writesAttribute><writesAttribute><name>http.multipart.size</name><description>For requests with Content-Type "multipart/form-data", the part's content size is recorded into this attribute</description></writesAttribute><writesAttribute><name>http.multipart.content.type</name><description>For requests with Content-Type "multipart/form-data", the part's content type is recorded into this attribute</description></writesAttribute><writesAttribute><name>http.multipart.name</name><description>For requests with Content-Type "multipart/form-data", the part's name is recorded into this attribute</description></writesAttribute><writesAttribute><name>http.multipart.filename</name><description>For requests with Content-Type "multipart/form-data", when the part contains an uploaded file, the name of the file is recorded into this attribute. Files are stored temporarily at the default temporary-file directory specified in "java.io.File" Java Docs)</description></writesAttribute><writesAttribute><name>http.multipart.fragments.sequence.number</name><description>For requests with Content-Type "multipart/form-data", the part's index is recorded into this attribute. The index starts with 1.</description></writesAttribute><writesAttribute><name>http.multipart.fragments.total.number</name><description>For requests with Content-Type "multipart/form-data", the count of all parts is recorded into this attribute.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.HandleHttpResponse</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.HandleHttpResponse</name><type>PROCESSOR</type><description>Sends an HTTP Response to the Requestor that generated a FlowFile. This Processor is designed to be used in conjunction with the HandleHttpRequest in order to create a web service.</description><tags><tag>http</tag><tag>https</tag><tag>response</tag><tag>egress</tag><tag>web service</tag></tags><properties><property><name>HTTP Status Code</name><displayName>HTTP Status Code</displayName><description>The HTTP Status Code to use when responding to the HTTP Request. See Section 10 of RFC 2616 for more information.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Context Map</name><displayName>HTTP Context Map</displayName><description>The HTTP Context Map Controller Service to use for caching the HTTP Request Information</description><controllerServiceDefinition><className>org.apache.nifi.http.HttpContextMap</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attributes to add to the HTTP Response (Regex)</name><displayName>Attributes to add to the HTTP Response (Regex)</displayName><description>Specifies the Regular Expression that determines the names of FlowFile attributes that should be added to the HTTP response</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>An HTTP header name</name><value>An HTTP header value</value><description>These HTTPHeaders are set in the HTTP Response</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>FlowFiles will be routed to this Relationship after the response has been successfully sent to the requestor</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles will be routed to this Relationship if the Processor is unable to respond to the requestor. This may happen, for instance, if the connection times out or if NiFi is restarted before responding to the HTTP Request.</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>http.context.identifier</name><description>The value of this attribute is used to lookup the HTTP Response so that the proper message can be sent back to the requestor. If this attribute is missing, the FlowFile will be routed to 'failure.'</description></readsAttribute><readsAttribute><name>http.request.uri</name><description>Value of the URI requested by the client. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.remote.host</name><description>IP address of the client. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.local.name</name><description>IP address/hostname of the server. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.server.port</name><description>Listening port of the server. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.subject.dn</name><description>SSL distinguished name (if any). Used for provenance event.</description></readsAttribute></readsAttributes><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.HandleHttpRequest</see><see>org.apache.nifi.http.StandardHttpContextMap</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.IdentifyMimeType</name><type>PROCESSOR</type><description>Attempts to identify the MIME Type used for a FlowFile. If the MIME Type can be identified, an attribute with the name 'mime.type' is added with the value being the MIME Type. If the MIME Type cannot be determined, the value will be set to 'application/octet-stream'. In addition, the attribute 'mime.extension' will be set if a common file extension for the MIME Type is known. If the MIME Type detected is of type text/*, attempts to identify the charset used and an attribute with the name 'mime.charset' is added with the value being the charset.</description><tags><tag>compression</tag><tag>gzip</tag><tag>bzip2</tag><tag>zip</tag><tag>MIME</tag><tag>mime.type</tag><tag>file</tag><tag>identify</tag></tags><properties><property><name>use-filename-in-detection</name><displayName>Use Filename In Detection</displayName><description>If true will pass the filename to Tika to aid in detection.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>config-strategy</name><displayName>Config Strategy</displayName><description>Select the loading strategy for MIME Type configuration to be used.</description><defaultValue>Preset</defaultValue><allowableValues><allowableValue><displayName>Preset</displayName><value>Preset</value><description>Use default NiFi MIME Types.</description></allowableValue><allowableValue><displayName>Replace</displayName><value>Replace</value><description>Use config MIME Types only.</description></allowableValue><allowableValue><displayName>Merge</displayName><value>Merge</value><description>Use config together with default NiFi MIME Types.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>config-body</name><displayName>Config Body</displayName><description>Body of MIME type config file. Only one of Config File or Config Body may be used.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>config-strategy</propertyName><propertyDisplayName>Config Strategy</propertyDisplayName><dependentValues><dependentValue>Replace</dependentValue><dependentValue>Merge</dependentValue></dependentValues></dependency></dependencies></property><property><name>config-file</name><displayName>Config File</displayName><description>Path to MIME type config file. Only one of Config File or Config Body may be used.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>config-strategy</propertyName><propertyDisplayName>Config Strategy</propertyDisplayName><dependentValues><dependentValue>Replace</dependentValue><dependentValue>Merge</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>success</name><description>All FlowFiles are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>This Processor sets the FlowFile's mime.type attribute to the detected MIME Type. If unable to detect the MIME Type, the attribute's value will be set to application/octet-stream</description></writesAttribute><writesAttribute><name>mime.extension</name><description>This Processor sets the FlowFile's mime.extension attribute to the file extension associated with the detected MIME Type. If there is no correlated extension, the attribute's value will be empty</description></writesAttribute><writesAttribute><name>mime.charset</name><description>This Processor sets the FlowFile's mime.charset attribute to the detected charset. If unable to detect the charset or the detected MIME type is not of type text/*, the attribute will not be set</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.InvokeHTTP</name><type>PROCESSOR</type><description>An HTTP client processor which can interact with a configurable HTTP Endpoint. The destination URL and HTTP Method are configurable. When the HTTP Method is PUT, POST or PATCH, the FlowFile contents are included as the body of the request and FlowFile attributes are converted to HTTP headers, optionally, based on configuration properties.</description><tags><tag>http</tag><tag>https</tag><tag>rest</tag><tag>client</tag></tags><properties><property><name>HTTP Method</name><displayName>HTTP Method</displayName><description>HTTP request method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS). Arbitrary methods are also supported. Methods other than POST, PUT and PATCH will be sent without a message body.</description><defaultValue>GET</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP URL</name><displayName>HTTP URL</displayName><description>HTTP remote URL including a scheme of http or https, as well as a hostname or IP address with optional port and path elements. Any encoding of the URL must be done by the user.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP/2 Disabled</name><displayName>HTTP/2 Disabled</displayName><description>Disable negotiation of HTTP/2 protocol. HTTP/2 requires TLS. HTTP/1.1 protocol supported is required when HTTP/2 is disabled.</description><defaultValue>False</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>SSL Context Service provides trusted certificates and client certificates for TLS communication.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.SSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Maximum time to wait for initial socket connection to the HTTP URL.</description><defaultValue>5 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Read Timeout</name><displayName>Socket Read Timeout</displayName><description>Maximum time to wait for receiving responses from a socket connection to the HTTP URL.</description><defaultValue>15 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Write Timeout</name><displayName>Socket Write Timeout</displayName><description>Maximum time to wait for write operations while sending requests from a socket connection to the HTTP URL.</description><defaultValue>15 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Idle Timeout</name><displayName>Socket Idle Timeout</displayName><description>Maximum time to wait before closing idle connections to the HTTP URL.</description><defaultValue>5 mins</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Idle Connections</name><displayName>Socket Idle Connections</displayName><description>Maximum number of idle connections to the HTTP URL.</description><defaultValue>5</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS In case of SOCKS, it is not guaranteed that the selected SOCKS Version will be used by the processor.</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request OAuth2 Access Token Provider</name><displayName>Request OAuth2 Access Token Provider</displayName><description>Enables managed retrieval of OAuth2 Bearer Token applied to HTTP requests using the Authorization Header.</description><controllerServiceDefinition><className>org.apache.nifi.oauth2.OAuth2AccessTokenProvider</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Username</name><displayName>Request Username</displayName><description>The username provided for authentication of HTTP requests. Encoded using Base64 for HTTP Basic Authentication as described in RFC 7617.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Password</name><displayName>Request Password</displayName><description>The password provided for authentication of HTTP requests. Encoded using Base64 for HTTP Basic Authentication as described in RFC 7617.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Digest Authentication Enabled</name><displayName>Request Digest Authentication Enabled</displayName><description>Enable Digest Authentication on HTTP requests with Username and Password credentials as described in RFC 7616.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Request Username</propertyName><propertyDisplayName>Request Username</propertyDisplayName></dependency></dependencies></property><property><name>Request Failure Penalization Enabled</name><displayName>Request Failure Penalization Enabled</displayName><description>Enable penalization of request FlowFiles when receiving HTTP response with a status code between 400 and 499.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Body Enabled</name><displayName>Request Body Enabled</displayName><description>Enable sending HTTP request body for PATCH, POST, or PUT methods.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Multipart Form-Data Name</name><displayName>Request Multipart Form-Data Name</displayName><description>Enable sending HTTP request body formatted using multipart/form-data and using the form name configured.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Request Body Enabled</propertyName><propertyDisplayName>Request Body Enabled</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Multipart Form-Data Filename Enabled</name><displayName>Request Multipart Form-Data Filename Enabled</displayName><description>Enable sending the FlowFile filename attribute as the filename parameter in the Content-Disposition Header for multipart/form-data HTTP requests.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Request Multipart Form-Data Name</propertyName><propertyDisplayName>Request Multipart Form-Data Name</propertyDisplayName></dependency></dependencies></property><property><name>Request Chunked Transfer-Encoding Enabled</name><displayName>Request Chunked Transfer-Encoding Enabled</displayName><description>Enable sending HTTP requests with the Transfer-Encoding Header set to chunked, and disable sending the Content-Length Header. Transfer-Encoding applies to the body in HTTP/1.1 requests as described in RFC 7230 Section 3.3.1</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Content-Encoding</name><displayName>Request Content-Encoding</displayName><description>HTTP Content-Encoding applied to request body during transmission. The receiving server must support the selected encoding to avoid request failures.</description><defaultValue>DISABLED</defaultValue><allowableValues><allowableValue><displayName>DISABLED</displayName><value>DISABLED</value><description>Content encoding not applied during transmission</description></allowableValue><allowableValue><displayName>GZIP</displayName><value>GZIP</value><description>Gzip content encoding and HTTP Content-Encoding header applied during transmission</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Content-Type</name><displayName>Request Content-Type</displayName><description>HTTP Content-Type Header applied to when sending an HTTP request body for PATCH, POST, or PUT methods. The Content-Type defaults to application/octet-stream when not configured.</description><defaultValue>${mime.type}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Date Header Enabled</name><displayName>Request Date Header Enabled</displayName><description>Enable sending HTTP Date Header on HTTP requests as described in RFC 7231 Section 7.1.1.2.</description><defaultValue>True</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Header Attributes Pattern</name><displayName>Request Header Attributes Pattern</displayName><description>Regular expression that defines which FlowFile attributes to send as HTTP headers in the request. If not defined, no attributes are sent as headers. Dynamic properties will be always be sent as headers. The dynamic property name will be the header key and the dynamic property value, interpreted as Expression Language, will be the header value. Attributes and their values are limited to ASCII characters due to the requirement of the HTTP protocol.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request User-Agent</name><displayName>Request User-Agent</displayName><description>HTTP User-Agent Header applied to requests. RFC 7231 Section 5.5.3 describes recommend formatting.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Body Attribute Name</name><displayName>Response Body Attribute Name</displayName><description>FlowFile attribute name used to write an HTTP response body for FlowFiles transferred to the Original relationship.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Body Attribute Size</name><displayName>Response Body Attribute Size</displayName><description>Maximum size in bytes applied when writing an HTTP response body to a FlowFile attribute. Attributes exceeding the maximum will be truncated.</description><defaultValue>256</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Response Body Attribute Name</propertyName><propertyDisplayName>Response Body Attribute Name</propertyDisplayName></dependency></dependencies></property><property><name>Response Body Ignored</name><displayName>Response Body Ignored</displayName><description>Disable writing HTTP response FlowFiles to Response relationship</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Cache Enabled</name><displayName>Response Cache Enabled</displayName><description>Enable HTTP response caching described in RFC 7234. Caching responses considers ETag and other headers.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Cache Size</name><displayName>Response Cache Size</displayName><description>Maximum size of HTTP response cache in bytes. Caching responses considers ETag and other headers.</description><defaultValue>10MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Response Cache Enabled</propertyName><propertyDisplayName>Response Cache Enabled</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>Response Cookie Strategy</name><displayName>Response Cookie Strategy</displayName><description>Strategy for accepting and persisting HTTP cookies. Accepting cookies enables persistence across multiple requests.</description><defaultValue>DISABLED</defaultValue><allowableValues><allowableValue><displayName>DISABLED</displayName><value>DISABLED</value><description></description></allowableValue><allowableValue><displayName>ACCEPT_ALL</displayName><value>ACCEPT_ALL</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Generation Required</name><displayName>Response Generation Required</displayName><description>Enable generation and transfer of a FlowFile to the Response relationship regardless of HTTP response received.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response FlowFile Naming Strategy</name><displayName>Response FlowFile Naming Strategy</displayName><description>Determines the strategy used for setting the filename attribute of FlowFiles transferred to the Response relationship.</description><defaultValue>RANDOM</defaultValue><allowableValues><allowableValue><displayName>RANDOM</displayName><value>RANDOM</value><description>FlowFile filename attribute will be a random value.</description></allowableValue><allowableValue><displayName>URL_PATH</displayName><value>URL_PATH</value><description>FlowFile filename attribute will be extracted from the remote URL path. The attribute may contain URL encoded characters. If the path doesn't exist, the attribute will be a random value.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Header Request Attributes Enabled</name><displayName>Response Header Request Attributes Enabled</displayName><description>Enable adding HTTP response headers as attributes to FlowFiles transferred to the Original relationship.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Redirects Enabled</name><displayName>Response Redirects Enabled</displayName><description>Enable following HTTP redirects sent with HTTP 300 series responses as described in RFC 7231 Section 6.4.</description><defaultValue>True</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>Header Name</name><value>Attribute Expression Language</value><description>Send request header with a key matching the Dynamic Property Key and a value created by evaluating the Attribute Expression Language set in the value of the Dynamic Property.</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty><dynamicProperty><name>post:form:&lt;NAME&gt;</name><value>Attribute Expression Language</value><description>When the HTTP Method is POST, dynamic properties with the property name in the form of post:form:&lt;NAME&gt;, where the &lt;NAME&gt; will be the form data name, will be used to fill out the multipart form parts.  If send message body is false, the flowfile will not be sent, but any other form data will be.</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>Original</name><description>Request FlowFiles transferred when receiving HTTP responses with a status code between 200 and 299.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Failure</name><description>Request FlowFiles transferred when receiving socket communication errors.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Retry</name><description>Request FlowFiles transferred when receiving HTTP responses with a status code between 500 and 599.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Response</name><description>Response FlowFiles transferred when receiving HTTP responses with a status code between 200 and 299.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>No Retry</name><description>Request FlowFiles transferred when receiving HTTP responses with a status code between 400 an 499.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>invokehttp.status.code</name><description>The status code that is returned</description></writesAttribute><writesAttribute><name>invokehttp.status.message</name><description>The status message that is returned</description></writesAttribute><writesAttribute><name>invokehttp.response.body</name><description>In the instance where the status code received is not a success (2xx) then the response body will be put to the 'invokehttp.response.body' attribute of the request FlowFile.</description></writesAttribute><writesAttribute><name>invokehttp.request.url</name><description>The original request URL</description></writesAttribute><writesAttribute><name>invokehttp.request.duration</name><description>Duration (in milliseconds) of the HTTP call to the external endpoint</description></writesAttribute><writesAttribute><name>invokehttp.response.url</name><description>The URL that was ultimately requested after any redirects were followed</description></writesAttribute><writesAttribute><name>invokehttp.tx.id</name><description>The transaction ID that is returned after reading the response</description></writesAttribute><writesAttribute><name>invokehttp.remote.dn</name><description>The DN of the remote server</description></writesAttribute><writesAttribute><name>invokehttp.java.exception.class</name><description>The Java exception class raised when the processor fails</description></writesAttribute><writesAttribute><name>invokehttp.java.exception.message</name><description>The Java exception message raised when the processor fails</description></writesAttribute><writesAttribute><name>user-defined</name><description>If the 'Put Response Body In Attribute' property is set then whatever it is set to will become the attribute key and the value would be the body of the HTTP response.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.JoinEnrichment</name><type>PROCESSOR</type><description>Joins together Records from two different FlowFiles where one FlowFile, the 'original' contains arbitrary records and the second FlowFile, the 'enrichment' contains additional data that should be used to enrich the first. See Additional Details for more information on how to configure this processor and the different use cases that it aims to accomplish.</description><tags><tag>fork</tag><tag>join</tag><tag>enrichment</tag><tag>record</tag><tag>sql</tag><tag>wrap</tag><tag>recordpath</tag><tag>merge</tag><tag>combine</tag><tag>streams</tag></tags><properties><property><name>Original Record Reader</name><displayName>Original Record Reader</displayName><description>The Record Reader for reading the 'original' FlowFile</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enrichment Record Reader</name><displayName>Enrichment Record Reader</displayName><description>The Record Reader for reading the 'enrichment' FlowFile</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Record Writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for writing the results. If the Record Writer is configured to inherit the schema from the Record, the schema that it will inherit will be the result of merging both the 'original' record schema and the 'enrichment' record schema.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Join Strategy</name><displayName>Join Strategy</displayName><description>Specifies how to join the two FlowFiles into a single FlowFile</description><defaultValue>Wrapper</defaultValue><allowableValues><allowableValue><displayName>Wrapper</displayName><value>Wrapper</value><description>The output is a Record that contains two fields: (1) 'original', containing the Record from the original FlowFile and (2) 'enrichment' containing the corresponding Record from the enrichment FlowFile. Records will be correlated based on their index in the FlowFile. If one FlowFile has more Records than the other, a null value will be used.</description></allowableValue><allowableValue><displayName>SQL</displayName><value>SQL</value><description>The output is derived by evaluating a SQL SELECT statement that allows for two tables: 'original' and 'enrichment'. This allows for SQL JOIN statements to be used in order to correlate the Records of the two FlowFiles, so the index in which the Record is encountered in the FlowFile does not matter.</description></allowableValue><allowableValue><displayName>Insert Enrichment Fields</displayName><value>Insert Enrichment Fields</value><description>The enrichment is joined together with the original FlowFile by placing all fields of the enrichment Record into the corresponding Record from the original FlowFile. Records will be correlated based on their index in the FlowFile.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SQL</name><displayName>SQL</displayName><description>The SQL SELECT statement to evaluate. Expression Language may be provided, but doing so may result in poorer performance. Because this Processor is dealing with two FlowFiles at a time, it's also important to understand how attributes will be referenced. If both FlowFiles have an attribute with the same name but different values, the Expression Language will resolve to the value provided by the 'enrichment' FlowFile.</description><defaultValue>SELECT original.*, enrichment.* 
+  - If incoming connection(s) are specified and a FlowFile is available to a processor task, the FlowFile's attributes may be used in Expression Language for such fields as Table Name and others. However, the Max-Value Columns and Columns to Return fields must be empty or refer to columns that are available in each specified table.</description><tags><tag>sql</tag><tag>select</tag><tag>jdbc</tag><tag>query</tag><tag>database</tag><tag>fetch</tag><tag>generate</tag></tags><properties><property><name>Database Connection Pooling Service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain a connection to the database.</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>db-fetch-db-type</name><displayName>Database Type</displayName><description>The type/flavor of database, used for generating database-specific code. In many cases the Generic type should suffice, but some databases (such as Oracle) require custom SQL clauses. </description><defaultValue>Generic</defaultValue><allowableValues><allowableValue><displayName>Generic</displayName><value>Generic</value><description>Generates ANSI SQL</description></allowableValue><allowableValue><displayName>Oracle</displayName><value>Oracle</value><description>Generates Oracle compliant SQL</description></allowableValue><allowableValue><displayName>Oracle 12+</displayName><value>Oracle 12+</value><description>Generates Oracle compliant SQL for version 12 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2012+</displayName><value>MS SQL 2012+</value><description>Generates MS SQL Compatible SQL, for version 2012 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2008</displayName><value>MS SQL 2008</value><description>Generates MS SQL Compatible SQL for version 2008</description></allowableValue><allowableValue><displayName>MySQL</displayName><value>MySQL</value><description>Generates MySQL compatible SQL</description></allowableValue><allowableValue><displayName>PostgreSQL</displayName><value>PostgreSQL</value><description>Generates PostgreSQL compatible SQL</description></allowableValue><allowableValue><displayName>Phoenix</displayName><value>Phoenix</value><description>Generates Phoenix compliant SQL</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Table Name</name><displayName>Table Name</displayName><description>The name of the database table to be queried.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Columns to Return</name><displayName>Columns to Return</displayName><description>A comma-separated list of column names to be used in the query. If your database requires special treatment of the names (quoting, e.g.), each name should include such treatment. If no column names are supplied, all columns in the specified table will be returned. NOTE: It is important to use consistent column names for a given table for incremental fetch to work properly.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum-value Columns</name><displayName>Maximum-value Columns</displayName><description>A comma-separated list of column names. The processor will keep track of the maximum value for each column that has been returned since the processor started running. Using multiple columns implies an order to the column list, and each column's values are expected to increase more slowly than the previous columns' values. Thus, using multiple columns implies a hierarchical structure of columns, which is usually used for partitioning tables. This processor can be used to retrieve only those rows that have been added/updated since the last retrieval. Note that some JDBC types such as bit/boolean are not conducive to maintaining maximum value, so columns of these types should not be listed in this property, and will result in error(s) during processing. If no columns are provided, all rows from the table will be considered, which could have a performance impact. NOTE: It is important to use consistent max-value column names for a given table for incremental fetch to work properly.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Wait Time</name><displayName>Max Wait Time</displayName><description>The maximum amount of time allowed for a running SQL select query , zero means there is no limit. Max time less than 1 second will be equal to zero.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-fetch-partition-size</name><displayName>Partition Size</displayName><description>The number of result rows to be fetched by each generated SQL statement. The total number of rows in the table divided by the partition size gives the number of SQL statements (i.e. FlowFiles) generated. A value of zero indicates that a single FlowFile is to be generated whose SQL statement will fetch all rows in the table.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-column-for-val-partitioning</name><displayName>Column for Value Partitioning</displayName><description>The name of a column whose values will be used for partitioning. The default behavior is to use row numbers on the result set for partitioning into 'pages' to be fetched from the database, using an offset/limit strategy. However for certain databases, it can be more efficient under the right circumstances to use the column values themselves to define the 'pages'. This property should only be used when the default queries are not performing well, when there is no maximum-value column or a single maximum-value column whose type can be coerced to a long integer (i.e. not date or timestamp), and the column values are evenly distributed and not sparse, for best performance.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>db-fetch-where-clause</name><displayName>Additional WHERE clause</displayName><description>A custom clause to be added in the WHERE condition when building SQL queries.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-custom-orderby-column</name><displayName>Custom ORDER BY Column</displayName><description>The name of a column to be used for ordering the results if Max-Value Columns are not provided and partitioning is enabled. This property is ignored if either Max-Value Columns is set or Partition Size = 0. NOTE: If neither Max-Value Columns nor Custom ORDER BY Column is set, then depending on the the database/driver, the processor may report an error and/or the generated SQL may result in missing and/or duplicate rows. This is because without an explicit ordering, fetching each partition is done using an arbitrary ordering.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gen-table-output-flowfile-on-zero-results</name><displayName>Output Empty FlowFile on Zero Results</displayName><description>Depending on the specified properties, an execution of this processor may not result in any SQL statements generated. When this property is true, an empty FlowFile will be generated (having the parent of the incoming FlowFile if present) and transferred to the 'success' relationship. When this property is false, no output FlowFiles will be generated.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>initial.maxvalue.&lt;max_value_column&gt;</name><value>Initial maximum value for the specified column</value><description>Specifies an initial max value for max value columns. Properties should be added in the format `initial.maxvalue.&lt;max_value_column&gt;`. This value is only used the first time the table is accessed (when a Maximum Value Column is specified). In the case of incoming connections, the value is only used the first time for each table specified in the FlowFiles.</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>Successfully created FlowFile from SQL query result set.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>This relationship is only used when SQL query execution (using an incoming FlowFile) failed. The incoming FlowFile will be penalized and routed to this relationship. If no incoming connection(s) are specified, this relationship is unused.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>generatetablefetch.sql.error</name><description>If the processor has incoming connections, and processing an incoming FlowFile causes a SQL Exception, the FlowFile is routed to failure and this attribute is set to the exception message.</description></writesAttribute><writesAttribute><name>generatetablefetch.tableName</name><description>The name of the database table to be queried.</description></writesAttribute><writesAttribute><name>generatetablefetch.columnNames</name><description>The comma-separated list of column names used in the query.</description></writesAttribute><writesAttribute><name>generatetablefetch.whereClause</name><description>Where clause used in the query to get the expected rows.</description></writesAttribute><writesAttribute><name>generatetablefetch.maxColumnNames</name><description>The comma-separated list of column names used to keep track of data that has been returned since the processor started running.</description></writesAttribute><writesAttribute><name>generatetablefetch.limit</name><description>The number of result rows to be fetched by the SQL statement.</description></writesAttribute><writesAttribute><name>generatetablefetch.offset</name><description>Offset to be used to retrieve the corresponding partition.</description></writesAttribute><writesAttribute><name>fragment.identifier</name><description>All FlowFiles generated from the same query result set will have the same value for the fragment.identifier attribute. This can then be used to correlate the results.</description></writesAttribute><writesAttribute><name>fragment.count</name><description>This is the total number of  FlowFiles produced by a single ResultSet. This can be used in conjunction with the fragment.identifier attribute in order to know how many FlowFiles belonged to the same incoming ResultSet.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>This is the position of this FlowFile in the list of outgoing FlowFiles that were all generated from the same execution. This can be used in conjunction with the fragment.identifier attribute to know which FlowFiles originated from the same execution and in what order  FlowFiles were produced</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><stateful><description>After performing a query on the specified table, the maximum values for the specified column(s) will be retained for use in future executions of the query. This allows the Processor to fetch only those records that have max values greater than the retained values. This can be used for incremental fetching, fetching of newly added rows, etc. To clear the maximum values, clear the state of the processor per the State Management documentation</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_ALLOWED</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.QueryDatabaseTable</see><see>org.apache.nifi.processors.standard.ExecuteSQL</see><see>org.apache.nifi.processors.standard.ListDatabaseTables</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.GetFTP</name><type>PROCESSOR</type><description>Fetches files from an FTP Server and creates FlowFiles from them</description><tags><tag>FTP</tag><tag>get</tag><tag>retrieve</tag><tag>files</tag><tag>fetch</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag></tags><properties><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port that the remote system is listening on for file transfers</description><defaultValue>21</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Mode</name><displayName>Connection Mode</displayName><description>The FTP Connection Mode</description><defaultValue>Passive</defaultValue><allowableValues><allowableValue><displayName>Active</displayName><value>Active</value><description></description></allowableValue><allowableValue><displayName>Passive</displayName><value>Passive</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Transfer Mode</name><displayName>Transfer Mode</displayName><description>The FTP Transfer Mode</description><defaultValue>Binary</defaultValue><allowableValues><allowableValue><displayName>Binary</displayName><value>Binary</value><description></description></allowableValue><allowableValue><displayName>ASCII</displayName><value>ASCII</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Polling Interval</name><displayName>Polling Interval</displayName><description>Determines how long to wait between fetching the listing for new files</description><defaultValue>60 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Delete Original</name><displayName>Delete Original</displayName><description>Determines whether or not the file is deleted from the remote system after it has been successfully transferred</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Selects</name><displayName>Max Selects</displayName><description>The maximum number of files to pull in a single connection</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Natural Ordering</name><displayName>Use Natural Ordering</displayName><description>If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Internal Buffer Size</name><displayName>Internal Buffer Size</displayName><description>Set the internal buffer size for buffered data streams</description><defaultValue>16KB</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ftp-use-utf8</name><displayName>Use UTF-8 Encoding</displayName><description>Tells the client to use UTF-8 encoding when processing files and filenames. If set to true, the server must also support UTF-8 encoding.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The filename is set to the name of the file on the remote server</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the path of the file's directory on the remote server. For example, if the &lt;Remote Path&gt; property is set to /tmp, files picked up from /tmp will have the path attribute set to /tmp. If the &lt;Search Recursively&gt; property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to /tmp/abc/1/2/3</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The date and time that the source file was last modified</description></writesAttribute><writesAttribute><name>file.lastAccessTime</name><description>The date and time that the file was last accessed. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutFTP</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.GetFile</name><type>PROCESSOR</type><description>Creates FlowFiles from files in a directory.  NiFi will ignore files it doesn't have at least read permissions for.</description><tags><tag>local</tag><tag>files</tag><tag>filesystem</tag><tag>ingest</tag><tag>ingress</tag><tag>get</tag><tag>source</tag><tag>input</tag></tags><properties><property><name>Input Directory</name><displayName>Input Directory</displayName><description>The input directory from which to pull files</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter</name><displayName>File Filter</displayName><description>Only files whose names match the given regular expression will be picked up</description><defaultValue>[^\.].*</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter</name><displayName>Path Filter</displayName><description>When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Batch Size</name><displayName>Batch Size</displayName><description>The maximum number of files to pull in each iteration</description><defaultValue>10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Keep Source File</name><displayName>Keep Source File</displayName><description>If true, the file is not deleted after it has been copied to the Content Repository; this causes the file to be picked up continually and is useful for testing purposes.  If not keeping original NiFi will need write permissions on the directory it is pulling from otherwise it will ignore the file.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Recurse Subdirectories</name><displayName>Recurse Subdirectories</displayName><description>Indicates whether or not to pull files from subdirectories</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Polling Interval</name><displayName>Polling Interval</displayName><description>Indicates how long to wait before performing a directory listing</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Hidden Files</name><displayName>Ignore Hidden Files</displayName><description>Indicates whether or not hidden files should be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Age</name><displayName>Minimum File Age</displayName><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Age</name><displayName>Maximum File Age</displayName><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Size</name><displayName>Minimum File Size</displayName><description>The minimum size that a file must be in order to be pulled</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Size</name><displayName>Maximum File Size</displayName><description>The maximum size that a file can be in order to be pulled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All files are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The filename is set to the name of the file on disk</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the relative path of the file's directory on disk. For example, if the &lt;Input Directory&gt; property is set to /tmp, files picked up from /tmp will have the path attribute set to ./. If the &lt;Recurse Subdirectories&gt; property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to abc/1/2/3</description></writesAttribute><writesAttribute><name>file.creationTime</name><description>The date and time that the file was created. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The date and time that the file was last modified. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.lastAccessTime</name><description>The date and time that the file was last accessed. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.owner</name><description>The owner of the file. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.group</name><description>The group owner of the file. May not work on all file systems</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the file. May not work on all file systems</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path</description></writesAttribute></writesAttributes><triggerWhenEmpty>true</triggerWhenEmpty><restricted><restrictions><restriction><requiredPermission>read filesystem</requiredPermission><explanation>Provides operator the ability to read from any file that NiFi has access to.</explanation></restriction><restriction><requiredPermission>write filesystem</requiredPermission><explanation>Provides operator the ability to delete any file that NiFi has access to.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutFile</see><see>org.apache.nifi.processors.standard.FetchFile</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.GetSFTP</name><type>PROCESSOR</type><description>Fetches files from an SFTP Server and creates FlowFiles from them</description><tags><tag>sftp</tag><tag>get</tag><tag>retrieve</tag><tag>files</tag><tag>fetch</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag></tags><properties><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port that the remote system is listening on for file transfers</description><defaultValue>22</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Private Key Path</name><displayName>Private Key Path</displayName><description>The fully qualified path to the Private Key file</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Private Key Passphrase</name><displayName>Private Key Passphrase</displayName><description>Password for the private key</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Polling Interval</name><displayName>Polling Interval</displayName><description>Determines how long to wait between fetching the listing for new files</description><defaultValue>60 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Delete Original</name><displayName>Delete Original</displayName><description>Determines whether or not the file is deleted from the remote system after it has been successfully transferred</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Host Key File</name><displayName>Host Key File</displayName><description>If supplied, the given file will be used as the Host Key; otherwise, if 'Strict Host Key Checking' property is applied (set to true) then uses the 'known_hosts' and 'known_hosts2' files from ~/.ssh directory else no host key file will be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Max Selects</name><displayName>Max Selects</displayName><description>The maximum number of files to pull in a single connection</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Strict Host Key Checking</name><displayName>Strict Host Key Checking</displayName><description>Indicates whether or not strict enforcement of hosts keys should be applied</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Send Keep Alive On Timeout</name><displayName>Send Keep Alive On Timeout</displayName><description>Send a Keep Alive message every 5 seconds up to 5 times for an overall timeout of 25 seconds.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Compression</name><displayName>Use Compression</displayName><description>Indicates whether or not ZLIB compression should be used when transferring files</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Natural Ordering</name><displayName>Use Natural Ordering</displayName><description>If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ciphers Allowed</name><displayName>Ciphers Allowed</displayName><description>A comma-separated list of Ciphers allowed for SFTP connections. Leave unset to allow all. Available options are: 3des-cbc, 3des-ctr, aes128-cbc, aes128-ctr, aes128-gcm@openssh.com, aes192-cbc, aes192-ctr, aes256-cbc, aes256-ctr, aes256-gcm@openssh.com, arcfour, arcfour128, arcfour256, blowfish-cbc, blowfish-ctr, cast128-cbc, cast128-ctr, chacha20-poly1305@openssh.com, idea-cbc, idea-ctr, serpent128-cbc, serpent128-ctr, serpent192-cbc, serpent192-ctr, serpent256-cbc, serpent256-ctr, twofish-cbc, twofish128-cbc, twofish128-ctr, twofish192-cbc, twofish192-ctr, twofish256-cbc, twofish256-ctr</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Algorithms Allowed</name><displayName>Key Algorithms Allowed</displayName><description>A comma-separated list of Key Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: ecdsa-sha2-nistp256, ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521, ecdsa-sha2-nistp521-cert-v01@openssh.com, rsa-sha2-256, rsa-sha2-512, ssh-dss, ssh-dss-cert-v01@openssh.com, ssh-ed25519, ssh-ed25519-cert-v01@openssh.com, ssh-rsa, ssh-rsa-cert-v01@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Exchange Algorithms Allowed</name><displayName>Key Exchange Algorithms Allowed</displayName><description>A comma-separated list of Key Exchange Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: curve25519-sha256, curve25519-sha256@libssh.org, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group14-sha256, diffie-hellman-group14-sha256@ssh.com, diffie-hellman-group15-sha256, diffie-hellman-group15-sha256@ssh.com, diffie-hellman-group15-sha384@ssh.com, diffie-hellman-group15-sha512, diffie-hellman-group16-sha256, diffie-hellman-group16-sha384@ssh.com, diffie-hellman-group16-sha512, diffie-hellman-group16-sha512@ssh.com, diffie-hellman-group17-sha512, diffie-hellman-group18-sha512, diffie-hellman-group18-sha512@ssh.com, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, ext-info-c</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Authentication Codes Allowed</name><displayName>Message Authentication Codes Allowed</displayName><description>A comma-separated list of Message Authentication Codes allowed for SFTP connections. Leave unset to allow all. Available options are: hmac-md5, hmac-md5-96, hmac-md5-96-etm@openssh.com, hmac-md5-etm@openssh.com, hmac-ripemd160, hmac-ripemd160-96, hmac-ripemd160-etm@openssh.com, hmac-ripemd160@openssh.com, hmac-sha1, hmac-sha1-96, hmac-sha1-96@openssh.com, hmac-sha1-etm@openssh.com, hmac-sha2-256, hmac-sha2-256-etm@openssh.com, hmac-sha2-512, hmac-sha2-512-etm@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The filename is set to the name of the file on the remote server</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the path of the file's directory on the remote server. For example, if the &lt;Remote Path&gt; property is set to /tmp, files picked up from /tmp will have the path attribute set to /tmp. If the &lt;Search Recursively&gt; property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to /tmp/abc/1/2/3</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The date and time that the source file was last modified</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutSFTP</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.HandleHttpRequest</name><type>PROCESSOR</type><description>Starts an HTTP Server and listens for HTTP Requests. For each request, creates a FlowFile and transfers to 'success'. This Processor is designed to be used in conjunction with the HandleHttpResponse Processor in order to create a Web Service. In case  of a multipart request, one FlowFile is generated for each part.</description><tags><tag>http</tag><tag>https</tag><tag>request</tag><tag>listen</tag><tag>ingress</tag><tag>web service</tag></tags><properties><property><name>Listening Port</name><displayName>Listening Port</displayName><description>The Port to listen on for incoming HTTP requests</description><defaultValue>80</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Hostname</name><displayName>Hostname</displayName><description>The Hostname to bind to. If not specified, will bind to all hosts</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The SSL Context Service to use in order to secure the server. If specified, the server will accept only HTTPS requests; otherwise, the server will accept only HTTP requests</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Protocols</name><displayName>HTTP Protocols</displayName><description>HTTP Protocols supported for Application Layer Protocol Negotiation with TLS</description><defaultValue>HTTP_1_1</defaultValue><allowableValues><allowableValue><displayName>http/1.1</displayName><value>HTTP_1_1</value><description>HTTP/1.1</description></allowableValue><allowableValue><displayName>h2 http/1.1</displayName><value>H2_HTTP_1_1</value><description>HTTP/2 and HTTP/1.1 negotiated based on requested protocols</description></allowableValue><allowableValue><displayName>h2</displayName><value>H2</value><description>HTTP/2</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>HTTP Context Map</name><displayName>HTTP Context Map</displayName><description>The HTTP Context Map Controller Service to use for caching the HTTP Request Information</description><controllerServiceDefinition><className>org.apache.nifi.http.HttpContextMap</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allowed Paths</name><displayName>Allowed Paths</displayName><description>A Regular Expression that specifies the valid HTTP Paths that are allowed in the incoming URL Requests. If this value is specified and the path of the HTTP Requests does not match this Regular Expression, the Processor will respond with a 404: NotFound</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Default URL Character Set</name><displayName>Default URL Character Set</displayName><description>The character set to use for decoding URL parameters if the HTTP Request does not supply one</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow GET</name><displayName>Allow GET</displayName><description>Allow HTTP GET Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow POST</name><displayName>Allow POST</displayName><description>Allow HTTP POST Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow PUT</name><displayName>Allow PUT</displayName><description>Allow HTTP PUT Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow DELETE</name><displayName>Allow DELETE</displayName><description>Allow HTTP DELETE Method</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow HEAD</name><displayName>Allow HEAD</displayName><description>Allow HTTP HEAD Method</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Allow OPTIONS</name><displayName>Allow OPTIONS</displayName><description>Allow HTTP OPTIONS Method</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum Threads</name><displayName>Maximum Threads</displayName><description>The maximum number of threads that the embedded HTTP server will use for handling requests.</description><defaultValue>200</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Additional HTTP Methods</name><displayName>Additional HTTP Methods</displayName><description>A comma-separated list of non-standard HTTP Methods that should be allowed</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Client Authentication</name><displayName>Client Authentication</displayName><description>Specifies whether or not the Processor should authenticate clients. This value is ignored if the &lt;SSL Context Service&gt; Property is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.</description><defaultValue>No Authentication</defaultValue><allowableValues><allowableValue><displayName>No Authentication</displayName><value>No Authentication</value><description>Processor will not authenticate clients. Anyone can communicate with this Processor anonymously</description></allowableValue><allowableValue><displayName>Want Authentication</displayName><value>Want Authentication</value><description>Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously</description></allowableValue><allowableValue><displayName>Need Authentication</displayName><value>Need Authentication</value><description>Processor will reject communications from any client unless the client provides a certificate that is trusted by the TrustStorespecified in the SSL Context Service</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>container-queue-size</name><displayName>Container Queue Size</displayName><description>The size of the queue for Http Request Containers</description><defaultValue>50</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-request-max-size</name><displayName>Multipart Request Max Size</displayName><description>The max size of the request. Only applies for requests with Content-Type: multipart/form-data, and is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-read-buffer-size</name><displayName>Multipart Read Buffer Size</displayName><description>The threshold size, at which the contents of an incoming file would be written to disk. Only applies for requests with Content-Type: multipart/form-data. It is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space.</description><defaultValue>512 KB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameters-to-attributes</name><displayName>Parameters to Attributes List</displayName><description>A comma-separated list of HTTP parameters or form data to output as attributes</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All content that is received is routed to the 'success' relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>http.context.identifier</name><description>An identifier that allows the HandleHttpRequest and HandleHttpResponse to coordinate which FlowFile belongs to which HTTP Request/Response.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME Type of the data, according to the HTTP Header "Content-Type"</description></writesAttribute><writesAttribute><name>http.servlet.path</name><description>The part of the request URL that is considered the Servlet Path</description></writesAttribute><writesAttribute><name>http.context.path</name><description>The part of the request URL that is considered to be the Context Path</description></writesAttribute><writesAttribute><name>http.method</name><description>The HTTP Method that was used for the request, such as GET or POST</description></writesAttribute><writesAttribute><name>http.local.name</name><description>IP address/hostname of the server</description></writesAttribute><writesAttribute><name>http.server.port</name><description>Listening port of the server</description></writesAttribute><writesAttribute><name>http.query.string</name><description>The query string portion of the Request URL</description></writesAttribute><writesAttribute><name>http.remote.host</name><description>The hostname of the requestor</description></writesAttribute><writesAttribute><name>http.remote.addr</name><description>The hostname:port combination of the requestor</description></writesAttribute><writesAttribute><name>http.remote.user</name><description>The username of the requestor</description></writesAttribute><writesAttribute><name>http.protocol</name><description>The protocol used to communicate</description></writesAttribute><writesAttribute><name>http.request.uri</name><description>The full Request URL</description></writesAttribute><writesAttribute><name>http.auth.type</name><description>The type of HTTP Authorization used</description></writesAttribute><writesAttribute><name>http.principal.name</name><description>The name of the authenticated user making the request</description></writesAttribute><writesAttribute><name>http.query.param.XXX</name><description>Each of query parameters in the request will be added as an attribute, prefixed with "http.query.param."</description></writesAttribute><writesAttribute><name>http.param.XXX</name><description>Form parameters in the request that are configured by "Parameters to Attributes List" will be added as an attribute, prefixed with "http.param.". Putting form parameters of large size is not recommended.</description></writesAttribute><writesAttribute><name>http.subject.dn</name><description>The Distinguished Name of the requestor. This value will not be populated unless the Processor is configured to use an SSLContext Service</description></writesAttribute><writesAttribute><name>http.issuer.dn</name><description>The Distinguished Name of the entity that issued the Subject's certificate. This value will not be populated unless the Processor is configured to use an SSLContext Service</description></writesAttribute><writesAttribute><name>http.certificate.sans.N.name</name><description>X.509 Client Certificate Subject Alternative Name value from mutual TLS authentication. The attribute name has a zero-based index ordered according to the content of Client Certificate</description></writesAttribute><writesAttribute><name>http.certificate.sans.N.nameType</name><description>X.509 Client Certificate Subject Alternative Name type from mutual TLS authentication. The attribute name has a zero-based index ordered according to the content of Client Certificate. The attribute value is one of the General Names from RFC 3280 Section 4.1.2.7</description></writesAttribute><writesAttribute><name>http.headers.XXX</name><description>Each of the HTTP Headers that is received in the request will be added as an attribute, prefixed with "http.headers." For example, if the request contains an HTTP Header named "x-my-header", then the value will be added to an attribute named "http.headers.x-my-header"</description></writesAttribute><writesAttribute><name>http.headers.multipart.XXX</name><description>Each of the HTTP Headers that is received in the multipart request will be added as an attribute, prefixed with "http.headers.multipart." For example, if the multipart request contains an HTTP Header named "content-disposition", then the value will be added to an attribute named "http.headers.multipart.content-disposition"</description></writesAttribute><writesAttribute><name>http.multipart.size</name><description>For requests with Content-Type "multipart/form-data", the part's content size is recorded into this attribute</description></writesAttribute><writesAttribute><name>http.multipart.content.type</name><description>For requests with Content-Type "multipart/form-data", the part's content type is recorded into this attribute</description></writesAttribute><writesAttribute><name>http.multipart.name</name><description>For requests with Content-Type "multipart/form-data", the part's name is recorded into this attribute</description></writesAttribute><writesAttribute><name>http.multipart.filename</name><description>For requests with Content-Type "multipart/form-data", when the part contains an uploaded file, the name of the file is recorded into this attribute. Files are stored temporarily at the default temporary-file directory specified in "java.io.File" Java Docs)</description></writesAttribute><writesAttribute><name>http.multipart.fragments.sequence.number</name><description>For requests with Content-Type "multipart/form-data", the part's index is recorded into this attribute. The index starts with 1.</description></writesAttribute><writesAttribute><name>http.multipart.fragments.total.number</name><description>For requests with Content-Type "multipart/form-data", the count of all parts is recorded into this attribute.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.HandleHttpResponse</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.HandleHttpResponse</name><type>PROCESSOR</type><description>Sends an HTTP Response to the Requestor that generated a FlowFile. This Processor is designed to be used in conjunction with the HandleHttpRequest in order to create a web service.</description><tags><tag>http</tag><tag>https</tag><tag>response</tag><tag>egress</tag><tag>web service</tag></tags><properties><property><name>HTTP Status Code</name><displayName>HTTP Status Code</displayName><description>The HTTP Status Code to use when responding to the HTTP Request. See Section 10 of RFC 2616 for more information.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Context Map</name><displayName>HTTP Context Map</displayName><description>The HTTP Context Map Controller Service to use for caching the HTTP Request Information</description><controllerServiceDefinition><className>org.apache.nifi.http.HttpContextMap</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attributes to add to the HTTP Response (Regex)</name><displayName>Attributes to add to the HTTP Response (Regex)</displayName><description>Specifies the Regular Expression that determines the names of FlowFile attributes that should be added to the HTTP response</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>An HTTP header name</name><value>An HTTP header value</value><description>These HTTPHeaders are set in the HTTP Response</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>FlowFiles will be routed to this Relationship after the response has been successfully sent to the requestor</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles will be routed to this Relationship if the Processor is unable to respond to the requestor. This may happen, for instance, if the connection times out or if NiFi is restarted before responding to the HTTP Request.</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>http.context.identifier</name><description>The value of this attribute is used to lookup the HTTP Response so that the proper message can be sent back to the requestor. If this attribute is missing, the FlowFile will be routed to 'failure.'</description></readsAttribute><readsAttribute><name>http.request.uri</name><description>Value of the URI requested by the client. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.remote.host</name><description>IP address of the client. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.local.name</name><description>IP address/hostname of the server. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.server.port</name><description>Listening port of the server. Used for provenance event.</description></readsAttribute><readsAttribute><name>http.subject.dn</name><description>SSL distinguished name (if any). Used for provenance event.</description></readsAttribute></readsAttributes><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.HandleHttpRequest</see><see>org.apache.nifi.http.StandardHttpContextMap</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.IdentifyMimeType</name><type>PROCESSOR</type><description>Attempts to identify the MIME Type used for a FlowFile. If the MIME Type can be identified, an attribute with the name 'mime.type' is added with the value being the MIME Type. If the MIME Type cannot be determined, the value will be set to 'application/octet-stream'. In addition, the attribute 'mime.extension' will be set if a common file extension for the MIME Type is known. If the MIME Type detected is of type text/*, attempts to identify the charset used and an attribute with the name 'mime.charset' is added with the value being the charset.</description><tags><tag>compression</tag><tag>gzip</tag><tag>bzip2</tag><tag>zip</tag><tag>MIME</tag><tag>mime.type</tag><tag>file</tag><tag>identify</tag></tags><properties><property><name>use-filename-in-detection</name><displayName>Use Filename In Detection</displayName><description>If true will pass the filename to Tika to aid in detection.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>config-strategy</name><displayName>Config Strategy</displayName><description>Select the loading strategy for MIME Type configuration to be used.</description><defaultValue>Preset</defaultValue><allowableValues><allowableValue><displayName>Preset</displayName><value>Preset</value><description>Use default NiFi MIME Types.</description></allowableValue><allowableValue><displayName>Replace</displayName><value>Replace</value><description>Use config MIME Types only.</description></allowableValue><allowableValue><displayName>Merge</displayName><value>Merge</value><description>Use config together with default NiFi MIME Types.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>config-body</name><displayName>Config Body</displayName><description>Body of MIME type config file. Only one of Config File or Config Body may be used.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>config-strategy</propertyName><propertyDisplayName>Config Strategy</propertyDisplayName><dependentValues><dependentValue>Replace</dependentValue><dependentValue>Merge</dependentValue></dependentValues></dependency></dependencies></property><property><name>config-file</name><displayName>Config File</displayName><description>Path to MIME type config file. Only one of Config File or Config Body may be used.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>config-strategy</propertyName><propertyDisplayName>Config Strategy</propertyDisplayName><dependentValues><dependentValue>Replace</dependentValue><dependentValue>Merge</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>success</name><description>All FlowFiles are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>This Processor sets the FlowFile's mime.type attribute to the detected MIME Type. If unable to detect the MIME Type, the attribute's value will be set to application/octet-stream</description></writesAttribute><writesAttribute><name>mime.extension</name><description>This Processor sets the FlowFile's mime.extension attribute to the file extension associated with the detected MIME Type. If there is no correlated extension, the attribute's value will be empty</description></writesAttribute><writesAttribute><name>mime.charset</name><description>This Processor sets the FlowFile's mime.charset attribute to the detected charset. If unable to detect the charset or the detected MIME type is not of type text/*, the attribute will not be set</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.InvokeHTTP</name><type>PROCESSOR</type><description>An HTTP client processor which can interact with a configurable HTTP Endpoint. The destination URL and HTTP Method are configurable. When the HTTP Method is PUT, POST or PATCH, the FlowFile contents are included as the body of the request and FlowFile attributes are converted to HTTP headers, optionally, based on configuration properties.</description><tags><tag>http</tag><tag>https</tag><tag>rest</tag><tag>client</tag></tags><properties><property><name>HTTP Method</name><displayName>HTTP Method</displayName><description>HTTP request method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS). Arbitrary methods are also supported. Methods other than POST, PUT and PATCH will be sent without a message body.</description><defaultValue>GET</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP URL</name><displayName>HTTP URL</displayName><description>HTTP remote URL including a scheme of http or https, as well as a hostname or IP address with optional port and path elements. Any encoding of the URL must be done by the user.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP/2 Disabled</name><displayName>HTTP/2 Disabled</displayName><description>Disable negotiation of HTTP/2 protocol. HTTP/2 requires TLS. HTTP/1.1 protocol supported is required when HTTP/2 is disabled.</description><defaultValue>False</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>SSL Context Service provides trusted certificates and client certificates for TLS communication.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.SSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Maximum time to wait for initial socket connection to the HTTP URL.</description><defaultValue>5 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Read Timeout</name><displayName>Socket Read Timeout</displayName><description>Maximum time to wait for receiving responses from a socket connection to the HTTP URL.</description><defaultValue>15 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Write Timeout</name><displayName>Socket Write Timeout</displayName><description>Maximum time to wait for write operations while sending requests from a socket connection to the HTTP URL.</description><defaultValue>15 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Idle Timeout</name><displayName>Socket Idle Timeout</displayName><description>Maximum time to wait before closing idle connections to the HTTP URL.</description><defaultValue>5 mins</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Socket Idle Connections</name><displayName>Socket Idle Connections</displayName><description>Maximum number of idle connections to the HTTP URL.</description><defaultValue>5</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: SOCKS, HTTP + AuthN In case of SOCKS, it is not guaranteed that the selected SOCKS Version will be used by the processor.</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request OAuth2 Access Token Provider</name><displayName>Request OAuth2 Access Token Provider</displayName><description>Enables managed retrieval of OAuth2 Bearer Token applied to HTTP requests using the Authorization Header.</description><controllerServiceDefinition><className>org.apache.nifi.oauth2.OAuth2AccessTokenProvider</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Username</name><displayName>Request Username</displayName><description>The username provided for authentication of HTTP requests. Encoded using Base64 for HTTP Basic Authentication as described in RFC 7617.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Password</name><displayName>Request Password</displayName><description>The password provided for authentication of HTTP requests. Encoded using Base64 for HTTP Basic Authentication as described in RFC 7617.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Digest Authentication Enabled</name><displayName>Request Digest Authentication Enabled</displayName><description>Enable Digest Authentication on HTTP requests with Username and Password credentials as described in RFC 7616.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Request Username</propertyName><propertyDisplayName>Request Username</propertyDisplayName></dependency></dependencies></property><property><name>Request Failure Penalization Enabled</name><displayName>Request Failure Penalization Enabled</displayName><description>Enable penalization of request FlowFiles when receiving HTTP response with a status code between 400 and 499.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Body Enabled</name><displayName>Request Body Enabled</displayName><description>Enable sending HTTP request body for PATCH, POST, or PUT methods.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Multipart Form-Data Name</name><displayName>Request Multipart Form-Data Name</displayName><description>Enable sending HTTP request body formatted using multipart/form-data and using the form name configured.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Request Body Enabled</propertyName><propertyDisplayName>Request Body Enabled</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Multipart Form-Data Filename Enabled</name><displayName>Request Multipart Form-Data Filename Enabled</displayName><description>Enable sending the FlowFile filename attribute as the filename parameter in the Content-Disposition Header for multipart/form-data HTTP requests.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Request Multipart Form-Data Name</propertyName><propertyDisplayName>Request Multipart Form-Data Name</propertyDisplayName></dependency></dependencies></property><property><name>Request Chunked Transfer-Encoding Enabled</name><displayName>Request Chunked Transfer-Encoding Enabled</displayName><description>Enable sending HTTP requests with the Transfer-Encoding Header set to chunked, and disable sending the Content-Length Header. Transfer-Encoding applies to the body in HTTP/1.1 requests as described in RFC 7230 Section 3.3.1</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Content-Encoding</name><displayName>Request Content-Encoding</displayName><description>HTTP Content-Encoding applied to request body during transmission. The receiving server must support the selected encoding to avoid request failures.</description><defaultValue>DISABLED</defaultValue><allowableValues><allowableValue><displayName>DISABLED</displayName><value>DISABLED</value><description>Content encoding not applied during transmission</description></allowableValue><allowableValue><displayName>GZIP</displayName><value>GZIP</value><description>Gzip content encoding and HTTP Content-Encoding header applied during transmission</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Content-Type</name><displayName>Request Content-Type</displayName><description>HTTP Content-Type Header applied to when sending an HTTP request body for PATCH, POST, or PUT methods. The Content-Type defaults to application/octet-stream when not configured.</description><defaultValue>${mime.type}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>HTTP Method</propertyName><propertyDisplayName>HTTP Method</propertyDisplayName><dependentValues><dependentValue>POST</dependentValue><dependentValue>PATCH</dependentValue><dependentValue>PUT</dependentValue></dependentValues></dependency></dependencies></property><property><name>Request Date Header Enabled</name><displayName>Request Date Header Enabled</displayName><description>Enable sending HTTP Date Header on HTTP requests as described in RFC 7231 Section 7.1.1.2.</description><defaultValue>True</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request Header Attributes Pattern</name><displayName>Request Header Attributes Pattern</displayName><description>Regular expression that defines which FlowFile attributes to send as HTTP headers in the request. If not defined, no attributes are sent as headers. Dynamic properties will be always be sent as headers. The dynamic property name will be the header key and the dynamic property value, interpreted as Expression Language, will be the header value. Attributes and their values are limited to ASCII characters due to the requirement of the HTTP protocol.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Request User-Agent</name><displayName>Request User-Agent</displayName><description>HTTP User-Agent Header applied to requests. RFC 7231 Section 5.5.3 describes recommend formatting.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Body Attribute Name</name><displayName>Response Body Attribute Name</displayName><description>FlowFile attribute name used to write an HTTP response body for FlowFiles transferred to the Original relationship.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Body Attribute Size</name><displayName>Response Body Attribute Size</displayName><description>Maximum size in bytes applied when writing an HTTP response body to a FlowFile attribute. Attributes exceeding the maximum will be truncated.</description><defaultValue>256</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Response Body Attribute Name</propertyName><propertyDisplayName>Response Body Attribute Name</propertyDisplayName></dependency></dependencies></property><property><name>Response Body Ignored</name><displayName>Response Body Ignored</displayName><description>Disable writing HTTP response FlowFiles to Response relationship</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Cache Enabled</name><displayName>Response Cache Enabled</displayName><description>Enable HTTP response caching described in RFC 7234. Caching responses considers ETag and other headers.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Cache Size</name><displayName>Response Cache Size</displayName><description>Maximum size of HTTP response cache in bytes. Caching responses considers ETag and other headers.</description><defaultValue>10MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Response Cache Enabled</propertyName><propertyDisplayName>Response Cache Enabled</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>Response Cookie Strategy</name><displayName>Response Cookie Strategy</displayName><description>Strategy for accepting and persisting HTTP cookies. Accepting cookies enables persistence across multiple requests.</description><defaultValue>DISABLED</defaultValue><allowableValues><allowableValue><displayName>DISABLED</displayName><value>DISABLED</value><description></description></allowableValue><allowableValue><displayName>ACCEPT_ALL</displayName><value>ACCEPT_ALL</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Generation Required</name><displayName>Response Generation Required</displayName><description>Enable generation and transfer of a FlowFile to the Response relationship regardless of HTTP response received.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response FlowFile Naming Strategy</name><displayName>Response FlowFile Naming Strategy</displayName><description>Determines the strategy used for setting the filename attribute of FlowFiles transferred to the Response relationship.</description><defaultValue>RANDOM</defaultValue><allowableValues><allowableValue><displayName>RANDOM</displayName><value>RANDOM</value><description>FlowFile filename attribute will be a random value.</description></allowableValue><allowableValue><displayName>URL_PATH</displayName><value>URL_PATH</value><description>FlowFile filename attribute will be extracted from the remote URL path. The attribute may contain URL encoded characters. If the path doesn't exist, the attribute will be a random value.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Header Request Attributes Enabled</name><displayName>Response Header Request Attributes Enabled</displayName><description>Enable adding HTTP response headers as attributes to FlowFiles transferred to the Original relationship.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Response Redirects Enabled</name><displayName>Response Redirects Enabled</displayName><description>Enable following HTTP redirects sent with HTTP 300 series responses as described in RFC 7231 Section 6.4.</description><defaultValue>True</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>Header Name</name><value>Attribute Expression Language</value><description>Send request header with a key matching the Dynamic Property Key and a value created by evaluating the Attribute Expression Language set in the value of the Dynamic Property.</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty><dynamicProperty><name>post:form:&lt;NAME&gt;</name><value>Attribute Expression Language</value><description>When the HTTP Method is POST, dynamic properties with the property name in the form of post:form:&lt;NAME&gt;, where the &lt;NAME&gt; will be the form data name, will be used to fill out the multipart form parts.  If send message body is false, the flowfile will not be sent, but any other form data will be.</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>Original</name><description>Request FlowFiles transferred when receiving HTTP responses with a status code between 200 and 299.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Failure</name><description>Request FlowFiles transferred when receiving socket communication errors.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Retry</name><description>Request FlowFiles transferred when receiving HTTP responses with a status code between 500 and 599.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Response</name><description>Response FlowFiles transferred when receiving HTTP responses with a status code between 200 and 299.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>No Retry</name><description>Request FlowFiles transferred when receiving HTTP responses with a status code between 400 an 499.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>invokehttp.status.code</name><description>The status code that is returned</description></writesAttribute><writesAttribute><name>invokehttp.status.message</name><description>The status message that is returned</description></writesAttribute><writesAttribute><name>invokehttp.response.body</name><description>In the instance where the status code received is not a success (2xx) then the response body will be put to the 'invokehttp.response.body' attribute of the request FlowFile.</description></writesAttribute><writesAttribute><name>invokehttp.request.url</name><description>The original request URL</description></writesAttribute><writesAttribute><name>invokehttp.request.duration</name><description>Duration (in milliseconds) of the HTTP call to the external endpoint</description></writesAttribute><writesAttribute><name>invokehttp.response.url</name><description>The URL that was ultimately requested after any redirects were followed</description></writesAttribute><writesAttribute><name>invokehttp.tx.id</name><description>The transaction ID that is returned after reading the response</description></writesAttribute><writesAttribute><name>invokehttp.remote.dn</name><description>The DN of the remote server</description></writesAttribute><writesAttribute><name>invokehttp.java.exception.class</name><description>The Java exception class raised when the processor fails</description></writesAttribute><writesAttribute><name>invokehttp.java.exception.message</name><description>The Java exception message raised when the processor fails</description></writesAttribute><writesAttribute><name>user-defined</name><description>If the 'Put Response Body In Attribute' property is set then whatever it is set to will become the attribute key and the value would be the body of the HTTP response.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.JoinEnrichment</name><type>PROCESSOR</type><description>Joins together Records from two different FlowFiles where one FlowFile, the 'original' contains arbitrary records and the second FlowFile, the 'enrichment' contains additional data that should be used to enrich the first. See Additional Details for more information on how to configure this processor and the different use cases that it aims to accomplish.</description><tags><tag>fork</tag><tag>join</tag><tag>enrichment</tag><tag>record</tag><tag>sql</tag><tag>wrap</tag><tag>recordpath</tag><tag>merge</tag><tag>combine</tag><tag>streams</tag></tags><properties><property><name>Original Record Reader</name><displayName>Original Record Reader</displayName><description>The Record Reader for reading the 'original' FlowFile</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Enrichment Record Reader</name><displayName>Enrichment Record Reader</displayName><description>The Record Reader for reading the 'enrichment' FlowFile</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Record Writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for writing the results. If the Record Writer is configured to inherit the schema from the Record, the schema that it will inherit will be the result of merging both the 'original' record schema and the 'enrichment' record schema.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Join Strategy</name><displayName>Join Strategy</displayName><description>Specifies how to join the two FlowFiles into a single FlowFile</description><defaultValue>Wrapper</defaultValue><allowableValues><allowableValue><displayName>Wrapper</displayName><value>Wrapper</value><description>The output is a Record that contains two fields: (1) 'original', containing the Record from the original FlowFile and (2) 'enrichment' containing the corresponding Record from the enrichment FlowFile. Records will be correlated based on their index in the FlowFile. If one FlowFile has more Records than the other, a null value will be used.</description></allowableValue><allowableValue><displayName>SQL</displayName><value>SQL</value><description>The output is derived by evaluating a SQL SELECT statement that allows for two tables: 'original' and 'enrichment'. This allows for SQL JOIN statements to be used in order to correlate the Records of the two FlowFiles, so the index in which the Record is encountered in the FlowFile does not matter.</description></allowableValue><allowableValue><displayName>Insert Enrichment Fields</displayName><value>Insert Enrichment Fields</value><description>The enrichment is joined together with the original FlowFile by placing all fields of the enrichment Record into the corresponding Record from the original FlowFile. Records will be correlated based on their index in the FlowFile.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SQL</name><displayName>SQL</displayName><description>The SQL SELECT statement to evaluate. Expression Language may be provided, but doing so may result in poorer performance. Because this Processor is dealing with two FlowFiles at a time, it's also important to understand how attributes will be referenced. If both FlowFiles have an attribute with the same name but different values, the Expression Language will resolve to the value provided by the 'enrichment' FlowFile.</description><defaultValue>SELECT original.*, enrichment.* 
 FROM original 
 LEFT OUTER JOIN enrichment 
 ON original.id = enrichment.id</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Join Strategy</propertyName><propertyDisplayName>Join Strategy</propertyDisplayName><dependentValues><dependentValue>SQL</dependentValue></dependentValues></dependency></dependencies></property><property><name>dbf-default-precision</name><displayName>Default Decimal Precision</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'precision' denoting number of available digits is required. Generally, precision is defined by column data type definition or database engines default. However undefined precision (0) can be returned from some database engines. 'Default Decimal Precision' is used when writing those undefined precision numbers.</description><defaultValue>10</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Join Strategy</propertyName><propertyDisplayName>Join Strategy</propertyDisplayName><dependentValues><dependentValue>SQL</dependentValue></dependentValues></dependency></dependencies></property><property><name>dbf-default-scale</name><displayName>Default Decimal Scale</displayName><description>When a DECIMAL/NUMBER value is written as a 'decimal' Avro logical type, a specific 'scale' denoting number of available decimal digits is required. Generally, scale is defined by column data type definition or database engines default. However when undefined precision (0) is returned, scale can also be uncertain with some database engines. 'Default Decimal Scale' is used when writing those undefined numbers. If a value has more decimals than specified scale, then the value will be rounded-up, e.g. 1.53 becomes 2 with scale 0, and 1.5 with scale 1.</description><defaultValue>0</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Join Strategy</propertyName><propertyDisplayName>Join Strategy</propertyDisplayName><dependentValues><dependentValue>SQL</dependentValue></dependentValues></dependency></dependencies></property><property><name>Insertion Record Path</name><displayName>Insertion Record Path</displayName><description>Specifies where in the 'original' Record the 'enrichment' Record's fields should be inserted. Note that if the RecordPath does not point to any existing field in the original Record, the enrichment will not be inserted.</description><defaultValue>/</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Join Strategy</propertyName><propertyDisplayName>Join Strategy</propertyDisplayName><dependentValues><dependentValue>Insert Enrichment Fields</dependentValue></dependentValues></dependency></dependencies></property><property><name>Maximum number of Bins</name><displayName>Maximum number of Bins</displayName><description>Specifies the maximum number of bins that can be held in memory at any one time</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Timeout</name><displayName>Timeout</displayName><description>Specifies the maximum amount of time to wait for the second FlowFile once the first arrives at the processor, after which point the first FlowFile will be routed to the 'timeout' relationship.</description><defaultValue>10 min</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>timeout</name><description>If one of the incoming FlowFiles (i.e., the 'original' FlowFile or the 'enrichment' FlowFile) arrives to this Processor but the other does not arrive within the configured Timeout period, the FlowFile that did arrive is routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>joined</name><description>The resultant FlowFile with Records joined together from both the original and enrichment FlowFiles will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If both the 'original' and 'enrichment' FlowFiles arrive at the processor but there was a failure in joining the records, both of those FlowFiles will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>Both of the incoming FlowFiles ('original' and 'enrichment') will be routed to this Relationship. I.e., this is the 'original' version of both of these FlowFiles.</description><autoTerminated>true</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records in the FlowFile</description></writesAttribute></writesAttributes><triggerWhenEmpty>true</triggerWhenEmpty><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>This Processor will load into heap all FlowFiles that are on its incoming queues. While it loads the FlowFiles themselves, and not their content, the FlowFile attributes can be very memory intensive. Additionally, if the Join Strategy is set to SQL, the SQL engine may require buffering the entire contents of the enrichment FlowFile for each concurrent task. See Processor's Additional Details for more details and for steps on how to mitigate these concerns.</description></systemResourceConsideration></systemResourceConsiderations><seeAlso><see>org.apache.nifi.processors.standard.ForkEnrichment</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.ListDatabaseTables</name><type>PROCESSOR</type><description>Generates a set of flow files, each containing attributes corresponding to metadata about a table from a database connection. Once metadata about a table has been fetched, it will not be fetched again until the Refresh Interval (if set) has elapsed, or until state has been manually cleared.</description><tags><tag>sql</tag><tag>list</tag><tag>jdbc</tag><tag>table</tag><tag>database</tag></tags><properties><property><name>list-db-tables-db-connection</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain connection to database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>list-db-tables-catalog</name><displayName>Catalog</displayName><description>The name of a catalog from which to list database tables. The name must match the catalog name as it is stored in the database. If the property is not set, the catalog name will not be used to narrow the search for tables. If the property is set to an empty string, tables without a catalog will be listed.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>list-db-tables-schema-pattern</name><displayName>Schema Pattern</displayName><description>A pattern for matching schemas in the database. Within a pattern, "%" means match any substring of 0 or more characters, and "_" means match any one character. The pattern must match the schema name as it is stored in the database. If the property is not set, the schema name will not be used to narrow the search for tables. If the property is set to an empty string, tables without a schema will be listed.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>list-db-tables-name-pattern</name><displayName>Table Name Pattern</displayName><description>A pattern for matching tables in the database. Within a pattern, "%" means match any substring of 0 or more characters, and "_" means match any one character. The pattern must match the table name as it is stored in the database. If the property is not set, all tables will be retrieved.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>list-db-tables-types</name><displayName>Table Types</displayName><description>A comma-separated list of table types to include. For example, some databases support TABLE and VIEW types. If the property is not set, tables of all types will be returned.</description><defaultValue>TABLE</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>list-db-include-count</name><displayName>Include Count</displayName><description>Whether to include the table's row count as a flow file attribute. This affects performance as a database query will be generated for each table in the retrieved list.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Record Writer to use for creating the listing. If not specified, one FlowFile will be created for each entity that is listed. If the Record Writer is specified, all entities will be written to a single FlowFile instead of adding attributes to individual FlowFiles.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>list-db-refresh-interval</name><displayName>Refresh Interval</displayName><description>The amount of time to elapse before resetting the processor state, thereby causing all current tables to be listed. During this interval, the processor may continue to run, but tables that have already been listed will not be re-listed. However new/added tables will be listed as the processor runs. A value of zero means the state will never be automatically reset, the user must Clear State manually.</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>db.table.name</name><description>Contains the name of a database table from the connection</description></writesAttribute><writesAttribute><name>db.table.catalog</name><description>Contains the name of the catalog to which the table belongs (may be null)</description></writesAttribute><writesAttribute><name>db.table.schema</name><description>Contains the name of the schema to which the table belongs (may be null)</description></writesAttribute><writesAttribute><name>db.table.fullname</name><description>Contains the fully-qualifed table name (possibly including catalog, schema, etc.)</description></writesAttribute><writesAttribute><name>db.table.type</name><description>Contains the type of the database table from the connection. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM"</description></writesAttribute><writesAttribute><name>db.table.remarks</name><description>Contains the name of a database table from the connection</description></writesAttribute><writesAttribute><name>db.table.count</name><description>Contains the number of rows in the table</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><stateful><description>After performing a listing of tables, the timestamp of the query is stored. This allows the Processor to not re-list tables the next time that the Processor is run. Specifying the refresh interval in the processor properties will indicate that when the processor detects the interval has elapsed, the state will be reset and tables will be re-listed as a result. This processor is meant to be run on the primary node only.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><multiProcessorUseCases><multiProcessorUseCase><description>Perform a full load of a database, retrieving all rows from all tables, or a specific set of tables.</description><notes></notes><keywords><keyword>full load</keyword><keyword>rdbms</keyword><keyword>jdbc</keyword><keyword>database</keyword></keywords><processorConfigurations><processorConfiguration><processorClassName>org.apache.nifi.processors.standard.ListDatabaseTables</processorClassName><configuration>Configure the "Database Connection Pooling Service" property to specify a Connection Pool that is applicable for interacting with your database.
@@ -107,7 +107,7 @@
 Leave the "SQL select query" unset.
 
 Connect the "success" relationship to the next Processor in the flow.
-</configuration></processorConfiguration></processorConfigurations></multiProcessorUseCase></multiProcessorUseCases><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListFTP</name><type>PROCESSOR</type><description>Performs a listing of the files residing on an FTP server. For each file that is found on the remote server, a new FlowFile will be created with the filename attribute set to the name of the file on the remote server. This can then be used in conjunction with FetchFTP in order to fetch those files.</description><tags><tag>list</tag><tag>ftp</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag><tag>files</tag></tags><properties><property><name>listing-strategy</name><displayName>Listing Strategy</displayName><description>Specify how to determine new/updated entities. See each strategy descriptions for detail.</description><defaultValue>timestamps</defaultValue><allowableValues><allowableValue><displayName>Tracking Timestamps</displayName><value>timestamps</value><description>This strategy tracks the latest timestamp of listed entity to determine new/updated entities. Since it only tracks few timestamps, it can manage listing state efficiently. However, any newly added, or updated entity having timestamp older than the tracked latest timestamp can not be picked by this strategy. For example, such situation can happen in a file system if a file with old timestamp is copied or moved into the target directory without its last modified timestamp being updated. Also may miss files when multiple subdirectories are being written at the same time while listing is running.</description></allowableValue><allowableValue><displayName>Tracking Entities</displayName><value>entities</value><description>This strategy tracks information of all the listed entities within the latest 'Entity Tracking Time Window' to determine new/updated entities. This strategy can pick entities having old timestamp that can be missed with 'Tracking Timestamps'. Works even when multiple subdirectories are being written at the same time while listing is running. However additional DistributedMapCache controller service is required and more JVM heap memory is used. See the description of 'Entity Tracking Time Window' property for further details on how it works.</description></allowableValue><allowableValue><displayName>No Tracking</displayName><value>none</value><description>This strategy lists an entity without any tracking. The same entity will be listed each time on executing this processor. It is recommended to change the default run schedule value. Any property that related to the persisting state will be disregarded.</description></allowableValue><allowableValue><displayName>Time Window</displayName><value>time-window</value><description>This strategy uses a sliding time window. The window starts where the previous window ended and ends with the 'current time'. One cycle will list files with modification time falling within the time window. Works even when multiple subdirectories are being written at the same time while listing is running. IMPORTANT: This strategy works properly only if the time on both the system hosting NiFi and the one hosting the files are accurate.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to connect to on the remote host to fetch the data from</description><defaultValue>21</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><defaultValue>.</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Record Writer to use for creating the listing. If not specified, one FlowFile will be created for each entity that is listed. If the Record Writer is specified, all entities will be written to a single FlowFile instead of adding attributes to individual FlowFiles.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distributed Cache Service</name><displayName>Distributed Cache Service</displayName><description>NOTE: This property is used merely for migration from old NiFi version before state management was introduced at version 0.5.0. The stored value in the cache service will be migrated into the state when this processor is started at the first time. The specified Controller Service was used to maintain state about what had been pulled from the remote server so that if a new node begins pulling data, it won't duplicate all of the work that has been done. If not specified, the information was not shared across the cluster. This property did not need to be set for standalone instances of NiFi but was supposed to be configured if NiFi had been running within a cluster.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Mode</name><displayName>Connection Mode</displayName><description>The FTP Connection Mode</description><defaultValue>Passive</defaultValue><allowableValues><allowableValue><displayName>Active</displayName><value>Active</value><description></description></allowableValue><allowableValue><displayName>Passive</displayName><value>Passive</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Transfer Mode</name><displayName>Transfer Mode</displayName><description>The FTP Transfer Mode</description><defaultValue>Binary</defaultValue><allowableValues><allowableValue><displayName>Binary</displayName><value>Binary</value><description></description></allowableValue><allowableValue><displayName>ASCII</displayName><value>ASCII</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Internal Buffer Size</name><displayName>Internal Buffer Size</displayName><description>Set the internal buffer size for buffered data streams</description><defaultValue>16KB</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-system-timestamp-precision</name><displayName>Target System Timestamp Precision</displayName><description>Specify timestamp precision at the target system. Since this processor uses timestamp of entities to decide which should be listed, it is crucial to use the right timestamp precision.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>Auto Detect</displayName><value>auto-detect</value><description>Automatically detect time unit deterministically based on candidate entries timestamp. Please note that this option may take longer to list entities unnecessarily, if none of entries has a precise precision timestamp. E.g. even if a target system supports millis, if all entries only have timestamps without millis, such as '2017-06-16 09:06:34.000', then its precision is determined as 'seconds'.</description></allowableValue><allowableValue><displayName>Milliseconds</displayName><value>millis</value><description>This option provides the minimum latency for an entry from being available to being listed if target system supports millis, if not, use other options.</description></allowableValue><allowableValue><displayName>Seconds</displayName><value>seconds</value><description>For a target system that does not have millis precision, but has in seconds.</description></allowableValue><allowableValue><displayName>Minutes</displayName><value>minutes</value><description>For a target system that only supports precision in minutes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-state-cache</name><displayName>Entity Tracking State Cache</displayName><description>Listed entities are stored in the specified cache storage so that this processor can resume listing across NiFi restart or in case of primary node change. 'Tracking Entities' strategy require tracking information of all listed entities within the last 'Tracking Time Window'. To support large number of entities, the strategy uses DistributedMapCache instead of managed state. Cache key format is 'ListedEntities::{processorId}(::{nodeId})'. If it tracks per node listed entities, then the optional '::{nodeId}' part is added to manage state separately. E.g. cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3' The stored cache content is Gzipped JSON string. The cache key will be deleted when target listing configuration is changed. Used by 'Tracking Entities' strategy.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-time-window</name><displayName>Entity Tracking Time Window</displayName><description>Specify how long this processor should track already-listed entities. 'Tracking Entities' strategy can pick any entity whose timestamp is inside the specified time window. For example, if set to '30 minutes', any entity having timestamp in recent 30 minutes will be the listing target when this processor runs. A listed entity is considered 'new/updated' and a FlowFile is emitted if one of following condition meets: 1. does not exist in the already-listed entities, 2. has newer timestamp than the cached entity, 3. has different size than the cached entity. If a cached entity's timestamp becomes older than specified time window, that entity will be removed from the cached already-listed entities. Used by 'Tracking Entities' strategy.</description><defaultValue>3 hours</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-initial-listing-target</name><displayName>Entity Tracking Initial Listing Target</displayName><description>Specify how initial listing should be handled. Used by 'Tracking Entities' strategy.</description><defaultValue>all</defaultValue><allowableValues><allowableValue><displayName>Tracking Time Window</displayName><value>window</value><description>Ignore entities having timestamp older than the specified 'Tracking Time Window' at the initial listing activity.</description></allowableValue><allowableValue><displayName>All Available</displayName><value>all</value><description>Regardless of entities timestamp, all existing entities will be listed at the initial listing activity.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ftp-use-utf8</name><displayName>Use UTF-8 Encoding</displayName><description>Tells the client to use UTF-8 encoding when processing files and filenames. If set to true, the server must also support UTF-8 encoding.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>ftp.remote.host</name><description>The hostname of the FTP Server</description></writesAttribute><writesAttribute><name>ftp.remote.port</name><description>The port that was connected to on the FTP Server</description></writesAttribute><writesAttribute><name>ftp.listing.user</name><description>The username of the user that performed the FTP Listing</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>file.size</name><description>The number of bytes in the source file</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The timestamp of when the file in the filesystem waslast modified as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>filename</name><description>The name of the file on the FTP Server</description></writesAttribute><writesAttribute><name>path</name><description>The fully qualified name of the directory on the FTP Server from which the file was pulled</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><stateful><description>After performing a listing of files, the timestamp of the newest file is stored. This allows the Processor to list only files that have been added or modified after this date the next time that the Processor is run. State is stored across the cluster so that this Processor can be run on Primary Node only and if a new Primary Node is selected, the new node will not duplicate the data that was listed by the previous Primary Node.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.FetchFTP</see><see>org.apache.nifi.processors.standard.GetFTP</see><see>org.apache.nifi.processors.standard.PutFTP</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListFile</name><type>PROCESSOR</type><description>Retrieves a listing of files from the input directory. For each file listed, creates a FlowFile that represents the file so that it can be fetched in conjunction with FetchFile. This Processor is designed to run on Primary Node only in a cluster when 'Input Directory Location' is set to 'Remote'. If the primary node changes, the new Primary Node will pick up where the previous node left off without duplicating all the data. When 'Input Directory Location' is 'Local', the 'Execution' mode can be anything, and synchronization won't happen. Unlike GetFile, this Processor does not delete any data from the local filesystem.</description><tags><tag>file</tag><tag>get</tag><tag>list</tag><tag>ingest</tag><tag>source</tag><tag>filesystem</tag></tags><properties><property><name>Input Directory</name><displayName>Input Directory</displayName><description>The input directory from which files to pull files</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>listing-strategy</name><displayName>Listing Strategy</displayName><description>Specify how to determine new/updated entities. See each strategy descriptions for detail.</description><defaultValue>timestamps</defaultValue><allowableValues><allowableValue><displayName>Tracking Timestamps</displayName><value>timestamps</value><description>This strategy tracks the latest timestamp of listed entity to determine new/updated entities. Since it only tracks few timestamps, it can manage listing state efficiently. However, any newly added, or updated entity having timestamp older than the tracked latest timestamp can not be picked by this strategy. For example, such situation can happen in a file system if a file with old timestamp is copied or moved into the target directory without its last modified timestamp being updated. Also may miss files when multiple subdirectories are being written at the same time while listing is running.</description></allowableValue><allowableValue><displayName>Tracking Entities</displayName><value>entities</value><description>This strategy tracks information of all the listed entities within the latest 'Entity Tracking Time Window' to determine new/updated entities. This strategy can pick entities having old timestamp that can be missed with 'Tracking Timestamps'. Works even when multiple subdirectories are being written at the same time while listing is running. However additional DistributedMapCache controller service is required and more JVM heap memory is used. See the description of 'Entity Tracking Time Window' property for further details on how it works.</description></allowableValue><allowableValue><displayName>No Tracking</displayName><value>none</value><description>This strategy lists an entity without any tracking. The same entity will be listed each time on executing this processor. It is recommended to change the default run schedule value. Any property that related to the persisting state will be disregarded.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Recurse Subdirectories</name><displayName>Recurse Subdirectories</displayName><description>Indicates whether to list files from subdirectories of the directory</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Record Writer to use for creating the listing. If not specified, one FlowFile will be created for each entity that is listed. If the Record Writer is specified, all entities will be written to a single FlowFile instead of adding attributes to individual FlowFiles.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Input Directory Location</name><displayName>Input Directory Location</displayName><description>Specifies where the Input Directory is located. This is used to determine whether state should be stored locally or across the cluster.</description><defaultValue>Local</defaultValue><allowableValues><allowableValue><displayName>Local</displayName><value>Local</value><description>Input Directory is located on a local disk. State will be stored locally on each node in the cluster.</description></allowableValue><allowableValue><displayName>Remote</displayName><value>Remote</value><description>Input Directory is located on a remote system. State will be stored across the cluster so that the listing can be performed on Primary Node Only and another node can pick up where the last node left off, if the Primary Node changes</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter</name><displayName>File Filter</displayName><description>Only files whose names match the given regular expression will be picked up</description><defaultValue>[^\.].*</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter</name><displayName>Path Filter</displayName><description>When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Include File Attributes</name><displayName>Include File Attributes</displayName><description>Whether or not to include information such as the file's Last Modified Time and Owner as FlowFile Attributes. Depending on the File System being used, gathering this information can be expensive and as a result should be disabled. This is especially true of remote file shares.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Age</name><displayName>Minimum File Age</displayName><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Age</name><displayName>Maximum File Age</displayName><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Size</name><displayName>Minimum File Size</displayName><description>The minimum size that a file must be in order to be pulled</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Size</name><displayName>Maximum File Size</displayName><description>The maximum size that a file can be in order to be pulled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Hidden Files</name><displayName>Ignore Hidden Files</displayName><description>Indicates whether or not hidden files should be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-system-timestamp-precision</name><displayName>Target System Timestamp Precision</displayName><description>Specify timestamp precision at the target system. Since this processor uses timestamp of entities to decide which should be listed, it is crucial to use the right timestamp precision.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>Auto Detect</displayName><value>auto-detect</value><description>Automatically detect time unit deterministically based on candidate entries timestamp. Please note that this option may take longer to list entities unnecessarily, if none of entries has a precise precision timestamp. E.g. even if a target system supports millis, if all entries only have timestamps without millis, such as '2017-06-16 09:06:34.000', then its precision is determined as 'seconds'.</description></allowableValue><allowableValue><displayName>Milliseconds</displayName><value>millis</value><description>This option provides the minimum latency for an entry from being available to being listed if target system supports millis, if not, use other options.</description></allowableValue><allowableValue><displayName>Seconds</displayName><value>seconds</value><description>For a target system that does not have millis precision, but has in seconds.</description></allowableValue><allowableValue><displayName>Minutes</displayName><value>minutes</value><description>For a target system that only supports precision in minutes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-state-cache</name><displayName>Entity Tracking State Cache</displayName><description>Listed entities are stored in the specified cache storage so that this processor can resume listing across NiFi restart or in case of primary node change. 'Tracking Entities' strategy require tracking information of all listed entities within the last 'Tracking Time Window'. To support large number of entities, the strategy uses DistributedMapCache instead of managed state. Cache key format is 'ListedEntities::{processorId}(::{nodeId})'. If it tracks per node listed entities, then the optional '::{nodeId}' part is added to manage state separately. E.g. cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3' The stored cache content is Gzipped JSON string. The cache key will be deleted when target listing configuration is changed. Used by 'Tracking Entities' strategy.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-time-window</name><displayName>Entity Tracking Time Window</displayName><description>Specify how long this processor should track already-listed entities. 'Tracking Entities' strategy can pick any entity whose timestamp is inside the specified time window. For example, if set to '30 minutes', any entity having timestamp in recent 30 minutes will be the listing target when this processor runs. A listed entity is considered 'new/updated' and a FlowFile is emitted if one of following condition meets: 1. does not exist in the already-listed entities, 2. has newer timestamp than the cached entity, 3. has different size than the cached entity. If a cached entity's timestamp becomes older than specified time window, that entity will be removed from the cached already-listed entities. Used by 'Tracking Entities' strategy.</description><defaultValue>3 hours</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-initial-listing-target</name><displayName>Entity Tracking Initial Listing Target</displayName><description>Specify how initial listing should be handled. Used by 'Tracking Entities' strategy.</description><defaultValue>all</defaultValue><allowableValues><allowableValue><displayName>Tracking Time Window</displayName><value>window</value><description>Ignore entities having timestamp older than the specified 'Tracking Time Window' at the initial listing activity.</description></allowableValue><allowableValue><displayName>All Available</displayName><value>all</value><description>Regardless of entities timestamp, all existing entities will be listed at the initial listing activity.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-node-identifier</name><displayName>Entity Tracking Node Identifier</displayName><description>The configured value will be appended to the cache key so that listing state can be tracked per NiFi node rather than cluster wide when tracking state is scoped to LOCAL. Used by 'Tracking Entities' strategy.</description><defaultValue>${hostname()}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>track-performance</name><displayName>Track Performance</displayName><description>Whether or not the Processor should track the performance of disk access operations. If true, all accesses to disk will be recorded, including the file being accessed, the information being obtained, and how long it takes. This is then logged periodically at a DEBUG level. While the amount of data will be capped, this option may still consume a significant amount of heap (controlled by the 'Maximum Number of Files to Track' property), but it can be very useful for troubleshooting purposes if performance is poor is degraded.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-performance-metrics</name><displayName>Maximum Number of Files to Track</displayName><description>If the 'Track Performance' property is set to 'true', this property indicates the maximum number of files whose performance metrics should be held onto. A smaller value for this property will result in less heap utilization, while a larger value may provide more accurate insights into how the disk access operations are performing</description><defaultValue>100000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-operation-time</name><displayName>Max Disk Operation Time</displayName><description>The maximum amount of time that any single disk operation is expected to take. If any disk operation takes longer than this amount of time, a warning bulletin will be generated for each operation that exceeds this amount of time.</description><defaultValue>10 secs</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-listing-time</name><displayName>Max Directory Listing Time</displayName><description>The maximum amount of time that listing any single directory is expected to take. If the listing for the directory specified by the 'Input Directory' property, or the listing of any subdirectory (if 'Recurse' is set to true) takes longer than this amount of time, a warning bulletin will be generated for each directory listing that exceeds this amount of time.</description><defaultValue>3 mins</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The name of the file that was read from filesystem.</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the relative path of the file's directory on filesystem compared to the Input Directory property. For example, if Input Directory is set to /tmp, then files picked up from /tmp will have the path attribute set to "/". If the Recurse Subdirectories property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to "abc/1/2/3/".</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The absolute.path is set to the absolute path of the file's directory on filesystem. For example, if the Input Directory property is set to /tmp, then files picked up from /tmp will have the path attribute set to "/tmp/". If the Recurse Subdirectories property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to "/tmp/abc/1/2/3/".</description></writesAttribute><writesAttribute><name>file.owner</name><description>The user that owns the file in filesystem</description></writesAttribute><writesAttribute><name>file.group</name><description>The group that owns the file in filesystem</description></writesAttribute><writesAttribute><name>file.size</name><description>The number of bytes in the file in filesystem</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The permissions for the file in filesystem. This is formatted as 3 characters for the owner, 3 for the group, and 3 for other users. For example rw-rw-r--</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The timestamp of when the file in filesystem was last modified as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>file.lastAccessTime</name><description>The timestamp of when the file in filesystem was last accessed as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>file.creationTime</name><description>The timestamp of when the file in filesystem was created as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><stateful><description>After performing a listing of files, the timestamp of the newest file is stored. This allows the Processor to list only files that have been added or modified after this date the next time that the Processor is run. Whether the state is stored with a Local or Cluster scope depends on the value of the &lt;Input Directory Location&gt; property.</description><scopes><scope>LOCAL</scope><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.GetFile</see><see>org.apache.nifi.processors.standard.PutFile</see><see>org.apache.nifi.processors.standard.FetchFile</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListSFTP</name><type>PROCESSOR</type><description>Performs a listing of the files residing on an SFTP server. For each file that is found on the remote server, a new FlowFile will be created with the filename attribute set to the name of the file on the remote server. This can then be used in conjunction with FetchSFTP in order to fetch those files.</description><tags><tag>list</tag><tag>sftp</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag><tag>files</tag></tags><properties><property><name>listing-strategy</name><displayName>Listing Strategy</displayName><description>Specify how to determine new/updated entities. See each strategy descriptions for detail.</description><defaultValue>timestamps</defaultValue><allowableValues><allowableValue><displayName>Tracking Timestamps</displayName><value>timestamps</value><description>This strategy tracks the latest timestamp of listed entity to determine new/updated entities. Since it only tracks few timestamps, it can manage listing state efficiently. However, any newly added, or updated entity having timestamp older than the tracked latest timestamp can not be picked by this strategy. For example, such situation can happen in a file system if a file with old timestamp is copied or moved into the target directory without its last modified timestamp being updated. Also may miss files when multiple subdirectories are being written at the same time while listing is running.</description></allowableValue><allowableValue><displayName>Tracking Entities</displayName><value>entities</value><description>This strategy tracks information of all the listed entities within the latest 'Entity Tracking Time Window' to determine new/updated entities. This strategy can pick entities having old timestamp that can be missed with 'Tracking Timestamps'. Works even when multiple subdirectories are being written at the same time while listing is running. However additional DistributedMapCache controller service is required and more JVM heap memory is used. See the description of 'Entity Tracking Time Window' property for further details on how it works.</description></allowableValue><allowableValue><displayName>No Tracking</displayName><value>none</value><description>This strategy lists an entity without any tracking. The same entity will be listed each time on executing this processor. It is recommended to change the default run schedule value. Any property that related to the persisting state will be disregarded.</description></allowableValue><allowableValue><displayName>Time Window</displayName><value>time-window</value><description>This strategy uses a sliding time window. The window starts where the previous window ended and ends with the 'current time'. One cycle will list files with modification time falling within the time window. Works even when multiple subdirectories are being written at the same time while listing is running. IMPORTANT: This strategy works properly only if the time on both the system hosting NiFi and the one hosting the files are accurate.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port that the remote system is listening on for file transfers</description><defaultValue>22</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Private Key Path</name><displayName>Private Key Path</displayName><description>The fully qualified path to the Private Key file</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Private Key Passphrase</name><displayName>Private Key Passphrase</displayName><description>Password for the private key</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><defaultValue>.</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Record Writer to use for creating the listing. If not specified, one FlowFile will be created for each entity that is listed. If the Record Writer is specified, all entities will be written to a single FlowFile instead of adding attributes to individual FlowFiles.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distributed Cache Service</name><displayName>Distributed Cache Service</displayName><description>NOTE: This property is used merely for migration from old NiFi version before state management was introduced at version 0.5.0. The stored value in the cache service will be migrated into the state when this processor is started at the first time. The specified Controller Service was used to maintain state about what had been pulled from the remote server so that if a new node begins pulling data, it won't duplicate all of the work that has been done. If not specified, the information was not shared across the cluster. This property did not need to be set for standalone instances of NiFi but was supposed to be configured if NiFi had been running within a cluster.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Strict Host Key Checking</name><displayName>Strict Host Key Checking</displayName><description>Indicates whether or not strict enforcement of hosts keys should be applied</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Host Key File</name><displayName>Host Key File</displayName><description>If supplied, the given file will be used as the Host Key; otherwise, if 'Strict Host Key Checking' property is applied (set to true) then uses the 'known_hosts' and 'known_hosts2' files from ~/.ssh directory else no host key file will be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Send Keep Alive On Timeout</name><displayName>Send Keep Alive On Timeout</displayName><description>Send a Keep Alive message every 5 seconds up to 5 times for an overall timeout of 25 seconds.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-system-timestamp-precision</name><displayName>Target System Timestamp Precision</displayName><description>Specify timestamp precision at the target system. Since this processor uses timestamp of entities to decide which should be listed, it is crucial to use the right timestamp precision.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>Auto Detect</displayName><value>auto-detect</value><description>Automatically detect time unit deterministically based on candidate entries timestamp. Please note that this option may take longer to list entities unnecessarily, if none of entries has a precise precision timestamp. E.g. even if a target system supports millis, if all entries only have timestamps without millis, such as '2017-06-16 09:06:34.000', then its precision is determined as 'seconds'.</description></allowableValue><allowableValue><displayName>Milliseconds</displayName><value>millis</value><description>This option provides the minimum latency for an entry from being available to being listed if target system supports millis, if not, use other options.</description></allowableValue><allowableValue><displayName>Seconds</displayName><value>seconds</value><description>For a target system that does not have millis precision, but has in seconds.</description></allowableValue><allowableValue><displayName>Minutes</displayName><value>minutes</value><description>For a target system that only supports precision in minutes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Compression</name><displayName>Use Compression</displayName><description>Indicates whether or not ZLIB compression should be used when transferring files</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-state-cache</name><displayName>Entity Tracking State Cache</displayName><description>Listed entities are stored in the specified cache storage so that this processor can resume listing across NiFi restart or in case of primary node change. 'Tracking Entities' strategy require tracking information of all listed entities within the last 'Tracking Time Window'. To support large number of entities, the strategy uses DistributedMapCache instead of managed state. Cache key format is 'ListedEntities::{processorId}(::{nodeId})'. If it tracks per node listed entities, then the optional '::{nodeId}' part is added to manage state separately. E.g. cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3' The stored cache content is Gzipped JSON string. The cache key will be deleted when target listing configuration is changed. Used by 'Tracking Entities' strategy.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-time-window</name><displayName>Entity Tracking Time Window</displayName><description>Specify how long this processor should track already-listed entities. 'Tracking Entities' strategy can pick any entity whose timestamp is inside the specified time window. For example, if set to '30 minutes', any entity having timestamp in recent 30 minutes will be the listing target when this processor runs. A listed entity is considered 'new/updated' and a FlowFile is emitted if one of following condition meets: 1. does not exist in the already-listed entities, 2. has newer timestamp than the cached entity, 3. has different size than the cached entity. If a cached entity's timestamp becomes older than specified time window, that entity will be removed from the cached already-listed entities. Used by 'Tracking Entities' strategy.</description><defaultValue>3 hours</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-initial-listing-target</name><displayName>Entity Tracking Initial Listing Target</displayName><description>Specify how initial listing should be handled. Used by 'Tracking Entities' strategy.</description><defaultValue>all</defaultValue><allowableValues><allowableValue><displayName>Tracking Time Window</displayName><value>window</value><description>Ignore entities having timestamp older than the specified 'Tracking Time Window' at the initial listing activity.</description></allowableValue><allowableValue><displayName>All Available</displayName><value>all</value><description>Regardless of entities timestamp, all existing entities will be listed at the initial listing activity.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Age</name><displayName>Minimum File Age</displayName><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Age</name><displayName>Maximum File Age</displayName><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Size</name><displayName>Minimum File Size</displayName><description>The minimum size that a file must be in order to be pulled</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Size</name><displayName>Maximum File Size</displayName><description>The maximum size that a file can be in order to be pulled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ciphers Allowed</name><displayName>Ciphers Allowed</displayName><description>A comma-separated list of Ciphers allowed for SFTP connections. Leave unset to allow all. Available options are: 3des-cbc, 3des-ctr, aes128-cbc, aes128-ctr, aes128-gcm@openssh.com, aes192-cbc, aes192-ctr, aes256-cbc, aes256-ctr, aes256-gcm@openssh.com, arcfour, arcfour128, arcfour256, blowfish-cbc, blowfish-ctr, cast128-cbc, cast128-ctr, chacha20-poly1305@openssh.com, idea-cbc, idea-ctr, serpent128-cbc, serpent128-ctr, serpent192-cbc, serpent192-ctr, serpent256-cbc, serpent256-ctr, twofish-cbc, twofish128-cbc, twofish128-ctr, twofish192-cbc, twofish192-ctr, twofish256-cbc, twofish256-ctr</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Algorithms Allowed</name><displayName>Key Algorithms Allowed</displayName><description>A comma-separated list of Key Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: ecdsa-sha2-nistp256, ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521, ecdsa-sha2-nistp521-cert-v01@openssh.com, rsa-sha2-256, rsa-sha2-512, ssh-dss, ssh-dss-cert-v01@openssh.com, ssh-ed25519, ssh-ed25519-cert-v01@openssh.com, ssh-rsa, ssh-rsa-cert-v01@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Exchange Algorithms Allowed</name><displayName>Key Exchange Algorithms Allowed</displayName><description>A comma-separated list of Key Exchange Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: curve25519-sha256, curve25519-sha256@libssh.org, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group14-sha256, diffie-hellman-group14-sha256@ssh.com, diffie-hellman-group15-sha256, diffie-hellman-group15-sha256@ssh.com, diffie-hellman-group15-sha384@ssh.com, diffie-hellman-group15-sha512, diffie-hellman-group16-sha256, diffie-hellman-group16-sha384@ssh.com, diffie-hellman-group16-sha512, diffie-hellman-group16-sha512@ssh.com, diffie-hellman-group17-sha512, diffie-hellman-group18-sha512, diffie-hellman-group18-sha512@ssh.com, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, ext-info-c</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Authentication Codes Allowed</name><displayName>Message Authentication Codes Allowed</displayName><description>A comma-separated list of Message Authentication Codes allowed for SFTP connections. Leave unset to allow all. Available options are: hmac-md5, hmac-md5-96, hmac-md5-96-etm@openssh.com, hmac-md5-etm@openssh.com, hmac-ripemd160, hmac-ripemd160-96, hmac-ripemd160-etm@openssh.com, hmac-ripemd160@openssh.com, hmac-sha1, hmac-sha1-96, hmac-sha1-96@openssh.com, hmac-sha1-etm@openssh.com, hmac-sha2-256, hmac-sha2-256-etm@openssh.com, hmac-sha2-512, hmac-sha2-512-etm@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>sftp.remote.host</name><description>The hostname of the SFTP Server</description></writesAttribute><writesAttribute><name>sftp.remote.port</name><description>The port that was connected to on the SFTP Server</description></writesAttribute><writesAttribute><name>sftp.listing.user</name><description>The username of the user that performed the SFTP Listing</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>file.size</name><description>The number of bytes in the source file</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The timestamp of when the file in the filesystem waslast modified as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>filename</name><description>The name of the file on the SFTP Server</description></writesAttribute><writesAttribute><name>path</name><description>The fully qualified name of the directory on the SFTP Server from which the file was pulled</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME Type that is provided by the configured Record Writer</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><stateful><description>After performing a listing of files, the timestamp of the newest file is stored. This allows the Processor to list only files that have been added or modified after this date the next time that the Processor is run. State is stored across the cluster so that this Processor can be run on Primary Node only and if a new Primary Node is selected, the new node will not duplicate the data that was listed by the previous Primary Node.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.FetchSFTP</see><see>org.apache.nifi.processors.standard.GetSFTP</see><see>org.apache.nifi.processors.standard.PutSFTP</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListenFTP</name><type>PROCESSOR</type><description>Starts an FTP server that listens on the specified port and transforms incoming files into FlowFiles. The URI of the service will be ftp://{hostname}:{port}. The default port is 2221.</description><tags><tag>ingest</tag><tag>FTP</tag><tag>FTPS</tag><tag>listen</tag></tags><properties><property><name>bind-address</name><displayName>Bind Address</displayName><description>The address the FTP server should be bound to. If not set (or set to 0.0.0.0), the server binds to all available addresses (i.e. all network interfaces of the host machine).</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>listening-port</name><displayName>Listening Port</displayName><description>The Port to listen on for incoming connections. On Linux, root privileges are required to use port numbers below 1024.</description><defaultValue>2221</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>username</name><displayName>Username</displayName><description>The name of the user that is allowed to log in to the FTP server. If a username is provided, a password must also be provided. If no username is specified, anonymous connections will be permitted.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>password</name><displayName>Password</displayName><description>If the Username is set, then a password must also be specified. The password provided by the client trying to log in to the FTP server will be checked against this password.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ssl-context-service</name><displayName>SSL Context Service</displayName><description>Specifies the SSL Context Service that can be used to create secure connections. If an SSL Context Service is selected, then a keystore file must also be specified in the SSL Context Service. Without a keystore file, the processor cannot be started successfully.Specifying a truststore file is optional. If a truststore file is specified, client authentication is required (the client needs to send a certificate to the server).Regardless of the selected TLS protocol, the highest available protocol is used for the connection. For example if NiFi is running on Java 11 and TLSv1.2 is selected in the controller service as the preferred TLS Protocol, TLSv1.3 will be used (regardless of TLSv1.2 being selected) because Java 11 supports TLSv1.3.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.SSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Relationship for successfully received files.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The name of the file received via the FTP/FTPS connection.</description></writesAttribute><writesAttribute><name>path</name><description>The path pointing to the file's target directory. E.g.: file.txt is uploaded to /Folder1/SubFolder, then the value of the path attribute will be "/Folder1/SubFolder/" (note that it ends with a separator character).</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenHTTP</name><type>PROCESSOR</type><description>Starts an HTTP Server and listens on a given base path to transform incoming requests into FlowFiles. The default URI of the Service will be http://{hostname}:{port}/contentListener. Only HEAD and POST requests are supported. GET, PUT, DELETE, OPTIONS and TRACE will result in an error and the HTTP response status code 405; CONNECT will also result in an error and the HTTP response status code 400. GET is supported on &lt;service_URI&gt;/healthcheck. If the service is available, it returns "200 OK" with the content "OK". The health check functionality can be configured to be accessible via a different port. For details see the documentation of the "Listening Port for health check requests" property.A Record Reader and Record Writer property can be enabled on the processor to process incoming requests as records. Record processing is not allowed for multipart requests and request in FlowFileV3 format (minifi).</description><tags><tag>ingest</tag><tag>http</tag><tag>https</tag><tag>rest</tag><tag>listen</tag></tags><properties><property><name>Base Path</name><displayName>Base Path</displayName><description>Base path for incoming connections</description><defaultValue>contentListener</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Listening Port</name><displayName>Listening Port</displayName><description>The Port to listen on for incoming connections</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>health-check-port</name><displayName>Listening Port for Health Check Requests</displayName><description>The port to listen on for incoming health check requests. If set, it must be different from the Listening Port. Configure this port if the processor is set to use two-way SSL and a load balancer that does not support client authentication for health check requests is used. Only /&lt;base_path&gt;/healthcheck service is available via this port and only GET and HEAD requests are supported. If the processor is set not to use SSL, SSL will not be used on this port, either. If the processor is set to use one-way SSL, one-way SSL will be used on this port. If the processor is set to use two-way SSL, one-way SSL will be used on this port (client authentication not required).</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Data to Receive per Second</name><displayName>Max Data to Receive per Second</displayName><description>The maximum amount of data to receive per second; this allows the bandwidth to be throttled to a specified data rate; if not specified, the data rate is not throttled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>SSL Context Service enables support for HTTPS</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Protocols</name><displayName>HTTP Protocols</displayName><description>HTTP Protocols supported for Application Layer Protocol Negotiation with TLS</description><defaultValue>HTTP_1_1</defaultValue><allowableValues><allowableValue><displayName>http/1.1</displayName><value>HTTP_1_1</value><description>HTTP/1.1</description></allowableValue><allowableValue><displayName>h2 http/1.1</displayName><value>H2_HTTP_1_1</value><description>HTTP/2 and HTTP/1.1 negotiated based on requested protocols</description></allowableValue><allowableValue><displayName>h2</displayName><value>H2</value><description>HTTP/2</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>client-authentication</name><displayName>Client Authentication</displayName><description>Client Authentication policy for TLS connections. Required when SSL Context Service configured.</description><defaultValue>AUTO</defaultValue><allowableValues><allowableValue><displayName>AUTO</displayName><value>AUTO</value><description>Inferred based on SSL Context Service properties. The presence of Trust Store properties implies REQUIRED, otherwise NONE is configured.</description></allowableValue><allowableValue><displayName>WANT</displayName><value>WANT</value><description>Requests the client certificate on handshake and validates if present but does not require it</description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description>Requests the client certificate on handshake and rejects the connection if it is not present and valid</description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description>Does not request the client certificate on handshake</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>Authorized DN Pattern</name><displayName>Authorized Subject DN Pattern</displayName><description>A Regular Expression to apply against the Subject's Distinguished Name of incoming connections. If the Pattern does not match the Subject DN, the the processor will respond with a status of HTTP 403 Forbidden.</description><defaultValue>.*</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>authorized-issuer-dn-pattern</name><displayName>Authorized Issuer DN Pattern</displayName><description>A Regular Expression to apply against the Issuer's Distinguished Name of incoming connections. If the Pattern does not match the Issuer DN, the processor will respond with a status of HTTP 403 Forbidden.</description><defaultValue>.*</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Unconfirmed Flowfile Time</name><displayName>Max Unconfirmed Flowfile Time</displayName><description>The maximum amount of time to wait for a FlowFile to be confirmed before it is removed from the cache</description><defaultValue>60 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Headers to receive as Attributes (Regex)</name><displayName>HTTP Headers to receive as Attributes (Regex)</displayName><description>Specifies the Regular Expression that determines the names of HTTP Headers that should be passed along as FlowFile attributes</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Return Code</name><displayName>Return Code</displayName><description>The HTTP return code returned after every HTTP call</description><defaultValue>200</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-request-max-size</name><displayName>Multipart Request Max Size</displayName><description>The max size of the request. Only applies for requests with Content-Type: multipart/form-data, and is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-read-buffer-size</name><displayName>Multipart Read Buffer Size</displayName><description>The threshold size, at which the contents of an incoming file would be written to disk. Only applies for requests with Content-Type: multipart/form-data. It is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space.</description><defaultValue>512 KB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-thread-pool-size</name><displayName>Maximum Thread Pool Size</displayName><description>The maximum number of threads to be used by the embedded Jetty server. The value can be set between 8 and 1000. The value of this property affects the performance of the flows and the operating system, therefore the default value should only be changed in justified cases. A value that is less than the default value may be suitable if only a small number of HTTP clients connect to the server. A greater value may be suitable if a large number of HTTP clients are expected to make requests to the server simultaneously.</description><defaultValue>200</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use parsing the incoming FlowFile into Records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for serializing Records after they have been transformed</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>record-reader</propertyName><propertyDisplayName>Record Reader</propertyDisplayName></dependency></dependencies></property></properties><relationships><relationship><name>success</name><description>Relationship for successfully received FlowFiles</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenRELP</name><type>PROCESSOR</type><description>Listens for RELP messages being sent to a given port over TCP. Each message will be acknowledged after successfully writing the message to a FlowFile. Each FlowFile will contain data portion of one or more RELP frames. In the case where the RELP frames contain syslog messages, the output of this processor can be sent to a ParseSyslog processor for further processing.</description><tags><tag>listen</tag><tag>relp</tag><tag>tcp</tag><tag>logs</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor during these surges.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Number of TCP Connections</name><displayName>Max Number of Worker Threads</displayName><description>The maximum number of worker threads available for servicing TCP connections.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Batching Message Delimiter</displayName><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Client Auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>relp.command</name><description>The command of the RELP frames.</description></writesAttribute><writesAttribute><name>relp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>relp.port</name><description>The sending port the messages were received over.</description></writesAttribute><writesAttribute><name>relp.txnr</name><description>The transaction number of the message. Only included if &lt;Batch Size&gt; is 1.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime.type of the content which is text/plain</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.ParseSyslog</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.ListenSyslog</name><type>PROCESSOR</type><description>Listens for Syslog messages being sent to a given port over TCP or UDP. Incoming messages are checked against regular expressions for RFC5424 and RFC3164 formatted messages. The format of each message is: (&lt;PRIORITY&gt;)(VERSION )(TIMESTAMP) (HOSTNAME) (BODY) where version is optional. The timestamp can be an RFC5424 timestamp with a format of "yyyy-MM-dd'T'HH:mm:ss.SZ" or "yyyy-MM-dd'T'HH:mm:ss.S+hh:mm", or it can be an RFC3164 timestamp with a format of "MMM d HH:mm:ss". If an incoming messages matches one of these patterns, the message will be parsed and the individual pieces will be placed in FlowFile attributes, with the original message in the content of the FlowFile. If an incoming message does not match one of these patterns it will not be parsed and the syslog.valid attribute will be set to false with the original message in the content of the FlowFile. Valid messages will be transferred on the success relationship, and invalid messages will be transferred on the invalid relationship.</description><tags><tag>syslog</tag><tag>listen</tag><tag>udp</tag><tag>tcp</tag><tag>logs</tag></tags><properties><property><name>Protocol</name><displayName>Protocol</displayName><description>The protocol for Syslog communication.</description><defaultValue>UDP</defaultValue><allowableValues><allowableValue><displayName>TCP</displayName><value>TCP</value><description></description></allowableValue><allowableValue><displayName>UDP</displayName><value>UDP</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port for Syslog communication. Note that Expression language is not evaluated per FlowFile.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>socket-keep-alive</name><displayName>Socket Keep Alive</displayName><description>Whether or not to have TCP socket keep alive turned on. Timing details depend on operating system properties.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, syslog messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Client Auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive Syslog messages. Adjust this value appropriately based on the expected size of the incoming Syslog messages. When UDP is selected each buffer will hold one Syslog message. When TCP is selected messages are read from an incoming connection until the buffer is full, or the connection is closed. </description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Max Number of TCP Connections</name><displayName>Max Number of TCP Connections</displayName><description>The maximum number of concurrent connections to accept Syslog messages in TCP mode.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of Syslog events to add to a single FlowFile. If multiple events are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Message Delimiter</displayName><description>Specifies the delimiter to place between Syslog messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Parse Messages</name><displayName>Parse Messages</displayName><description>Indicates if the processor should parse the Syslog messages. If set to false, each outgoing FlowFile will only contain the sender, protocol, and port, and no additional attributes.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the Syslog messages. Note that Expression language is not evaluated per FlowFile.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Syslog messages that match one of the expected formats will be sent out this relationship as a FlowFile per message.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>Syslog messages that do not match one of the expected formats will be sent out this relationship as a FlowFile per message.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>syslog.priority</name><description>The priority of the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.severity</name><description>The severity of the Syslog message derived from the priority.</description></writesAttribute><writesAttribute><name>syslog.facility</name><description>The facility of the Syslog message derived from the priority.</description></writesAttribute><writesAttribute><name>syslog.version</name><description>The optional version from the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.timestamp</name><description>The timestamp of the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.hostname</name><description>The hostname or IP address of the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.sender</name><description>The hostname of the Syslog server that sent the message.</description></writesAttribute><writesAttribute><name>syslog.body</name><description>The body of the Syslog message, everything after the hostname.</description></writesAttribute><writesAttribute><name>syslog.valid</name><description>An indicator of whether this message matched the expected formats. If this value is false, the other attributes will be empty and only the original message will be available in the content.</description></writesAttribute><writesAttribute><name>syslog.protocol</name><description>The protocol over which the Syslog message was received.</description></writesAttribute><writesAttribute><name>syslog.port</name><description>The port over which the Syslog message was received.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime.type of the FlowFile which will be text/plain for Syslog messages.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutSyslog</see><see>org.apache.nifi.processors.standard.ParseSyslog</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.ListenTCP</name><type>PROCESSOR</type><description>Listens for incoming TCP connections and reads data from each connection using a line separator as the message demarcator. The default behavior is for each message to produce a single FlowFile, however this can be controlled by increasing the Batch Size to a larger value for higher throughput. The Receive Buffer Size must be set as large as the largest messages expected to be received, meaning if every 100kb there is a line separator, then the Receive Buffer Size must be greater than 100kb. The processor can be configured to use an SSL Context Service to only allow secure connections. When connected clients present certificates for mutual TLS authentication, the Distinguished Names of the client certificate's issuer and subject are added to the outgoing FlowFiles as attributes. The processor does not perform authorization based on Distinguished Name values, but since these values are attached to the outgoing FlowFiles, authorization can be implemented based on these attributes.</description><tags><tag>listen</tag><tag>tcp</tag><tag>tls</tag><tag>ssl</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor during these surges.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Number of TCP Connections</name><displayName>Max Number of Worker Threads</displayName><description>The maximum number of worker threads available for servicing TCP connections.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Batching Message Delimiter</displayName><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>idle-timeout</name><displayName>Idle Connection Timeout</displayName><description>The amount of time a client's connection will remain open if no data is received. The default of 0 seconds will leave connections open until they are closed by the client.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-receiving-threads</name><displayName>Max Number of Receiving Message Handler Threads</displayName><description>This property is deprecated and no longer used.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>pool-receive-buffers</name><displayName>Pool Receive Buffers</displayName><description>Enable or disable pooling of buffers that the processor uses for handling bytes received on socket connections. The framework allocates buffers as needed during processing.</description><defaultValue>True</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Client Auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>tcp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>tcp.port</name><description>The sending port the messages were received.</description></writesAttribute><writesAttribute><name>client.certificate.issuer.dn</name><description>For connections using mutual TLS, the Distinguished Name of the Certificate Authority that issued the client's certificate is attached to the FlowFile.</description></writesAttribute><writesAttribute><name>client.certificate.subject.dn</name><description>For connections using mutual TLS, the Distinguished Name of the client certificate's owner (subject) is attached to the FlowFile.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenTCPRecord</name><type>PROCESSOR</type><description>Listens for incoming TCP connections and reads data from each connection using a configured record reader, and writes the records to a flow file using a configured record writer. The type of record reader selected will determine how clients are expected to send data. For example, when using a Grok reader to read logs, a client can keep an open connection and continuously stream data, but when using an JSON reader, the client cannot send an array of JSON documents and then send another array on the same connection, as the reader would be in a bad state at that point. Records will be read from the connection in blocking mode, and will timeout according to the Read Timeout specified in the processor. If the read times out, or if any other error is encountered when reading, the connection will be closed, and any records read up to that point will be handled according to the configured Read Error Strategy (Discard or Transfer). In cases where clients are keeping a connection open, the concurrent tasks for the processor should be adjusted to match the Max Number of TCP Connections allowed, so that there is a task processing each connection. The processor can be configured to use an SSL Context Service to only allow secure connections. When connected clients present certificates for mutual TLS authentication, the Distinguished Names of the client certificate's issuer and subject are added to the outgoing FlowFiles as attributes. The processor does not perform authorization based on Distinguished Name values, but since these values are attached to the outgoing FlowFiles, authorization can be implemented based on these attributes.</description><tags><tag>listen</tag><tag>tcp</tag><tag>record</tag><tag>tls</tag><tag>ssl</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-size-socket-buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-number-tcp-connections</name><displayName>Max Number of TCP Connections</displayName><description>The maximum number of concurrent TCP connections to accept. In cases where clients are keeping a connection open, the concurrent tasks for the processor should be adjusted to match the Max Number of TCP Connections allowed, so that there is a task processing each connection.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>read-timeout</name><displayName>Read Timeout</displayName><description>The amount of time to wait before timing out when reading from a connection.</description><defaultValue>10 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use for incoming FlowFiles</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>The Record Writer to use in order to serialize the data before writing to a FlowFile</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>reader-error-handling-strategy</name><displayName>Read Error Strategy</displayName><description>Indicates how to deal with an error while reading the next record from a connection, when previous records have already been read from the connection.</description><defaultValue>Transfer</defaultValue><allowableValues><allowableValue><displayName>Transfer</displayName><value>Transfer</value><description>Transfers any records already received and closes the connection.</description></allowableValue><allowableValue><displayName>Discard</displayName><value>Discard</value><description>Discards any records already received and closes the connection.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-batch-size</name><displayName>Record Batch Size</displayName><description>The maximum number of records to write to a single FlowFile.</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ssl-context-service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>client-auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>tcp.sender</name><description>The host that sent the data.</description></writesAttribute><writesAttribute><name>tcp.port</name><description>The port that the processor accepted the connection on.</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records written to the flow file.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime-type of the writer used to write the records to the flow file.</description></writesAttribute><writesAttribute><name>client.certificate.issuer.dn</name><description>For connections using mutual TLS, the Distinguished Name of the Certificate Authority that issued the client's certificate is attached to the FlowFile.</description></writesAttribute><writesAttribute><name>client.certificate.subject.dn</name><description>For connections using mutual TLS, the Distinguished Name of the client certificate's owner (subject) is attached to the FlowFile.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenUDP</name><type>PROCESSOR</type><description>Listens for Datagram Packets on a given port. The default behavior produces a FlowFile per datagram, however for higher throughput the Max Batch Size property may be increased to specify the number of datagrams to batch together in a single FlowFile. This processor can be restricted to listening for datagrams from  a specific remote host and port by specifying the Sending Host and Sending Host Port properties, otherwise it will listen for datagrams from all hosts and ports.</description><tags><tag>ingest</tag><tag>udp</tag><tag>listen</tag><tag>source</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Batching Message Delimiter</displayName><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Sending Host</name><displayName>Sending Host</displayName><description>IP, or name, of a remote host. Only Datagrams from the specified Sending Host Port and this host will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Sending Host Port</name><displayName>Sending Host Port</displayName><description>Port being used by remote host to send Datagrams. Only Datagrams from the specified Sending Host and this port will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>udp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>udp.port</name><description>The sending port the messages were received.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenUDPRecord</name><type>PROCESSOR</type><description>Listens for Datagram Packets on a given port and reads the content of each datagram using the configured Record Reader. Each record will then be written to a flow file using the configured Record Writer. This processor can be restricted to listening for datagrams from  a specific remote host and port by specifying the Sending Host and Sending Host Port properties, otherwise it will listen for datagrams from all hosts and ports.</description><tags><tag>ingest</tag><tag>udp</tag><tag>listen</tag><tag>source</tag><tag>record</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>poll-timeout</name><displayName>Poll Timeout</displayName><description>The amount of time to wait when polling the internal queue for more datagrams. If no datagrams are found after waiting for the configured timeout, then the processor will emit whatever records have been obtained up to that point.</description><defaultValue>50 ms</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>batch-size</name><displayName>Batch Size</displayName><description>The maximum number of datagrams to write as records to a single FlowFile. The Batch Size will only be reached when data is coming in more frequently than the Poll Timeout.</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use for reading the content of incoming datagrams.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>The Record Writer to use in order to serialize the data before writing to a flow file.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sending-host</name><displayName>Sending Host</displayName><description>IP, or name, of a remote host. Only Datagrams from the specified Sending Host Port and this host will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sending-host-port</name><displayName>Sending Host Port</displayName><description>Port being used by remote host to send Datagrams. Only Datagrams from the specified Sending Host and this port will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>parse.failure</name><description>If a datagram cannot be parsed using the configured Record Reader, the contents of the message will be routed to this Relationship as its own individual FlowFile.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>udp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>udp.port</name><description>The sending port the messages were received.</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records written to the flow file.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime-type of the writer used to write the records to the flow file.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LogAttribute</name><type>PROCESSOR</type><description>Emits attributes of the FlowFile at the specified log level</description><tags><tag>attributes</tag><tag>logging</tag></tags><properties><property><name>Log Level</name><displayName>Log Level</displayName><description>The Log Level to use when logging the Attributes</description><defaultValue>info</defaultValue><allowableValues><allowableValue><displayName>trace</displayName><value>trace</value><description></description></allowableValue><allowableValue><displayName>debug</displayName><value>debug</value><description></description></allowableValue><allowableValue><displayName>info</displayName><value>info</value><description></description></allowableValue><allowableValue><displayName>warn</displayName><value>warn</value><description></description></allowableValue><allowableValue><displayName>error</displayName><value>error</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log Payload</name><displayName>Log Payload</displayName><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attributes to Log</name><displayName>Attributes to Log</displayName><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged unless `Attributes to Log by Regular Expression` is modified. There's an AND relationship between the two properties.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>attributes-to-log-regex</name><displayName>Attributes to Log by Regular Expression</displayName><description>A regular expression indicating the Attributes to Log. If not specified, all attributes will be logged unless `Attributes to Log` is modified. There's an AND relationship between the two properties.</description><defaultValue>.*</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attributes to Ignore</name><displayName>Attributes to Ignore</displayName><description>A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored unless `Attributes to Ignore by Regular Expression` is modified. There's an OR relationship between the two properties.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>attributes-to-ignore-regex</name><displayName>Attributes to Ignore by Regular Expression</displayName><description>A regular expression indicating the Attributes to Ignore. If not specified, no attributes will be ignored unless `Attributes to Ignore` is modified. There's an OR relationship between the two properties.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log FlowFile Properties</name><displayName>Log FlowFile Properties</displayName><description>Specifies whether or not to log FlowFile "properties", such as Entry Date, Lineage Start Date, and content size</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output Format</name><displayName>Output Format</displayName><description>Specifies the format to use for logging FlowFile attributes</description><defaultValue>Line per Attribute</defaultValue><allowableValues><allowableValue><displayName>Line per Attribute</displayName><value>Line per Attribute</value><description>Each FlowFile attribute will be logged using a single line for the attribute name and another line for the attribute value. This format is often most advantageous when looking at the attributes of a single FlowFile.</description></allowableValue><allowableValue><displayName>Single Line</displayName><value>Single Line</value><description>All FlowFile attribute names and values will be logged on a single line. This format is often most advantageous when comparing logs from multiple FlowFiles.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log prefix</name><displayName>Log prefix</displayName><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>character-set</name><displayName>Character Set</displayName><description>The name of the CharacterSet to use</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LogMessage</name><type>PROCESSOR</type><description>Emits a log message at the specified log level</description><tags><tag>attributes</tag><tag>logging</tag></tags><properties><property><name>log-level</name><displayName>Log Level</displayName><description>The Log Level to use when logging the message: [trace, debug, info, warn, error]</description><defaultValue>info</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>log-prefix</name><displayName>Log prefix</displayName><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogMessage processors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>log-message</name><displayName>Log message</displayName><description>The log message to emit</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LookupAttribute</name><type>PROCESSOR</type><description>Lookup attributes from a lookup service</description><tags><tag>lookup</tag><tag>cache</tag><tag>enrich</tag><tag>join</tag><tag>attributes</tag><tag>Attribute Expression Language</tag></tags><properties><property><name>lookup-service</name><displayName>Lookup Service</displayName><description>The lookup service to use for attribute lookups</description><controllerServiceDefinition><className>org.apache.nifi.lookup.StringLookupService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>include-empty-values</name><displayName>Include Empty Values</displayName><description>Include null or blank values for keys that are null or blank</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>The name of the attribute to add to the FlowFile</name><value>The name of the key or property to retrieve from the lookup service</value><description>Adds a FlowFile attribute specified by the dynamic property's key with the value found in the lookup service using the the dynamic property's value</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles with failing lookups are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles with missing lookups are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles with matching lookups are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LookupRecord</name><type>PROCESSOR</type><description>Extracts one or more fields from a Record and looks up a value for those fields in a LookupService. If a result is returned by the LookupService, that result is optionally added to the Record. In this case, the processor functions as an Enrichment processor. Regardless, the Record is then routed to either the 'matched' relationship or 'unmatched' relationship (if the 'Routing Strategy' property is configured to do so), indicating whether or not a result was returned by the LookupService, allowing the processor to also function as a Routing processor. The "coordinates" to use for looking up a value in the Lookup Service are defined by adding a user-defined property. Each property that is added will have an entry added to a Map, where the name of the property becomes the Map Key and the value returned by the RecordPath becomes the value for that key. If multiple values are returned by the RecordPath, then the Record will be routed to the 'unmatched' relationship (or 'success', depending on the 'Routing Strategy' property's configuration). If one or more fields match the Result RecordPath, all fields that match will be updated. If there is no match in the configured LookupService, then no fields will be updated. I.e., it will not overwrite an existing value in the Record with a null value. Please note, however, that if the results returned by the LookupService are not accounted for in your schema (specifically, the schema that is configured for your Record Writer) then the fields will not be written out to the FlowFile.</description><tags><tag>lookup</tag><tag>enrichment</tag><tag>route</tag><tag>record</tag><tag>csv</tag><tag>json</tag><tag>avro</tag><tag>database</tag><tag>db</tag><tag>logs</tag><tag>convert</tag><tag>filter</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for reading incoming data</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing out the records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>lookup-service</name><displayName>Lookup Service</displayName><description>The Lookup Service to use in order to lookup a value in each Record</description><controllerServiceDefinition><className>org.apache.nifi.lookup.LookupService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Root Record Path</name><displayName>Root Record Path</displayName><description>A RecordPath that points to a child Record within each of the top-level Records in the FlowFile. If specified, the additional RecordPath properties will be evaluated against this child Record instead of the top-level Record. This allows for performing enrichment against multiple child Records within a single top-level Record.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>routing-strategy</name><displayName>Routing Strategy</displayName><description>Specifies how to route records after a Lookup has completed</description><defaultValue>route-to-success</defaultValue><allowableValues><allowableValue><displayName>Route to 'success'</displayName><value>route-to-success</value><description>Records will be routed to a 'success' Relationship regardless of whether or not there is a match in the configured Lookup Service</description></allowableValue><allowableValue><displayName>Route to 'matched' or 'unmatched'</displayName><value>route-to-matched-unmatched</value><description>Records will be routed to either a 'matched' or an 'unmatched' Relationship depending on whether or not there was a match in the configured Lookup Service. A single input FlowFile may result in two different output FlowFiles. If the given Record Paths evaluate such that multiple sub-records are evaluated, the parent Record will be routed to 'unmatched' unless all sub-records match.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>result-contents</name><displayName>Record Result Contents</displayName><description>When a result is obtained that contains a Record, this property determines whether the Record itself is inserted at the configured path or if the contents of the Record (i.e., the sub-fields) will be inserted at the configured path.</description><defaultValue>insert-entire-record</defaultValue><allowableValues><allowableValue><displayName>Insert Entire Record</displayName><value>insert-entire-record</value><description>The entire Record that is retrieved from the Lookup Service will be inserted into the destination path.</description></allowableValue><allowableValue><displayName>Insert Record Fields</displayName><value>record-fields</value><description>All of the fields in the Record that is retrieved from the Lookup Service will be inserted into the destination path.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-update-strategy</name><displayName>Record Update Strategy</displayName><description>This property defines the strategy to use when updating the record with the value returned by the Lookup Service.</description><defaultValue>use-property</defaultValue><allowableValues><allowableValue><displayName>Replace Existing Values</displayName><value>replace-existing-values</value><description>The "Result RecordPath" property will be ignored and the lookup service must be a single simple key lookup service. Every dynamic property value should be a record path. For each dynamic property, the value contained in the field corresponding to the record path will be used as the key in the Lookup Service and the value returned by the Lookup Service will be used to replace the existing value. It is possible to configure multiple dynamic properties to replace multiple values in one execution. This strategy only supports simple types replacements (strings, integers, etc).</description></allowableValue><allowableValue><displayName>Use "Result RecordPath" Property</displayName><value>use-property</value><description>The "Result RecordPath" property will be used to determine which part of the record should be updated with the value returned by the Lookup Service</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>result-record-path</name><displayName>Result RecordPath</displayName><description>A RecordPath that points to the field whose value should be updated with whatever value is returned from the Lookup Service. If not specified, the value that is returned from the Lookup Service will be ignored, except for determining whether the FlowFile should be routed to the 'matched' or 'unmatched' Relationship.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>record-update-strategy</propertyName><propertyDisplayName>Record Update Strategy</propertyDisplayName><dependentValues><dependentValue>use-property</dependentValue></dependentValues></dependency></dependencies></property><property><name>record-path-lookup-miss-result-cache-size</name><displayName>Cache Size</displayName><description>Specifies how many lookup values/records should be cached.Setting this property to zero means no caching will be done and the table will be queried for each lookup value in each record. If the lookup table changes often or the most recent data must be retrieved, do not use the cache.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>Value To Lookup</name><value>Valid Record Path</value><description>A RecordPath that points to the field whose value will be looked up in the configured Lookup Service</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>All records will be sent to this Relationship if configured to do so, unless a failure occurs</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If a FlowFile cannot be enriched, the unchanged FlowFile will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records in the FlowFile</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.ConvertRecord</see><see>org.apache.nifi.processors.standard.SplitRecord</see><see>org.apache.nifi.lookup.SimpleKeyValueLookupService</see><see>org.apache.nifi.lookup.maxmind.IPLookupService</see><see>org.apache.nifi.lookup.db.DatabaseRecordLookupService</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.MergeContent</name><type>PROCESSOR</type><description>Merges a Group of FlowFiles together based on a user-defined strategy and packages them into a single FlowFile. It is recommended that the Processor be configured with only a single incoming connection, as Group of FlowFiles will not be created from FlowFiles in different connections. This processor updates the mime.type attribute as appropriate. NOTE: this processor should NOT be configured with Cron Driven for the Scheduling Strategy.</description><tags><tag>merge</tag><tag>content</tag><tag>correlation</tag><tag>tar</tag><tag>zip</tag><tag>stream</tag><tag>concatenation</tag><tag>archive</tag><tag>flowfile-stream</tag><tag>flowfile-stream-v3</tag></tags><properties><property><name>Merge Strategy</name><displayName>Merge Strategy</displayName><description>Specifies the algorithm used to merge content. The 'Defragment' algorithm combines fragments that are associated by attributes back into a single cohesive FlowFile. The 'Bin-Packing Algorithm' generates a FlowFile populated by arbitrarily chosen FlowFiles</description><defaultValue>Bin-Packing Algorithm</defaultValue><allowableValues><allowableValue><displayName>Bin-Packing Algorithm</displayName><value>Bin-Packing Algorithm</value><description>Generates 'bins' of FlowFiles and fills each bin as full as possible. FlowFiles are placed into a bin based on their size and optionally their attributes (if the &lt;Correlation Attribute&gt; property is set)</description></allowableValue><allowableValue><displayName>Defragment</displayName><value>Defragment</value><description>Combines fragments that are associated by attributes back into a single cohesive FlowFile. If using this strategy, all FlowFiles must have the attributes &lt;fragment.identifier&gt;, &lt;fragment.count&gt;, and &lt;fragment.index&gt;. All FlowFiles with the same value for "fragment.identifier" will be grouped together. All FlowFiles in this group must have the same value for the "fragment.count" attribute. All FlowFiles in this group must have a unique value for the "fragment.index" attribute between 0 and the value of the "fragment.count" attribute.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Merge Format</name><displayName>Merge Format</displayName><description>Determines the format that will be used to merge the content.</description><defaultValue>Binary Concatenation</defaultValue><allowableValues><allowableValue><displayName>TAR</displayName><value>TAR</value><description>A bin of FlowFiles will be combined into a single TAR file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the TAR file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the TAR file. If a FlowFile has an attribute named &lt;tar.permissions&gt; that is 3 characters, each between 0-7, that attribute will be used as the TAR entry's 'mode'.</description></allowableValue><allowableValue><displayName>ZIP</displayName><value>ZIP</value><description>A bin of FlowFiles will be combined into a single ZIP file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the ZIP file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the ZIP file. The &lt;Compression Level&gt; property indicates the ZIP compression to use.</description></allowableValue><allowableValue><displayName>FlowFile Stream, v3</displayName><value>FlowFile Stream, v3</value><description>A bin of FlowFiles will be combined into a single Version 3 FlowFile Stream</description></allowableValue><allowableValue><displayName>FlowFile Stream, v2</displayName><value>FlowFile Stream, v2</value><description>A bin of FlowFiles will be combined into a single Version 2 FlowFile Stream</description></allowableValue><allowableValue><displayName>FlowFile Tar, v1</displayName><value>FlowFile Tar, v1</value><description>A bin of FlowFiles will be combined into a single Version 1 FlowFile Package</description></allowableValue><allowableValue><displayName>Binary Concatenation</displayName><value>Binary Concatenation</value><description>The contents of all FlowFiles will be concatenated together into a single FlowFile</description></allowableValue><allowableValue><displayName>Avro</displayName><value>Avro</value><description>The Avro contents of all FlowFiles will be concatenated together into a single FlowFile</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attribute Strategy</name><displayName>Attribute Strategy</displayName><description>Determines which FlowFile attributes should be added to the bundle. If 'Keep All Unique Attributes' is selected, any attribute on any FlowFile that gets bundled will be kept unless its value conflicts with the value from another FlowFile. If 'Keep Only Common Attributes' is selected, only the attributes that exist on all FlowFiles in the bundle, with the same value, will be preserved.</description><defaultValue>Keep Only Common Attributes</defaultValue><allowableValues><allowableValue><displayName>Keep Only Common Attributes</displayName><value>Keep Only Common Attributes</value><description>Any attribute that is not the same on all FlowFiles in a bin will be dropped. Those that are the same across all FlowFiles will be retained.</description></allowableValue><allowableValue><displayName>Keep All Unique Attributes</displayName><value>Keep All Unique Attributes</value><description>Any attribute that has the same value for all FlowFiles in a bin, or has no value for a FlowFile, will be kept. For example, if a bin consists of 3 FlowFiles and 2 of them have a value of 'hello' for the 'greeting' attribute and the third FlowFile has no 'greeting' attribute then the outbound FlowFile will get a 'greeting' attribute with the value 'hello'.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Correlation Attribute Name</name><displayName>Correlation Attribute Name</displayName><description>If specified, like FlowFiles will be binned together, where 'like FlowFiles' means FlowFiles that have the same value for this Attribute. If not specified, FlowFiles are bundled by the order in which they are pulled from the queue.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>mergecontent-metadata-strategy</name><displayName>Metadata Strategy</displayName><description>For FlowFiles whose input format supports metadata (Avro, e.g.), this property determines which metadata should be added to the bundle. If 'Use First Metadata' is selected, the metadata keys/values from the first FlowFile to be bundled will be used. If 'Keep Only Common Metadata' is selected, only the metadata that exists on all FlowFiles in the bundle, with the same value, will be preserved. If 'Ignore Metadata' is selected, no metadata is transferred to the outgoing bundled FlowFile. If 'Do Not Merge Uncommon Metadata' is selected, any FlowFile whose metadata values do not match those of the first bundled FlowFile will not be merged.</description><defaultValue>Do Not Merge Uncommon Metadata</defaultValue><allowableValues><allowableValue><displayName>Use First Metadata</displayName><value>Use First Metadata</value><description>For any input format that supports metadata (Avro, e.g.), the metadata for the first FlowFile in the bin will be set on the output FlowFile.</description></allowableValue><allowableValue><displayName>Keep Only Common Metadata</displayName><value>Keep Only Common Metadata</value><description>For any input format that supports metadata (Avro, e.g.), any FlowFile whose metadata values match those of the first FlowFile, any additional metadata will be dropped but the FlowFile will be merged. Any FlowFile whose metadata values do not match those of the first FlowFile in the bin will not be merged.</description></allowableValue><allowableValue><displayName>Do Not Merge Uncommon Metadata</displayName><value>Do Not Merge Uncommon Metadata</value><description>For any input format that supports metadata (Avro, e.g.), any FlowFile whose metadata values do not match those of the first FlowFile in the bin will not be merged.</description></allowableValue><allowableValue><displayName>Ignore Metadata</displayName><value>Ignore Metadata</value><description>Ignores (does not transfer, compare, etc.) any metadata from a FlowFile whose content supports embedded metadata.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Avro</dependentValue></dependentValues></dependency></dependencies></property><property><name>Minimum Number of Entries</name><displayName>Minimum Number of Entries</displayName><description>The minimum number of files to include in a bundle</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Maximum Number of Entries</name><displayName>Maximum Number of Entries</displayName><description>The maximum number of files to include in a bundle</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Minimum Group Size</name><displayName>Minimum Group Size</displayName><description>The minimum size for the bundle</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Maximum Group Size</name><displayName>Maximum Group Size</displayName><description>The maximum size for the bundle. If not specified, there is no maximum.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Max Bin Age</name><displayName>Max Bin Age</displayName><description>The maximum age of a Bin that will trigger a Bin to be complete. Expected format is &lt;duration&gt; &lt;time unit&gt; where &lt;duration&gt; is a positive integer and time unit is one of seconds, minutes, hours</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum number of Bins</name><displayName>Maximum number of Bins</displayName><description>Specifies the maximum number of bins that can be held in memory at any one time</description><defaultValue>5</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Delimiter Strategy</name><displayName>Delimiter Strategy</displayName><description>Determines if Header, Footer, and Demarcator should point to files containing the respective content, or if the values of the properties should be used as the content.</description><defaultValue>Do Not Use Delimiters</defaultValue><allowableValues><allowableValue><displayName>Do Not Use Delimiters</displayName><value>Do Not Use Delimiters</value><description>No Header, Footer, or Demarcator will be used</description></allowableValue><allowableValue><displayName>Filename</displayName><value>Filename</value><description>The values of Header, Footer, and Demarcator will be retrieved from the contents of a file</description></allowableValue><allowableValue><displayName>Text</displayName><value>Text</value><description>The values of Header, Footer, and Demarcator will be specified as property values</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency></dependencies></property><property><name>Header File</name><displayName>Header</displayName><description>Filename or text specifying the header to use. If not specified, no header is supplied.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>TEXT</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency><dependency><propertyName>Delimiter Strategy</propertyName><propertyDisplayName>Delimiter Strategy</propertyDisplayName><dependentValues><dependentValue>Filename</dependentValue><dependentValue>Text</dependentValue></dependentValues></dependency></dependencies></property><property><name>Footer File</name><displayName>Footer</displayName><description>Filename or text specifying the footer to use. If not specified, no footer is supplied.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>TEXT</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency><dependency><propertyName>Delimiter Strategy</propertyName><propertyDisplayName>Delimiter Strategy</propertyDisplayName><dependentValues><dependentValue>Filename</dependentValue><dependentValue>Text</dependentValue></dependentValues></dependency></dependencies></property><property><name>Demarcator File</name><displayName>Demarcator</displayName><description>Filename or text specifying the demarcator to use. If not specified, no demarcator is supplied.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>TEXT</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency><dependency><propertyName>Delimiter Strategy</propertyName><propertyDisplayName>Delimiter Strategy</propertyDisplayName><dependentValues><dependentValue>Filename</dependentValue><dependentValue>Text</dependentValue></dependentValues></dependency></dependencies></property><property><name>Compression Level</name><displayName>Compression Level</displayName><description>Specifies the compression level to use when using the Zip Merge Format; if not using the Zip Merge Format, this value is ignored</description><defaultValue>1</defaultValue><allowableValues><allowableValue><displayName>0</displayName><value>0</value><description></description></allowableValue><allowableValue><displayName>1</displayName><value>1</value><description></description></allowableValue><allowableValue><displayName>2</displayName><value>2</value><description></description></allowableValue><allowableValue><displayName>3</displayName><value>3</value><description></description></allowableValue><allowableValue><displayName>4</displayName><value>4</value><description></description></allowableValue><allowableValue><displayName>5</displayName><value>5</value><description></description></allowableValue><allowableValue><displayName>6</displayName><value>6</value><description></description></allowableValue><allowableValue><displayName>7</displayName><value>7</value><description></description></allowableValue><allowableValue><displayName>8</displayName><value>8</value><description></description></allowableValue><allowableValue><displayName>9</displayName><value>9</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>ZIP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Keep Path</name><displayName>Keep Path</displayName><description>If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry names.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>ZIP</dependentValue><dependentValue>TAR</dependentValue></dependentValues></dependency></dependencies></property><property><name>Tar Modified Time</name><displayName>Tar Modified Time</displayName><description>If using the Tar Merge Format, specifies if the Tar entry should store the modified timestamp either by expression (e.g. ${file.lastModifiedTime} or static value, both of which must match the ISO8601 format 'yyyy-MM-dd'T'HH:mm:ssZ'.</description><defaultValue>${file.lastModifiedTime}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>TAR</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>failure</name><description>If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The FlowFiles that were used to create the bundle</description><autoTerminated>false</autoTerminated></relationship><relationship><name>merged</name><description>The FlowFile containing the merged content</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>fragment.identifier</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. All FlowFiles with the same value for this attribute will be bundled together.</description></readsAttribute><readsAttribute><name>fragment.index</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. This attribute indicates the order in which the fragments should be assembled. This attribute must be present on all FlowFiles when using the Defragment Merge Strategy and must be a unique (i.e., unique across all FlowFiles that have the same value for the "fragment.identifier" attribute) integer between 0 and the value of the fragment.count attribute. If two or more FlowFiles have the same value for the "fragment.identifier" attribute and the same value for the "fragment.index" attribute, the first FlowFile processed will be accepted and subsequent FlowFiles will not be accepted into the Bin.</description></readsAttribute><readsAttribute><name>fragment.count</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. This attribute indicates how many FlowFiles should be expected in the given bundle. At least one FlowFile must have this attribute in the bundle. If multiple FlowFiles contain the "fragment.count" attribute in a given bundle, all must have the same value.</description></readsAttribute><readsAttribute><name>segment.original.filename</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. This attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute. All FlowFiles in the same bundle must have the same value for this attribute. The value of this attribute will be used for the filename of the completed merged FlowFile.</description></readsAttribute><readsAttribute><name>tar.permissions</name><description>Applicable only if the &lt;Merge Format&gt; property is set to TAR. The value of this attribute must be 3 characters; each character must be in the range 0 to 7 (inclusive) and indicates the file permissions that should be used for the FlowFile's TAR entry. If this attribute is missing or has an invalid value, the default value of 644 will be used</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>filename</name><description>When more than 1 file is merged, the filename comes from the segment.original.filename attribute. If that attribute does not exist in the source FlowFiles, then the filename is set to the number of nanoseconds matching system time. Then a filename extension may be applied:if Merge Format is TAR, then the filename will be appended with .tar, if Merge Format is ZIP, then the filename will be appended with .zip, if Merge Format is FlowFileStream, then the filename will be appended with .pkg</description></writesAttribute><writesAttribute><name>merge.count</name><description>The number of FlowFiles that were merged into this bundle</description></writesAttribute><writesAttribute><name>merge.bin.age</name><description>The age of the bin, in milliseconds, when it was merged and output. Effectively this is the greatest amount of time that any FlowFile in this bundle remained waiting in this processor before it was output</description></writesAttribute><writesAttribute><name>merge.uuid</name><description>UUID of the merged flow file that will be added to the original flow files attributes.</description></writesAttribute><writesAttribute><name>merge.reason</name><description>This processor allows for several thresholds to be configured for merging FlowFiles. This attribute indicates which of the Thresholds resulted in the FlowFiles being merged. For an explanation of each of the possible values and their meanings, see the Processor's Usage / documentation and see the 'Additional Details' page.</description></writesAttribute></writesAttributes><triggerWhenEmpty>true</triggerWhenEmpty><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>While content is not stored in memory, the FlowFiles' attributes are. The configuration of MergeContent (maximum bin size, maximum group size, maximum bin age, max number of entries) will influence how much memory is used. If merging together many small FlowFiles, a two-stage approach may be necessary in order to avoid excessive use of memory.</description></systemResourceConsideration></systemResourceConsiderations><useCases><useCase><description>Concatenate FlowFiles with textual content together in order to create fewer, larger FlowFiles.</description><notes></notes><keywords><keyword>concatenate</keyword><keyword>bundle</keyword><keyword>aggregate</keyword><keyword>bin</keyword><keyword>merge</keyword><keyword>combine</keyword><keyword>smash</keyword></keywords><inputRequirement>INPUT_ALLOWED</inputRequirement><configuration>"Merge Strategy" = "Bin Packing Algorithm"
+</configuration></processorConfiguration></processorConfigurations></multiProcessorUseCase></multiProcessorUseCases><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListFTP</name><type>PROCESSOR</type><description>Performs a listing of the files residing on an FTP server. For each file that is found on the remote server, a new FlowFile will be created with the filename attribute set to the name of the file on the remote server. This can then be used in conjunction with FetchFTP in order to fetch those files.</description><tags><tag>list</tag><tag>ftp</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag><tag>files</tag></tags><properties><property><name>listing-strategy</name><displayName>Listing Strategy</displayName><description>Specify how to determine new/updated entities. See each strategy descriptions for detail.</description><defaultValue>timestamps</defaultValue><allowableValues><allowableValue><displayName>Tracking Timestamps</displayName><value>timestamps</value><description>This strategy tracks the latest timestamp of listed entity to determine new/updated entities. Since it only tracks few timestamps, it can manage listing state efficiently. However, any newly added, or updated entity having timestamp older than the tracked latest timestamp can not be picked by this strategy. For example, such situation can happen in a file system if a file with old timestamp is copied or moved into the target directory without its last modified timestamp being updated. Also may miss files when multiple subdirectories are being written at the same time while listing is running.</description></allowableValue><allowableValue><displayName>Tracking Entities</displayName><value>entities</value><description>This strategy tracks information of all the listed entities within the latest 'Entity Tracking Time Window' to determine new/updated entities. This strategy can pick entities having old timestamp that can be missed with 'Tracking Timestamps'. Works even when multiple subdirectories are being written at the same time while listing is running. However additional DistributedMapCache controller service is required and more JVM heap memory is used. See the description of 'Entity Tracking Time Window' property for further details on how it works.</description></allowableValue><allowableValue><displayName>No Tracking</displayName><value>none</value><description>This strategy lists an entity without any tracking. The same entity will be listed each time on executing this processor. It is recommended to change the default run schedule value. Any property that related to the persisting state will be disregarded.</description></allowableValue><allowableValue><displayName>Time Window</displayName><value>time-window</value><description>This strategy uses a sliding time window. The window starts where the previous window ended and ends with the 'current time'. One cycle will list files with modification time falling within the time window. Works even when multiple subdirectories are being written at the same time while listing is running. IMPORTANT: This strategy works properly only if the time on both the system hosting NiFi and the one hosting the files are accurate.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to connect to on the remote host to fetch the data from</description><defaultValue>21</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><defaultValue>.</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Record Writer to use for creating the listing. If not specified, one FlowFile will be created for each entity that is listed. If the Record Writer is specified, all entities will be written to a single FlowFile instead of adding attributes to individual FlowFiles.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distributed Cache Service</name><displayName>Distributed Cache Service</displayName><description>NOTE: This property is used merely for migration from old NiFi version before state management was introduced at version 0.5.0. The stored value in the cache service will be migrated into the state when this processor is started at the first time. The specified Controller Service was used to maintain state about what had been pulled from the remote server so that if a new node begins pulling data, it won't duplicate all of the work that has been done. If not specified, the information was not shared across the cluster. This property did not need to be set for standalone instances of NiFi but was supposed to be configured if NiFi had been running within a cluster.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Mode</name><displayName>Connection Mode</displayName><description>The FTP Connection Mode</description><defaultValue>Passive</defaultValue><allowableValues><allowableValue><displayName>Active</displayName><value>Active</value><description></description></allowableValue><allowableValue><displayName>Passive</displayName><value>Passive</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Transfer Mode</name><displayName>Transfer Mode</displayName><description>The FTP Transfer Mode</description><defaultValue>Binary</defaultValue><allowableValues><allowableValue><displayName>Binary</displayName><value>Binary</value><description></description></allowableValue><allowableValue><displayName>ASCII</displayName><value>ASCII</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Internal Buffer Size</name><displayName>Internal Buffer Size</displayName><description>Set the internal buffer size for buffered data streams</description><defaultValue>16KB</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-system-timestamp-precision</name><displayName>Target System Timestamp Precision</displayName><description>Specify timestamp precision at the target system. Since this processor uses timestamp of entities to decide which should be listed, it is crucial to use the right timestamp precision.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>Auto Detect</displayName><value>auto-detect</value><description>Automatically detect time unit deterministically based on candidate entries timestamp. Please note that this option may take longer to list entities unnecessarily, if none of entries has a precise precision timestamp. E.g. even if a target system supports millis, if all entries only have timestamps without millis, such as '2017-06-16 09:06:34.000', then its precision is determined as 'seconds'.</description></allowableValue><allowableValue><displayName>Milliseconds</displayName><value>millis</value><description>This option provides the minimum latency for an entry from being available to being listed if target system supports millis, if not, use other options.</description></allowableValue><allowableValue><displayName>Seconds</displayName><value>seconds</value><description>For a target system that does not have millis precision, but has in seconds.</description></allowableValue><allowableValue><displayName>Minutes</displayName><value>minutes</value><description>For a target system that only supports precision in minutes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-state-cache</name><displayName>Entity Tracking State Cache</displayName><description>Listed entities are stored in the specified cache storage so that this processor can resume listing across NiFi restart or in case of primary node change. 'Tracking Entities' strategy require tracking information of all listed entities within the last 'Tracking Time Window'. To support large number of entities, the strategy uses DistributedMapCache instead of managed state. Cache key format is 'ListedEntities::{processorId}(::{nodeId})'. If it tracks per node listed entities, then the optional '::{nodeId}' part is added to manage state separately. E.g. cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3' The stored cache content is Gzipped JSON string. The cache key will be deleted when target listing configuration is changed. Used by 'Tracking Entities' strategy.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-time-window</name><displayName>Entity Tracking Time Window</displayName><description>Specify how long this processor should track already-listed entities. 'Tracking Entities' strategy can pick any entity whose timestamp is inside the specified time window. For example, if set to '30 minutes', any entity having timestamp in recent 30 minutes will be the listing target when this processor runs. A listed entity is considered 'new/updated' and a FlowFile is emitted if one of following condition meets: 1. does not exist in the already-listed entities, 2. has newer timestamp than the cached entity, 3. has different size than the cached entity. If a cached entity's timestamp becomes older than specified time window, that entity will be removed from the cached already-listed entities. Used by 'Tracking Entities' strategy.</description><defaultValue>3 hours</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-initial-listing-target</name><displayName>Entity Tracking Initial Listing Target</displayName><description>Specify how initial listing should be handled. Used by 'Tracking Entities' strategy.</description><defaultValue>all</defaultValue><allowableValues><allowableValue><displayName>Tracking Time Window</displayName><value>window</value><description>Ignore entities having timestamp older than the specified 'Tracking Time Window' at the initial listing activity.</description></allowableValue><allowableValue><displayName>All Available</displayName><value>all</value><description>Regardless of entities timestamp, all existing entities will be listed at the initial listing activity.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ftp-use-utf8</name><displayName>Use UTF-8 Encoding</displayName><description>Tells the client to use UTF-8 encoding when processing files and filenames. If set to true, the server must also support UTF-8 encoding.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>ftp.remote.host</name><description>The hostname of the FTP Server</description></writesAttribute><writesAttribute><name>ftp.remote.port</name><description>The port that was connected to on the FTP Server</description></writesAttribute><writesAttribute><name>ftp.listing.user</name><description>The username of the user that performed the FTP Listing</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>file.size</name><description>The number of bytes in the source file</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The timestamp of when the file in the filesystem waslast modified as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>filename</name><description>The name of the file on the FTP Server</description></writesAttribute><writesAttribute><name>path</name><description>The fully qualified name of the directory on the FTP Server from which the file was pulled</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><stateful><description>After performing a listing of files, the timestamp of the newest file is stored. This allows the Processor to list only files that have been added or modified after this date the next time that the Processor is run. State is stored across the cluster so that this Processor can be run on Primary Node only and if a new Primary Node is selected, the new node will not duplicate the data that was listed by the previous Primary Node.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.FetchFTP</see><see>org.apache.nifi.processors.standard.GetFTP</see><see>org.apache.nifi.processors.standard.PutFTP</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListFile</name><type>PROCESSOR</type><description>Retrieves a listing of files from the input directory. For each file listed, creates a FlowFile that represents the file so that it can be fetched in conjunction with FetchFile. This Processor is designed to run on Primary Node only in a cluster when 'Input Directory Location' is set to 'Remote'. If the primary node changes, the new Primary Node will pick up where the previous node left off without duplicating all the data. When 'Input Directory Location' is 'Local', the 'Execution' mode can be anything, and synchronization won't happen. Unlike GetFile, this Processor does not delete any data from the local filesystem.</description><tags><tag>file</tag><tag>get</tag><tag>list</tag><tag>ingest</tag><tag>source</tag><tag>filesystem</tag></tags><properties><property><name>Input Directory</name><displayName>Input Directory</displayName><description>The input directory from which files to pull files</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>listing-strategy</name><displayName>Listing Strategy</displayName><description>Specify how to determine new/updated entities. See each strategy descriptions for detail.</description><defaultValue>timestamps</defaultValue><allowableValues><allowableValue><displayName>Tracking Timestamps</displayName><value>timestamps</value><description>This strategy tracks the latest timestamp of listed entity to determine new/updated entities. Since it only tracks few timestamps, it can manage listing state efficiently. However, any newly added, or updated entity having timestamp older than the tracked latest timestamp can not be picked by this strategy. For example, such situation can happen in a file system if a file with old timestamp is copied or moved into the target directory without its last modified timestamp being updated. Also may miss files when multiple subdirectories are being written at the same time while listing is running.</description></allowableValue><allowableValue><displayName>Tracking Entities</displayName><value>entities</value><description>This strategy tracks information of all the listed entities within the latest 'Entity Tracking Time Window' to determine new/updated entities. This strategy can pick entities having old timestamp that can be missed with 'Tracking Timestamps'. Works even when multiple subdirectories are being written at the same time while listing is running. However additional DistributedMapCache controller service is required and more JVM heap memory is used. See the description of 'Entity Tracking Time Window' property for further details on how it works.</description></allowableValue><allowableValue><displayName>No Tracking</displayName><value>none</value><description>This strategy lists an entity without any tracking. The same entity will be listed each time on executing this processor. It is recommended to change the default run schedule value. Any property that related to the persisting state will be disregarded.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Recurse Subdirectories</name><displayName>Recurse Subdirectories</displayName><description>Indicates whether to list files from subdirectories of the directory</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Record Writer to use for creating the listing. If not specified, one FlowFile will be created for each entity that is listed. If the Record Writer is specified, all entities will be written to a single FlowFile instead of adding attributes to individual FlowFiles.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Input Directory Location</name><displayName>Input Directory Location</displayName><description>Specifies where the Input Directory is located. This is used to determine whether state should be stored locally or across the cluster.</description><defaultValue>Local</defaultValue><allowableValues><allowableValue><displayName>Local</displayName><value>Local</value><description>Input Directory is located on a local disk. State will be stored locally on each node in the cluster.</description></allowableValue><allowableValue><displayName>Remote</displayName><value>Remote</value><description>Input Directory is located on a remote system. State will be stored across the cluster so that the listing can be performed on Primary Node Only and another node can pick up where the last node left off, if the Primary Node changes</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter</name><displayName>File Filter</displayName><description>Only files whose names match the given regular expression will be picked up</description><defaultValue>[^\.].*</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter</name><displayName>Path Filter</displayName><description>When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Include File Attributes</name><displayName>Include File Attributes</displayName><description>Whether or not to include information such as the file's Last Modified Time and Owner as FlowFile Attributes. Depending on the File System being used, gathering this information can be expensive and as a result should be disabled. This is especially true of remote file shares.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Age</name><displayName>Minimum File Age</displayName><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Age</name><displayName>Maximum File Age</displayName><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Size</name><displayName>Minimum File Size</displayName><description>The minimum size that a file must be in order to be pulled</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Size</name><displayName>Maximum File Size</displayName><description>The maximum size that a file can be in order to be pulled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Hidden Files</name><displayName>Ignore Hidden Files</displayName><description>Indicates whether or not hidden files should be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-system-timestamp-precision</name><displayName>Target System Timestamp Precision</displayName><description>Specify timestamp precision at the target system. Since this processor uses timestamp of entities to decide which should be listed, it is crucial to use the right timestamp precision.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>Auto Detect</displayName><value>auto-detect</value><description>Automatically detect time unit deterministically based on candidate entries timestamp. Please note that this option may take longer to list entities unnecessarily, if none of entries has a precise precision timestamp. E.g. even if a target system supports millis, if all entries only have timestamps without millis, such as '2017-06-16 09:06:34.000', then its precision is determined as 'seconds'.</description></allowableValue><allowableValue><displayName>Milliseconds</displayName><value>millis</value><description>This option provides the minimum latency for an entry from being available to being listed if target system supports millis, if not, use other options.</description></allowableValue><allowableValue><displayName>Seconds</displayName><value>seconds</value><description>For a target system that does not have millis precision, but has in seconds.</description></allowableValue><allowableValue><displayName>Minutes</displayName><value>minutes</value><description>For a target system that only supports precision in minutes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-state-cache</name><displayName>Entity Tracking State Cache</displayName><description>Listed entities are stored in the specified cache storage so that this processor can resume listing across NiFi restart or in case of primary node change. 'Tracking Entities' strategy require tracking information of all listed entities within the last 'Tracking Time Window'. To support large number of entities, the strategy uses DistributedMapCache instead of managed state. Cache key format is 'ListedEntities::{processorId}(::{nodeId})'. If it tracks per node listed entities, then the optional '::{nodeId}' part is added to manage state separately. E.g. cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3' The stored cache content is Gzipped JSON string. The cache key will be deleted when target listing configuration is changed. Used by 'Tracking Entities' strategy.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-time-window</name><displayName>Entity Tracking Time Window</displayName><description>Specify how long this processor should track already-listed entities. 'Tracking Entities' strategy can pick any entity whose timestamp is inside the specified time window. For example, if set to '30 minutes', any entity having timestamp in recent 30 minutes will be the listing target when this processor runs. A listed entity is considered 'new/updated' and a FlowFile is emitted if one of following condition meets: 1. does not exist in the already-listed entities, 2. has newer timestamp than the cached entity, 3. has different size than the cached entity. If a cached entity's timestamp becomes older than specified time window, that entity will be removed from the cached already-listed entities. Used by 'Tracking Entities' strategy.</description><defaultValue>3 hours</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-initial-listing-target</name><displayName>Entity Tracking Initial Listing Target</displayName><description>Specify how initial listing should be handled. Used by 'Tracking Entities' strategy.</description><defaultValue>all</defaultValue><allowableValues><allowableValue><displayName>Tracking Time Window</displayName><value>window</value><description>Ignore entities having timestamp older than the specified 'Tracking Time Window' at the initial listing activity.</description></allowableValue><allowableValue><displayName>All Available</displayName><value>all</value><description>Regardless of entities timestamp, all existing entities will be listed at the initial listing activity.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-node-identifier</name><displayName>Entity Tracking Node Identifier</displayName><description>The configured value will be appended to the cache key so that listing state can be tracked per NiFi node rather than cluster wide when tracking state is scoped to LOCAL. Used by 'Tracking Entities' strategy.</description><defaultValue>${hostname()}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>track-performance</name><displayName>Track Performance</displayName><description>Whether or not the Processor should track the performance of disk access operations. If true, all accesses to disk will be recorded, including the file being accessed, the information being obtained, and how long it takes. This is then logged periodically at a DEBUG level. While the amount of data will be capped, this option may still consume a significant amount of heap (controlled by the 'Maximum Number of Files to Track' property), but it can be very useful for troubleshooting purposes if performance is poor is degraded.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-performance-metrics</name><displayName>Maximum Number of Files to Track</displayName><description>If the 'Track Performance' property is set to 'true', this property indicates the maximum number of files whose performance metrics should be held onto. A smaller value for this property will result in less heap utilization, while a larger value may provide more accurate insights into how the disk access operations are performing</description><defaultValue>100000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-operation-time</name><displayName>Max Disk Operation Time</displayName><description>The maximum amount of time that any single disk operation is expected to take. If any disk operation takes longer than this amount of time, a warning bulletin will be generated for each operation that exceeds this amount of time.</description><defaultValue>10 secs</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-listing-time</name><displayName>Max Directory Listing Time</displayName><description>The maximum amount of time that listing any single directory is expected to take. If the listing for the directory specified by the 'Input Directory' property, or the listing of any subdirectory (if 'Recurse' is set to true) takes longer than this amount of time, a warning bulletin will be generated for each directory listing that exceeds this amount of time.</description><defaultValue>3 mins</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The name of the file that was read from filesystem.</description></writesAttribute><writesAttribute><name>path</name><description>The path is set to the relative path of the file's directory on filesystem compared to the Input Directory property. For example, if Input Directory is set to /tmp, then files picked up from /tmp will have the path attribute set to "/". If the Recurse Subdirectories property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to "abc/1/2/3/".</description></writesAttribute><writesAttribute><name>absolute.path</name><description>The absolute.path is set to the absolute path of the file's directory on filesystem. For example, if the Input Directory property is set to /tmp, then files picked up from /tmp will have the path attribute set to "/tmp/". If the Recurse Subdirectories property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to "/tmp/abc/1/2/3/".</description></writesAttribute><writesAttribute><name>file.owner</name><description>The user that owns the file in filesystem</description></writesAttribute><writesAttribute><name>file.group</name><description>The group that owns the file in filesystem</description></writesAttribute><writesAttribute><name>file.size</name><description>The number of bytes in the file in filesystem</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The permissions for the file in filesystem. This is formatted as 3 characters for the owner, 3 for the group, and 3 for other users. For example rw-rw-r--</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The timestamp of when the file in filesystem was last modified as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>file.lastAccessTime</name><description>The timestamp of when the file in filesystem was last accessed as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>file.creationTime</name><description>The timestamp of when the file in filesystem was created as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><stateful><description>After performing a listing of files, the timestamp of the newest file is stored. This allows the Processor to list only files that have been added or modified after this date the next time that the Processor is run. Whether the state is stored with a Local or Cluster scope depends on the value of the &lt;Input Directory Location&gt; property.</description><scopes><scope>LOCAL</scope><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.GetFile</see><see>org.apache.nifi.processors.standard.PutFile</see><see>org.apache.nifi.processors.standard.FetchFile</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListSFTP</name><type>PROCESSOR</type><description>Performs a listing of the files residing on an SFTP server. For each file that is found on the remote server, a new FlowFile will be created with the filename attribute set to the name of the file on the remote server. This can then be used in conjunction with FetchSFTP in order to fetch those files.</description><tags><tag>list</tag><tag>sftp</tag><tag>remote</tag><tag>ingest</tag><tag>source</tag><tag>input</tag><tag>files</tag></tags><properties><property><name>listing-strategy</name><displayName>Listing Strategy</displayName><description>Specify how to determine new/updated entities. See each strategy descriptions for detail.</description><defaultValue>timestamps</defaultValue><allowableValues><allowableValue><displayName>Tracking Timestamps</displayName><value>timestamps</value><description>This strategy tracks the latest timestamp of listed entity to determine new/updated entities. Since it only tracks few timestamps, it can manage listing state efficiently. However, any newly added, or updated entity having timestamp older than the tracked latest timestamp can not be picked by this strategy. For example, such situation can happen in a file system if a file with old timestamp is copied or moved into the target directory without its last modified timestamp being updated. Also may miss files when multiple subdirectories are being written at the same time while listing is running.</description></allowableValue><allowableValue><displayName>Tracking Entities</displayName><value>entities</value><description>This strategy tracks information of all the listed entities within the latest 'Entity Tracking Time Window' to determine new/updated entities. This strategy can pick entities having old timestamp that can be missed with 'Tracking Timestamps'. Works even when multiple subdirectories are being written at the same time while listing is running. However additional DistributedMapCache controller service is required and more JVM heap memory is used. See the description of 'Entity Tracking Time Window' property for further details on how it works.</description></allowableValue><allowableValue><displayName>No Tracking</displayName><value>none</value><description>This strategy lists an entity without any tracking. The same entity will be listed each time on executing this processor. It is recommended to change the default run schedule value. Any property that related to the persisting state will be disregarded.</description></allowableValue><allowableValue><displayName>Time Window</displayName><value>time-window</value><description>This strategy uses a sliding time window. The window starts where the previous window ended and ends with the 'current time'. One cycle will list files with modification time falling within the time window. Works even when multiple subdirectories are being written at the same time while listing is running. IMPORTANT: This strategy works properly only if the time on both the system hosting NiFi and the one hosting the files are accurate.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully qualified hostname or IP address of the remote system</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port that the remote system is listening on for file transfers</description><defaultValue>22</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Username</name><displayName>Username</displayName><description>Username</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password for the user account</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Private Key Path</name><displayName>Private Key Path</displayName><description>The fully qualified path to the Private Key file</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Private Key Passphrase</name><displayName>Private Key Passphrase</displayName><description>Password for the private key</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Path</name><displayName>Remote Path</displayName><description>The path on the remote system from which to pull or push files</description><defaultValue>.</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Record Writer to use for creating the listing. If not specified, one FlowFile will be created for each entity that is listed. If the Record Writer is specified, all entities will be written to a single FlowFile instead of adding attributes to individual FlowFiles.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Distributed Cache Service</name><displayName>Distributed Cache Service</displayName><description>NOTE: This property is used merely for migration from old NiFi version before state management was introduced at version 0.5.0. The stored value in the cache service will be migrated into the state when this processor is started at the first time. The specified Controller Service was used to maintain state about what had been pulled from the remote server so that if a new node begins pulling data, it won't duplicate all of the work that has been done. If not specified, the information was not shared across the cluster. This property did not need to be set for standalone instances of NiFi but was supposed to be configured if NiFi had been running within a cluster.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Search Recursively</name><displayName>Search Recursively</displayName><description>If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>follow-symlink</name><displayName>Follow symlink</displayName><description>If true, will pull even symbolic files and also nested symbolic subdirectories; otherwise, will not read symbolic files and will not traverse symbolic link subdirectories</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>File Filter Regex</name><displayName>File Filter Regex</displayName><description>Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Path Filter Regex</name><displayName>Path Filter Regex</displayName><description>When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ignore Dotted Files</name><displayName>Ignore Dotted Files</displayName><description>If true, files whose names begin with a dot (".") will be ignored</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote Poll Batch Size</name><displayName>Remote Poll Batch Size</displayName><description>The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.</description><defaultValue>5000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Strict Host Key Checking</name><displayName>Strict Host Key Checking</displayName><description>Indicates whether or not strict enforcement of hosts keys should be applied</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Host Key File</name><displayName>Host Key File</displayName><description>If supplied, the given file will be used as the Host Key; otherwise, if 'Strict Host Key Checking' property is applied (set to true) then uses the 'known_hosts' and 'known_hosts2' files from ~/.ssh directory else no host key file will be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Connection Timeout</name><displayName>Connection Timeout</displayName><description>Amount of time to wait before timing out while creating a connection</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Data Timeout</name><displayName>Data Timeout</displayName><description>When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems</description><defaultValue>30 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Send Keep Alive On Timeout</name><displayName>Send Keep Alive On Timeout</displayName><description>Send a Keep Alive message every 5 seconds up to 5 times for an overall timeout of 25 seconds.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-system-timestamp-precision</name><displayName>Target System Timestamp Precision</displayName><description>Specify timestamp precision at the target system. Since this processor uses timestamp of entities to decide which should be listed, it is crucial to use the right timestamp precision.</description><defaultValue>auto-detect</defaultValue><allowableValues><allowableValue><displayName>Auto Detect</displayName><value>auto-detect</value><description>Automatically detect time unit deterministically based on candidate entries timestamp. Please note that this option may take longer to list entities unnecessarily, if none of entries has a precise precision timestamp. E.g. even if a target system supports millis, if all entries only have timestamps without millis, such as '2017-06-16 09:06:34.000', then its precision is determined as 'seconds'.</description></allowableValue><allowableValue><displayName>Milliseconds</displayName><value>millis</value><description>This option provides the minimum latency for an entry from being available to being listed if target system supports millis, if not, use other options.</description></allowableValue><allowableValue><displayName>Seconds</displayName><value>seconds</value><description>For a target system that does not have millis precision, but has in seconds.</description></allowableValue><allowableValue><displayName>Minutes</displayName><value>minutes</value><description>For a target system that only supports precision in minutes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use Compression</name><displayName>Use Compression</displayName><description>Indicates whether or not ZLIB compression should be used when transferring files</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>proxy-configuration-service</name><displayName>Proxy Configuration Service</displayName><description>Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Type</name><displayName>Proxy Type</displayName><description>Proxy type used for file transfers</description><defaultValue>DIRECT</defaultValue><allowableValues><allowableValue><displayName>DIRECT</displayName><value>DIRECT</value><description></description></allowableValue><allowableValue><displayName>HTTP</displayName><value>HTTP</value><description></description></allowableValue><allowableValue><displayName>SOCKS</displayName><value>SOCKS</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Host</name><displayName>Proxy Host</displayName><description>The fully qualified hostname or IP address of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Proxy Port</name><displayName>Proxy Port</displayName><description>The port of the proxy server</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Username</name><displayName>Http Proxy Username</displayName><description>Http Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Http Proxy Password</name><displayName>Http Proxy Password</displayName><description>Http Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-state-cache</name><displayName>Entity Tracking State Cache</displayName><description>Listed entities are stored in the specified cache storage so that this processor can resume listing across NiFi restart or in case of primary node change. 'Tracking Entities' strategy require tracking information of all listed entities within the last 'Tracking Time Window'. To support large number of entities, the strategy uses DistributedMapCache instead of managed state. Cache key format is 'ListedEntities::{processorId}(::{nodeId})'. If it tracks per node listed entities, then the optional '::{nodeId}' part is added to manage state separately. E.g. cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3' The stored cache content is Gzipped JSON string. The cache key will be deleted when target listing configuration is changed. Used by 'Tracking Entities' strategy.</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.DistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-time-window</name><displayName>Entity Tracking Time Window</displayName><description>Specify how long this processor should track already-listed entities. 'Tracking Entities' strategy can pick any entity whose timestamp is inside the specified time window. For example, if set to '30 minutes', any entity having timestamp in recent 30 minutes will be the listing target when this processor runs. A listed entity is considered 'new/updated' and a FlowFile is emitted if one of following condition meets: 1. does not exist in the already-listed entities, 2. has newer timestamp than the cached entity, 3. has different size than the cached entity. If a cached entity's timestamp becomes older than specified time window, that entity will be removed from the cached already-listed entities. Used by 'Tracking Entities' strategy.</description><defaultValue>3 hours</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>et-initial-listing-target</name><displayName>Entity Tracking Initial Listing Target</displayName><description>Specify how initial listing should be handled. Used by 'Tracking Entities' strategy.</description><defaultValue>all</defaultValue><allowableValues><allowableValue><displayName>Tracking Time Window</displayName><value>window</value><description>Ignore entities having timestamp older than the specified 'Tracking Time Window' at the initial listing activity.</description></allowableValue><allowableValue><displayName>All Available</displayName><value>all</value><description>Regardless of entities timestamp, all existing entities will be listed at the initial listing activity.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Age</name><displayName>Minimum File Age</displayName><description>The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored</description><defaultValue>0 sec</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Age</name><displayName>Maximum File Age</displayName><description>The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Minimum File Size</name><displayName>Minimum File Size</displayName><description>The minimum size that a file must be in order to be pulled</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum File Size</name><displayName>Maximum File Size</displayName><description>The maximum size that a file can be in order to be pulled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ciphers Allowed</name><displayName>Ciphers Allowed</displayName><description>A comma-separated list of Ciphers allowed for SFTP connections. Leave unset to allow all. Available options are: 3des-cbc, 3des-ctr, aes128-cbc, aes128-ctr, aes128-gcm@openssh.com, aes192-cbc, aes192-ctr, aes256-cbc, aes256-ctr, aes256-gcm@openssh.com, arcfour, arcfour128, arcfour256, blowfish-cbc, blowfish-ctr, cast128-cbc, cast128-ctr, chacha20-poly1305@openssh.com, idea-cbc, idea-ctr, serpent128-cbc, serpent128-ctr, serpent192-cbc, serpent192-ctr, serpent256-cbc, serpent256-ctr, twofish-cbc, twofish128-cbc, twofish128-ctr, twofish192-cbc, twofish192-ctr, twofish256-cbc, twofish256-ctr</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Algorithms Allowed</name><displayName>Key Algorithms Allowed</displayName><description>A comma-separated list of Key Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: ecdsa-sha2-nistp256, ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521, ecdsa-sha2-nistp521-cert-v01@openssh.com, rsa-sha2-256, rsa-sha2-512, ssh-dss, ssh-dss-cert-v01@openssh.com, ssh-ed25519, ssh-ed25519-cert-v01@openssh.com, ssh-rsa, ssh-rsa-cert-v01@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Key Exchange Algorithms Allowed</name><displayName>Key Exchange Algorithms Allowed</displayName><description>A comma-separated list of Key Exchange Algorithms allowed for SFTP connections. Leave unset to allow all. Available options are: curve25519-sha256, curve25519-sha256@libssh.org, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group14-sha256, diffie-hellman-group14-sha256@ssh.com, diffie-hellman-group15-sha256, diffie-hellman-group15-sha256@ssh.com, diffie-hellman-group15-sha384@ssh.com, diffie-hellman-group15-sha512, diffie-hellman-group16-sha256, diffie-hellman-group16-sha384@ssh.com, diffie-hellman-group16-sha512, diffie-hellman-group16-sha512@ssh.com, diffie-hellman-group17-sha512, diffie-hellman-group18-sha512, diffie-hellman-group18-sha512@ssh.com, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, ext-info-c</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Authentication Codes Allowed</name><displayName>Message Authentication Codes Allowed</displayName><description>A comma-separated list of Message Authentication Codes allowed for SFTP connections. Leave unset to allow all. Available options are: hmac-md5, hmac-md5-96, hmac-md5-96-etm@openssh.com, hmac-md5-etm@openssh.com, hmac-ripemd160, hmac-ripemd160-96, hmac-ripemd160-etm@openssh.com, hmac-ripemd160@openssh.com, hmac-sha1, hmac-sha1-96, hmac-sha1-96@openssh.com, hmac-sha1-etm@openssh.com, hmac-sha2-256, hmac-sha2-256-etm@openssh.com, hmac-sha2-512, hmac-sha2-512-etm@openssh.com</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>sftp.remote.host</name><description>The hostname of the SFTP Server</description></writesAttribute><writesAttribute><name>sftp.remote.port</name><description>The port that was connected to on the SFTP Server</description></writesAttribute><writesAttribute><name>sftp.listing.user</name><description>The username of the user that performed the SFTP Listing</description></writesAttribute><writesAttribute><name>file.owner</name><description>The numeric owner id of the source file</description></writesAttribute><writesAttribute><name>file.group</name><description>The numeric group id of the source file</description></writesAttribute><writesAttribute><name>file.permissions</name><description>The read/write/execute permissions of the source file</description></writesAttribute><writesAttribute><name>file.size</name><description>The number of bytes in the source file</description></writesAttribute><writesAttribute><name>file.lastModifiedTime</name><description>The timestamp of when the file in the filesystem waslast modified as 'yyyy-MM-dd'T'HH:mm:ssZ'</description></writesAttribute><writesAttribute><name>filename</name><description>The name of the file on the SFTP Server</description></writesAttribute><writesAttribute><name>path</name><description>The fully qualified name of the directory on the SFTP Server from which the file was pulled</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME Type that is provided by the configured Record Writer</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><stateful><description>After performing a listing of files, the timestamp of the newest file is stored. This allows the Processor to list only files that have been added or modified after this date the next time that the Processor is run. State is stored across the cluster so that this Processor can be run on Primary Node only and if a new Primary Node is selected, the new node will not duplicate the data that was listed by the previous Primary Node.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.FetchSFTP</see><see>org.apache.nifi.processors.standard.GetSFTP</see><see>org.apache.nifi.processors.standard.PutSFTP</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.standard.ListenFTP</name><type>PROCESSOR</type><description>Starts an FTP server that listens on the specified port and transforms incoming files into FlowFiles. The URI of the service will be ftp://{hostname}:{port}. The default port is 2221.</description><tags><tag>ingest</tag><tag>FTP</tag><tag>FTPS</tag><tag>listen</tag></tags><properties><property><name>bind-address</name><displayName>Bind Address</displayName><description>The address the FTP server should be bound to. If not set (or set to 0.0.0.0), the server binds to all available addresses (i.e. all network interfaces of the host machine).</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>listening-port</name><displayName>Listening Port</displayName><description>The Port to listen on for incoming connections. On Linux, root privileges are required to use port numbers below 1024.</description><defaultValue>2221</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>username</name><displayName>Username</displayName><description>The name of the user that is allowed to log in to the FTP server. If a username is provided, a password must also be provided. If no username is specified, anonymous connections will be permitted.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>password</name><displayName>Password</displayName><description>If the Username is set, then a password must also be specified. The password provided by the client trying to log in to the FTP server will be checked against this password.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ssl-context-service</name><displayName>SSL Context Service</displayName><description>Specifies the SSL Context Service that can be used to create secure connections. If an SSL Context Service is selected, then a keystore file must also be specified in the SSL Context Service. Without a keystore file, the processor cannot be started successfully.Specifying a truststore file is optional. If a truststore file is specified, client authentication is required (the client needs to send a certificate to the server).Regardless of the selected TLS protocol, the highest available protocol is used for the connection. For example if NiFi is running on Java 11 and TLSv1.2 is selected in the controller service as the preferred TLS Protocol, TLSv1.3 will be used (regardless of TLSv1.2 being selected) because Java 11 supports TLSv1.3.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.SSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Relationship for successfully received files.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The name of the file received via the FTP/FTPS connection.</description></writesAttribute><writesAttribute><name>path</name><description>The path pointing to the file's target directory. E.g.: file.txt is uploaded to /Folder1/SubFolder, then the value of the path attribute will be "/Folder1/SubFolder/" (note that it ends with a separator character).</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenHTTP</name><type>PROCESSOR</type><description>Starts an HTTP Server and listens on a given base path to transform incoming requests into FlowFiles. The default URI of the Service will be http://{hostname}:{port}/contentListener. Only HEAD and POST requests are supported. GET, PUT, DELETE, OPTIONS and TRACE will result in an error and the HTTP response status code 405; CONNECT will also result in an error and the HTTP response status code 400. GET is supported on &lt;service_URI&gt;/healthcheck. If the service is available, it returns "200 OK" with the content "OK". The health check functionality can be configured to be accessible via a different port. For details see the documentation of the "Listening Port for health check requests" property.A Record Reader and Record Writer property can be enabled on the processor to process incoming requests as records. Record processing is not allowed for multipart requests and request in FlowFileV3 format (minifi).</description><tags><tag>ingest</tag><tag>http</tag><tag>https</tag><tag>rest</tag><tag>listen</tag></tags><properties><property><name>Base Path</name><displayName>Base Path</displayName><description>Base path for incoming connections</description><defaultValue>contentListener</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Listening Port</name><displayName>Listening Port</displayName><description>The Port to listen on for incoming connections</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>health-check-port</name><displayName>Listening Port for Health Check Requests</displayName><description>The port to listen on for incoming health check requests. If set, it must be different from the Listening Port. Configure this port if the processor is set to use two-way SSL and a load balancer that does not support client authentication for health check requests is used. Only /&lt;base_path&gt;/healthcheck service is available via this port and only GET and HEAD requests are supported. If the processor is set not to use SSL, SSL will not be used on this port, either. If the processor is set to use one-way SSL, one-way SSL will be used on this port. If the processor is set to use two-way SSL, one-way SSL will be used on this port (client authentication not required).</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Data to Receive per Second</name><displayName>Max Data to Receive per Second</displayName><description>The maximum amount of data to receive per second; this allows the bandwidth to be throttled to a specified data rate; if not specified, the data rate is not throttled</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>SSL Context Service enables support for HTTPS</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Protocols</name><displayName>HTTP Protocols</displayName><description>HTTP Protocols supported for Application Layer Protocol Negotiation with TLS</description><defaultValue>HTTP_1_1</defaultValue><allowableValues><allowableValue><displayName>http/1.1</displayName><value>HTTP_1_1</value><description>HTTP/1.1</description></allowableValue><allowableValue><displayName>h2 http/1.1</displayName><value>H2_HTTP_1_1</value><description>HTTP/2 and HTTP/1.1 negotiated based on requested protocols</description></allowableValue><allowableValue><displayName>h2</displayName><value>H2</value><description>HTTP/2</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>client-authentication</name><displayName>Client Authentication</displayName><description>Client Authentication policy for TLS connections. Required when SSL Context Service configured.</description><defaultValue>AUTO</defaultValue><allowableValues><allowableValue><displayName>AUTO</displayName><value>AUTO</value><description>Inferred based on SSL Context Service properties. The presence of Trust Store properties implies REQUIRED, otherwise NONE is configured.</description></allowableValue><allowableValue><displayName>WANT</displayName><value>WANT</value><description>Requests the client certificate on handshake and validates if present but does not require it</description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description>Requests the client certificate on handshake and rejects the connection if it is not present and valid</description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description>Does not request the client certificate on handshake</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>Authorized DN Pattern</name><displayName>Authorized Subject DN Pattern</displayName><description>A Regular Expression to apply against the Subject's Distinguished Name of incoming connections. If the Pattern does not match the Subject DN, the the processor will respond with a status of HTTP 403 Forbidden.</description><defaultValue>.*</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>authorized-issuer-dn-pattern</name><displayName>Authorized Issuer DN Pattern</displayName><description>A Regular Expression to apply against the Issuer's Distinguished Name of incoming connections. If the Pattern does not match the Issuer DN, the processor will respond with a status of HTTP 403 Forbidden.</description><defaultValue>.*</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Unconfirmed Flowfile Time</name><displayName>Max Unconfirmed Flowfile Time</displayName><description>The maximum amount of time to wait for a FlowFile to be confirmed before it is removed from the cache</description><defaultValue>60 secs</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTTP Headers to receive as Attributes (Regex)</name><displayName>HTTP Headers to receive as Attributes (Regex)</displayName><description>Specifies the Regular Expression that determines the names of HTTP Headers that should be passed along as FlowFile attributes</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Return Code</name><displayName>Return Code</displayName><description>The HTTP return code returned after every HTTP call</description><defaultValue>200</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-request-max-size</name><displayName>Multipart Request Max Size</displayName><description>The max size of the request. Only applies for requests with Content-Type: multipart/form-data, and is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>multipart-read-buffer-size</name><displayName>Multipart Read Buffer Size</displayName><description>The threshold size, at which the contents of an incoming file would be written to disk. Only applies for requests with Content-Type: multipart/form-data. It is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space.</description><defaultValue>512 KB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-thread-pool-size</name><displayName>Maximum Thread Pool Size</displayName><description>The maximum number of threads to be used by the embedded Jetty server. The value can be set between 8 and 1000. The value of this property affects the performance of the flows and the operating system, therefore the default value should only be changed in justified cases. A value that is less than the default value may be suitable if only a small number of HTTP clients connect to the server. A greater value may be suitable if a large number of HTTP clients are expected to make requests to the server simultaneously.</description><defaultValue>200</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use parsing the incoming FlowFile into Records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for serializing Records after they have been transformed</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>record-reader</propertyName><propertyDisplayName>Record Reader</propertyDisplayName></dependency></dependencies></property></properties><relationships><relationship><name>success</name><description>Relationship for successfully received FlowFiles</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenRELP</name><type>PROCESSOR</type><description>Listens for RELP messages being sent to a given port over TCP. Each message will be acknowledged after successfully writing the message to a FlowFile. Each FlowFile will contain data portion of one or more RELP frames. In the case where the RELP frames contain syslog messages, the output of this processor can be sent to a ParseSyslog processor for further processing.</description><tags><tag>listen</tag><tag>relp</tag><tag>tcp</tag><tag>logs</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor during these surges.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Number of TCP Connections</name><displayName>Max Number of Worker Threads</displayName><description>The maximum number of worker threads available for servicing TCP connections.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Batching Message Delimiter</displayName><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Client Auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>relp.command</name><description>The command of the RELP frames.</description></writesAttribute><writesAttribute><name>relp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>relp.port</name><description>The sending port the messages were received over.</description></writesAttribute><writesAttribute><name>relp.txnr</name><description>The transaction number of the message. Only included if &lt;Batch Size&gt; is 1.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime.type of the content which is text/plain</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.ParseSyslog</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.ListenSyslog</name><type>PROCESSOR</type><description>Listens for Syslog messages being sent to a given port over TCP or UDP. Incoming messages are checked against regular expressions for RFC5424 and RFC3164 formatted messages. The format of each message is: (&lt;PRIORITY&gt;)(VERSION )(TIMESTAMP) (HOSTNAME) (BODY) where version is optional. The timestamp can be an RFC5424 timestamp with a format of "yyyy-MM-dd'T'HH:mm:ss.SZ" or "yyyy-MM-dd'T'HH:mm:ss.S+hh:mm", or it can be an RFC3164 timestamp with a format of "MMM d HH:mm:ss". If an incoming messages matches one of these patterns, the message will be parsed and the individual pieces will be placed in FlowFile attributes, with the original message in the content of the FlowFile. If an incoming message does not match one of these patterns it will not be parsed and the syslog.valid attribute will be set to false with the original message in the content of the FlowFile. Valid messages will be transferred on the success relationship, and invalid messages will be transferred on the invalid relationship.</description><tags><tag>syslog</tag><tag>listen</tag><tag>udp</tag><tag>tcp</tag><tag>logs</tag></tags><properties><property><name>Protocol</name><displayName>Protocol</displayName><description>The protocol for Syslog communication.</description><defaultValue>UDP</defaultValue><allowableValues><allowableValue><displayName>TCP</displayName><value>TCP</value><description></description></allowableValue><allowableValue><displayName>UDP</displayName><value>UDP</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port for Syslog communication. Note that Expression language is not evaluated per FlowFile.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>socket-keep-alive</name><displayName>Socket Keep Alive</displayName><description>Whether or not to have TCP socket keep alive turned on. Timing details depend on operating system properties.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, syslog messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Client Auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>SSL Context Service</propertyName><propertyDisplayName>SSL Context Service</propertyDisplayName></dependency></dependencies></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive Syslog messages. Adjust this value appropriately based on the expected size of the incoming Syslog messages. When UDP is selected each buffer will hold one Syslog message. When TCP is selected messages are read from an incoming connection until the buffer is full, or the connection is closed. </description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Max Number of TCP Connections</name><displayName>Max Number of TCP Connections</displayName><description>The maximum number of concurrent connections to accept Syslog messages in TCP mode.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Protocol</propertyName><propertyDisplayName>Protocol</propertyDisplayName><dependentValues><dependentValue>TCP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of Syslog events to add to a single FlowFile. If multiple events are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Message Delimiter</displayName><description>Specifies the delimiter to place between Syslog messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Parse Messages</name><displayName>Parse Messages</displayName><description>Indicates if the processor should parse the Syslog messages. If set to false, each outgoing FlowFile will only contain the sender, protocol, and port, and no additional attributes.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the Syslog messages. Note that Expression language is not evaluated per FlowFile.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Syslog messages that match one of the expected formats will be sent out this relationship as a FlowFile per message.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>Syslog messages that do not match one of the expected formats will be sent out this relationship as a FlowFile per message.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>syslog.priority</name><description>The priority of the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.severity</name><description>The severity of the Syslog message derived from the priority.</description></writesAttribute><writesAttribute><name>syslog.facility</name><description>The facility of the Syslog message derived from the priority.</description></writesAttribute><writesAttribute><name>syslog.version</name><description>The optional version from the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.timestamp</name><description>The timestamp of the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.hostname</name><description>The hostname or IP address of the Syslog message.</description></writesAttribute><writesAttribute><name>syslog.sender</name><description>The hostname of the Syslog server that sent the message.</description></writesAttribute><writesAttribute><name>syslog.body</name><description>The body of the Syslog message, everything after the hostname.</description></writesAttribute><writesAttribute><name>syslog.valid</name><description>An indicator of whether this message matched the expected formats. If this value is false, the other attributes will be empty and only the original message will be available in the content.</description></writesAttribute><writesAttribute><name>syslog.protocol</name><description>The protocol over which the Syslog message was received.</description></writesAttribute><writesAttribute><name>syslog.port</name><description>The port over which the Syslog message was received.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime.type of the FlowFile which will be text/plain for Syslog messages.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.PutSyslog</see><see>org.apache.nifi.processors.standard.ParseSyslog</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.ListenTCP</name><type>PROCESSOR</type><description>Listens for incoming TCP connections and reads data from each connection using a line separator as the message demarcator. The default behavior is for each message to produce a single FlowFile, however this can be controlled by increasing the Batch Size to a larger value for higher throughput. The Receive Buffer Size must be set as large as the largest messages expected to be received, meaning if every 100kb there is a line separator, then the Receive Buffer Size must be greater than 100kb. The processor can be configured to use an SSL Context Service to only allow secure connections. When connected clients present certificates for mutual TLS authentication, the Distinguished Names of the client certificate's issuer and subject are added to the outgoing FlowFiles as attributes. The processor does not perform authorization based on Distinguished Name values, but since these values are attached to the outgoing FlowFiles, authorization can be implemented based on these attributes.</description><tags><tag>listen</tag><tag>tcp</tag><tag>tls</tag><tag>ssl</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor during these surges.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Number of TCP Connections</name><displayName>Max Number of Worker Threads</displayName><description>The maximum number of worker threads available for servicing TCP connections.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Batching Message Delimiter</displayName><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>idle-timeout</name><displayName>Idle Connection Timeout</displayName><description>The amount of time a client's connection will remain open if no data is received. The default of 0 seconds will leave connections open until they are closed by the client.</description><defaultValue>0 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-receiving-threads</name><displayName>Max Number of Receiving Message Handler Threads</displayName><description>This property is deprecated and no longer used.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>pool-receive-buffers</name><displayName>Pool Receive Buffers</displayName><description>Enable or disable pooling of buffers that the processor uses for handling bytes received on socket connections. The framework allocates buffers as needed during processing.</description><defaultValue>True</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Client Auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>tcp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>tcp.port</name><description>The sending port the messages were received.</description></writesAttribute><writesAttribute><name>client.certificate.issuer.dn</name><description>For connections using mutual TLS, the Distinguished Name of the Certificate Authority that issued the client's certificate is attached to the FlowFile.</description></writesAttribute><writesAttribute><name>client.certificate.subject.dn</name><description>For connections using mutual TLS, the Distinguished Name of the client certificate's owner (subject) is attached to the FlowFile.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenTCPRecord</name><type>PROCESSOR</type><description>Listens for incoming TCP connections and reads data from each connection using a configured record reader, and writes the records to a flow file using a configured record writer. The type of record reader selected will determine how clients are expected to send data. For example, when using a Grok reader to read logs, a client can keep an open connection and continuously stream data, but when using an JSON reader, the client cannot send an array of JSON documents and then send another array on the same connection, as the reader would be in a bad state at that point. Records will be read from the connection in blocking mode, and will timeout according to the Read Timeout specified in the processor. If the read times out, or if any other error is encountered when reading, the connection will be closed, and any records read up to that point will be handled according to the configured Read Error Strategy (Discard or Transfer). In cases where clients are keeping a connection open, the concurrent tasks for the processor should be adjusted to match the Max Number of TCP Connections allowed, so that there is a task processing each connection. The processor can be configured to use an SSL Context Service to only allow secure connections. When connected clients present certificates for mutual TLS authentication, the Distinguished Names of the client certificate's issuer and subject are added to the outgoing FlowFiles as attributes. The processor does not perform authorization based on Distinguished Name values, but since these values are attached to the outgoing FlowFiles, authorization can be implemented based on these attributes.</description><tags><tag>listen</tag><tag>tcp</tag><tag>record</tag><tag>tls</tag><tag>ssl</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-size-socket-buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>max-number-tcp-connections</name><displayName>Max Number of TCP Connections</displayName><description>The maximum number of concurrent TCP connections to accept. In cases where clients are keeping a connection open, the concurrent tasks for the processor should be adjusted to match the Max Number of TCP Connections allowed, so that there is a task processing each connection.</description><defaultValue>2</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>read-timeout</name><displayName>Read Timeout</displayName><description>The amount of time to wait before timing out when reading from a connection.</description><defaultValue>10 seconds</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use for incoming FlowFiles</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>The Record Writer to use in order to serialize the data before writing to a FlowFile</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>reader-error-handling-strategy</name><displayName>Read Error Strategy</displayName><description>Indicates how to deal with an error while reading the next record from a connection, when previous records have already been read from the connection.</description><defaultValue>Transfer</defaultValue><allowableValues><allowableValue><displayName>Transfer</displayName><value>Transfer</value><description>Transfers any records already received and closes the connection.</description></allowableValue><allowableValue><displayName>Discard</displayName><value>Discard</value><description>Discards any records already received and closes the connection.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-batch-size</name><displayName>Record Batch Size</displayName><description>The maximum number of records to write to a single FlowFile.</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ssl-context-service</name><displayName>SSL Context Service</displayName><description>The Controller Service to use in order to obtain an SSL Context. If this property is set, messages will be received over a secure connection.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>client-auth</name><displayName>Client Auth</displayName><description>The client authentication policy to use for the SSL Context. Only used if an SSL Context Service is provided.</description><defaultValue>REQUIRED</defaultValue><allowableValues><allowableValue><displayName>WANT</displayName><value>WANT</value><description></description></allowableValue><allowableValue><displayName>REQUIRED</displayName><value>REQUIRED</value><description></description></allowableValue><allowableValue><displayName>NONE</displayName><value>NONE</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>tcp.sender</name><description>The host that sent the data.</description></writesAttribute><writesAttribute><name>tcp.port</name><description>The port that the processor accepted the connection on.</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records written to the flow file.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime-type of the writer used to write the records to the flow file.</description></writesAttribute><writesAttribute><name>client.certificate.issuer.dn</name><description>For connections using mutual TLS, the Distinguished Name of the Certificate Authority that issued the client's certificate is attached to the FlowFile.</description></writesAttribute><writesAttribute><name>client.certificate.subject.dn</name><description>For connections using mutual TLS, the Distinguished Name of the client certificate's owner (subject) is attached to the FlowFile.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenUDP</name><type>PROCESSOR</type><description>Listens for Datagram Packets on a given port. The default behavior produces a FlowFile per datagram, however for higher throughput the Max Batch Size property may be increased to specify the number of datagrams to batch together in a single FlowFile. This processor can be restricted to listening for datagrams from  a specific remote host and port by specifying the Sending Host and Sending Host Port properties, otherwise it will listen for datagrams from all hosts and ports.</description><tags><tag>ingest</tag><tag>udp</tag><tag>listen</tag><tag>source</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Batch Size</name><displayName>Max Batch Size</displayName><description>The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the &lt;Message Delimiter&gt; up to this configured maximum number of messages</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Message Delimiter</name><displayName>Batching Message Delimiter</displayName><description>Specifies the delimiter to place between messages when multiple messages are bundled together (see &lt;Max Batch Size&gt; property).</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Sending Host</name><displayName>Sending Host</displayName><description>IP, or name, of a remote host. Only Datagrams from the specified Sending Host Port and this host will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Sending Host Port</name><displayName>Sending Host Port</displayName><description>Port being used by remote host to send Datagrams. Only Datagrams from the specified Sending Host and this port will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>udp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>udp.port</name><description>The sending port the messages were received.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ListenUDPRecord</name><type>PROCESSOR</type><description>Listens for Datagram Packets on a given port and reads the content of each datagram using the configured Record Reader. Each record will then be written to a flow file using the configured Record Writer. This processor can be restricted to listening for datagrams from  a specific remote host and port by specifying the Sending Host and Sending Host Port properties, otherwise it will listen for datagrams from all hosts and ports.</description><tags><tag>ingest</tag><tag>udp</tag><tag>listen</tag><tag>source</tag><tag>record</tag></tags><properties><property><name>Local Network Interface</name><displayName>Local Network Interface</displayName><description>The name of a local network interface to be used to restrict listening to a specific LAN.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The port to listen on for communication.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Receive Buffer Size</name><displayName>Receive Buffer Size</displayName><description>The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.</description><defaultValue>65507 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Message Queue</name><displayName>Max Size of Message Queue</displayName><description>The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.</description><defaultValue>10000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Size of Socket Buffer</name><displayName>Max Size of Socket Buffer</displayName><description>The maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.</description><defaultValue>1 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>Specifies the character set of the received data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>poll-timeout</name><displayName>Poll Timeout</displayName><description>The amount of time to wait when polling the internal queue for more datagrams. If no datagrams are found after waiting for the configured timeout, then the processor will emit whatever records have been obtained up to that point.</description><defaultValue>50 ms</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>batch-size</name><displayName>Batch Size</displayName><description>The maximum number of datagrams to write as records to a single FlowFile. The Batch Size will only be reached when data is coming in more frequently than the Poll Timeout.</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use for reading the content of incoming datagrams.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>The Record Writer to use in order to serialize the data before writing to a flow file.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sending-host</name><displayName>Sending Host</displayName><description>IP, or name, of a remote host. Only Datagrams from the specified Sending Host Port and this host will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>sending-host-port</name><displayName>Sending Host Port</displayName><description>Port being used by remote host to send Datagrams. Only Datagrams from the specified Sending Host and this port will be accepted. Improves Performance. May be a system property or an environment variable.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Messages received successfully will be sent out this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>parse.failure</name><description>If a datagram cannot be parsed using the configured Record Reader, the contents of the message will be routed to this Relationship as its own individual FlowFile.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>udp.sender</name><description>The sending host of the messages.</description></writesAttribute><writesAttribute><name>udp.port</name><description>The sending port the messages were received.</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records written to the flow file.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The mime-type of the writer used to write the records to the flow file.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LogAttribute</name><type>PROCESSOR</type><description>Emits attributes of the FlowFile at the specified log level</description><tags><tag>attributes</tag><tag>logging</tag></tags><properties><property><name>Log Level</name><displayName>Log Level</displayName><description>The Log Level to use when logging the Attributes</description><defaultValue>info</defaultValue><allowableValues><allowableValue><displayName>trace</displayName><value>trace</value><description></description></allowableValue><allowableValue><displayName>debug</displayName><value>debug</value><description></description></allowableValue><allowableValue><displayName>info</displayName><value>info</value><description></description></allowableValue><allowableValue><displayName>warn</displayName><value>warn</value><description></description></allowableValue><allowableValue><displayName>error</displayName><value>error</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log Payload</name><displayName>Log Payload</displayName><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attributes to Log</name><displayName>Attributes to Log</displayName><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged unless `Attributes to Log by Regular Expression` is modified. There's an AND relationship between the two properties.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>attributes-to-log-regex</name><displayName>Attributes to Log by Regular Expression</displayName><description>A regular expression indicating the Attributes to Log. If not specified, all attributes will be logged unless `Attributes to Log` is modified. There's an AND relationship between the two properties.</description><defaultValue>.*</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attributes to Ignore</name><displayName>Attributes to Ignore</displayName><description>A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored unless `Attributes to Ignore by Regular Expression` is modified. There's an OR relationship between the two properties.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>attributes-to-ignore-regex</name><displayName>Attributes to Ignore by Regular Expression</displayName><description>A regular expression indicating the Attributes to Ignore. If not specified, no attributes will be ignored unless `Attributes to Ignore` is modified. There's an OR relationship between the two properties.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log FlowFile Properties</name><displayName>Log FlowFile Properties</displayName><description>Specifies whether or not to log FlowFile "properties", such as Entry Date, Lineage Start Date, and content size</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output Format</name><displayName>Output Format</displayName><description>Specifies the format to use for logging FlowFile attributes</description><defaultValue>Line per Attribute</defaultValue><allowableValues><allowableValue><displayName>Line per Attribute</displayName><value>Line per Attribute</value><description>Each FlowFile attribute will be logged using a single line for the attribute name and another line for the attribute value. This format is often most advantageous when looking at the attributes of a single FlowFile.</description></allowableValue><allowableValue><displayName>Single Line</displayName><value>Single Line</value><description>All FlowFile attribute names and values will be logged on a single line. This format is often most advantageous when comparing logs from multiple FlowFiles.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log prefix</name><displayName>Log prefix</displayName><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>character-set</name><displayName>Character Set</displayName><description>The name of the CharacterSet to use</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LogMessage</name><type>PROCESSOR</type><description>Emits a log message at the specified log level</description><tags><tag>attributes</tag><tag>logging</tag></tags><properties><property><name>log-level</name><displayName>Log Level</displayName><description>The Log Level to use when logging the message: [trace, debug, info, warn, error]</description><defaultValue>info</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>log-prefix</name><displayName>Log prefix</displayName><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogMessage processors.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>log-message</name><displayName>Log message</displayName><description>The log message to emit</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LookupAttribute</name><type>PROCESSOR</type><description>Lookup attributes from a lookup service</description><tags><tag>lookup</tag><tag>cache</tag><tag>enrich</tag><tag>join</tag><tag>attributes</tag><tag>Attribute Expression Language</tag></tags><properties><property><name>lookup-service</name><displayName>Lookup Service</displayName><description>The lookup service to use for attribute lookups</description><controllerServiceDefinition><className>org.apache.nifi.lookup.StringLookupService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>include-empty-values</name><displayName>Include Empty Values</displayName><description>Include null or blank values for keys that are null or blank</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>The name of the attribute to add to the FlowFile</name><value>The name of the key or property to retrieve from the lookup service</value><description>Adds a FlowFile attribute specified by the dynamic property's key with the value found in the lookup service using the the dynamic property's value</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>FlowFiles with failing lookups are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>unmatched</name><description>FlowFiles with missing lookups are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>matched</name><description>FlowFiles with matching lookups are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.LookupRecord</name><type>PROCESSOR</type><description>Extracts one or more fields from a Record and looks up a value for those fields in a LookupService. If a result is returned by the LookupService, that result is optionally added to the Record. In this case, the processor functions as an Enrichment processor. Regardless, the Record is then routed to either the 'matched' relationship or 'unmatched' relationship (if the 'Routing Strategy' property is configured to do so), indicating whether or not a result was returned by the LookupService, allowing the processor to also function as a Routing processor. The "coordinates" to use for looking up a value in the Lookup Service are defined by adding a user-defined property. Each property that is added will have an entry added to a Map, where the name of the property becomes the Map Key and the value returned by the RecordPath becomes the value for that key. If multiple values are returned by the RecordPath, then the Record will be routed to the 'unmatched' relationship (or 'success', depending on the 'Routing Strategy' property's configuration). If one or more fields match the Result RecordPath, all fields that match will be updated. If there is no match in the configured LookupService, then no fields will be updated. I.e., it will not overwrite an existing value in the Record with a null value. Please note, however, that if the results returned by the LookupService are not accounted for in your schema (specifically, the schema that is configured for your Record Writer) then the fields will not be written out to the FlowFile.</description><tags><tag>lookup</tag><tag>enrichment</tag><tag>route</tag><tag>record</tag><tag>csv</tag><tag>json</tag><tag>avro</tag><tag>database</tag><tag>db</tag><tag>logs</tag><tag>convert</tag><tag>filter</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for reading incoming data</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing out the records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>lookup-service</name><displayName>Lookup Service</displayName><description>The Lookup Service to use in order to lookup a value in each Record</description><controllerServiceDefinition><className>org.apache.nifi.lookup.LookupService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Root Record Path</name><displayName>Root Record Path</displayName><description>A RecordPath that points to a child Record within each of the top-level Records in the FlowFile. If specified, the additional RecordPath properties will be evaluated against this child Record instead of the top-level Record. This allows for performing enrichment against multiple child Records within a single top-level Record.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>routing-strategy</name><displayName>Routing Strategy</displayName><description>Specifies how to route records after a Lookup has completed</description><defaultValue>route-to-success</defaultValue><allowableValues><allowableValue><displayName>Route to 'success'</displayName><value>route-to-success</value><description>Records will be routed to a 'success' Relationship regardless of whether or not there is a match in the configured Lookup Service</description></allowableValue><allowableValue><displayName>Route to 'matched' or 'unmatched'</displayName><value>route-to-matched-unmatched</value><description>Records will be routed to either a 'matched' or an 'unmatched' Relationship depending on whether or not there was a match in the configured Lookup Service. A single input FlowFile may result in two different output FlowFiles. If the given Record Paths evaluate such that multiple sub-records are evaluated, the parent Record will be routed to 'unmatched' unless all sub-records match.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>result-contents</name><displayName>Record Result Contents</displayName><description>When a result is obtained that contains a Record, this property determines whether the Record itself is inserted at the configured path or if the contents of the Record (i.e., the sub-fields) will be inserted at the configured path.</description><defaultValue>insert-entire-record</defaultValue><allowableValues><allowableValue><displayName>Insert Entire Record</displayName><value>insert-entire-record</value><description>The entire Record that is retrieved from the Lookup Service will be inserted into the destination path.</description></allowableValue><allowableValue><displayName>Insert Record Fields</displayName><value>record-fields</value><description>All of the fields in the Record that is retrieved from the Lookup Service will be inserted into the destination path.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-update-strategy</name><displayName>Record Update Strategy</displayName><description>This property defines the strategy to use when updating the record with the value returned by the Lookup Service.</description><defaultValue>use-property</defaultValue><allowableValues><allowableValue><displayName>Replace Existing Values</displayName><value>replace-existing-values</value><description>The "Result RecordPath" property will be ignored and the lookup service must be a single simple key lookup service. Every dynamic property value should be a record path. For each dynamic property, the value contained in the field corresponding to the record path will be used as the key in the Lookup Service and the value returned by the Lookup Service will be used to replace the existing value. It is possible to configure multiple dynamic properties to replace multiple values in one execution. This strategy only supports simple types replacements (strings, integers, etc).</description></allowableValue><allowableValue><displayName>Use "Result RecordPath" Property</displayName><value>use-property</value><description>The "Result RecordPath" property will be used to determine which part of the record should be updated with the value returned by the Lookup Service</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>result-record-path</name><displayName>Result RecordPath</displayName><description>A RecordPath that points to the field whose value should be updated with whatever value is returned from the Lookup Service. If not specified, the value that is returned from the Lookup Service will be ignored, except for determining whether the FlowFile should be routed to the 'matched' or 'unmatched' Relationship.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>record-update-strategy</propertyName><propertyDisplayName>Record Update Strategy</propertyDisplayName><dependentValues><dependentValue>use-property</dependentValue></dependentValues></dependency></dependencies></property><property><name>record-path-lookup-miss-result-cache-size</name><displayName>Cache Size</displayName><description>Specifies how many lookup values/records should be cached.Setting this property to zero means no caching will be done and the table will be queried for each lookup value in each record. If the lookup table changes often or the most recent data must be retrieved, do not use the cache.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>Value To Lookup</name><value>Valid Record Path</value><description>A RecordPath that points to the field whose value will be looked up in the configured Lookup Service</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>All records will be sent to this Relationship if configured to do so, unless a failure occurs</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If a FlowFile cannot be enriched, the unchanged FlowFile will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records in the FlowFile</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.standard.ConvertRecord</see><see>org.apache.nifi.processors.standard.SplitRecord</see><see>org.apache.nifi.lookup.SimpleKeyValueLookupService</see><see>org.apache.nifi.lookup.maxmind.IPLookupService</see><see>org.apache.nifi.lookup.db.DatabaseRecordLookupService</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.MergeContent</name><type>PROCESSOR</type><description>Merges a Group of FlowFiles together based on a user-defined strategy and packages them into a single FlowFile. It is recommended that the Processor be configured with only a single incoming connection, as Group of FlowFiles will not be created from FlowFiles in different connections. This processor updates the mime.type attribute as appropriate. NOTE: this processor should NOT be configured with Cron Driven for the Scheduling Strategy.</description><tags><tag>merge</tag><tag>content</tag><tag>correlation</tag><tag>tar</tag><tag>zip</tag><tag>stream</tag><tag>concatenation</tag><tag>archive</tag><tag>flowfile-stream</tag><tag>flowfile-stream-v3</tag></tags><properties><property><name>Merge Strategy</name><displayName>Merge Strategy</displayName><description>Specifies the algorithm used to merge content. The 'Defragment' algorithm combines fragments that are associated by attributes back into a single cohesive FlowFile. The 'Bin-Packing Algorithm' generates a FlowFile populated by arbitrarily chosen FlowFiles</description><defaultValue>Bin-Packing Algorithm</defaultValue><allowableValues><allowableValue><displayName>Bin-Packing Algorithm</displayName><value>Bin-Packing Algorithm</value><description>Generates 'bins' of FlowFiles and fills each bin as full as possible. FlowFiles are placed into a bin based on their size and optionally their attributes (if the &lt;Correlation Attribute&gt; property is set)</description></allowableValue><allowableValue><displayName>Defragment</displayName><value>Defragment</value><description>Combines fragments that are associated by attributes back into a single cohesive FlowFile. If using this strategy, all FlowFiles must have the attributes &lt;fragment.identifier&gt;, &lt;fragment.count&gt;, and &lt;fragment.index&gt;. All FlowFiles with the same value for "fragment.identifier" will be grouped together. All FlowFiles in this group must have the same value for the "fragment.count" attribute. All FlowFiles in this group must have a unique value for the "fragment.index" attribute between 0 and the value of the "fragment.count" attribute.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Merge Format</name><displayName>Merge Format</displayName><description>Determines the format that will be used to merge the content.</description><defaultValue>Binary Concatenation</defaultValue><allowableValues><allowableValue><displayName>TAR</displayName><value>TAR</value><description>A bin of FlowFiles will be combined into a single TAR file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the TAR file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the TAR file. If a FlowFile has an attribute named &lt;tar.permissions&gt; that is 3 characters, each between 0-7, that attribute will be used as the TAR entry's 'mode'.</description></allowableValue><allowableValue><displayName>ZIP</displayName><value>ZIP</value><description>A bin of FlowFiles will be combined into a single ZIP file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the ZIP file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the ZIP file. The &lt;Compression Level&gt; property indicates the ZIP compression to use.</description></allowableValue><allowableValue><displayName>FlowFile Stream, v3</displayName><value>FlowFile Stream, v3</value><description>A bin of FlowFiles will be combined into a single Version 3 FlowFile Stream</description></allowableValue><allowableValue><displayName>FlowFile Stream, v2</displayName><value>FlowFile Stream, v2</value><description>A bin of FlowFiles will be combined into a single Version 2 FlowFile Stream</description></allowableValue><allowableValue><displayName>FlowFile Tar, v1</displayName><value>FlowFile Tar, v1</value><description>A bin of FlowFiles will be combined into a single Version 1 FlowFile Package</description></allowableValue><allowableValue><displayName>Binary Concatenation</displayName><value>Binary Concatenation</value><description>The contents of all FlowFiles will be concatenated together into a single FlowFile</description></allowableValue><allowableValue><displayName>Avro</displayName><value>Avro</value><description>The Avro contents of all FlowFiles will be concatenated together into a single FlowFile</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attribute Strategy</name><displayName>Attribute Strategy</displayName><description>Determines which FlowFile attributes should be added to the bundle. If 'Keep All Unique Attributes' is selected, any attribute on any FlowFile that gets bundled will be kept unless its value conflicts with the value from another FlowFile. If 'Keep Only Common Attributes' is selected, only the attributes that exist on all FlowFiles in the bundle, with the same value, will be preserved.</description><defaultValue>Keep Only Common Attributes</defaultValue><allowableValues><allowableValue><displayName>Keep Only Common Attributes</displayName><value>Keep Only Common Attributes</value><description>Any attribute that is not the same on all FlowFiles in a bin will be dropped. Those that are the same across all FlowFiles will be retained.</description></allowableValue><allowableValue><displayName>Keep All Unique Attributes</displayName><value>Keep All Unique Attributes</value><description>Any attribute that has the same value for all FlowFiles in a bin, or has no value for a FlowFile, will be kept. For example, if a bin consists of 3 FlowFiles and 2 of them have a value of 'hello' for the 'greeting' attribute and the third FlowFile has no 'greeting' attribute then the outbound FlowFile will get a 'greeting' attribute with the value 'hello'.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Correlation Attribute Name</name><displayName>Correlation Attribute Name</displayName><description>If specified, like FlowFiles will be binned together, where 'like FlowFiles' means FlowFiles that have the same value for this Attribute. If not specified, FlowFiles are bundled by the order in which they are pulled from the queue.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>mergecontent-metadata-strategy</name><displayName>Metadata Strategy</displayName><description>For FlowFiles whose input format supports metadata (Avro, e.g.), this property determines which metadata should be added to the bundle. If 'Use First Metadata' is selected, the metadata keys/values from the first FlowFile to be bundled will be used. If 'Keep Only Common Metadata' is selected, only the metadata that exists on all FlowFiles in the bundle, with the same value, will be preserved. If 'Ignore Metadata' is selected, no metadata is transferred to the outgoing bundled FlowFile. If 'Do Not Merge Uncommon Metadata' is selected, any FlowFile whose metadata values do not match those of the first bundled FlowFile will not be merged.</description><defaultValue>Do Not Merge Uncommon Metadata</defaultValue><allowableValues><allowableValue><displayName>Use First Metadata</displayName><value>Use First Metadata</value><description>For any input format that supports metadata (Avro, e.g.), the metadata for the first FlowFile in the bin will be set on the output FlowFile.</description></allowableValue><allowableValue><displayName>Keep Only Common Metadata</displayName><value>Keep Only Common Metadata</value><description>For any input format that supports metadata (Avro, e.g.), any FlowFile whose metadata values match those of the first FlowFile, any additional metadata will be dropped but the FlowFile will be merged. Any FlowFile whose metadata values do not match those of the first FlowFile in the bin will not be merged.</description></allowableValue><allowableValue><displayName>Do Not Merge Uncommon Metadata</displayName><value>Do Not Merge Uncommon Metadata</value><description>For any input format that supports metadata (Avro, e.g.), any FlowFile whose metadata values do not match those of the first FlowFile in the bin will not be merged.</description></allowableValue><allowableValue><displayName>Ignore Metadata</displayName><value>Ignore Metadata</value><description>Ignores (does not transfer, compare, etc.) any metadata from a FlowFile whose content supports embedded metadata.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Avro</dependentValue></dependentValues></dependency></dependencies></property><property><name>Minimum Number of Entries</name><displayName>Minimum Number of Entries</displayName><description>The minimum number of files to include in a bundle</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Maximum Number of Entries</name><displayName>Maximum Number of Entries</displayName><description>The maximum number of files to include in a bundle</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Minimum Group Size</name><displayName>Minimum Group Size</displayName><description>The minimum size for the bundle</description><defaultValue>0 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Maximum Group Size</name><displayName>Maximum Group Size</displayName><description>The maximum size for the bundle. If not specified, there is no maximum.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Strategy</propertyName><propertyDisplayName>Merge Strategy</propertyDisplayName><dependentValues><dependentValue>Bin-Packing Algorithm</dependentValue></dependentValues></dependency></dependencies></property><property><name>Max Bin Age</name><displayName>Max Bin Age</displayName><description>The maximum age of a Bin that will trigger a Bin to be complete. Expected format is &lt;duration&gt; &lt;time unit&gt; where &lt;duration&gt; is a positive integer and time unit is one of seconds, minutes, hours</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Maximum number of Bins</name><displayName>Maximum number of Bins</displayName><description>Specifies the maximum number of bins that can be held in memory at any one time</description><defaultValue>5</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Delimiter Strategy</name><displayName>Delimiter Strategy</displayName><description>Determines if Header, Footer, and Demarcator should point to files containing the respective content, or if the values of the properties should be used as the content.</description><defaultValue>Do Not Use Delimiters</defaultValue><allowableValues><allowableValue><displayName>Do Not Use Delimiters</displayName><value>Do Not Use Delimiters</value><description>No Header, Footer, or Demarcator will be used</description></allowableValue><allowableValue><displayName>Filename</displayName><value>Filename</value><description>The values of Header, Footer, and Demarcator will be retrieved from the contents of a file</description></allowableValue><allowableValue><displayName>Text</displayName><value>Text</value><description>The values of Header, Footer, and Demarcator will be specified as property values</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency></dependencies></property><property><name>Header File</name><displayName>Header</displayName><description>Filename or text specifying the header to use. If not specified, no header is supplied.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>TEXT</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency><dependency><propertyName>Delimiter Strategy</propertyName><propertyDisplayName>Delimiter Strategy</propertyDisplayName><dependentValues><dependentValue>Filename</dependentValue><dependentValue>Text</dependentValue></dependentValues></dependency></dependencies></property><property><name>Footer File</name><displayName>Footer</displayName><description>Filename or text specifying the footer to use. If not specified, no footer is supplied.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>TEXT</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency><dependency><propertyName>Delimiter Strategy</propertyName><propertyDisplayName>Delimiter Strategy</propertyDisplayName><dependentValues><dependentValue>Filename</dependentValue><dependentValue>Text</dependentValue></dependentValues></dependency></dependencies></property><property><name>Demarcator File</name><displayName>Demarcator</displayName><description>Filename or text specifying the demarcator to use. If not specified, no demarcator is supplied.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>TEXT</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>Binary Concatenation</dependentValue></dependentValues></dependency><dependency><propertyName>Delimiter Strategy</propertyName><propertyDisplayName>Delimiter Strategy</propertyDisplayName><dependentValues><dependentValue>Filename</dependentValue><dependentValue>Text</dependentValue></dependentValues></dependency></dependencies></property><property><name>Compression Level</name><displayName>Compression Level</displayName><description>Specifies the compression level to use when using the Zip Merge Format; if not using the Zip Merge Format, this value is ignored</description><defaultValue>1</defaultValue><allowableValues><allowableValue><displayName>0</displayName><value>0</value><description></description></allowableValue><allowableValue><displayName>1</displayName><value>1</value><description></description></allowableValue><allowableValue><displayName>2</displayName><value>2</value><description></description></allowableValue><allowableValue><displayName>3</displayName><value>3</value><description></description></allowableValue><allowableValue><displayName>4</displayName><value>4</value><description></description></allowableValue><allowableValue><displayName>5</displayName><value>5</value><description></description></allowableValue><allowableValue><displayName>6</displayName><value>6</value><description></description></allowableValue><allowableValue><displayName>7</displayName><value>7</value><description></description></allowableValue><allowableValue><displayName>8</displayName><value>8</value><description></description></allowableValue><allowableValue><displayName>9</displayName><value>9</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>ZIP</dependentValue></dependentValues></dependency></dependencies></property><property><name>Keep Path</name><displayName>Keep Path</displayName><description>If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry names.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>ZIP</dependentValue><dependentValue>TAR</dependentValue></dependentValues></dependency></dependencies></property><property><name>Tar Modified Time</name><displayName>Tar Modified Time</displayName><description>If using the Tar Merge Format, specifies if the Tar entry should store the modified timestamp either by expression (e.g. ${file.lastModifiedTime} or static value, both of which must match the ISO8601 format 'yyyy-MM-dd'T'HH:mm:ssZ'.</description><defaultValue>${file.lastModifiedTime}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Merge Format</propertyName><propertyDisplayName>Merge Format</propertyDisplayName><dependentValues><dependentValue>TAR</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>failure</name><description>If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The FlowFiles that were used to create the bundle</description><autoTerminated>false</autoTerminated></relationship><relationship><name>merged</name><description>The FlowFile containing the merged content</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>fragment.identifier</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. All FlowFiles with the same value for this attribute will be bundled together.</description></readsAttribute><readsAttribute><name>fragment.index</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. This attribute indicates the order in which the fragments should be assembled. This attribute must be present on all FlowFiles when using the Defragment Merge Strategy and must be a unique (i.e., unique across all FlowFiles that have the same value for the "fragment.identifier" attribute) integer between 0 and the value of the fragment.count attribute. If two or more FlowFiles have the same value for the "fragment.identifier" attribute and the same value for the "fragment.index" attribute, the first FlowFile processed will be accepted and subsequent FlowFiles will not be accepted into the Bin.</description></readsAttribute><readsAttribute><name>fragment.count</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. This attribute indicates how many FlowFiles should be expected in the given bundle. At least one FlowFile must have this attribute in the bundle. If multiple FlowFiles contain the "fragment.count" attribute in a given bundle, all must have the same value.</description></readsAttribute><readsAttribute><name>segment.original.filename</name><description>Applicable only if the &lt;Merge Strategy&gt; property is set to Defragment. This attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute. All FlowFiles in the same bundle must have the same value for this attribute. The value of this attribute will be used for the filename of the completed merged FlowFile.</description></readsAttribute><readsAttribute><name>tar.permissions</name><description>Applicable only if the &lt;Merge Format&gt; property is set to TAR. The value of this attribute must be 3 characters; each character must be in the range 0 to 7 (inclusive) and indicates the file permissions that should be used for the FlowFile's TAR entry. If this attribute is missing or has an invalid value, the default value of 644 will be used</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>filename</name><description>When more than 1 file is merged, the filename comes from the segment.original.filename attribute. If that attribute does not exist in the source FlowFiles, then the filename is set to the number of nanoseconds matching system time. Then a filename extension may be applied:if Merge Format is TAR, then the filename will be appended with .tar, if Merge Format is ZIP, then the filename will be appended with .zip, if Merge Format is FlowFileStream, then the filename will be appended with .pkg</description></writesAttribute><writesAttribute><name>merge.count</name><description>The number of FlowFiles that were merged into this bundle</description></writesAttribute><writesAttribute><name>merge.bin.age</name><description>The age of the bin, in milliseconds, when it was merged and output. Effectively this is the greatest amount of time that any FlowFile in this bundle remained waiting in this processor before it was output</description></writesAttribute><writesAttribute><name>merge.uuid</name><description>UUID of the merged flow file that will be added to the original flow files attributes.</description></writesAttribute><writesAttribute><name>merge.reason</name><description>This processor allows for several thresholds to be configured for merging FlowFiles. This attribute indicates which of the Thresholds resulted in the FlowFiles being merged. For an explanation of each of the possible values and their meanings, see the Processor's Usage / documentation and see the 'Additional Details' page.</description></writesAttribute></writesAttributes><triggerWhenEmpty>true</triggerWhenEmpty><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>While content is not stored in memory, the FlowFiles' attributes are. The configuration of MergeContent (maximum bin size, maximum group size, maximum bin age, max number of entries) will influence how much memory is used. If merging together many small FlowFiles, a two-stage approach may be necessary in order to avoid excessive use of memory.</description></systemResourceConsideration></systemResourceConsiderations><useCases><useCase><description>Concatenate FlowFiles with textual content together in order to create fewer, larger FlowFiles.</description><notes></notes><keywords><keyword>concatenate</keyword><keyword>bundle</keyword><keyword>aggregate</keyword><keyword>bin</keyword><keyword>merge</keyword><keyword>combine</keyword><keyword>smash</keyword></keywords><inputRequirement>INPUT_ALLOWED</inputRequirement><configuration>"Merge Strategy" = "Bin Packing Algorithm"
 "Merge Format" = "Binary Concatenation"
 "Delimiter Strategy" = "Text"
 "Demarcator" = "\n" (a newline can be inserted by pressing Shift + Enter)
@@ -453,4 +453,4 @@
 
 A single additional property is added to the Processor. The name of the property is a RecordPath identifying the field to update.
 The value is an Expression Language expression that references the `field.value` variable. For example, to change the date/time format of a field named `txDate` from `year-month-day` format to `month/day/year` format, we add a property named `/txDate` with a value of `${field.value:toDate('yyyy-MM-dd'):format('MM/dd/yyyy')}`. We could also change the timezone of a timestamp field (and insert the timezone for clarity) by using a value of `${field.value:toDate('yyyy-MM-dd HH:mm:ss', 'UTC-0400'):format('yyyy-MM-dd HH:mm:ss Z', 'UTC')}`.
-</configuration></useCase></useCases><seeAlso><see>org.apache.nifi.processors.standard.ConvertRecord</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.ValidateCsv</name><type>PROCESSOR</type><description>Validates the contents of FlowFiles against a user-specified CSV schema. Take a look at the additional documentation of this processor for some schema examples.</description><tags><tag>csv</tag><tag>schema</tag><tag>validation</tag></tags><properties><property><name>validate-csv-schema</name><displayName>Schema</displayName><description>The schema to be used for validation. Is expected a comma-delimited string representing the cell processors to apply. The following cell processors are allowed in the schema definition: [ParseBigDecimal, ParseBool, ParseChar, ParseDate, ParseDouble, ParseInt, ParseLong, Optional, DMinMax, Equals, ForbidSubStr, LMinMax, NotNull, Null, RequireHashCode, RequireSubStr, Strlen, StrMinMax, StrNotNullOrEmpty, StrRegEx, Unique, UniqueHashCode, IsIncludedIn]. Note: cell processors cannot be nested except with Optional.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-header</name><displayName>Header</displayName><description>True if the incoming flow file contains a header to ignore, false otherwise.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-delimiter</name><displayName>Delimiter character</displayName><description>Character used as 'delimiter' in the incoming data. Example: ,</description><defaultValue>,</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-quote</name><displayName>Quote character</displayName><description>Character used as 'quote' in the incoming data. Example: "</description><defaultValue>"</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-eol</name><displayName>End of line symbols</displayName><description>Symbols used as 'end of line' in the incoming data. Example: \n</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-strategy</name><displayName>Validation strategy</displayName><description>Strategy to apply when routing input files to output relationships.</description><defaultValue>FlowFile validation</defaultValue><allowableValues><allowableValue><displayName>Line by line validation</displayName><value>Line by line validation</value><description>In case an error is found, the input CSV file will be split into two FlowFiles: one routed to the 'valid' relationship containing all the correct lines and one routed to the 'invalid' relationship containing all the incorrect lines. Take care if choosing this option while using Unique cell processors in schema definition:the first occurrence will be considered valid and the next ones as invalid.</description></allowableValue><allowableValue><displayName>FlowFile validation</displayName><value>FlowFile validation</value><description>As soon as an error is found in the CSV file, the validation will stop and the whole flow file will be routed to the 'invalid' relationship. This option offers best performances.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-violations</name><displayName>Include all violations</displayName><description>If true, the validation.error.message attribute would include the list of all the violations for the first invalid line. Note that setting this property to true would slightly decrease the performances as all columns would be validated. If false, a line is invalid as soon as a column is found violating the specified constraint and only this violation for the first invalid line will be included in the validation.error.message attribute.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>valid</name><description>FlowFiles that are successfully validated against the schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>FlowFiles that are not valid according to the specified schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>count.valid.lines</name><description>If line by line validation, number of valid lines extracted from the source data</description></writesAttribute><writesAttribute><name>count.invalid.lines</name><description>If line by line validation, number of invalid lines extracted from the source data</description></writesAttribute><writesAttribute><name>count.total.lines</name><description>If line by line validation, total number of lines in the source data</description></writesAttribute><writesAttribute><name>validation.error.message</name><description>For flow files routed to invalid, message of the first validation error</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ValidateJson</name><type>PROCESSOR</type><description>Validates the contents of FlowFiles against a configurable JSON Schema. See json-schema.org for specification standards. This Processor does not support input containing multiple JSON objects, such as newline-delimited JSON. If the input FlowFile contains newline-delimited JSON, only the first line will be validated.</description><tags><tag>JSON</tag><tag>schema</tag><tag>validation</tag></tags><properties><property><name>Schema Access Strategy</name><displayName>Schema Access Strategy</displayName><description>Specifies how to obtain the schema that is to be used for interpreting the data.</description><defaultValue>SCHEMA_CONTENT_PROPERTY</defaultValue><allowableValues><allowableValue><displayName>Schema Name Property</displayName><value>SCHEMA_NAME_PROPERTY</value><description>The name of the Schema to use is specified by the 'Schema Name' Property. The value of this property is used to lookup the Schema in the configured JSON Schema Registry Service.</description></allowableValue><allowableValue><displayName>JSON Schema Property</displayName><value>SCHEMA_CONTENT_PROPERTY</value><description>A URL or file path to the JSON schema or the actual JSON schema is specified by the 'JSON Schema' Property. No matter how the JSON schema is specified, it must be a valid JSON schema</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Schema Name</name><displayName>Schema Name</displayName><description>Specifies the name of the schema to lookup in the Schema Registry property</description><defaultValue>${schema.name}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_NAME_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property><property><name>JSON Schema Registry</name><displayName>JSON Schema Registry</displayName><description>Specifies the Controller Service to use for the JSON Schema Registry</description><controllerServiceDefinition><className>org.apache.nifi.schemaregistry.services.JsonSchemaRegistry</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_NAME_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property><property><name>JSON Schema</name><displayName>JSON Schema</displayName><description>A URL or file path to the JSON schema or the actual JSON schema content</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>URL</resourceType><resourceType>FILE</resourceType><resourceType>TEXT</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_CONTENT_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property><property><name>JSON Schema Version</name><displayName>JSON Schema Version</displayName><description>The JSON schema specification</description><defaultValue>DRAFT_2020_12</defaultValue><allowableValues><allowableValue><displayName>Draft 4</displayName><value>DRAFT_4</value><description>Draft Version 4</description></allowableValue><allowableValue><displayName>Draft 6</displayName><value>DRAFT_6</value><description>Draft Version 6</description></allowableValue><allowableValue><displayName>Draft 7</displayName><value>DRAFT_7</value><description>Draft Version 7</description></allowableValue><allowableValue><displayName>Draft 2019-09</displayName><value>DRAFT_2019_09</value><description>Draft Version 2019-09</description></allowableValue><allowableValue><displayName>Draft 2020-12</displayName><value>DRAFT_2020_12</value><description>Draft Version 2020-12</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_CONTENT_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>valid</name><description>FlowFiles that are successfully validated against the schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>FlowFiles that are not valid according to the specified schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles that cannot be read as JSON are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>json.validation.errors</name><description>If the flow file is routed to the invalid relationship , this attribute will contain the error message resulting from the validation failure.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>reference remote resources</requiredPermission><explanation>Schema configuration can reference resources over HTTP</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>Validating JSON requires reading FlowFile content into memory</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.ValidateRecord</name><type>PROCESSOR</type><description>Validates the Records of an incoming FlowFile against a given schema. All records that adhere to the schema are routed to the "valid" relationship while records that do not adhere to the schema are routed to the "invalid" relationship. It is therefore possible for a single incoming FlowFile to be split into two individual FlowFiles if some records are valid according to the schema and others are not. Any FlowFile that is routed to the "invalid" relationship will emit a ROUTE Provenance Event with the Details field populated to explain why records were invalid. In addition, to gain further explanation of why records were invalid, DEBUG-level logging can be enabled for the "org.apache.nifi.processors.standard.ValidateRecord" logger.</description><tags><tag>record</tag><tag>schema</tag><tag>validate</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for reading incoming data</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing out the records. Regardless of the Controller Service schema access configuration, the schema that is used to validate record is used to write the valid results.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>invalid-record-writer</name><displayName>Record Writer for Invalid Records</displayName><description>If specified, this Controller Service will be used to write out any records that are invalid. If not specified, the writer specified by the "Record Writer" property will be used with the schema used to read the input records. This is useful, for example, when the configured Record Writer cannot write data that does not adhere to its schema (as is the case with Avro) or when it is desirable to keep invalid records in their original format while converting valid records to another format.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-access-strategy</name><displayName>Schema Access Strategy</displayName><description>Specifies how to obtain the schema that should be used to validate records</description><defaultValue>reader-schema</defaultValue><allowableValues><allowableValue><displayName>Use Reader's Schema</displayName><value>reader-schema</value><description>The schema to validate the data against is determined by asking the configured Record Reader for its schema</description></allowableValue><allowableValue><displayName>Use Schema Name Property</displayName><value>schema-name-property</value><description>The schema to validate the data against is determined by looking at the 'Schema Name' Property and looking up the schema in the configured Schema Registry</description></allowableValue><allowableValue><displayName>Use Schema Text Property</displayName><value>schema-text-property</value><description>The schema to validate the data against is determined by looking at the 'Schema Text' Property and parsing the schema as an Avro schema</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-registry</name><displayName>Schema Registry</displayName><description>Specifies the Controller Service to use for the Schema Registry. This is necessary only if the Schema Access Strategy is set to "Use 'Schema Name' Property".</description><controllerServiceDefinition><className>org.apache.nifi.schemaregistry.services.SchemaRegistry</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-name</name><displayName>Schema Name</displayName><description>Specifies the name of the schema to lookup in the Schema Registry property</description><defaultValue>${schema.name}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-text</name><displayName>Schema Text</displayName><description>The text of an Avro-formatted Schema</description><defaultValue>${avro.schema}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>allow-extra-fields</name><displayName>Allow Extra Fields</displayName><description>If the incoming data has fields that are not present in the schema, this property determines whether or not the Record is valid. If true, the Record is still valid. If false, the Record will be invalid due to the extra fields.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>strict-type-checking</name><displayName>Strict Type Checking</displayName><description>If the incoming data has a Record where a field is not of the correct type, this property determines how to handle the Record. If true, the Record will be considered invalid. If false, the Record will be considered valid and the field will be coerced into the correct type (if possible, according to the type coercion supported by the Record Writer). This property controls how the data is validated against the validation schema.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>coerce-types</name><displayName>Force Types From Reader's Schema</displayName><description>If enabled, the processor will coerce every field to the type specified in the Reader's schema. If the value of a field cannot be coerced to the type, the field will be skipped (will not be read from the input data), thus will not appear in the output. If not enabled, then every field will appear in the output but their types may differ from what is specified in the schema. For details please see the Additional Details page of the processor's Help. This property controls how the data is read by the specified Record Reader.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validation-details-attribute-name</name><displayName>Validation Details Attribute Name</displayName><description>If specified, when a validation error occurs, this attribute name will be used to leave the details. The number of characters will be limited by the property 'Maximum Validation Details Length'.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>maximum-validation-details-length</name><displayName>Maximum Validation Details Length</displayName><description>Specifies the maximum number of characters that validation details value can have. Any characters beyond the max will be truncated. This property is only used if 'Validation Details Attribute Name' is set</description><defaultValue>1024</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>valid</name><description>Records that are valid according to the schema will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>Records that are not valid according to the schema will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If the records cannot be read, validated, or written, for any reason, the original FlowFile will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records in the FlowFile routed to a relationship</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ValidateXml</name><type>PROCESSOR</type><description>Validates XML contained in a FlowFile. By default, the XML is contained in the FlowFile content. If the 'XML Source Attribute' property is set, the XML to be validated is contained in the specified attribute. It is not recommended to use attributes to hold large XML documents; doing so could adversely affect system performance. Full schema validation is performed if the processor is configured with the XSD schema details. Otherwise, the only validation performed is to ensure the XML syntax is correct and well-formed, e.g. all opening tags are properly closed.</description><tags><tag>xml</tag><tag>schema</tag><tag>validation</tag><tag>xsd</tag></tags><properties><property><name>Schema File</name><displayName>Schema File</displayName><description>The file path or URL to the XSD Schema file that is to be used for validation. If this property is blank, only XML syntax/structure will be validated.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>URL</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>XML Source Attribute</name><displayName>XML Source Attribute</displayName><description>The name of the attribute containing XML to be validated. If this property is blank, the FlowFile content will be validated.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>valid</name><description>FlowFiles that are successfully validated against the schema, if provided, or verified to be well-formed XML are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>FlowFiles that are not valid according to the specified schema or contain invalid XML are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>validatexml.invalid.error</name><description>If the flow file is routed to the invalid relationship the attribute will contain the error message resulting from the validation failure.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>reference remote resources</requiredPermission><explanation>Schema configuration can reference resources over HTTP</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>While this processor supports processing XML within attributes, it is strongly discouraged to hold large amounts of data in attributes. In general, attribute values should be as small as possible and hold no more than a couple hundred characters.</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.Wait</name><type>PROCESSOR</type><description>Routes incoming FlowFiles to the 'wait' relationship until a matching release signal is stored in the distributed cache from a corresponding Notify processor. When a matching release signal is identified, a waiting FlowFile is routed to the 'success' relationship. The release signal entry is then removed from the cache. The attributes of the FlowFile that produced the release signal are copied to the waiting FlowFile if the Attribute Cache Regex property of the corresponding Notify processor is set properly. If there are multiple release signals in the cache identified by the Release Signal Identifier, and the Notify processor is configured to copy the FlowFile attributes to the cache, then the FlowFile passing the Wait processor receives the union of the attributes of the FlowFiles that produced the release signals in the cache (identified by Release Signal Identifier). Waiting FlowFiles will be routed to 'expired' if they exceed the Expiration Duration. If you need to wait for more than one signal, specify the desired number of signals via the 'Target Signal Count' property. This is particularly useful with processors that split a source FlowFile into multiple fragments, such as SplitText. In order to wait for all fragments to be processed, connect the 'original' relationship to a Wait processor, and the 'splits' relationship to a corresponding Notify processor. Configure the Notify and Wait processors to use the '${fragment.identifier}' as the value of 'Release Signal Identifier', and specify '${fragment.count}' as the value of 'Target Signal Count' in the Wait processor.It is recommended to use a prioritizer (for instance First In First Out) when using the 'wait' relationship as a loop.</description><tags><tag>map</tag><tag>cache</tag><tag>wait</tag><tag>hold</tag><tag>distributed</tag><tag>signal</tag><tag>release</tag></tags><properties><property><name>release-signal-id</name><displayName>Release Signal Identifier</displayName><description>A value that specifies the key to a specific release signal cache. To decide whether the FlowFile that is being processed by the Wait processor should be sent to the 'success' or the 'wait' relationship, the processor checks the signals in the cache specified by this key.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-signal-count</name><displayName>Target Signal Count</displayName><description>The number of signals that need to be in the cache (specified by the Release Signal Identifier) in order for the FlowFile processed by the Wait processor to be sent to the ‘success’ relationship. If the number of signals in the cache has reached this number, the FlowFile is routed to the 'success' relationship and the number of signals in the cache is decreased by this value. If Signal Counter Name is specified, this processor checks a particular counter, otherwise checks against the total number of signals in the cache.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>signal-counter-name</name><displayName>Signal Counter Name</displayName><description>Within the cache (specified by the Release Signal Identifier) the signals may belong to different counters. If this property is specified, the processor checks the number of signals in the cache that belong to this particular counter. If not specified, the processor checks the total number of signals in the cache.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-buffer-count</name><displayName>Wait Buffer Count</displayName><description>Specify the maximum number of incoming FlowFiles that can be buffered to check whether it can move forward. The more buffer can provide the better performance, as it reduces the number of interactions with cache service by grouping FlowFiles by signal identifier. Only a signal identifier can be processed at a processor execution.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>releasable-flowfile-count</name><displayName>Releasable FlowFile Count</displayName><description>A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the releasable FlowFile count. This specifies how many FlowFiles can be released when a target count reaches target signal count. Zero (0) has a special meaning, any number of FlowFiles can be released as long as signal count matches target.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>expiration-duration</name><displayName>Expiration Duration</displayName><description>Indicates the duration after which waiting FlowFiles will be routed to the 'expired' relationship</description><defaultValue>10 min</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>distributed-cache-service</name><displayName>Distributed Cache Service</displayName><description>The Controller Service that is used to check for release signals from a corresponding Notify processor</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.AtomicDistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>attribute-copy-mode</name><displayName>Attribute Copy Mode</displayName><description>Specifies how to handle attributes copied from FlowFiles entering the Notify processor</description><defaultValue>keeporiginal</defaultValue><allowableValues><allowableValue><displayName>Replace if present</displayName><value>replace</value><description>When cached attributes are copied onto released FlowFiles, they replace any matching attributes.</description></allowableValue><allowableValue><displayName>Keep original</displayName><value>keeporiginal</value><description>Attributes on released FlowFiles are not overwritten by copied cached attributes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-mode</name><displayName>Wait Mode</displayName><description>Specifies how to handle a FlowFile waiting for a notify signal</description><defaultValue>wait</defaultValue><allowableValues><allowableValue><displayName>Transfer to wait relationship</displayName><value>wait</value><description>Transfer a FlowFile to the 'wait' relationship when whose release signal has not been notified yet. This mode allows other incoming FlowFiles to be enqueued by moving FlowFiles into the wait relationship. It is recommended to set a prioritizer (for instance First In First Out) on the 'wait' relationship.</description></allowableValue><allowableValue><displayName>Keep in the upstream connection</displayName><value>keep</value><description>Transfer a FlowFile to the upstream connection where it comes from when whose release signal has not been notified yet. This mode helps keeping upstream connection being full so that the upstream source processor will not be scheduled while back-pressure is active and limit incoming FlowFiles. </description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-penalty-duration</name><displayName>Wait Penalty Duration</displayName><description>If configured, after a signal identifier got processed but did not meet the release criteria, the signal identifier is penalized and FlowFiles having the signal identifier will not be processed again for the specified period of time, so that the signal identifier will not block others to be processed. This can be useful for use cases where a Wait processor is expected to process multiple signal identifiers, and each signal identifier has multiple FlowFiles, and also the order of releasing FlowFiles is important within a signal identifier. The FlowFile order can be configured with Prioritizers. IMPORTANT: There is a limitation of number of queued signals can be processed, and Wait processor may not be able to check all queued signal ids. See additional details for the best practice.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>expired</name><description>A FlowFile that has exceeded the configured Expiration Duration will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>A FlowFile with a matching release signal in the cache will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>wait</name><description>A FlowFile with no matching release signal in the cache will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>When the cache cannot be reached, or if the Release Signal Identifier evaluates to null or empty, FlowFiles will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>wait.start.timestamp</name><description>All FlowFiles will have an attribute 'wait.start.timestamp', which sets the initial epoch timestamp when the file first entered this processor.  This is used to determine the expiration time of the FlowFile.  This attribute is not written when the FlowFile is transferred to failure, expired or success</description></writesAttribute><writesAttribute><name>wait.counter.&lt;counterName&gt;</name><description>The name of each counter for which at least one signal has been present in the cache since the last time the cache was empty gets copied to the current FlowFile as an attribute.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService</see><see>org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer</see><see>org.apache.nifi.processors.standard.Notify</see></seeAlso></extension><extension><name>org.apache.nifi.controller.ControllerStatusReportingTask</name><type>REPORTING_TASK</type><description>Logs the 5-minute stats that are shown in the NiFi Summary Page for Processors and Connections, as well optionally logging the deltas between the previous iteration and the current iteration. Processors' stats are logged using the org.apache.nifi.controller.ControllerStatusReportingTask.Processors logger, while Connections' stats are logged using the org.apache.nifi.controller.ControllerStatusReportingTask.Connections logger. These can be configured in the NiFi logging configuration to log to different files, if desired.</description><tags><tag>stats</tag><tag>log</tag></tags><properties><property><name>Show Deltas</name><displayName>Show Deltas</displayName><description>Specifies whether or not to show the difference in values between the current status and the previous status</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>reporting-granularity</name><displayName>Reporting Granularity</displayName><description>When reporting information, specifies the granularity of the metrics to report</description><defaultValue>five-minutes</defaultValue><allowableValues><allowableValue><displayName>Five Minutes</displayName><value>five-minutes</value><description>The stats that are reported will reflect up to the last 5 minutes' worth of processing, which will coincide with the stats that are shown in the UI.</description></allowableValue><allowableValue><displayName>One Second</displayName><value>one-second</value><description>The stats that are reported will be an average of the value per second, gathered over the last 5 minutes. This is essentially obtained by dividing the stats that are shown in the UI by 300 (300 seconds in 5 minutes), with the exception of when NiFi has been running for less than 5 minutes. In that case, the stats will be divided by the amount of time NiFi has been running.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.controller.MonitorDiskUsage</name><type>REPORTING_TASK</type><description>Checks the amount of storage space available for the specified directory and warns (via a log message and a System-Level Bulletin) if the partition on which it lives exceeds some configurable threshold of storage space</description><tags><tag>disk</tag><tag>storage</tag><tag>warning</tag><tag>monitoring</tag><tag>repo</tag></tags><properties><property><name>Threshold</name><displayName>Threshold</displayName><description>The threshold at which a bulletin will be generated to indicate that the disk usage of the partition on which the directory found is of concern</description><defaultValue>80%</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Directory Location</name><displayName>Directory Location</displayName><description>The directory path of the partition to be monitored.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Directory Display Name</name><displayName>Directory Display Name</displayName><description>The name to display for the directory in alerts.</description><defaultValue>Un-Named</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.controller.MonitorMemory</name><type>REPORTING_TASK</type><description>Checks the amount of Java Heap available in the JVM for a particular JVM Memory Pool. If the amount of space used exceeds some configurable threshold, will warn (via a log message and System-Level Bulletin) that the memory pool is exceeding this threshold.</description><tags><tag>monitor</tag><tag>memory</tag><tag>heap</tag><tag>jvm</tag><tag>gc</tag><tag>garbage collection</tag><tag>warning</tag></tags><properties><property><name>Memory Pool</name><displayName>Memory Pool</displayName><description>The name of the JVM Memory Pool to monitor. The allowed values for Memory Pools are platform and JVM dependent and may vary for different versions of Java and from published documentation. This reporting task will become invalidated if configured to use a Memory Pool that is not available on the currently running host platform and JVM</description><defaultValue>G1 Old Gen</defaultValue><allowableValues><allowableValue><displayName>G1 Eden Space</displayName><value>G1 Eden Space</value><description></description></allowableValue><allowableValue><displayName>G1 Old Gen</displayName><value>G1 Old Gen</value><description></description></allowableValue><allowableValue><displayName>G1 Survivor Space</displayName><value>G1 Survivor Space</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Usage Threshold</name><displayName>Usage Threshold</displayName><description>Indicates the threshold at which warnings should be generated. This can be a percentage or a Data Size</description><defaultValue>65%</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Reporting Interval</name><displayName>Reporting Interval</displayName><description>Indicates how often this reporting task should report bulletins while the memory utilization exceeds the configured threshold</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.reporting.ganglia.StandardGangliaReporter</name><type>REPORTING_TASK</type><description>Reports metrics to Ganglia so that Ganglia can be used for external monitoring of the application. Metrics reported include JVM Metrics (optional); the following 5-minute NiFi statistics: FlowFiles Received, Bytes Received, FlowFiles Sent, Bytes Sent, Bytes Read, Bytes Written, Total Task Duration; and the current values for FlowFiles Queued, Bytes Queued, and number of Active Threads.</description><tags><tag>ganglia</tag><tag>stats</tag></tags><properties><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully-qualified name of the host on which Ganglia is running</description><defaultValue>localhost</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The Port on which Ganglia is listening for incoming connections</description><defaultValue>8649</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Send JVM Metrics</name><displayName>Send JVM Metrics</displayName><description>Specifies whether or not JVM Metrics should be gathered and sent, in addition to NiFi-specific metrics</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.parameter.DatabaseParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from database tables</description><tags><tag>database</tag><tag>dbcp</tag><tag>sql</tag></tags><properties><property><name>db-type</name><displayName>Database Type</displayName><description>The type/flavor of database, used for generating database-specific code. In many cases the Generic type should suffice, but some databases (such as Oracle) require custom SQL clauses. </description><defaultValue>Generic</defaultValue><allowableValues><allowableValue><displayName>Generic</displayName><value>Generic</value><description>Generates ANSI SQL</description></allowableValue><allowableValue><displayName>Oracle</displayName><value>Oracle</value><description>Generates Oracle compliant SQL</description></allowableValue><allowableValue><displayName>Oracle 12+</displayName><value>Oracle 12+</value><description>Generates Oracle compliant SQL for version 12 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2012+</displayName><value>MS SQL 2012+</value><description>Generates MS SQL Compatible SQL, for version 2012 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2008</displayName><value>MS SQL 2008</value><description>Generates MS SQL Compatible SQL for version 2008</description></allowableValue><allowableValue><displayName>MySQL</displayName><value>MySQL</value><description>Generates MySQL compatible SQL</description></allowableValue><allowableValue><displayName>PostgreSQL</displayName><value>PostgreSQL</value><description>Generates PostgreSQL compatible SQL</description></allowableValue><allowableValue><displayName>Phoenix</displayName><value>Phoenix</value><description>Generates Phoenix compliant SQL</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain a connection to the database.</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-grouping-strategy</name><displayName>Parameter Grouping Strategy</displayName><description>The strategy used to group parameters.</description><defaultValue>grouping-by-column</defaultValue><allowableValues><allowableValue><displayName>Column</displayName><value>grouping-by-column</value><description>A single table is partitioned by the 'Parameter Group Name Column'.  All rows with the same value in this column will map to a group of the same name.</description></allowableValue><allowableValue><displayName>Table Name</displayName><value>grouping-by-table-name</value><description>An entire table maps to a Parameter Group.  The group name will be the table name.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>table-name</name><displayName>Table Name</displayName><description>The name of the database table containing the parameters.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>parameter-grouping-strategy</propertyName><propertyDisplayName>Parameter Grouping Strategy</propertyDisplayName><dependentValues><dependentValue>grouping-by-column</dependentValue></dependentValues></dependency></dependencies></property><property><name>table-names</name><displayName>Table Names</displayName><description>A comma-separated list of names of the database tables containing the parameters.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>parameter-grouping-strategy</propertyName><propertyDisplayName>Parameter Grouping Strategy</propertyDisplayName><dependentValues><dependentValue>grouping-by-table-name</dependentValue></dependentValues></dependency></dependencies></property><property><name>parameter-name-column</name><displayName>Parameter Name Column</displayName><description>The name of a column containing the parameter name.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-value-column</name><displayName>Parameter Value Column</displayName><description>The name of a column containing the parameter value.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-group-name-column</name><displayName>Parameter Group Name Column</displayName><description>The name of a column containing the name of the parameter group into which the parameter should be mapped.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>parameter-grouping-strategy</propertyName><propertyDisplayName>Parameter Grouping Strategy</propertyDisplayName><dependentValues><dependentValue>grouping-by-column</dependentValue></dependentValues></dependency></dependencies></property><property><name>sql-where-clause</name><displayName>SQL WHERE clause</displayName><description>A optional SQL query 'WHERE' clause by which to filter all results.  The 'WHERE' keyword should not be included.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.parameter.EnvironmentVariableParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from environment variables</description><tags><tag>environment</tag><tag>variable</tag></tags><properties><property><name>parameter-group-name</name><displayName>Parameter Group Name</displayName><description>The name of the parameter group that will be fetched.  This indicates the name of the Parameter Context that may receive the fetched parameters.</description><defaultValue>Environment Variables</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>environment-variable-inclusion-strategy</name><displayName>Environment Variable Inclusion Strategy</displayName><description>Indicates how Environment Variables should be included</description><defaultValue>include-all</defaultValue><allowableValues><allowableValue><displayName>Include All</displayName><value>include-all</value><description>All Environment Variables will be included</description></allowableValue><allowableValue><displayName>Comma-Separated</displayName><value>comma-separated</value><description>List comma-separated Environment Variable names to include</description></allowableValue><allowableValue><displayName>Regular Expression</displayName><value>regex</value><description>Include Environment Variable names that match a Regular Expression</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>include-environment-variables</name><displayName>Include Environment Variables</displayName><description>Specifies environment variable names that should be included from the fetched environment variables.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>environment-variable-inclusion-strategy</propertyName><propertyDisplayName>Environment Variable Inclusion Strategy</propertyDisplayName><dependentValues><dependentValue>regex</dependentValue><dependentValue>comma-separated</dependentValue></dependentValues></dependency></dependencies></property></properties><restricted><restrictions><restriction><requiredPermission>access environment credentials</requiredPermission><explanation>Provides operator the ability to read environment variables, which may contain environment credentials.</explanation></restriction></restrictions></restricted></extension><extension><name>org.apache.nifi.parameter.KubernetesSecretParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from files, in the format provided by Kubernetes mounted secrets.  Parameter groups are indicated by a set of directories, and files within the directories map to parameter names. The content of the file becomes the parameter value.  Since Kubernetes mounted Secrets are base64-encoded, the parameter provider defaults to Base64-decoding the value of the parameter from the file.</description><tags><tag>file</tag></tags><properties><property><name>parameter-group-directories</name><displayName>Parameter Group Directories</displayName><description>A comma-separated list of directory absolute paths that will map to named parameter groups.  Each directory that contains files will map to a parameter group, named after the innermost directory in the path.  Files inside the directory will map to parameter names, whose values are the content of each respective file.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-value-byte-limit</name><displayName>Parameter Value Byte Limit</displayName><description>The maximum byte size of a parameter value.  Since parameter values are pulled from the contents of files, this is a safeguard that can prevent memory issues if large files are included.</description><defaultValue>256 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-value-encoding</name><displayName>Parameter Value Encoding</displayName><description>Indicates how parameter values are encoded inside Parameter files.</description><defaultValue>base64</defaultValue><allowableValues><allowableValue><displayName>Base64</displayName><value>base64</value><description>File content is Base64-encoded, and will be decoded before providing the value as a Parameter.</description></allowableValue><allowableValue><displayName>Plain text</displayName><value>plaintext</value><description>File content is not encoded, and will be provided directly as a Parameter value.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><restricted><restrictions><restriction><requiredPermission>read filesystem</requiredPermission><explanation>Provides operator the ability to read from any file that NiFi has access to.</explanation></restriction></restrictions></restricted></extension><extension><name>org.apache.nifi.parameter.OnePasswordParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from 1Password Connect Server</description><tags><tag>1Password</tag></tags><properties><property><name>Web Client Service Provider</name><displayName>Web Client Service Provider</displayName><description>Controller service for HTTP client operations.</description><controllerServiceDefinition><className>org.apache.nifi.web.client.provider.api.WebClientServiceProvider</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connect Server</name><displayName>Connect Server</displayName><description>HTTP endpoint of the 1Password Connect Server to connect to. Example: http://localhost:8080</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Access Token</name><displayName>Access Token</displayName><description>Access Token used for authentication against the 1Password APIs.</description><required>true</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.flowanalysis.rules.DisallowComponentType</name><type>FLOW_ANALYSIS_RULE</type><description>Produces rule violations for each component (i.e. processors or controller services) of a given type.</description><tags><tag>component</tag><tag>processor</tag><tag>controller service</tag><tag>type</tag></tags><properties><property><name>component-type</name><displayName>Component Type</displayName><description>Components of the given type will produce a rule violation (i.e. they shouldn't exist). Either the simple or the fully qualified name of the type should be provided.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension></extensions></extensionManifest>
\ No newline at end of file
+</configuration></useCase></useCases><seeAlso><see>org.apache.nifi.processors.standard.ConvertRecord</see></seeAlso></extension><extension><name>org.apache.nifi.processors.standard.ValidateCsv</name><type>PROCESSOR</type><description>Validates the contents of FlowFiles against a user-specified CSV schema. Take a look at the additional documentation of this processor for some schema examples.</description><tags><tag>csv</tag><tag>schema</tag><tag>validation</tag></tags><properties><property><name>validate-csv-schema</name><displayName>Schema</displayName><description>The schema to be used for validation. Is expected a comma-delimited string representing the cell processors to apply. The following cell processors are allowed in the schema definition: [ParseBigDecimal, ParseBool, ParseChar, ParseDate, ParseDouble, ParseInt, ParseLong, Optional, DMinMax, Equals, ForbidSubStr, LMinMax, NotNull, Null, RequireHashCode, RequireSubStr, Strlen, StrMinMax, StrNotNullOrEmpty, StrRegEx, Unique, UniqueHashCode, IsIncludedIn]. Note: cell processors cannot be nested except with Optional.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-header</name><displayName>Header</displayName><description>True if the incoming flow file contains a header to ignore, false otherwise.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-delimiter</name><displayName>Delimiter character</displayName><description>Character used as 'delimiter' in the incoming data. Example: ,</description><defaultValue>,</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-quote</name><displayName>Quote character</displayName><description>Character used as 'quote' in the incoming data. Example: "</description><defaultValue>"</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-eol</name><displayName>End of line symbols</displayName><description>Symbols used as 'end of line' in the incoming data. Example: \n</description><defaultValue>\n</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-strategy</name><displayName>Validation strategy</displayName><description>Strategy to apply when routing input files to output relationships.</description><defaultValue>FlowFile validation</defaultValue><allowableValues><allowableValue><displayName>Line by line validation</displayName><value>Line by line validation</value><description>In case an error is found, the input CSV file will be split into two FlowFiles: one routed to the 'valid' relationship containing all the correct lines and one routed to the 'invalid' relationship containing all the incorrect lines. Take care if choosing this option while using Unique cell processors in schema definition:the first occurrence will be considered valid and the next ones as invalid.</description></allowableValue><allowableValue><displayName>FlowFile validation</displayName><value>FlowFile validation</value><description>As soon as an error is found in the CSV file, the validation will stop and the whole flow file will be routed to the 'invalid' relationship. This option offers best performances.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validate-csv-violations</name><displayName>Include all violations</displayName><description>If true, the validation.error.message attribute would include the list of all the violations for the first invalid line. Note that setting this property to true would slightly decrease the performances as all columns would be validated. If false, a line is invalid as soon as a column is found violating the specified constraint and only this violation for the first invalid line will be included in the validation.error.message attribute.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>valid</name><description>FlowFiles that are successfully validated against the schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>FlowFiles that are not valid according to the specified schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>count.valid.lines</name><description>If line by line validation, number of valid lines extracted from the source data</description></writesAttribute><writesAttribute><name>count.invalid.lines</name><description>If line by line validation, number of invalid lines extracted from the source data</description></writesAttribute><writesAttribute><name>count.total.lines</name><description>If line by line validation, total number of lines in the source data</description></writesAttribute><writesAttribute><name>validation.error.message</name><description>For flow files routed to invalid, message of the first validation error</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ValidateJson</name><type>PROCESSOR</type><description>Validates the contents of FlowFiles against a configurable JSON Schema. See json-schema.org for specification standards. This Processor does not support input containing multiple JSON objects, such as newline-delimited JSON. If the input FlowFile contains newline-delimited JSON, only the first line will be validated.</description><tags><tag>JSON</tag><tag>schema</tag><tag>validation</tag></tags><properties><property><name>Schema Access Strategy</name><displayName>Schema Access Strategy</displayName><description>Specifies how to obtain the schema that is to be used for interpreting the data.</description><defaultValue>SCHEMA_CONTENT_PROPERTY</defaultValue><allowableValues><allowableValue><displayName>Schema Name Property</displayName><value>SCHEMA_NAME_PROPERTY</value><description>The name of the Schema to use is specified by the 'Schema Name' Property. The value of this property is used to lookup the Schema in the configured JSON Schema Registry Service.</description></allowableValue><allowableValue><displayName>JSON Schema Property</displayName><value>SCHEMA_CONTENT_PROPERTY</value><description>A URL or file path to the JSON schema or the actual JSON schema is specified by the 'JSON Schema' Property. No matter how the JSON schema is specified, it must be a valid JSON schema</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Schema Name</name><displayName>Schema Name</displayName><description>Specifies the name of the schema to lookup in the Schema Registry property</description><defaultValue>${schema.name}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_NAME_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property><property><name>JSON Schema Registry</name><displayName>JSON Schema Registry</displayName><description>Specifies the Controller Service to use for the JSON Schema Registry</description><controllerServiceDefinition><className>org.apache.nifi.schemaregistry.services.JsonSchemaRegistry</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_NAME_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property><property><name>JSON Schema</name><displayName>JSON Schema</displayName><description>A URL or file path to the JSON schema or the actual JSON schema content</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>TEXT</resourceType><resourceType>URL</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_CONTENT_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property><property><name>JSON Schema Version</name><displayName>JSON Schema Version</displayName><description>The JSON schema specification</description><defaultValue>DRAFT_2020_12</defaultValue><allowableValues><allowableValue><displayName>Draft 4</displayName><value>DRAFT_4</value><description>Draft Version 4</description></allowableValue><allowableValue><displayName>Draft 6</displayName><value>DRAFT_6</value><description>Draft Version 6</description></allowableValue><allowableValue><displayName>Draft 7</displayName><value>DRAFT_7</value><description>Draft Version 7</description></allowableValue><allowableValue><displayName>Draft 2019-09</displayName><value>DRAFT_2019_09</value><description>Draft Version 2019-09</description></allowableValue><allowableValue><displayName>Draft 2020-12</displayName><value>DRAFT_2020_12</value><description>Draft Version 2020-12</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Schema Access Strategy</propertyName><propertyDisplayName>Schema Access Strategy</propertyDisplayName><dependentValues><dependentValue>SCHEMA_CONTENT_PROPERTY</dependentValue></dependentValues></dependency></dependencies></property></properties><relationships><relationship><name>valid</name><description>FlowFiles that are successfully validated against the schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>FlowFiles that are not valid according to the specified schema are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles that cannot be read as JSON are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>json.validation.errors</name><description>If the flow file is routed to the invalid relationship , this attribute will contain the error message resulting from the validation failure.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>reference remote resources</requiredPermission><explanation>Schema configuration can reference resources over HTTP</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>Validating JSON requires reading FlowFile content into memory</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.ValidateRecord</name><type>PROCESSOR</type><description>Validates the Records of an incoming FlowFile against a given schema. All records that adhere to the schema are routed to the "valid" relationship while records that do not adhere to the schema are routed to the "invalid" relationship. It is therefore possible for a single incoming FlowFile to be split into two individual FlowFiles if some records are valid according to the schema and others are not. Any FlowFile that is routed to the "invalid" relationship will emit a ROUTE Provenance Event with the Details field populated to explain why records were invalid. In addition, to gain further explanation of why records were invalid, DEBUG-level logging can be enabled for the "org.apache.nifi.processors.standard.ValidateRecord" logger.</description><tags><tag>record</tag><tag>schema</tag><tag>validate</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for reading incoming data</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing out the records. Regardless of the Controller Service schema access configuration, the schema that is used to validate record is used to write the valid results.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>invalid-record-writer</name><displayName>Record Writer for Invalid Records</displayName><description>If specified, this Controller Service will be used to write out any records that are invalid. If not specified, the writer specified by the "Record Writer" property will be used with the schema used to read the input records. This is useful, for example, when the configured Record Writer cannot write data that does not adhere to its schema (as is the case with Avro) or when it is desirable to keep invalid records in their original format while converting valid records to another format.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-access-strategy</name><displayName>Schema Access Strategy</displayName><description>Specifies how to obtain the schema that should be used to validate records</description><defaultValue>reader-schema</defaultValue><allowableValues><allowableValue><displayName>Use Reader's Schema</displayName><value>reader-schema</value><description>The schema to validate the data against is determined by asking the configured Record Reader for its schema</description></allowableValue><allowableValue><displayName>Use Schema Name Property</displayName><value>schema-name-property</value><description>The schema to validate the data against is determined by looking at the 'Schema Name' Property and looking up the schema in the configured Schema Registry</description></allowableValue><allowableValue><displayName>Use Schema Text Property</displayName><value>schema-text-property</value><description>The schema to validate the data against is determined by looking at the 'Schema Text' Property and parsing the schema as an Avro schema</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-registry</name><displayName>Schema Registry</displayName><description>Specifies the Controller Service to use for the Schema Registry. This is necessary only if the Schema Access Strategy is set to "Use 'Schema Name' Property".</description><controllerServiceDefinition><className>org.apache.nifi.schemaregistry.services.SchemaRegistry</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-name</name><displayName>Schema Name</displayName><description>Specifies the name of the schema to lookup in the Schema Registry property</description><defaultValue>${schema.name}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>schema-text</name><displayName>Schema Text</displayName><description>The text of an Avro-formatted Schema</description><defaultValue>${avro.schema}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>allow-extra-fields</name><displayName>Allow Extra Fields</displayName><description>If the incoming data has fields that are not present in the schema, this property determines whether or not the Record is valid. If true, the Record is still valid. If false, the Record will be invalid due to the extra fields.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>strict-type-checking</name><displayName>Strict Type Checking</displayName><description>If the incoming data has a Record where a field is not of the correct type, this property determines how to handle the Record. If true, the Record will be considered invalid. If false, the Record will be considered valid and the field will be coerced into the correct type (if possible, according to the type coercion supported by the Record Writer). This property controls how the data is validated against the validation schema.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>coerce-types</name><displayName>Force Types From Reader's Schema</displayName><description>If enabled, the processor will coerce every field to the type specified in the Reader's schema. If the value of a field cannot be coerced to the type, the field will be skipped (will not be read from the input data), thus will not appear in the output. If not enabled, then every field will appear in the output but their types may differ from what is specified in the schema. For details please see the Additional Details page of the processor's Help. This property controls how the data is read by the specified Record Reader.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>validation-details-attribute-name</name><displayName>Validation Details Attribute Name</displayName><description>If specified, when a validation error occurs, this attribute name will be used to leave the details. The number of characters will be limited by the property 'Maximum Validation Details Length'.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>maximum-validation-details-length</name><displayName>Maximum Validation Details Length</displayName><description>Specifies the maximum number of characters that validation details value can have. Any characters beyond the max will be truncated. This property is only used if 'Validation Details Attribute Name' is set</description><defaultValue>1024</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>valid</name><description>Records that are valid according to the schema will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>Records that are not valid according to the schema will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If the records cannot be read, validated, or written, for any reason, the original FlowFile will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records in the FlowFile routed to a relationship</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.standard.ValidateXml</name><type>PROCESSOR</type><description>Validates XML contained in a FlowFile. By default, the XML is contained in the FlowFile content. If the 'XML Source Attribute' property is set, the XML to be validated is contained in the specified attribute. It is not recommended to use attributes to hold large XML documents; doing so could adversely affect system performance. Full schema validation is performed if the processor is configured with the XSD schema details. Otherwise, the only validation performed is to ensure the XML syntax is correct and well-formed, e.g. all opening tags are properly closed.</description><tags><tag>xml</tag><tag>schema</tag><tag>validation</tag><tag>xsd</tag></tags><properties><property><name>Schema File</name><displayName>Schema File</displayName><description>The file path or URL to the XSD Schema file that is to be used for validation. If this property is blank, only XML syntax/structure will be validated.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>URL</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>XML Source Attribute</name><displayName>XML Source Attribute</displayName><description>The name of the attribute containing XML to be validated. If this property is blank, the FlowFile content will be validated.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>valid</name><description>FlowFiles that are successfully validated against the schema, if provided, or verified to be well-formed XML are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>FlowFiles that are not valid according to the specified schema or contain invalid XML are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>validatexml.invalid.error</name><description>If the flow file is routed to the invalid relationship the attribute will contain the error message resulting from the validation failure.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>reference remote resources</requiredPermission><explanation>Schema configuration can reference resources over HTTP</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>While this processor supports processing XML within attributes, it is strongly discouraged to hold large amounts of data in attributes. In general, attribute values should be as small as possible and hold no more than a couple hundred characters.</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.standard.Wait</name><type>PROCESSOR</type><description>Routes incoming FlowFiles to the 'wait' relationship until a matching release signal is stored in the distributed cache from a corresponding Notify processor. When a matching release signal is identified, a waiting FlowFile is routed to the 'success' relationship. The release signal entry is then removed from the cache. The attributes of the FlowFile that produced the release signal are copied to the waiting FlowFile if the Attribute Cache Regex property of the corresponding Notify processor is set properly. If there are multiple release signals in the cache identified by the Release Signal Identifier, and the Notify processor is configured to copy the FlowFile attributes to the cache, then the FlowFile passing the Wait processor receives the union of the attributes of the FlowFiles that produced the release signals in the cache (identified by Release Signal Identifier). Waiting FlowFiles will be routed to 'expired' if they exceed the Expiration Duration. If you need to wait for more than one signal, specify the desired number of signals via the 'Target Signal Count' property. This is particularly useful with processors that split a source FlowFile into multiple fragments, such as SplitText. In order to wait for all fragments to be processed, connect the 'original' relationship to a Wait processor, and the 'splits' relationship to a corresponding Notify processor. Configure the Notify and Wait processors to use the '${fragment.identifier}' as the value of 'Release Signal Identifier', and specify '${fragment.count}' as the value of 'Target Signal Count' in the Wait processor.It is recommended to use a prioritizer (for instance First In First Out) when using the 'wait' relationship as a loop.</description><tags><tag>map</tag><tag>cache</tag><tag>wait</tag><tag>hold</tag><tag>distributed</tag><tag>signal</tag><tag>release</tag></tags><properties><property><name>release-signal-id</name><displayName>Release Signal Identifier</displayName><description>A value that specifies the key to a specific release signal cache. To decide whether the FlowFile that is being processed by the Wait processor should be sent to the 'success' or the 'wait' relationship, the processor checks the signals in the cache specified by this key.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>target-signal-count</name><displayName>Target Signal Count</displayName><description>The number of signals that need to be in the cache (specified by the Release Signal Identifier) in order for the FlowFile processed by the Wait processor to be sent to the ‘success’ relationship. If the number of signals in the cache has reached this number, the FlowFile is routed to the 'success' relationship and the number of signals in the cache is decreased by this value. If Signal Counter Name is specified, this processor checks a particular counter, otherwise checks against the total number of signals in the cache.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>signal-counter-name</name><displayName>Signal Counter Name</displayName><description>Within the cache (specified by the Release Signal Identifier) the signals may belong to different counters. If this property is specified, the processor checks the number of signals in the cache that belong to this particular counter. If not specified, the processor checks the total number of signals in the cache.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-buffer-count</name><displayName>Wait Buffer Count</displayName><description>Specify the maximum number of incoming FlowFiles that can be buffered to check whether it can move forward. The more buffer can provide the better performance, as it reduces the number of interactions with cache service by grouping FlowFiles by signal identifier. Only a signal identifier can be processed at a processor execution.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>releasable-flowfile-count</name><displayName>Releasable FlowFile Count</displayName><description>A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the releasable FlowFile count. This specifies how many FlowFiles can be released when a target count reaches target signal count. Zero (0) has a special meaning, any number of FlowFiles can be released as long as signal count matches target.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>expiration-duration</name><displayName>Expiration Duration</displayName><description>Indicates the duration after which waiting FlowFiles will be routed to the 'expired' relationship</description><defaultValue>10 min</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>distributed-cache-service</name><displayName>Distributed Cache Service</displayName><description>The Controller Service that is used to check for release signals from a corresponding Notify processor</description><controllerServiceDefinition><className>org.apache.nifi.distributed.cache.client.AtomicDistributedMapCacheClient</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>attribute-copy-mode</name><displayName>Attribute Copy Mode</displayName><description>Specifies how to handle attributes copied from FlowFiles entering the Notify processor</description><defaultValue>keeporiginal</defaultValue><allowableValues><allowableValue><displayName>Replace if present</displayName><value>replace</value><description>When cached attributes are copied onto released FlowFiles, they replace any matching attributes.</description></allowableValue><allowableValue><displayName>Keep original</displayName><value>keeporiginal</value><description>Attributes on released FlowFiles are not overwritten by copied cached attributes.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-mode</name><displayName>Wait Mode</displayName><description>Specifies how to handle a FlowFile waiting for a notify signal</description><defaultValue>wait</defaultValue><allowableValues><allowableValue><displayName>Transfer to wait relationship</displayName><value>wait</value><description>Transfer a FlowFile to the 'wait' relationship when whose release signal has not been notified yet. This mode allows other incoming FlowFiles to be enqueued by moving FlowFiles into the wait relationship. It is recommended to set a prioritizer (for instance First In First Out) on the 'wait' relationship.</description></allowableValue><allowableValue><displayName>Keep in the upstream connection</displayName><value>keep</value><description>Transfer a FlowFile to the upstream connection where it comes from when whose release signal has not been notified yet. This mode helps keeping upstream connection being full so that the upstream source processor will not be scheduled while back-pressure is active and limit incoming FlowFiles. </description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>wait-penalty-duration</name><displayName>Wait Penalty Duration</displayName><description>If configured, after a signal identifier got processed but did not meet the release criteria, the signal identifier is penalized and FlowFiles having the signal identifier will not be processed again for the specified period of time, so that the signal identifier will not block others to be processed. This can be useful for use cases where a Wait processor is expected to process multiple signal identifiers, and each signal identifier has multiple FlowFiles, and also the order of releasing FlowFiles is important within a signal identifier. The FlowFile order can be configured with Prioritizers. IMPORTANT: There is a limitation of number of queued signals can be processed, and Wait processor may not be able to check all queued signal ids. See additional details for the best practice.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>expired</name><description>A FlowFile that has exceeded the configured Expiration Duration will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>A FlowFile with a matching release signal in the cache will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>wait</name><description>A FlowFile with no matching release signal in the cache will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>When the cache cannot be reached, or if the Release Signal Identifier evaluates to null or empty, FlowFiles will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>wait.start.timestamp</name><description>All FlowFiles will have an attribute 'wait.start.timestamp', which sets the initial epoch timestamp when the file first entered this processor.  This is used to determine the expiration time of the FlowFile.  This attribute is not written when the FlowFile is transferred to failure, expired or success</description></writesAttribute><writesAttribute><name>wait.counter.&lt;counterName&gt;</name><description>The name of each counter for which at least one signal has been present in the cache since the last time the cache was empty gets copied to the current FlowFile as an attribute.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService</see><see>org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer</see><see>org.apache.nifi.processors.standard.Notify</see></seeAlso></extension><extension><name>org.apache.nifi.controller.ControllerStatusReportingTask</name><type>REPORTING_TASK</type><description>Logs the 5-minute stats that are shown in the NiFi Summary Page for Processors and Connections, as well optionally logging the deltas between the previous iteration and the current iteration. Processors' stats are logged using the org.apache.nifi.controller.ControllerStatusReportingTask.Processors logger, while Connections' stats are logged using the org.apache.nifi.controller.ControllerStatusReportingTask.Connections logger. These can be configured in the NiFi logging configuration to log to different files, if desired.</description><tags><tag>stats</tag><tag>log</tag></tags><properties><property><name>Show Deltas</name><displayName>Show Deltas</displayName><description>Specifies whether or not to show the difference in values between the current status and the previous status</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>reporting-granularity</name><displayName>Reporting Granularity</displayName><description>When reporting information, specifies the granularity of the metrics to report</description><defaultValue>five-minutes</defaultValue><allowableValues><allowableValue><displayName>Five Minutes</displayName><value>five-minutes</value><description>The stats that are reported will reflect up to the last 5 minutes' worth of processing, which will coincide with the stats that are shown in the UI.</description></allowableValue><allowableValue><displayName>One Second</displayName><value>one-second</value><description>The stats that are reported will be an average of the value per second, gathered over the last 5 minutes. This is essentially obtained by dividing the stats that are shown in the UI by 300 (300 seconds in 5 minutes), with the exception of when NiFi has been running for less than 5 minutes. In that case, the stats will be divided by the amount of time NiFi has been running.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.controller.MonitorDiskUsage</name><type>REPORTING_TASK</type><description>Checks the amount of storage space available for the specified directory and warns (via a log message and a System-Level Bulletin) if the partition on which it lives exceeds some configurable threshold of storage space</description><tags><tag>disk</tag><tag>storage</tag><tag>warning</tag><tag>monitoring</tag><tag>repo</tag></tags><properties><property><name>Threshold</name><displayName>Threshold</displayName><description>The threshold at which a bulletin will be generated to indicate that the disk usage of the partition on which the directory found is of concern</description><defaultValue>80%</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Directory Location</name><displayName>Directory Location</displayName><description>The directory path of the partition to be monitored.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Directory Display Name</name><displayName>Directory Display Name</displayName><description>The name to display for the directory in alerts.</description><defaultValue>Un-Named</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.controller.MonitorMemory</name><type>REPORTING_TASK</type><description>Checks the amount of Java Heap available in the JVM for a particular JVM Memory Pool. If the amount of space used exceeds some configurable threshold, will warn (via a log message and System-Level Bulletin) that the memory pool is exceeding this threshold.</description><tags><tag>monitor</tag><tag>memory</tag><tag>heap</tag><tag>jvm</tag><tag>gc</tag><tag>garbage collection</tag><tag>warning</tag></tags><properties><property><name>Memory Pool</name><displayName>Memory Pool</displayName><description>The name of the JVM Memory Pool to monitor. The allowed values for Memory Pools are platform and JVM dependent and may vary for different versions of Java and from published documentation. This reporting task will become invalidated if configured to use a Memory Pool that is not available on the currently running host platform and JVM</description><defaultValue>G1 Old Gen</defaultValue><allowableValues><allowableValue><displayName>G1 Eden Space</displayName><value>G1 Eden Space</value><description></description></allowableValue><allowableValue><displayName>G1 Old Gen</displayName><value>G1 Old Gen</value><description></description></allowableValue><allowableValue><displayName>G1 Survivor Space</displayName><value>G1 Survivor Space</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Usage Threshold</name><displayName>Usage Threshold</displayName><description>Indicates the threshold at which warnings should be generated. This can be a percentage or a Data Size</description><defaultValue>65%</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Reporting Interval</name><displayName>Reporting Interval</displayName><description>Indicates how often this reporting task should report bulletins while the memory utilization exceeds the configured threshold</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.reporting.ganglia.StandardGangliaReporter</name><type>REPORTING_TASK</type><description>Reports metrics to Ganglia so that Ganglia can be used for external monitoring of the application. Metrics reported include JVM Metrics (optional); the following 5-minute NiFi statistics: FlowFiles Received, Bytes Received, FlowFiles Sent, Bytes Sent, Bytes Read, Bytes Written, Total Task Duration; and the current values for FlowFiles Queued, Bytes Queued, and number of Active Threads.</description><tags><tag>ganglia</tag><tag>stats</tag></tags><properties><property><name>Hostname</name><displayName>Hostname</displayName><description>The fully-qualified name of the host on which Ganglia is running</description><defaultValue>localhost</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Port</name><displayName>Port</displayName><description>The Port on which Ganglia is listening for incoming connections</description><defaultValue>8649</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Send JVM Metrics</name><displayName>Send JVM Metrics</displayName><description>Specifies whether or not JVM Metrics should be gathered and sent, in addition to NiFi-specific metrics</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.parameter.DatabaseParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from database tables</description><tags><tag>database</tag><tag>dbcp</tag><tag>sql</tag></tags><properties><property><name>db-type</name><displayName>Database Type</displayName><description>The type/flavor of database, used for generating database-specific code. In many cases the Generic type should suffice, but some databases (such as Oracle) require custom SQL clauses. </description><defaultValue>Generic</defaultValue><allowableValues><allowableValue><displayName>Generic</displayName><value>Generic</value><description>Generates ANSI SQL</description></allowableValue><allowableValue><displayName>Oracle</displayName><value>Oracle</value><description>Generates Oracle compliant SQL</description></allowableValue><allowableValue><displayName>Oracle 12+</displayName><value>Oracle 12+</value><description>Generates Oracle compliant SQL for version 12 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2012+</displayName><value>MS SQL 2012+</value><description>Generates MS SQL Compatible SQL, for version 2012 or greater</description></allowableValue><allowableValue><displayName>MS SQL 2008</displayName><value>MS SQL 2008</value><description>Generates MS SQL Compatible SQL for version 2008</description></allowableValue><allowableValue><displayName>MySQL</displayName><value>MySQL</value><description>Generates MySQL compatible SQL</description></allowableValue><allowableValue><displayName>PostgreSQL</displayName><value>PostgreSQL</value><description>Generates PostgreSQL compatible SQL</description></allowableValue><allowableValue><displayName>Phoenix</displayName><value>Phoenix</value><description>Generates Phoenix compliant SQL</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-service</name><displayName>Database Connection Pooling Service</displayName><description>The Controller Service that is used to obtain a connection to the database.</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-grouping-strategy</name><displayName>Parameter Grouping Strategy</displayName><description>The strategy used to group parameters.</description><defaultValue>grouping-by-column</defaultValue><allowableValues><allowableValue><displayName>Column</displayName><value>grouping-by-column</value><description>A single table is partitioned by the 'Parameter Group Name Column'.  All rows with the same value in this column will map to a group of the same name.</description></allowableValue><allowableValue><displayName>Table Name</displayName><value>grouping-by-table-name</value><description>An entire table maps to a Parameter Group.  The group name will be the table name.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>table-name</name><displayName>Table Name</displayName><description>The name of the database table containing the parameters.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>parameter-grouping-strategy</propertyName><propertyDisplayName>Parameter Grouping Strategy</propertyDisplayName><dependentValues><dependentValue>grouping-by-column</dependentValue></dependentValues></dependency></dependencies></property><property><name>table-names</name><displayName>Table Names</displayName><description>A comma-separated list of names of the database tables containing the parameters.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>parameter-grouping-strategy</propertyName><propertyDisplayName>Parameter Grouping Strategy</propertyDisplayName><dependentValues><dependentValue>grouping-by-table-name</dependentValue></dependentValues></dependency></dependencies></property><property><name>parameter-name-column</name><displayName>Parameter Name Column</displayName><description>The name of a column containing the parameter name.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-value-column</name><displayName>Parameter Value Column</displayName><description>The name of a column containing the parameter value.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-group-name-column</name><displayName>Parameter Group Name Column</displayName><description>The name of a column containing the name of the parameter group into which the parameter should be mapped.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>parameter-grouping-strategy</propertyName><propertyDisplayName>Parameter Grouping Strategy</propertyDisplayName><dependentValues><dependentValue>grouping-by-column</dependentValue></dependentValues></dependency></dependencies></property><property><name>sql-where-clause</name><displayName>SQL WHERE clause</displayName><description>A optional SQL query 'WHERE' clause by which to filter all results.  The 'WHERE' keyword should not be included.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.parameter.EnvironmentVariableParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from environment variables</description><tags><tag>environment</tag><tag>variable</tag></tags><properties><property><name>parameter-group-name</name><displayName>Parameter Group Name</displayName><description>The name of the parameter group that will be fetched.  This indicates the name of the Parameter Context that may receive the fetched parameters.</description><defaultValue>Environment Variables</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>environment-variable-inclusion-strategy</name><displayName>Environment Variable Inclusion Strategy</displayName><description>Indicates how Environment Variables should be included</description><defaultValue>include-all</defaultValue><allowableValues><allowableValue><displayName>Include All</displayName><value>include-all</value><description>All Environment Variables will be included</description></allowableValue><allowableValue><displayName>Comma-Separated</displayName><value>comma-separated</value><description>List comma-separated Environment Variable names to include</description></allowableValue><allowableValue><displayName>Regular Expression</displayName><value>regex</value><description>Include Environment Variable names that match a Regular Expression</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>include-environment-variables</name><displayName>Include Environment Variables</displayName><description>Specifies environment variable names that should be included from the fetched environment variables.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>environment-variable-inclusion-strategy</propertyName><propertyDisplayName>Environment Variable Inclusion Strategy</propertyDisplayName><dependentValues><dependentValue>regex</dependentValue><dependentValue>comma-separated</dependentValue></dependentValues></dependency></dependencies></property></properties><restricted><restrictions><restriction><requiredPermission>access environment credentials</requiredPermission><explanation>Provides operator the ability to read environment variables, which may contain environment credentials.</explanation></restriction></restrictions></restricted></extension><extension><name>org.apache.nifi.parameter.KubernetesSecretParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from files, in the format provided by Kubernetes mounted secrets.  Parameter groups are indicated by a set of directories, and files within the directories map to parameter names. The content of the file becomes the parameter value.  Since Kubernetes mounted Secrets are base64-encoded, the parameter provider defaults to Base64-decoding the value of the parameter from the file.</description><tags><tag>file</tag></tags><properties><property><name>parameter-group-directories</name><displayName>Parameter Group Directories</displayName><description>A comma-separated list of directory absolute paths that will map to named parameter groups.  Each directory that contains files will map to a parameter group, named after the innermost directory in the path.  Files inside the directory will map to parameter names, whose values are the content of each respective file.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-value-byte-limit</name><displayName>Parameter Value Byte Limit</displayName><description>The maximum byte size of a parameter value.  Since parameter values are pulled from the contents of files, this is a safeguard that can prevent memory issues if large files are included.</description><defaultValue>256 B</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>parameter-value-encoding</name><displayName>Parameter Value Encoding</displayName><description>Indicates how parameter values are encoded inside Parameter files.</description><defaultValue>base64</defaultValue><allowableValues><allowableValue><displayName>Base64</displayName><value>base64</value><description>File content is Base64-encoded, and will be decoded before providing the value as a Parameter.</description></allowableValue><allowableValue><displayName>Plain text</displayName><value>plaintext</value><description>File content is not encoded, and will be provided directly as a Parameter value.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><restricted><restrictions><restriction><requiredPermission>read filesystem</requiredPermission><explanation>Provides operator the ability to read from any file that NiFi has access to.</explanation></restriction></restrictions></restricted></extension><extension><name>org.apache.nifi.parameter.OnePasswordParameterProvider</name><type>PARAMETER_PROVIDER</type><description>Fetches parameters from 1Password Connect Server</description><tags><tag>1Password</tag></tags><properties><property><name>Web Client Service Provider</name><displayName>Web Client Service Provider</displayName><description>Controller service for HTTP client operations.</description><controllerServiceDefinition><className>org.apache.nifi.web.client.provider.api.WebClientServiceProvider</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connect Server</name><displayName>Connect Server</displayName><description>HTTP endpoint of the 1Password Connect Server to connect to. Example: http://localhost:8080</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Access Token</name><displayName>Access Token</displayName><description>Access Token used for authentication against the 1Password APIs.</description><required>true</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension><extension><name>org.apache.nifi.flowanalysis.rules.DisallowComponentType</name><type>FLOW_ANALYSIS_RULE</type><description>Produces rule violations for each component (i.e. processors or controller services) of a given type.</description><tags><tag>component</tag><tag>processor</tag><tag>controller service</tag><tag>type</tag></tags><properties><property><name>component-type</name><displayName>Component Type</displayName><description>Components of the given type will produce a rule violation (i.e. they shouldn't exist). Either the simple or the fully qualified name of the type should be provided.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties></extension></extensions></extensionManifest>
\ No newline at end of file
