<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-grpc-nar</artifactId><version>1.22.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></parentNar><systemApiVersion>1.22.0</systemApiVersion><buildInfo><tag>nifi-1.22.0-RC1</tag><branch>UNKNOWN</branch><revision>71e3ea9</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.grpc.InvokeGRPC</name><type>PROCESSOR</type><description>Sends FlowFiles, optionally with content, to a configurable remote gRPC service endpoint. The remote gRPC service must abide by the service IDL defined in NiFi.  gRPC isn't intended to carry large payloads,  so this processor should be used only when FlowFile sizes are on the order of megabytes. The default maximum message size is 4MB.</description><tags><tag>grpc</tag><tag>rpc</tag><tag>client</tag></tags><properties><property><name>Remote gRPC service hostname</name><displayName>Remote gRPC service hostname</displayName><description>Remote host which will be connected to</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Remote gRPC service port</name><displayName>Remote gRPC service port</displayName><description>Remote port which will be connected to</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Message Size</name><displayName>Max Message Size</displayName><description>The maximum size of FlowFiles that this processor will allow to be received. The default is 4MB. If FlowFiles exceed this size, you should consider using another transport mechanism as gRPC isn't designed for heavy payloads.</description><defaultValue>4MB</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use SSL/TLS</name><displayName>Use TLS</displayName><description>Whether or not to use TLS to send the contents of the gRPC messages.</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>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The SSL Context Service used to provide client certificate information for TLS (https) connections.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.SSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Use SSL/TLS</propertyName><propertyDisplayName>Use TLS</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>Send FlowFile Content</name><displayName>Send FlowFile Content</displayName><description>Whether or not to include the FlowFile content in the FlowFileRequest to the gRPC service.</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><property><name>Always Output Response</name><displayName>Always Output Response</displayName><description>Will force a response FlowFile to be generated and routed to the 'Response' relationship regardless of what the server status code received is or if the processor is configured to put the server response body in the request attribute. In the later configuration a request FlowFile with the response body in the attribute and a typical response FlowFile will be emitted to their respective relationships.</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>Penalize on "No Retry"</name><displayName>Penalize on "No Retry"</displayName><description>Enabling this property will penalize FlowFiles that are routed to the "No Retry" 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></properties><relationships><relationship><name>Original</name><description>The original FlowFile will be routed upon success. It will have new attributes detailing the success of the request.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Failure</name><description>The original FlowFile will be routed on any type of connection failure, timeout or general exception. It will have new attributes detailing the request.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Retry</name><description>The original FlowFile will be routed on any status code that can be retried. It will have new attributes detailing the request.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>No Retry</name><description>The original FlowFile will be routed on any status code that should NOT be retried.  It will have new attributes detailing the request.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>Response</name><description>A Response FlowFile will be routed upon success. If the 'Output Response Regardless' property is true then the response will be sent to this relationship regardless of the status code received.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>invokegrpc.response.code</name><description>The response code that is returned (0 = ERROR, 1 = SUCCESS, 2 = RETRY)</description></writesAttribute><writesAttribute><name>invokegrpc.response.body</name><description>The response message that is returned</description></writesAttribute><writesAttribute><name>invokegrpc.service.host</name><description>The remote gRPC service hostname</description></writesAttribute><writesAttribute><name>invokegrpc.service.port</name><description>The remote gRPC service port</description></writesAttribute><writesAttribute><name>invokegrpc.java.exception.class</name><description>The Java exception class raised when the processor fails</description></writesAttribute><writesAttribute><name>invokegrpc.java.exception.message</name><description>The Java exception message raised when the processor fails</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><eventDriven>true</eventDriven><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.grpc.ListenGRPC</name><type>PROCESSOR</type><description>Starts a gRPC server and listens on the given port to transform the incoming messages into FlowFiles. The message format is defined by the standard gRPC protobuf IDL provided by NiFi. gRPC isn't intended to carry large payloads, so this processor should be used only when FlowFile sizes are on the order of megabytes. The default maximum message size is 4MB.</description><tags><tag>ingest</tag><tag>grpc</tag><tag>rpc</tag><tag>listen</tag></tags><properties><property><name>Local gRPC service port</name><displayName>Local gRPC Service Port</displayName><description>The local port that the gRPC service will listen on.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Use TLS</name><displayName>Use TLS</displayName><description>Whether or not to use TLS to receive the contents of the gRPC messages.</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>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The SSL Context Service used to provide server certificate information for TLS (https) connections. Keystore must be configured on the service. If truststore is also configured, it will turn on and require client certificate authentication (Mutual TLS).</description><controllerServiceDefinition><className>org.apache.nifi.ssl.RestrictedSSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Use TLS</propertyName><propertyDisplayName>Use TLS</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>Authorized DN Pattern</name><displayName>Authorized DN Pattern</displayName><description>A Regular Expression to apply against the Distinguished Name of incoming connections. If the Pattern does not match the DN, the connection will be refused. The property will only be used if client certificate authentication (Mutual TLS) has been configured on SSL Context Service, otherwise it will be ignored.</description><defaultValue>.*</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Use TLS</propertyName><propertyDisplayName>Use TLS</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>Flow Control Window</name><displayName>Flow Control Window</displayName><description>The initial HTTP/2 flow control window for both new streams and overall connection. Flow-control schemes ensure that streams on the same connection do not destructively interfere with each other. The default is 1MB.</description><defaultValue>1MB</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Max Message Size</name><displayName>Maximum Message Size</displayName><description>The maximum size of FlowFiles that this processor will allow to be received. The default is 4MB. If FlowFiles exceed this size, you should consider using another transport mechanism as gRPC isn't designed for heavy payloads.</description><defaultValue>4MB</defaultValue><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>The FlowFile was received successfully.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>listengrpc.remote.user.dn</name><description>The DN of the user who sent the FlowFile to this NiFi</description></writesAttribute><writesAttribute><name>listengrpc.remote.host</name><description>The IP of the client who sent the FlowFile to this NiFi</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension></extensions></extensionManifest>