<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-nar</artifactId><version>1.27.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></parentNar><systemApiVersion>1.27.0</systemApiVersion><buildInfo><tag>nifi-1.27.0-RC2</tag><branch>UNKNOWN</branch><revision>e0c4461</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.gcp.bigquery.PutBigQuery</name><type>PROCESSOR</type><description>Writes the contents of a FlowFile to a Google BigQuery table. The processor is record based so the schema that is used is driven by the RecordReader. Attributes that are not matched to the target schema are skipped. Exactly once delivery semantics are achieved via stream offsets.</description><tags><tag>google</tag><tag>google cloud</tag><tag>bq</tag><tag>bigquery</tag></tags><properties><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bigquery-api-endpoint</name><displayName>BigQuery API Endpoint</displayName><description>Can be used to override the default BigQuery endpoint. Default is bigquerystorage.googleapis.com:443. Format must be hostname:port.</description><defaultValue>bigquerystorage.googleapis.com:443</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.dataset</name><displayName>Dataset</displayName><description>BigQuery dataset name (Note - The dataset must exist in GCP)</description><defaultValue>${bq.dataset}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.table.name</name><displayName>Table Name</displayName><description>BigQuery table name</description><defaultValue>${bq.table.name}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.record.reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for parsing incoming data.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.transfer.type</name><displayName>Transfer Type</displayName><description>Defines the preferred transfer type streaming or batching</description><defaultValue>STREAM</defaultValue><allowableValues><allowableValue><displayName>STREAM</displayName><value>STREAM</value><description>Use streaming record handling strategy</description></allowableValue><allowableValue><displayName>BATCH</displayName><value>BATCH</value><description>Use batching record handling strategy</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.append.record.count</name><displayName>Append Record Count</displayName><description>The number of records to be appended to the write stream at once. Applicable for both batch and stream types</description><defaultValue>20</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-retry-count</name><displayName>Number of retries</displayName><description>How many retry attempts should be made before routing to the failure relationship.</description><defaultValue>6</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.skip.invalid.rows</name><displayName>Skip Invalid Rows</displayName><description>Sets whether to insert all valid rows of a request, even if invalid rows exist. If not set the entire insert request will fail if it contains an invalid row.</description><defaultValue>false</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>FlowFiles are routed to this relationship after a successful Google BigQuery operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google BigQuery operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>bq.records.count</name><description>Number of records successfully inserted</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><eventDriven>true</eventDriven><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.bigquery.PutBigQueryBatch</see><see>org.apache.nifi.processors.gcp.bigquery.PutBigQueryStreaming</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.bigquery.PutBigQueryBatch</name><type>PROCESSOR</type><deprecationNotice><reason>This processor is deprecated and may be removed in future releases.</reason><alternatives><alternative>org.apache.nifi.processors.gcp.bigquery.PutBigQuery</alternative></alternatives></deprecationNotice><description>Please be aware this processor is deprecated and may be removed in the near future. Use PutBigQuery instead. Batch loads flow files content to a Google BigQuery table.</description><tags><tag>google</tag><tag>google cloud</tag><tag>bq</tag><tag>bigquery</tag></tags><properties><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-retry-count</name><displayName>Number of retries</displayName><description>How many retry attempts should be made before routing to the failure relationship.</description><defaultValue>6</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-host</name><displayName>Proxy host</displayName><description>IP or hostname of the proxy to be used.
 You might need to set the following properties in bootstrap for https proxy usage:
-Djdk.http.auth.tunneling.disabledSchemes=
-Djdk.http.auth.proxying.disabledSchemes=</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-port</name><displayName>Proxy port</displayName><description>Proxy port number</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-name</name><displayName>HTTP Proxy Username</displayName><description>HTTP Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-password</name><displayName>HTTP Proxy Password</displayName><description>HTTP Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.dataset</name><displayName>Dataset</displayName><description>BigQuery dataset name (Note - The dataset must exist in GCP)</description><defaultValue>${bq.dataset}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.table.name</name><displayName>Table Name</displayName><description>BigQuery table name</description><defaultValue>${bq.table.name}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.load.ignore_unknown</name><displayName>Ignore Unknown Values</displayName><description>Sets whether BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. By default unknown values are not allowed.</description><defaultValue>false</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.table.schema</name><displayName>Table Schema</displayName><description>BigQuery schema in JSON format</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.readtimeout</name><displayName>Read Timeout</displayName><description>Load Job Time Out</description><defaultValue>5 minutes</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.load.type</name><displayName>Load file type</displayName><description>Data type of the file to be loaded. Possible values: AVRO, NEWLINE_DELIMITED_JSON, CSV.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.load.create_disposition</name><displayName>Create Disposition</displayName><description>Sets whether the job is allowed to create new tables</description><defaultValue>CREATE_IF_NEEDED</defaultValue><allowableValues><allowableValue><displayName>CREATE_IF_NEEDED</displayName><value>CREATE_IF_NEEDED</value><description>Configures the job to create the table if it does not exist.</description></allowableValue><allowableValue><displayName>CREATE_NEVER</displayName><value>CREATE_NEVER</value><description>Configures the job to fail with a not-found error if the table does not exist.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.load.write_disposition</name><displayName>Write Disposition</displayName><description>Sets the action that should occur if the destination table already exists.</description><defaultValue>WRITE_EMPTY</defaultValue><allowableValues><allowableValue><displayName>WRITE_EMPTY</displayName><value>WRITE_EMPTY</value><description>Configures the job to fail with a duplicate error if the table already exists.</description></allowableValue><allowableValue><displayName>WRITE_APPEND</displayName><value>WRITE_APPEND</value><description>Configures the job to append data to the table if it already exists.</description></allowableValue><allowableValue><displayName>WRITE_TRUNCATE</displayName><value>WRITE_TRUNCATE</value><description>Configures the job to overwrite the table data if table already exists.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.load.max_badrecords</name><displayName>Max Bad Records</displayName><description>Sets the maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. By default no bad record is ignored.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.csv.allow.jagged.rows</name><displayName>CSV Input - Allow Jagged Rows</displayName><description>Set whether BigQuery should accept rows that are missing trailing optional columns. If true, BigQuery treats missing trailing columns as null values. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. By default, rows with missing trailing columns are considered bad records.</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>bq.csv.allow.quoted.new.lines</name><displayName>CSV Input - Allow Quoted New Lines</displayName><description>Sets whether BigQuery should allow quoted data sections that contain newline characters in a CSV file. By default quoted newline are not allowed.</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>bq.csv.charset</name><displayName>CSV Input - Character Set</displayName><description>Sets the character encoding of the data.</description><defaultValue>UTF-8</defaultValue><allowableValues><allowableValue><displayName>UTF-8</displayName><value>UTF-8</value><description></description></allowableValue><allowableValue><displayName>ISO-8859-1</displayName><value>ISO-8859-1</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>bq.csv.delimiter</name><displayName>CSV Input - Field Delimiter</displayName><description>Sets the separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "	" to specify a tab separator. The default value is a comma (',').</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>bq.csv.quote</name><displayName>CSV Input - Quote</displayName><description>Sets the value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the Allow Quoted New Lines property to true.</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>bq.csv.skip.leading.rows</name><displayName>CSV Input - Skip Leading Rows</displayName><description>Sets the number of rows at the top of a CSV file that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.</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>bq.avro.use.logical.types</name><displayName>Avro Input - Use Logical Types</displayName><description>If format is set to Avro and if this option is set to true, you can interpret logical types into their corresponding types (such as TIMESTAMP) instead of only using their raw types (such as INTEGER).</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>FlowFiles are routed to this relationship after a successful Google BigQuery operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google BigQuery operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>bq.job.stat.creation_time</name><description>Time load job creation</description></writesAttribute><writesAttribute><name>bq.job.stat.end_time</name><description>Time load job ended</description></writesAttribute><writesAttribute><name>bq.job.stat.start_time</name><description>Time load job started</description></writesAttribute><writesAttribute><name>bq.job.link</name><description>API Link to load job</description></writesAttribute><writesAttribute><name>bq.job.id</name><description>ID of the BigQuery job</description></writesAttribute><writesAttribute><name>bq.error.message</name><description>Load job error message</description></writesAttribute><writesAttribute><name>bq.error.reason</name><description>Load job error reason</description></writesAttribute><writesAttribute><name>bq.error.location</name><description>Load job error location</description></writesAttribute><writesAttribute><name>bq.records.count</name><description>Number of records successfully inserted</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.storage.PutGCSObject</see><see>org.apache.nifi.processors.gcp.storage.DeleteGCSObject</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.bigquery.PutBigQueryStreaming</name><type>PROCESSOR</type><deprecationNotice><reason>This processor is deprecated and may be removed in future releases.</reason><alternatives><alternative>org.apache.nifi.processors.gcp.bigquery.PutBigQuery</alternative></alternatives></deprecationNotice><description>Please be aware this processor is deprecated and may be removed in the near future. Use PutBigQuery instead. Load data into Google BigQuery table using the streaming API. This processor is not intended to load large flow files as it will load the full content into memory. If you need to insert large flow files, consider using PutBigQueryBatch instead.</description><tags><tag>google</tag><tag>google cloud</tag><tag>bq</tag><tag>gcp</tag><tag>bigquery</tag><tag>record</tag></tags><properties><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-retry-count</name><displayName>Number of retries</displayName><description>How many retry attempts should be made before routing to the failure relationship.</description><defaultValue>6</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-host</name><displayName>Proxy host</displayName><description>IP or hostname of the proxy to be used.
 You might need to set the following properties in bootstrap for https proxy usage:
