<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-shopify-nar</artifactId><version>2.3.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-shared-nar</artifactId><version>2.3.0</version></parentNar><systemApiVersion>2.0.0</systemApiVersion><buildInfo><tag>rel/nifi-2.3.0</tag><branch>main</branch><revision>1</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.shopify.GetShopify</name><type>PROCESSOR</type><description>Retrieves objects from a custom Shopify store. The processor yield time must be set to the account's rate limit accordingly.</description><tags><tag>shopify</tag></tags><properties><property><name>store-domain</name><displayName>Store Domain</displayName><description>The domain of the Shopify store, e.g. nifistore.myshopify.com</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>access-token</name><displayName>Access Token</displayName><description>Access Token to authenticate requests</description><required>true</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>api-version</name><displayName>API Version</displayName><description>The Shopify REST API version</description><defaultValue>2022-10</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>object-category</name><displayName>Object Category</displayName><description>Shopify object category</description><allowableValues><allowableValue><displayName>Customers</displayName><value>CUSTOMERS</value><description>Query a Customer resource</description></allowableValue><allowableValue><displayName>Discounts</displayName><value>DISCOUNTS</value><description>Query a Discount resource</description></allowableValue><allowableValue><displayName>Inventory</displayName><value>INVENTORY</value><description>Query an Inventory resource</description></allowableValue><allowableValue><displayName>Online Store</displayName><value>ONLINE_STORE</value><description>Query an Online Store resource</description></allowableValue><allowableValue><displayName>Orders</displayName><value>ORDERS</value><description>Query an Order resource</description></allowableValue><allowableValue><displayName>Products</displayName><value>PRODUCT</value><description>Query a Product resource</description></allowableValue><allowableValue><displayName>Sales Channels</displayName><value>SALES_CHANNELS</value><description>Query a Sales Channel resource</description></allowableValue><allowableValue><displayName>Store Properties</displayName><value>STORE_PROPERTIES</value><description>Query a Store Property resource</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>CUSTOMERS</name><displayName>Customer Category</displayName><description>Customer resource to query</description><allowableValues><allowableValue><displayName>Customers</displayName><value>customers</value><description>The Customer resource stores information about a shop's customers, such as their contact details, their order history, and whether they've agreed to receive email marketing.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>CUSTOMERS</dependentValue></dependentValues></dependency></dependencies></property><property><name>DISCOUNTS</name><displayName>Discount Category</displayName><description>Discount resource to query</description><allowableValues><allowableValue><displayName>Price Rules</displayName><value>price_rules</value><description>The PriceRule resource can be used to get discounts using conditions</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>DISCOUNTS</dependentValue></dependentValues></dependency></dependencies></property><property><name>INVENTORY</name><displayName>Inventory Category</displayName><description>Inventory resource to query</description><allowableValues><allowableValue><displayName>Locations</displayName><value>locations</value><description>A location represents a geographical location where your stores, pop-up stores, headquarters and warehouses exist.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>INVENTORY</dependentValue></dependentValues></dependency></dependencies></property><property><name>ONLINE_STORE</name><displayName>Online Store Category</displayName><description>Online Store resource to query</description><allowableValues><allowableValue><displayName>Blogs</displayName><value>blogs</value><description>Shopify shops come with a built-in blogging engine, allowing a shop to have one or more blogs.</description></allowableValue><allowableValue><displayName>Comments</displayName><value>comments</value><description>A comment is a reader's response to an article in a blog.</description></allowableValue><allowableValue><displayName>Pages</displayName><value>pages</value><description>Shopify stores come with a tool for creating basic HTML web pages.</description></allowableValue><allowableValue><displayName>Redirects</displayName><value>redirects</value><description>A redirect causes a visitor on a specific path on the shop's site to be automatically sent to a different location.</description></allowableValue><allowableValue><displayName>Script Tags</displayName><value>script_tags</value><description>The ScriptTag resource represents remote JavaScript code that is loaded into the pages of a shop's storefront or the order status page of checkout.</description></allowableValue><allowableValue><displayName>Themes</displayName><value>themes</value><description>A theme controls the look and feel of a Shopify online store.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>ONLINE_STORE</dependentValue></dependentValues></dependency></dependencies></property><property><name>ORDERS</name><displayName>Order Category</displayName><description>Order resource to query</description><allowableValues><allowableValue><displayName>Abandoned Checkouts</displayName><value>checkouts</value><description>A checkout is considered abandoned after the customer has added contact information, but before the customer has completed their purchase.</description></allowableValue><allowableValue><displayName>Draft Orders</displayName><value>draft_orders</value><description>Merchants can use draft orders to create orders on behalf of their customers.</description></allowableValue><allowableValue><displayName>Orders</displayName><value>orders</value><description>An order is a customer's request to purchase one or more products from a shop.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>ORDERS</dependentValue></dependentValues></dependency></dependencies></property><property><name>PRODUCT</name><displayName>Product Category</displayName><description>Product resource to query</description><allowableValues><allowableValue><displayName>Collects</displayName><value>collects</value><description>Collects are meant for managing the relationship between products and custom collections.</description></allowableValue><allowableValue><displayName>Custom Collections</displayName><value>custom_collections</value><description>A custom collection is a grouping of products that a merchant can create to make their store easier to browse. </description></allowableValue><allowableValue><displayName>Products</displayName><value>products</value><description>Get products in a merchant's store </description></allowableValue><allowableValue><displayName>Smart Collections</displayName><value>smart_collections</value><description>A smart collection is a grouping of products defined by rules that are set by the merchant.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>PRODUCT</dependentValue></dependentValues></dependency></dependencies></property><property><name>SALES_CHANNELS</name><displayName>Sales Channel Category</displayName><description>Sales Channel resource to query</description><allowableValues><allowableValue><displayName>Collection Listings</displayName><value>collection_listings</value><description>A CollectionListing resource represents a product collection that a merchant has made available to your sales channel.</description></allowableValue><allowableValue><displayName>Product Listings</displayName><value>product_listings</value><description>A ProductListing resource represents a Product which is available to your sales channel.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>SALES_CHANNELS</dependentValue></dependentValues></dependency></dependencies></property><property><name>STORE_PROPERTIES</name><displayName>Store Property Category</displayName><description>Store Property resource to query</description><allowableValues><allowableValue><displayName>Countries</displayName><value>countries</value><description>The Country resource represents the tax rates applied to orders from the different countries where a shop sells its products.</description></allowableValue><allowableValue><displayName>Currencies</displayName><value>currencies</value><description>Merchants who use Shopify Payments can allow customers to pay in their local currency on the online store.</description></allowableValue><allowableValue><displayName>Policies</displayName><value>policies</value><description>Policy resource can be used to access the policies that a merchant has configured for their shop, such as their refund and privacy policies.</description></allowableValue><allowableValue><displayName>Shipping Zones</displayName><value>shipping_zones</value><description>ShippingZone resource can be used to view shipping zones and their countries, provinces, and shipping rates.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>object-category</propertyName><propertyDisplayName>Object Category</propertyDisplayName><dependentValues><dependentValue>STORE_PROPERTIES</dependentValue></dependentValues></dependency></dependencies></property><property><name>result-limit</name><displayName>Result Limit</displayName><description>The maximum number of results to request for each invocation of the Processor</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>is-incremental</name><displayName>Incremental Loading</displayName><description>The processor can incrementally load the queried objects so that each object is queried exactly once. For each query, the processor queries objects which were created or modified after the previous run time but before the current time.</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>incremental-delay</name><displayName>Incremental Delay</displayName><description>The ending timestamp of the time window will be adjusted earlier by the amount configured in this property. For example, with a property value of 10 seconds, an ending timestamp of 12:30:45 would be changed to 12:30:35. Set this property to avoid missing objects when the clock of your local machines and Shopify servers' clock are not in sync.</description><defaultValue>3 sec</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>is-incremental</propertyName><propertyDisplayName>Incremental Loading</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>incremental-initial-start-time</name><displayName>Incremental Initial Start Time</displayName><description>This property specifies the start time when running the first request. Represents an ISO 8601-encoded date and time string. For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is represented as "2019-09-07T15:50:00Z".</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>is-incremental</propertyName><propertyDisplayName>Incremental Loading</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>web-client-service-provider</name><displayName>Web Client Service Provider</displayName><description>Controller service for HTTP client operations</description><controllerServiceDefinition><className>org.apache.nifi.web.client.provider.api.WebClientServiceProvider</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.3.0</version></controllerServiceDefinition><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>For FlowFiles created as a result of a successful query.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the MIME type to application/json</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><stateful><description>For a few resources the processor supports incremental loading. The list of the resources with the supported parameters can be found in the additional details.</description><scopes><scope>CLUSTER</scope></scopes></stateful><inputRequirement>INPUT_FORBIDDEN</inputRequirement><defaultSchedule><strategy>TIMER_DRIVEN</strategy><period>1 min</period><concurrentTasks>1</concurrentTasks></defaultSchedule></extension></extensions></extensionManifest>