<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-zendesk-nar</artifactId><version>2.0.0-M4</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-shared-nar</artifactId><version>2.0.0-M4</version></parentNar><systemApiVersion>2.0.0-M4</systemApiVersion><buildInfo><tag>nifi-2.0.0-M4-RC1</tag><branch>UNKNOWN</branch><revision>19c5be0</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.zendesk.GetZendesk</name><type>PROCESSOR</type><description>Incrementally fetches data from Zendesk API.</description><tags><tag>zendesk</tag></tags><properties><property><name>web-client-service-provider</name><displayName>Web Client Service Provider</displayName><description>Controller service for HTTP client operations.</description><controllerServiceDefinition><className>org.apache.nifi.web.client.provider.api.WebClientServiceProvider</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-subdomain</name><displayName>Subdomain Name</displayName><description>Name of the Zendesk subdomain.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-user</name><displayName>User Name</displayName><description>Login user to Zendesk subdomain.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-authentication-type-name</name><displayName>Authentication Type</displayName><description>Type of authentication to Zendesk API.</description><allowableValues><allowableValue><displayName>Password</displayName><value>password</value><description>Password of Zendesk login user.</description></allowableValue><allowableValue><displayName>Token</displayName><value>token</value><description>Authentication token generated in Zendesk Admin menu for API access.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-authentication-value-name</name><displayName>Authentication Credential</displayName><description>Password or authentication token for Zendesk login user.</description><required>true</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-export-method</name><displayName>Export Method</displayName><description>Method for incremental export.</description><allowableValues><allowableValue><displayName>Cursor Based</displayName><value>cursor</value><description>In cursor-based incremental exports, each page of results includes an "after" cursor pointer to use as the starting cursor for the next page of results.</description></allowableValue><allowableValue><displayName>Time Based</displayName><value>time</value><description>In time-based incremental exports, each page of results includes an end time to use as the start time for the next page of results.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-resource</name><displayName>Resource</displayName><description>The particular Zendesk resource which is meant to be exported.</description><allowableValues><allowableValue><displayName>Tickets</displayName><value>/api/v2/incremental/tickets</value><description>Tickets are the means through which end users (customers) communicate with agents in Zendesk Support.</description></allowableValue><allowableValue><displayName>Ticket Events</displayName><value>/api/v2/incremental/ticket_events</value><description>Stream of changes that occurred on tickets. Each event is tied to an update on a ticket and contains all the fields that were updated in that change.</description></allowableValue><allowableValue><displayName>Ticket Metric Events</displayName><value>/api/v2/incremental/ticket_metric_events</value><description>Ticket metric events API can be used to track reply times, agent work times, and requester wait times.</description></allowableValue><allowableValue><displayName>Users</displayName><value>/api/v2/incremental/users</value><description>Zendesk Support has three types of users: end users (customers), agents, and administrators.</description></allowableValue><allowableValue><displayName>Organizations</displayName><value>/api/v2/incremental/organizations</value><description>Just as agents can be segmented into groups in Zendesk Support, customers (end-users) can be segmented into organizations.</description></allowableValue><allowableValue><displayName>Articles</displayName><value>/api/v2/help_center/incremental/articles</value><description>Articles are content items such as help topics or tech notes contained in sections.</description></allowableValue><allowableValue><displayName>NPS - Responses</displayName><value>/api/v2/nps/incremental/responses</value><description>When a recipient responds to an NPS survey, their rating, comment, and last survey date are captured.</description></allowableValue><allowableValue><displayName>NPS - Recipients</displayName><value>/api/v2/nps/incremental/recipients</value><description>Every NPS survey is delivered to one or multiple recipients. For most businesses that use Zendesk Support, the recipients are customers. Agents and admins will never receive surveys.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-query-start-timestamp</name><displayName>Query Start Timestamp</displayName><description>Initial timestamp to query Zendesk API from in Unix timestamp seconds format.</description><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>For FlowFiles created as a result of a successful HTTP request.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>record.count</name><description>The number of records fetched by the processor.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><primaryNodeOnly>true</primaryNodeOnly><defaultSettings><yieldDuration>20 sec</yieldDuration><penaltyDuration>30 sec</penaltyDuration><bulletinLevel>WARN</bulletinLevel></defaultSettings><stateful><description>Paging cursor for Zendesk API is stored. Cursor is updated after each successful request.</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><extension><name>org.apache.nifi.processors.zendesk.PutZendeskTicket</name><type>PROCESSOR</type><description>Create Zendesk tickets using the Zendesk API.</description><tags><tag>zendesk, ticket</tag></tags><properties><property><name>web-client-service-provider</name><displayName>Web Client Service Provider</displayName><description>Controller service for HTTP client operations.</description><controllerServiceDefinition><className>org.apache.nifi.web.client.provider.api.WebClientServiceProvider</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-subdomain</name><displayName>Subdomain Name</displayName><description>Name of the Zendesk subdomain.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-user</name><displayName>User Name</displayName><description>Login user to Zendesk subdomain.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-authentication-type-name</name><displayName>Authentication Type</displayName><description>Type of authentication to Zendesk API.</description><allowableValues><allowableValue><displayName>Password</displayName><value>password</value><description>Password of Zendesk login user.</description></allowableValue><allowableValue><displayName>Token</displayName><value>token</value><description>Authentication token generated in Zendesk Admin menu for API access.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-authentication-value-name</name><displayName>Authentication Credential</displayName><description>Password or authentication token for Zendesk login user.</description><required>true</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for parsing incoming data and determining the data's schema.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>zendesk-comment-body</name><displayName>Comment Body</displayName><description>The content or the path to the comment body in the incoming record.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>zendesk-record-reader</propertyName><propertyDisplayName>Record Reader</propertyDisplayName></dependency></dependencies></property><property><name>zendesk-subject</name><displayName>Subject</displayName><description>The content or the path to the subject in the incoming record.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>zendesk-record-reader</propertyName><propertyDisplayName>Record Reader</propertyDisplayName></dependency></dependencies></property><property><name>zendesk-priority</name><displayName>Priority</displayName><description>The content or the path to the priority in the incoming record.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>zendesk-record-reader</propertyName><propertyDisplayName>Record Reader</propertyDisplayName></dependency></dependencies></property><property><name>zendesk-type</name><displayName>Type</displayName><description>The content or the path to the type in the incoming record.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>zendesk-record-reader</propertyName><propertyDisplayName>Record Reader</propertyDisplayName></dependency></dependencies></property></properties><dynamicProperties><dynamicProperty><name>The path in the request object to add. The value needs be a valid JsonPointer.</name><value>The path in the incoming record to get the value from.</value><description>Additional property to be added to the Zendesk request object.</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>failure</name><description>A FlowFile is routed to this relationship if the operation failed and retrying the operation will also fail, such as an invalid data or schema.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>For FlowFiles created as a result of a successful HTTP request.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>record.count</name><description>The number of records processed.</description></writesAttribute><writesAttribute><name>error.code</name><description>The error code of from the response.</description></writesAttribute><writesAttribute><name>error.message</name><description>The error message of from the response.</description></writesAttribute></writesAttributes></extension></extensions></extensionManifest>