-Djdk.http.auth.tunneling.disabledSchemes=
-Djdk.http.auth.proxying.disabledSchemes=</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-port</name><displayName>Proxy port</displayName><description>Proxy port number</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-name</name><displayName>HTTP Proxy Username</displayName><description>HTTP Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-password</name><displayName>HTTP Proxy Password</displayName><description>HTTP Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.dataset</name><displayName>Dataset</displayName><description>BigQuery dataset name (Note - The dataset must exist in GCP)</description><defaultValue>${bq.dataset}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.table.name</name><displayName>Table Name</displayName><description>BigQuery table name</description><defaultValue>${bq.table.name}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.load.ignore_unknown</name><displayName>Ignore Unknown Values</displayName><description>Sets whether BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. By default unknown values are not allowed.</description><defaultValue>false</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.record.reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for parsing incoming data.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bq.skip.invalid.rows</name><displayName>Skip Invalid Rows</displayName><description>Sets whether to insert all valid rows of a request, even if invalid rows exist. If not set the entire insert request will fail if it contains an invalid row.</description><defaultValue>false</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>FlowFiles are routed to this relationship after a successful Google BigQuery operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google BigQuery operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>bq.records.count</name><description>Number of records successfully inserted</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>An instance of this component can cause high usage of this system resource.  Multiple instances or high concurrency settings may result a degradation of performance.</description></systemResourceConsideration></systemResourceConsiderations><seeAlso><see>org.apache.nifi.processors.gcp.bigquery.PutBigQueryBatch</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.drive.FetchGoogleDrive</name><type>PROCESSOR</type><description>Fetches files from a Google Drive Folder. Designed to be used in tandem with ListGoogleDrive. Please see Additional Details to set up access to Google Drive.</description><tags><tag>google</tag><tag>drive</tag><tag>storage</tag><tag>fetch</tag></tags><properties><property><name>gcp-credentials-provider-service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>drive-file-id</name><displayName>File ID</displayName><description>The Drive ID of the File to fetch. Please see Additional Details for information on how to obtain the Drive ID.</description><defaultValue>${drive.id}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</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. Supported proxies: HTTP + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Google Doc Export Type</name><displayName>Google Doc Export Type</displayName><description>Google Documents cannot be downloaded directly from Google Drive but instead must be exported to a specified MIME Type. In the event that the incoming FlowFile's MIME Type indicates that the file is a Google Document, this property specifies the MIME Type to export the document to.</description><defaultValue>application/pdf</defaultValue><allowableValues><allowableValue><displayName>PDF</displayName><value>application/pdf</value><description></description></allowableValue><allowableValue><displayName>Plain Text</displayName><value>text/plain</value><description></description></allowableValue><allowableValue><displayName>Microsoft Word</displayName><value>application/vnd.openxmlformats-officedocument.wordprocessingml.document</value><description></description></allowableValue><allowableValue><displayName>OpenDocument</displayName><value>application/vnd.oasis.opendocument.text</value><description></description></allowableValue><allowableValue><displayName>Rich Text</displayName><value>application/rtf</value><description></description></allowableValue><allowableValue><displayName>Web Page (HTML)</displayName><value>application/zip</value><description></description></allowableValue><allowableValue><displayName>EPUB</displayName><value>application/epub+zip</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>Google Spreadsheet Export Type</name><displayName>Google Spreadsheet Export Type</displayName><description>Google Spreadsheets cannot be downloaded directly from Google Drive but instead must be exported to a specified MIME Type. In the event that the incoming FlowFile's MIME Type indicates that the file is a Google Spreadsheet, this property specifies the MIME Type to export the spreadsheet to.</description><defaultValue>text/csv</defaultValue><allowableValues><allowableValue><displayName>CSV (first sheet only)</displayName><value>text/csv</value><description>Comma-separated values. Only the first sheet will be exported.</description></allowableValue><allowableValue><displayName>Microsoft Excel</displayName><value>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</value><description></description></allowableValue><allowableValue><displayName>PDF</displayName><value>application/pdf</value><description></description></allowableValue><allowableValue><displayName>TSV (first sheet only)</displayName><value>text/tab-separated-values</value><description>Tab-separate values. Only the first sheet will be exported.</description></allowableValue><allowableValue><displayName>Web Page (HTML)</displayName><value>text/html</value><description></description></allowableValue><allowableValue><displayName>OpenDocument Spreadsheet</displayName><value>application/x-vnd.oasis.opendocument.spreadsheet</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>Google Presentation Export Type</name><displayName>Google Presentation Export Type</displayName><description>Google Presentations cannot be downloaded directly from Google Drive but instead must be exported to a specified MIME Type. In the event that the incoming FlowFile's MIME Type indicates that the file is a Google Presentation, this property specifies the MIME Type to export the presentation to.</description><defaultValue>application/pdf</defaultValue><allowableValues><allowableValue><displayName>PDF</displayName><value>application/pdf</value><description></description></allowableValue><allowableValue><displayName>Microsoft PowerPoint</displayName><value>application/vnd.openxmlformats-officedocument.presentationml.presentation</value><description></description></allowableValue><allowableValue><displayName>Plain Text</displayName><value>text/plain</value><description></description></allowableValue><allowableValue><displayName>OpenDocument Presentation</displayName><value>application/vnd.oasis.opendocument.presentation</value><description></description></allowableValue><allowableValue><displayName>PNG (first slide only)</displayName><value>image/png</value><description></description></allowableValue><allowableValue><displayName>JPEG (first slide only)</displayName><value>image/jpeg</value><description></description></allowableValue><allowableValue><displayName>SVG (first slide only)</displayName><value>image/svg+xml</value><description>Scalable Vector Graphics. Only the first slide will be exported.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Google Drawing Export Type</name><displayName>Google Drawing Export Type</displayName><description>Google Drawings cannot be downloaded directly from Google Drive but instead must be exported to a specified MIME Type. In the event that the incoming FlowFile's MIME Type indicates that the file is a Google Drawing, this property specifies the MIME Type to export the drawing to.</description><defaultValue>application/pdf</defaultValue><allowableValues><allowableValue><displayName>PDF</displayName><value>application/pdf</value><description></description></allowableValue><allowableValue><displayName>PNG</displayName><value>image/png</value><description></description></allowableValue><allowableValue><displayName>JPEG</displayName><value>image/jpeg</value><description></description></allowableValue><allowableValue><displayName>SVG</displayName><value>image/svg+xml</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>A FlowFile will be routed here for each successfully fetched File.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>A FlowFile will be routed here for each File for which fetch was attempted but failed.</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>drive.id</name><description>The id of the file</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>drive.id</name><description>The id of the file</description></writesAttribute><writesAttribute><name>filename</name><description>The name of the file</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME type of the file</description></writesAttribute><writesAttribute><name>drive.size</name><description>The size of the file</description></writesAttribute><writesAttribute><name>drive.timestamp</name><description>The last modified time or created time (whichever is greater) of the file. The reason for this is that the original modified date of a file is preserved when uploaded to Google Drive. 'Created time' takes the time when the upload occurs. However uploaded files can still be modified later.</description></writesAttribute><writesAttribute><name>error.code</name><description>The error code returned by Google Drive</description></writesAttribute><writesAttribute><name>error.message</name><description>The error message returned by Google Drive</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.drive.ListGoogleDrive</see><see>org.apache.nifi.processors.gcp.drive.PutGoogleDrive</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.drive.ListGoogleDrive</name><type>PROCESSOR</type><description>Performs a listing of concrete files (shortcuts are ignored) in a Google Drive folder. If the 'Record Writer' property is set, a single Output FlowFile is created, and each file in the listing is written as a single record to the output file. Otherwise, for each file in the listing, an individual FlowFile is created, the metadata being written as FlowFile attributes. This Processor is designed to run on Primary Node only in a cluster. If the primary node changes, the new Primary Node will pick up where the previous node left off without duplicating all of the data. Please see Additional Details to set up access to Google Drive.</description><tags><tag>google</tag><tag>drive</tag><tag>storage</tag></tags><properties><property><name>gcp-credentials-provider-service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>folder-id</name><displayName>Folder ID</displayName><description>The ID of the folder from which to pull list of files. Please see Additional Details to set up access to Google Drive and obtain Folder ID. WARNING: Unauthorized access to the folder is treated as if the folder was empty. This results in the processor not creating outgoing FlowFiles. No additional error message is provided.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>recursive-search</name><displayName>Search Recursively</displayName><description>When 'true', will include list of files from concrete sub-folders (ignores shortcuts). Otherwise, will return only files that have the defined 'Folder ID' as their parent directly. WARNING: The listing may fail if there are too many sub-folders (500+).</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>min-age</name><displayName>Minimum File Age</displayName><description>The minimum age a file must be in order to be considered; any files younger than this 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>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>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><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>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>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>listing-strategy</propertyName><propertyDisplayName>Listing Strategy</propertyDisplayName><dependentValues><dependentValue>entities</dependentValue></dependentValues></dependency></dependencies></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>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>listing-strategy</propertyName><propertyDisplayName>Listing Strategy</propertyDisplayName><dependentValues><dependentValue>entities</dependentValue></dependentValues></dependency></dependencies></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><dependencies><dependency><propertyName>listing-strategy</propertyName><propertyDisplayName>Listing Strategy</propertyDisplayName><dependentValues><dependentValue>entities</dependentValue></dependentValues></dependency></dependencies></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>1.27.0</version></controllerServiceDefinition><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. Supported proxies: HTTP + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</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>All FlowFiles that are received are routed to success</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>drive.id</name><description>The id of the file</description></writesAttribute><writesAttribute><name>filename</name><description>The name of the file</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME type of the file</description></writesAttribute><writesAttribute><name>drive.size</name><description>The size of the file</description></writesAttribute><writesAttribute><name>drive.timestamp</name><description>The last modified time or created time (whichever is greater) of the file. The reason for this is that the original modified date of a file is preserved when uploaded to Google Drive. 'Created time' takes the time when the upload occurs. However uploaded files can still be modified later.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><stateful><description>The processor stores necessary data to be able to keep track what files have been listed already. What exactly needs to be stored depends on the 'Listing Strategy'. 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 can pick up where the previous node left off, without duplicating the data.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.drive.FetchGoogleDrive</see><see>org.apache.nifi.processors.gcp.drive.PutGoogleDrive</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.gcp.drive.PutGoogleDrive</name><type>PROCESSOR</type><description>Writes the contents of a FlowFile as a file in Google Drive.</description><tags><tag>google</tag><tag>drive</tag><tag>storage</tag><tag>put</tag></tags><properties><property><name>gcp-credentials-provider-service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>folder-id</name><displayName>Folder ID</displayName><description>The ID of the shared folder. Please see Additional Details to set up access to Google Drive and obtain Folder ID.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>file-name</name><displayName>Filename</displayName><description>The name of the file to upload to the specified Google Drive folder.</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>conflict-resolution-strategy</name><displayName>Conflict Resolution Strategy</displayName><description>Indicates what should happen when a file with the same name already exists in the specified Google Drive folder.</description><defaultValue>fail</defaultValue><allowableValues><allowableValue><displayName>fail</displayName><value>fail</value><description>Handle file conflict as failure.</description></allowableValue><allowableValue><displayName>ignore</displayName><value>ignore</value><description>Ignore conflict, do not change the original file.</description></allowableValue><allowableValue><displayName>replace</displayName><value>replace</value><description>Replace existing file in case of conflict.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>chunked-upload-threshold</name><displayName>Chunked Upload Threshold</displayName><description>The maximum size of the content which is uploaded at once. FlowFiles larger than this threshold are uploaded in chunks.</description><defaultValue>100 MB</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>chunked-upload-size</name><displayName>Chunked Upload Size</displayName><description>Defines the size of a chunk. Used when a FlowFile's size exceeds 'Chunked Upload Threshold' and content is uploaded in smaller chunks. Minimum allowed chunk size is 256 KB, maximum allowed chunk size is 1 GB.</description><defaultValue>10 MB</defaultValue><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. Supported proxies: HTTP + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</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>Files that have been successfully written to Google Drive are transferred to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>Files that could not be written to Google Drive for some reason are transferred to this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>filename</name><description>Uses the FlowFile's filename as the filename for the Google Drive object.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>drive.id</name><description>The id of the file</description></writesAttribute><writesAttribute><name>filename</name><description>The name of the file</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME type of the file</description></writesAttribute><writesAttribute><name>drive.size</name><description>The size of the file</description></writesAttribute><writesAttribute><name>drive.timestamp</name><description>The last modified time or created time (whichever is greater) of the file. The reason for this is that the original modified date of a file is preserved when uploaded to Google Drive. 'Created time' takes the time when the upload occurs. However uploaded files can still be modified later.</description></writesAttribute><writesAttribute><name>error.code</name><description>The error code returned by Google Drive</description></writesAttribute><writesAttribute><name>error.message</name><description>The error message returned by Google Drive</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.drive.ListGoogleDrive</see><see>org.apache.nifi.processors.gcp.drive.FetchGoogleDrive</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.pubsub.ConsumeGCPubSub</name><type>PROCESSOR</type><description>Consumes message from the configured Google Cloud PubSub subscription. If the 'Batch Size' is set, the configured number of messages will be pulled in a single request, else only one message will be pulled.</description><tags><tag>google</tag><tag>google-cloud</tag><tag>gcp</tag><tag>message</tag><tag>pubsub</tag><tag>consume</tag></tags><properties><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-pubsub-subscription</name><displayName>Subscription</displayName><description>Name of the Google Cloud Pub/Sub Subscription</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-pubsub-publish-batch-size</name><displayName>Batch Size Threshold</displayName><description>Indicates the number of messages the cloud service should bundle together in a batch. If not set and left empty, only one message will be used in a batch</description><defaultValue>15</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>api-endpoint</name><displayName>API Endpoint</displayName><description>Override the gRPC endpoint in the form of [host:port]</description><defaultValue>pubsub.googleapis.com:443</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>FlowFiles are routed to this relationship after a successful Google Cloud Pub/Sub operation.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>gcp.pubsub.ackId</name><description>Acknowledgement Id of the consumed Google Cloud PubSub message</description></writesAttribute><writesAttribute><name>gcp.pubsub.messageSize</name><description>Serialized size of the consumed Google Cloud PubSub message</description></writesAttribute><writesAttribute><name>gcp.pubsub.attributesCount</name><description>Number of attributes the consumed PubSub message has, if any</description></writesAttribute><writesAttribute><name>gcp.pubsub.publishTime</name><description>Timestamp value when the message was published</description></writesAttribute><writesAttribute><name>Dynamic Attributes</name><description>Other than the listed attributes, this processor may write zero or more attributes, if the original Google Cloud Publisher client added any attributes to the message while sending</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.pubsub.PublishGCPubSub</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.pubsub.PublishGCPubSub</name><type>PROCESSOR</type><description>Publishes the content of the incoming flowfile to the configured Google Cloud PubSub topic. The processor supports dynamic properties. If any dynamic properties are present, they will be sent along with the message in the form of 'attributes'.</description><tags><tag>google</tag><tag>google-cloud</tag><tag>gcp</tag><tag>message</tag><tag>pubsub</tag><tag>publish</tag></tags><properties><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Input Batch Size</name><displayName>Input Batch Size</displayName><description>Maximum number of FlowFiles processed for each Processor invocation</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>Message Derivation Strategy</name><displayName>Message Derivation Strategy</displayName><description>The strategy used to publish the incoming FlowFile to the Google Cloud PubSub endpoint.</description><defaultValue>FLOWFILE_ORIENTED</defaultValue><allowableValues><allowableValue><displayName>FlowFile Oriented</displayName><value>FLOWFILE_ORIENTED</value><description>Each incoming FlowFile is sent as a Google Cloud PubSub message</description></allowableValue><allowableValue><displayName>Record Oriented</displayName><value>RECORD_ORIENTED</value><description>Each incoming FlowFile is parsed into NiFi records, which are each sent as a Google Cloud PubSub message</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 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>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Message Derivation Strategy</propertyName><propertyDisplayName>Message Derivation Strategy</propertyDisplayName><dependentValues><dependentValue>RECORD_ORIENTED</dependentValue></dependentValues></dependency></dependencies></property><property><name>Record Writer</name><displayName>Record Writer</displayName><description>The Record Writer to use in order to serialize the data before sending to GCPubSub endpoint</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Message Derivation Strategy</propertyName><propertyDisplayName>Message Derivation Strategy</propertyDisplayName><dependentValues><dependentValue>RECORD_ORIENTED</dependentValue></dependentValues></dependency></dependencies></property><property><name>Maximum Message Size</name><displayName>Maximum Message Size</displayName><description>The maximum size of a Google PubSub message in bytes. Defaults to 1 MB (1048576 bytes)</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>Message Derivation Strategy</propertyName><propertyDisplayName>Message Derivation Strategy</propertyDisplayName><dependentValues><dependentValue>FLOWFILE_ORIENTED</dependentValue></dependentValues></dependency></dependencies></property><property><name>gcp-pubsub-topic</name><displayName>Topic Name</displayName><description>Name of the Google Cloud PubSub Topic</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-pubsub-publish-batch-size</name><displayName>Batch Size Threshold</displayName><description>Indicates the number of messages the cloud service should bundle together in a batch. If not set and left empty, only one message will be used in a batch</description><defaultValue>15</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-batch-bytes</name><displayName>Batch Bytes Threshold</displayName><description>Publish request gets triggered based on this Batch Bytes Threshold property and the Batch Size Threshold property, whichever condition is met first.</description><defaultValue>3 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-pubsub-publish-batch-delay</name><displayName>Batch Delay Threshold</displayName><description>Indicates the delay threshold to use for batching. After this amount of time has elapsed (counting from the first element added), the elements will be wrapped up in a batch and sent. This value should not be set too high, usually on the order of milliseconds. Otherwise, calls might appear to never complete.</description><defaultValue>100 millis</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>api-endpoint</name><displayName>API Endpoint</displayName><description>Override the gRPC endpoint in the form of [host:port]</description><defaultValue>pubsub.googleapis.com:443</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>Attribute name</name><value>Value to be set to the attribute</value><description>Attributes to be set for the outgoing Google Cloud PubSub message</description><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>retry</name><description>FlowFiles are routed to this relationship if the Google Cloud Pub/Sub operation fails but attempting the operation again may succeed.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>FlowFiles are routed to this relationship after a successful Google Cloud Pub/Sub operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google Cloud Pub/Sub operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>gcp.pubsub.messageId</name><description>ID of the pubsub message published to the configured Google Cloud PubSub topic</description></writesAttribute><writesAttribute><name>gcp.pubsub.count.records</name><description>Count of pubsub messages published to the configured Google Cloud PubSub topic</description></writesAttribute><writesAttribute><name>gcp.pubsub.topic</name><description>Name of the Google Cloud PubSub topic the message was published to</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>The entirety of the FlowFile's content will be read into memory to be sent as a PubSub message.</description></systemResourceConsideration></systemResourceConsiderations><seeAlso><see>org.apache.nifi.processors.gcp.pubsub.ConsumeGCPubSub</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.pubsub.lite.ConsumeGCPubSubLite</name><type>PROCESSOR</type><description>Consumes message from the configured Google Cloud PubSub Lite subscription.</description><tags><tag>google</tag><tag>google-cloud</tag><tag>gcp</tag><tag>message</tag><tag>pubsub</tag><tag>consume</tag><tag>lite</tag></tags><properties><property><name>gcp-pubsub-subscription</name><displayName>Subscription</displayName><description>Name of the Google Cloud Pub/Sub Subscription. Example: projects/8476107443/locations/europe-west1-d/subscriptions/my-lite-subscription</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-bytes-outstanding</name><displayName>Bytes Outstanding</displayName><description>The number of quota bytes that may be outstanding to the client.</description><defaultValue>10 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-messages-outstanding</name><displayName>Messages Outstanding</displayName><description>The number of messages that may be outstanding to the client.</description><defaultValue>1000</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>FlowFiles are routed to this relationship after a successful Google Cloud Pub/Sub operation.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>gcp.pubsub.messageId</name><description>ID of the pubsub message published to the configured Google Cloud PubSub topic</description></writesAttribute><writesAttribute><name>gcp.pubsub.ordering.key</name><description>If non-empty, identifies related messages for which publish order should be respected. If a 'Subscription' has 'enable_message_ordering' set to 'true', messages published with the same non-empty 'ordering_key' value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All 'PubsubMessage's published in a given 'PublishRequest' must specify the same 'ordering_key' value.</description></writesAttribute><writesAttribute><name>gcp.pubsub.attributesCount</name><description>Number of attributes the consumed PubSub message has, if any</description></writesAttribute><writesAttribute><name>gcp.pubsub.publishTime</name><description>Timestamp value when the message was published</description></writesAttribute><writesAttribute><name>Dynamic Attributes</name><description>Other than the listed attributes, this processor may write zero or more attributes, if the original Google Cloud Publisher client added any attributes to the message while sending</description></writesAttribute></writesAttributes><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.pubsub.lite.PublishGCPubSubLite</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.pubsub.lite.PublishGCPubSubLite</name><type>PROCESSOR</type><description>Publishes the content of the incoming FlowFile to the configured Google Cloud PubSub Lite topic. The processor supports dynamic properties. If any dynamic properties are present, they will be sent along with the message in the form of 'attributes'.</description><tags><tag>google</tag><tag>google-cloud</tag><tag>gcp</tag><tag>message</tag><tag>pubsub</tag><tag>publish</tag><tag>lite</tag></tags><properties><property><name>gcp-pubsub-topic</name><displayName>Topic Name</displayName><description>Name of the Google Cloud PubSub Topic. Example: projects/8476107443/locations/europe-west1-d/topics/my-lite-topic</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-ordering-key</name><displayName>Ordering Key</displayName><description>Messages with the same ordering key will always get published to the same partition. When this property is not set, messages can get published to different partitions if more than one partition exists for the topic.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-pubsub-publish-batch-size</name><displayName>Batch Size Threshold</displayName><description>Indicates the number of messages the cloud service should bundle together in a batch. If not set and left empty, only one message will be used in a batch</description><defaultValue>15</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-batch-bytes</name><displayName>Batch Bytes Threshold</displayName><description>Publish request gets triggered based on this Batch Bytes Threshold property and the Batch Size Threshold property, whichever condition is met first.</description><defaultValue>3 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-pubsub-publish-batch-delay</name><displayName>Batch Delay Threshold</displayName><description>Indicates the delay threshold to use for batching. After this amount of time has elapsed (counting from the first element added), the elements will be wrapped up in a batch and sent. This value should not be set too high, usually on the order of milliseconds. Otherwise, calls might appear to never complete.</description><defaultValue>100 millis</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>Attribute name</name><value>Value to be set to the attribute</value><description>Attributes to be set for the outgoing Google Cloud PubSub Lite message</description><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>FlowFiles are routed to this relationship after a successful Google Cloud Pub/Sub operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google Cloud Pub/Sub operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>gcp.pubsub.messageId</name><description>ID of the pubsub message published to the configured Google Cloud PubSub topic</description></writesAttribute><writesAttribute><name>gcp.pubsub.topic</name><description>Name of the Google Cloud PubSub topic the message was published to</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>The entirety of the FlowFile's content will be read into memory to be sent as a PubSub message.</description></systemResourceConsideration></systemResourceConsiderations><seeAlso><see>org.apache.nifi.processors.gcp.pubsub.lite.ConsumeGCPubSubLite</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.storage.DeleteGCSObject</name><type>PROCESSOR</type><description>Deletes objects from a Google Cloud Bucket. If attempting to delete a file that does not exist, FlowFile is routed to success.</description><tags><tag>google cloud</tag><tag>gcs</tag><tag>google</tag><tag>storage</tag><tag>delete</tag></tags><properties><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-retry-count</name><displayName>Number of retries</displayName><description>How many retry attempts should be made before routing to the failure relationship.</description><defaultValue>6</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-host</name><displayName>Proxy host</displayName><description>IP or hostname of the proxy to be used.
 You might need to set the following properties in bootstrap for https proxy usage:
