#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
Flow Controller:
    name: MiNiFi Flow
    id: 2438e3c8-015a-1000-79ca-83af40ec1990
    
Processors: 
    - name: invoke
      id: 2438e3c8-015a-1000-79ca-83af40ec1991
      class: org.apache.nifi.processors.standard.GetFile
      max concurrent tasks: 1
      scheduling strategy: TIMER_DRIVEN
      scheduling period: 1 sec
      penalization period: 30 sec
      yield period: 1 sec
      run duration nanos: 0
      auto-terminated relationships list:
      Properties:
          Input Directory: /tmp/aljs39
          Keep Source File: false

Connections:
    - name: TransferFilesToRPG
      id: 1438e3c8-015a-1000-79ca-83af40ec1997
      source name: MockProcessorIto
      source id: 1438e3c8-015a-1000-79ca-83af40ec1991
      source relationship name: success
      destination name: NiFi Flow
      destination id: 471deef6-2a6e-4a7d-912a-81cc17e3a204
      destination relationship name: success
      max work queue size: 0
      max work queue data size: 1 MB
      flowfile expiration: 60 sec
      
Controller Services:
    - name: MockItLikeIts1995
      id: 2438e3c8-015a-1000-79ca-83af40ec1991
      class: MockControllerService
      Properties:
          Linked Services: 
            - value: ID
    - name: ID
      id: 2438e3c8-015a-1000-79ca-83af40ec1992
      class: MockControllerService
      Properties:
          Linked Services: 
    - name: MockItLikeItsWrong
      id: 2438e3c8-015a-1000-79ca-83af40ec1993
      class: MockControllerSer
      Properties:
          Linked Services: 
            - value: ID

Remote Processing Groups:
    - name: NiFi Flow
      id: 471deef6-2a6e-4a7d-912a-81cc17e3a208
      url: http://localhost:8080/nifi
      timeout: 30 secs
      yield period: 10 sec
      Input Ports:
          - id: 471deef6-2a6e-4a7d-912a-81cc17e3a204
            name: From Node A
            max concurrent tasks: 1
            Properties:
                Port: 10001
                Host Name: localhost

Provenance Reporting:
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 1 sec
  port: 10001
  host: localhost
  port uuid: 471deef6-2a6e-4a7d-912a-81cc17e3a204
  batch size: 100