-Djdk.http.auth.tunneling.disabledSchemes=
-Djdk.http.auth.proxying.disabledSchemes=</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-port</name><displayName>Proxy port</displayName><description>Proxy port number</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-name</name><displayName>HTTP Proxy Username</displayName><description>HTTP Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-password</name><displayName>HTTP Proxy Password</displayName><description>HTTP Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>storage-api-url</name><displayName>Storage API URL</displayName><description>Overrides the default storage URL. Configuring an alternative Storage API URL also overrides the HTTP Host header on requests as described in the Google documentation for Private Service Connections.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-bucket</name><displayName>Bucket</displayName><description>Bucket of the object.</description><defaultValue>${gcs.bucket}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-key</name><displayName>Key</displayName><description>Name of the object.</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>gcs-generation</name><displayName>Generation</displayName><description>The generation of the object to be deleted. If null, will use latest version of the object.</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>FlowFiles are routed to this relationship after a successful Google Cloud Storage operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google Cloud Storage operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.storage.PutGCSObject</see><see>org.apache.nifi.processors.gcp.storage.FetchGCSObject</see><see>org.apache.nifi.processors.gcp.storage.ListGCSBucket</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.storage.FetchGCSObject</name><type>PROCESSOR</type><description>Fetches a file from a Google Cloud Bucket. Designed to be used in tandem with ListGCSBucket.</description><tags><tag>google cloud</tag><tag>google</tag><tag>storage</tag><tag>gcs</tag><tag>fetch</tag></tags><properties><property><name>gcs-bucket</name><displayName>Bucket</displayName><description>Bucket of the object.</description><defaultValue>${gcs.bucket}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-key</name><displayName>Name</displayName><description>Name of the object.</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>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-retry-count</name><displayName>Number of retries</displayName><description>How many retry attempts should be made before routing to the failure relationship.</description><defaultValue>6</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-host</name><displayName>Proxy host</displayName><description>IP or hostname of the proxy to be used.
 You might need to set the following properties in bootstrap for https proxy usage:
-Djdk.http.auth.tunneling.disabledSchemes=
-Djdk.http.auth.proxying.disabledSchemes=</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-port</name><displayName>Proxy port</displayName><description>Proxy port number</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-name</name><displayName>HTTP Proxy Username</displayName><description>HTTP Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-password</name><displayName>HTTP Proxy Password</displayName><description>HTTP Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>storage-api-url</name><displayName>Storage API URL</displayName><description>Overrides the default storage URL. Configuring an alternative Storage API URL also overrides the HTTP Host header on requests as described in the Google documentation for Private Service Connections.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-generation</name><displayName>Object Generation</displayName><description>The generation of the Object to download. If not set, the latest generation will be downloaded.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-server-side-encryption-key</name><displayName>Server Side Encryption Key</displayName><description>An AES256 Key (encoded in base64) which the object has been encrypted in.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-object-range-start</name><displayName>Range Start</displayName><description>The byte position at which to start reading from the object. An empty value or a value of zero will start reading at the beginning of the object.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-object-range-length</name><displayName>Range Length</displayName><description>The number of bytes to download from the object, starting from the Range Start. An empty value or a value that extends beyond the end of the object will read to the end of the object.</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>FlowFiles are routed to this relationship after a successful Google Cloud Storage operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google Cloud Storage operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The name of the file, parsed if possible from the Content-Disposition response header</description></writesAttribute><writesAttribute><name>gcs.bucket</name><description>Bucket of the object.</description></writesAttribute><writesAttribute><name>gcs.key</name><description>Name of the object.</description></writesAttribute><writesAttribute><name>gcs.size</name><description>Size of the object.</description></writesAttribute><writesAttribute><name>gcs.cache.control</name><description>Data cache control of the object.</description></writesAttribute><writesAttribute><name>gcs.component.count</name><description>The number of components which make up the object.</description></writesAttribute><writesAttribute><name>gcs.content.disposition</name><description>The data content disposition of the object.</description></writesAttribute><writesAttribute><name>gcs.content.encoding</name><description>The content encoding of the object.</description></writesAttribute><writesAttribute><name>gcs.content.language</name><description>The content language of the object.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME/Content-Type of the object</description></writesAttribute><writesAttribute><name>gcs.crc32c</name><description>The CRC32C checksum of object's data, encoded in base64 in big-endian order.</description></writesAttribute><writesAttribute><name>gcs.create.time</name><description>The creation time of the object (milliseconds)</description></writesAttribute><writesAttribute><name>gcs.update.time</name><description>The last modification time of the object (milliseconds)</description></writesAttribute><writesAttribute><name>gcs.encryption.algorithm</name><description>The algorithm used to encrypt the object.</description></writesAttribute><writesAttribute><name>gcs.encryption.sha256</name><description>The SHA256 hash of the key used to encrypt the object</description></writesAttribute><writesAttribute><name>gcs.etag</name><description>The HTTP 1.1 Entity tag for the object.</description></writesAttribute><writesAttribute><name>gcs.generated.id</name><description>The service-generated for the object</description></writesAttribute><writesAttribute><name>gcs.generation</name><description>The data generation of the object.</description></writesAttribute><writesAttribute><name>gcs.md5</name><description>The MD5 hash of the object's data encoded in base64.</description></writesAttribute><writesAttribute><name>gcs.media.link</name><description>The media download link to the object.</description></writesAttribute><writesAttribute><name>gcs.metageneration</name><description>The metageneration of the object.</description></writesAttribute><writesAttribute><name>gcs.owner</name><description>The owner (uploader) of the object.</description></writesAttribute><writesAttribute><name>gcs.owner.type</name><description>The ACL entity type of the uploader of the object.</description></writesAttribute><writesAttribute><name>gcs.uri</name><description>The URI of the object as a string.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.storage.ListGCSBucket</see><see>org.apache.nifi.processors.gcp.storage.PutGCSObject</see><see>org.apache.nifi.processors.gcp.storage.DeleteGCSObject</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.storage.ListGCSBucket</name><type>PROCESSOR</type><description>Retrieves a listing of objects from a GCS bucket. For each object that is listed, creates a FlowFile that represents the object so that it can be fetched in conjunction with FetchGCSObject. This Processor is designed to run on Primary Node only in a cluster. If the primary node changes, the new Primary Node will pick up where the previous node left off without duplicating all of the data.</description><tags><tag>google cloud</tag><tag>google</tag><tag>storage</tag><tag>gcs</tag><tag>list</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. This strategy will not pick up any newly added or modified entity if their timestamps are older than the tracked latest timestamp. 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 'Tracing Timestamps'. Works even when multiple subdirectories are being written at the same time while listing is running. However an additional DistributedMapCache controller service is required and more JVM heap memory is used. For more information on how the 'Entity Tracking Time Window' property works, see the description.</description></allowableValue><allowableValue><displayName>No Tracking</displayName><value>none</value><description>This strategy lists all entities without any tracking. The same entities will be listed each time this processor is scheduled. It is recommended to change the default run schedule value. Any property that relates to the persisting state will be ignored.</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>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>listing-strategy</propertyName><propertyDisplayName>Listing Strategy</propertyDisplayName><dependentValues><dependentValue>entities</dependentValue></dependentValues></dependency></dependencies></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><dependencies><dependency><propertyName>listing-strategy</propertyName><propertyDisplayName>Listing Strategy</propertyDisplayName><dependentValues><dependentValue>entities</dependentValue></dependentValues></dependency></dependencies></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>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>et-initial-listing-target</propertyName><propertyDisplayName>Entity Tracking Initial Listing Target</propertyDisplayName><dependentValues><dependentValue>window</dependentValue></dependentValues></dependency></dependencies></property><property><name>gcs-bucket</name><displayName>Bucket</displayName><description>Bucket of the object.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-retry-count</name><displayName>Number of retries</displayName><description>How many retry attempts should be made before routing to the failure relationship.</description><defaultValue>6</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-host</name><displayName>Proxy host</displayName><description>IP or hostname of the proxy to be used.
 You might need to set the following properties in bootstrap for https proxy usage:
-Djdk.http.auth.tunneling.disabledSchemes=
-Djdk.http.auth.proxying.disabledSchemes=</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-port</name><displayName>Proxy port</displayName><description>Proxy port number</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-name</name><displayName>HTTP Proxy Username</displayName><description>HTTP Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-password</name><displayName>HTTP Proxy Password</displayName><description>HTTP Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>storage-api-url</name><displayName>Storage API URL</displayName><description>Overrides the default storage URL. Configuring an alternative Storage API URL also overrides the HTTP Host header on requests as described in the Google documentation for Private Service Connections.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-prefix</name><displayName>Prefix</displayName><description>The prefix used to filter the object list. In most cases, it should end with a forward slash ('/').</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-use-generations</name><displayName>Use Generations</displayName><description>Specifies whether to use GCS Generations, if applicable.  If false, only the latest version of each object will be returned.</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>FlowFiles are routed to this relationship after a successful Google Cloud Storage operation.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>filename</name><description>The name of the file</description></writesAttribute><writesAttribute><name>gcs.bucket</name><description>Bucket of the object.</description></writesAttribute><writesAttribute><name>gcs.key</name><description>Name of the object.</description></writesAttribute><writesAttribute><name>gcs.size</name><description>Size of the object.</description></writesAttribute><writesAttribute><name>gcs.cache.control</name><description>Data cache control of the object.</description></writesAttribute><writesAttribute><name>gcs.component.count</name><description>The number of components which make up the object.</description></writesAttribute><writesAttribute><name>gcs.content.disposition</name><description>The data content disposition of the object.</description></writesAttribute><writesAttribute><name>gcs.content.encoding</name><description>The content encoding of the object.</description></writesAttribute><writesAttribute><name>gcs.content.language</name><description>The content language of the object.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME/Content-Type of the object</description></writesAttribute><writesAttribute><name>gcs.crc32c</name><description>The CRC32C checksum of object's data, encoded in base64 in big-endian order.</description></writesAttribute><writesAttribute><name>gcs.create.time</name><description>The creation time of the object (milliseconds)</description></writesAttribute><writesAttribute><name>gcs.update.time</name><description>The last modification time of the object (milliseconds)</description></writesAttribute><writesAttribute><name>gcs.encryption.algorithm</name><description>The algorithm used to encrypt the object.</description></writesAttribute><writesAttribute><name>gcs.encryption.sha256</name><description>The SHA256 hash of the key used to encrypt the object</description></writesAttribute><writesAttribute><name>gcs.etag</name><description>The HTTP 1.1 Entity tag for the object.</description></writesAttribute><writesAttribute><name>gcs.generated.id</name><description>The service-generated for the object</description></writesAttribute><writesAttribute><name>gcs.generation</name><description>The data generation of the object.</description></writesAttribute><writesAttribute><name>gcs.md5</name><description>The MD5 hash of the object's data encoded in base64.</description></writesAttribute><writesAttribute><name>gcs.media.link</name><description>The media download link to the object.</description></writesAttribute><writesAttribute><name>gcs.metageneration</name><description>The metageneration of the object.</description></writesAttribute><writesAttribute><name>gcs.owner</name><description>The owner (uploader) of the object.</description></writesAttribute><writesAttribute><name>gcs.owner.type</name><description>The ACL entity type of the uploader of the object.</description></writesAttribute><writesAttribute><name>gcs.uri</name><description>The URI of the object as a string.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><triggerWhenEmpty>true</triggerWhenEmpty><primaryNodeOnly>true</primaryNodeOnly><stateful><description>After performing a listing of keys, the timestamp of the newest key is stored, along with the keys that share that same timestamp. This allows the Processor to list only keys 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 can pick up where the previous node left off, without duplicating the data.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.storage.PutGCSObject</see><see>org.apache.nifi.processors.gcp.storage.DeleteGCSObject</see><see>org.apache.nifi.processors.gcp.storage.FetchGCSObject</see></seeAlso><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension><extension><name>org.apache.nifi.processors.gcp.storage.PutGCSObject</name><type>PROCESSOR</type><description>Writes the contents of a FlowFile as an object in a Google Cloud Storage.</description><tags><tag>google</tag><tag>google cloud</tag><tag>gcs</tag><tag>archive</tag><tag>put</tag></tags><properties><property><name>gcp-project-id</name><displayName>Project ID</displayName><description>Google Cloud Project ID</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>GCP Credentials Provider Service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-retry-count</name><displayName>Number of retries</displayName><description>How many retry attempts should be made before routing to the failure relationship.</description><defaultValue>6</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-host</name><displayName>Proxy host</displayName><description>IP or hostname of the proxy to be used.
 You might need to set the following properties in bootstrap for https proxy usage:
-Djdk.http.auth.tunneling.disabledSchemes=
-Djdk.http.auth.proxying.disabledSchemes=</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-port</name><displayName>Proxy port</displayName><description>Proxy port number</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-name</name><displayName>HTTP Proxy Username</displayName><description>HTTP Proxy Username</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-proxy-user-password</name><displayName>HTTP Proxy Password</displayName><description>HTTP Proxy Password</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>storage-api-url</name><displayName>Storage API URL</displayName><description>Overrides the default storage URL. Configuring an alternative Storage API URL also overrides the HTTP Host header on requests as described in the Google documentation for Private Service Connections.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-bucket</name><displayName>Bucket</displayName><description>Bucket of the object.</description><defaultValue>${gcs.bucket}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-key</name><displayName>Key</displayName><description>Name of the object.</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>gcs-content-type</name><displayName>Content Type</displayName><description>Content Type for the file, i.e. text/plain</description><defaultValue>${mime.type}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-object-md5</name><displayName>MD5 Hash</displayName><description>MD5 Hash (encoded in Base64) of the file for server-side validation.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-object-crc32c</name><displayName>CRC32C Checksum</displayName><description>CRC32C Checksum (encoded in Base64, big-Endian order) of the file for server-side validation.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-object-acl</name><displayName>Object ACL</displayName><description>Access Control to be attached to the object uploaded. Not providing this will revert to bucket defaults.</description><allowableValues><allowableValue><displayName>All Authenticated Users</displayName><value>ALL_AUTHENTICATED_USERS</value><description>Gives the bucket or object owner OWNER permission, and gives all authenticated Google account holders READER and WRITER permissions. All other permissions are removed.</description></allowableValue><allowableValue><displayName>Authenticated Read</displayName><value>AUTHENTICATED_READ</value><description>Gives the bucket or object owner OWNER permission, and gives all authenticated Google account holders READER permission. All other permissions are removed.</description></allowableValue><allowableValue><displayName>Bucket Owner Full Control</displayName><value>BUCKET_OWNER_FULL_CONTROL</value><description>Gives the object and bucket owners OWNER permission. All other permissions are removed.</description></allowableValue><allowableValue><displayName>Bucket Owner Read Only</displayName><value>BUCKET_OWNER_READ</value><description>Gives the object owner OWNER permission, and gives the bucket owner READER permission. All other permissions are removed.</description></allowableValue><allowableValue><displayName>Private</displayName><value>PRIVATE</value><description>Gives the bucket or object owner OWNER permission for a bucket or object, and removes all other access permissions.</description></allowableValue><allowableValue><displayName>Project Private</displayName><value>PROJECT_PRIVATE</value><description>Gives permission to the project team based on their roles. Anyone who is part of the team has READER permission. Project owners and project editors have OWNER permission. This is the default ACL for newly created buckets. This is also the default ACL for newly created objects unless the default object ACL for that bucket has been changed.</description></allowableValue><allowableValue><displayName>Public Read Only</displayName><value>PUBLIC_READ</value><description>Gives the bucket or object owner OWNER permission, and gives all users, both authenticated and anonymous, READER permission. When you apply this to an object, anyone on the Internet can read the object without authenticating.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-server-side-encryption-key</name><displayName>Server Side Encryption Key</displayName><description>An AES256 Encryption Key (encoded in base64) for server-side encryption of the object.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcs-overwrite-object</name><displayName>Overwrite Object</displayName><description>If false, the upload to GCS will succeed only if the object does not exist.</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>gcs-content-disposition-type</name><displayName>Content Disposition Type</displayName><description>Type of RFC-6266 Content Disposition to be attached to the object</description><allowableValues><allowableValue><displayName>Inline</displayName><value>inline</value><description>Indicates that the object should be loaded and rendered within the browser.</description></allowableValue><allowableValue><displayName>Attachment</displayName><value>attachment</value><description>Indicates that the object should be saved (using a Save As... dialog) rather than opened directly within the browser</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gzip.content.enabled</name><displayName>GZIP Compression Enabled</displayName><description>Signals to the GCS Blob Writer whether GZIP compression during transfer is desired. False means do not gzip and can boost performance in many cases.</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><dynamicProperties><dynamicProperty><name>The name of a User-Defined Metadata field to add to the GCS Object</name><value>The value of a User-Defined Metadata field to add to the GCS Object</value><description>Allows user-defined metadata to be added to the GCS object as key/value pairs</description><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>FlowFiles are routed to this relationship after a successful Google Cloud Storage operation.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to this relationship if the Google Cloud Storage operation fails.</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>filename</name><description>Uses the FlowFile's filename as the filename for the GCS object</description></readsAttribute><readsAttribute><name>mime.type</name><description>Uses the FlowFile's MIME type as the content-type for the GCS object</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>gcs.bucket</name><description>Bucket of the object.</description></writesAttribute><writesAttribute><name>gcs.key</name><description>Name of the object.</description></writesAttribute><writesAttribute><name>gcs.size</name><description>Size of the object.</description></writesAttribute><writesAttribute><name>gcs.cache.control</name><description>Data cache control of the object.</description></writesAttribute><writesAttribute><name>gcs.component.count</name><description>The number of components which make up the object.</description></writesAttribute><writesAttribute><name>gcs.content.disposition</name><description>The data content disposition of the object.</description></writesAttribute><writesAttribute><name>gcs.content.encoding</name><description>The content encoding of the object.</description></writesAttribute><writesAttribute><name>gcs.content.language</name><description>The content language of the object.</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME/Content-Type of the object</description></writesAttribute><writesAttribute><name>gcs.crc32c</name><description>The CRC32C checksum of object's data, encoded in base64 in big-endian order.</description></writesAttribute><writesAttribute><name>gcs.create.time</name><description>The creation time of the object (milliseconds)</description></writesAttribute><writesAttribute><name>gcs.update.time</name><description>The last modification time of the object (milliseconds)</description></writesAttribute><writesAttribute><name>gcs.encryption.algorithm</name><description>The algorithm used to encrypt the object.</description></writesAttribute><writesAttribute><name>gcs.encryption.sha256</name><description>The SHA256 hash of the key used to encrypt the object</description></writesAttribute><writesAttribute><name>gcs.etag</name><description>The HTTP 1.1 Entity tag for the object.</description></writesAttribute><writesAttribute><name>gcs.generated.id</name><description>The service-generated for the object</description></writesAttribute><writesAttribute><name>gcs.generation</name><description>The data generation of the object.</description></writesAttribute><writesAttribute><name>gcs.md5</name><description>The MD5 hash of the object's data encoded in base64.</description></writesAttribute><writesAttribute><name>gcs.media.link</name><description>The media download link to the object.</description></writesAttribute><writesAttribute><name>gcs.metageneration</name><description>The metageneration of the object.</description></writesAttribute><writesAttribute><name>gcs.owner</name><description>The owner (uploader) of the object.</description></writesAttribute><writesAttribute><name>gcs.owner.type</name><description>The ACL entity type of the uploader of the object.</description></writesAttribute><writesAttribute><name>gcs.uri</name><description>The URI of the object as a string.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.gcp.storage.FetchGCSObject</see><see>org.apache.nifi.processors.gcp.storage.DeleteGCSObject</see><see>org.apache.nifi.processors.gcp.storage.ListGCSBucket</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.vision.GetGcpVisionAnnotateFilesOperationStatus</name><type>PROCESSOR</type><description>Retrieves the current status of an Google Vision operation.</description><tags><tag>Google</tag><tag>Cloud</tag><tag>Vision</tag><tag>Machine Learning</tag></tags><properties><property><name>gcp-credentials-provider-service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>operationKey</name><displayName>GCP Operation Key</displayName><description>The unique identifier of the Vision operation.</description><defaultValue>${operationKey}</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>running</name><description>The job is currently still being processed</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>FlowFiles are routed to success relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to failure relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>Upon successful completion, the original FlowFile will be routed to this relationship.</description><autoTerminated>true</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>operationKey</name><description>A unique identifier of the operation designated by the Vision server.</description></readsAttribute></readsAttributes><writesAttributes></writesAttributes><seeAlso><see>org.apache.nifi.processors.gcp.vision.StartGcpVisionAnnotateFilesOperation</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.vision.GetGcpVisionAnnotateImagesOperationStatus</name><type>PROCESSOR</type><description>Retrieves the current status of an Google Vision operation.</description><tags><tag>Google</tag><tag>Cloud</tag><tag>Vision</tag><tag>Machine Learning</tag></tags><properties><property><name>gcp-credentials-provider-service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>operationKey</name><displayName>GCP Operation Key</displayName><description>The unique identifier of the Vision operation.</description><defaultValue>${operationKey}</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>running</name><description>The job is currently still being processed</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>FlowFiles are routed to success relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to failure relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>Upon successful completion, the original FlowFile will be routed to this relationship.</description><autoTerminated>true</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>operationKey</name><description>A unique identifier of the operation designated by the Vision server.</description></readsAttribute></readsAttributes><writesAttributes></writesAttributes><seeAlso><see>org.apache.nifi.processors.gcp.vision.StartGcpVisionAnnotateImagesOperation</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.vision.StartGcpVisionAnnotateFilesOperation</name><type>PROCESSOR</type><description>Trigger a Vision operation on file input. It should be followed by GetGcpVisionAnnotateFilesOperationStatus processor in order to monitor operation status.</description><tags><tag>Google</tag><tag>Cloud</tag><tag>Machine Learning</tag><tag>Vision</tag></tags><properties><property><name>json-payload</name><displayName>JSON Payload</displayName><description>JSON request for AWS Machine Learning services. The Processor will use FlowFile content for the request when this property is not specified.</description><defaultValue>{
    "requests": [
        {
            "inputConfig": {
                "gcsSource": {
                    "uri": "gs://${gcs.bucket}/${filename}"
                },
                "mimeType": "application/pdf"
            },
            "features": [{
                    "type": "${vision-feature-type}",
                    "maxResults": 4
                }],
            "outputConfig": {
                "gcsDestination": {
                    "uri": "gs://${output-bucket}/${filename}/"
                },
                "batchSize": 2
            }
        }]
}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-credentials-provider-service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>output-bucket</name><displayName>Output Bucket</displayName><description>Name of the GCS bucket where the output of the Vision job will be persisted. The value of this property applies when the JSON Payload property is configured. The JSON Payload property value can use Expression Language to reference the value of ${output-bucket}</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>vision-feature-type</name><displayName>Vision Feature Type</displayName><description>Type of GCP Vision Feature. The value of this property applies when the JSON Payload property is configured. The JSON Payload property value can use Expression Language to reference the value of ${vision-feature-type}</description><defaultValue>TEXT_DETECTION</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>success</name><description>FlowFiles are routed to success relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to failure relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>operationKey</name><description>A unique identifier of the operation returned by the Vision server.</description></writesAttribute></writesAttributes><seeAlso><see>org.apache.nifi.processors.gcp.vision.GetGcpVisionAnnotateFilesOperationStatus</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.vision.StartGcpVisionAnnotateImagesOperation</name><type>PROCESSOR</type><description>Trigger a Vision operation on image input. It should be followed by GetGcpVisionAnnotateImagesOperationStatus processor in order to monitor operation status.</description><tags><tag>Google</tag><tag>Cloud</tag><tag>Machine Learning</tag><tag>Vision</tag></tags><properties><property><name>json-payload</name><displayName>JSON Payload</displayName><description>JSON request for AWS Machine Learning services. The Processor will use FlowFile content for the request when this property is not specified.</description><defaultValue>{
    "requests": [{
        "image": {
            "source": {
                "imageUri": "gs://${gcs.bucket}/${filename}"
            }
        },
        "features": [{
            "type": "${vision-feature-type}",
            "maxResults": 4
        }]
    }],
    "outputConfig": {
        "gcsDestination": {
            "uri": "gs://${output-bucket}/${filename}/"
        },
        "batchSize": 2
    }
}</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gcp-credentials-provider-service</name><displayName>GCP Credentials Provider Service</displayName><description>The Controller Service used to obtain Google Cloud Platform credentials.</description><controllerServiceDefinition><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>output-bucket</name><displayName>Output Bucket</displayName><description>Name of the GCS bucket where the output of the Vision job will be persisted. The value of this property applies when the JSON Payload property is configured. The JSON Payload property value can use Expression Language to reference the value of ${output-bucket}</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>vision-feature-type</name><displayName>Vision Feature Type</displayName><description>Type of GCP Vision Feature. The value of this property applies when the JSON Payload property is configured. The JSON Payload property value can use Expression Language to reference the value of ${vision-feature-type}</description><defaultValue>TEXT_DETECTION</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>success</name><description>FlowFiles are routed to success relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles are routed to failure relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>operationKey</name><description>A unique identifier of the operation returned by the Vision server.</description></writesAttribute></writesAttributes><seeAlso><see>org.apache.nifi.processors.gcp.vision.GetGcpVisionAnnotateImagesOperationStatus</see></seeAlso></extension><extension><name>org.apache.nifi.processors.gcp.credentials.service.GCPCredentialsControllerService</name><type>CONTROLLER_SERVICE</type><description>Defines credentials for Google Cloud Platform processors. Uses Application Default credentials without configuration. Application Default credentials support environmental variable (GOOGLE_APPLICATION_CREDENTIALS) pointing to a credential file, the config generated by `gcloud auth application-default login`, AppEngine/Compute Engine service accounts, etc.</description><tags><tag>gcp</tag><tag>credentials</tag><tag>provider</tag></tags><properties><property><name>application-default-credentials</name><displayName>Use Application Default Credentials</displayName><description>If true, uses Google Application Default Credentials, which checks the GOOGLE_APPLICATION_CREDENTIALS environment variable for a filepath to a service account JSON key, the config generated by the gcloud sdk, the App Engine service account, and the Compute Engine service account.</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>compute-engine-credentials</name><displayName>Use Compute Engine Credentials</displayName><description>If true, uses Google Compute Engine Credentials of the Compute Engine VM Instance which NiFi is running on.</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>service-account-json-file</name><displayName>Service Account JSON File</displayName><description>Path to a file containing a Service Account key file in JSON format.</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>service-account-json</name><displayName>Service Account JSON</displayName><description>The raw JSON containing a Service Account keyfile.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</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. Supported proxies: HTTP + AuthN</description><controllerServiceDefinition><className>org.apache.nifi.proxy.ProxyConfigurationService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><restricted><restrictions><restriction><requiredPermission>access environment credentials</requiredPermission><explanation>The default configuration can read environment variables and system properties for credentials</explanation></restriction></restrictions></restricted><providedServiceAPIs><providedServiceAPI><className>org.apache.nifi.gcp.credentials.service.GCPCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-gcp-services-api-nar</artifactId><version>1.27.0</version></providedServiceAPI></providedServiceAPIs></extension></extensions></extensionManifest>