<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements.  See the NOTICE.txt 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.
-->
<workflows>
    <configuration name="global">
        <property name="PGETask/Query/FileManagerUrl" value="[FILEMGR_URL]" envReplace="true"/>
        <property name="BlockTimeElapse" value="10"/> <!--10mins-->
    </configuration>
    <configuration name="workflows">
        <property name="PGETask/Ingest/FileManagerUrl" value="[FILEMGR_URL]" envReplace="true"/>
        <property name="PGETask/Ingest/ClientTransferServiceFactory" value="gov.nasa.jpl.oodt.cas.filemgr.datatransfer.LocalDataTransferFactory"/>
        <property name="PGETask/Ingest/MetFileExtension" value="cas"/>
        <property name="PGETask/Ingest/CrawlerCrawlForDirs" value="false"/>
        <property name="PGETask/Ingest/CrawlerRecur" value="false"/>
        <!--property name="PGETask/Ingest/ActionsIds" value="RmDataFile"/>
            <property name="PGETask/Ingest/ActionRepoFile" value="file:[PCS_HOME]/cas/pge/policy/action-beans.xml" envReplace="true"/-->
        
        <!-- resource runner properties -->
        <property name="QueueName" value="exe"/>
        <property name="Load" value="2"/>
    </configuration>
    <configuration name="conditions">
        <property name="PGETask/Condition/Timeout" value="28800"/> <!--8hrs-->
        <property name="PGETask/Condition/StartDateTimeKey" value="StartDateTime"/>
        <property name="PGETask/Condition/EndDateTimeKey" value="EndDateTime"/>
        <property name="PGETask/Condition/SortByKey" value="StartDateTime"/>
        <property name="PGETask/Condition/VersioningKey" value="ProductionDateTime"/>
        <property name="PGETask/Condition/MinNumOfFiles" value="1"/>
        <property name="PGETask/Condition/MaxGap/Size" value="-1"/>
        <property name="PGETask/Condition/EpsilonInMillis" value="0"/>
        <property name="PGETask/Condition/FilterAlgorClass" value="gov.nasa.jpl.oodt.cas.filemgr.structs.query.filter.WeightedHashFilterAlgor"/>
        
        <!-- resource runner properties -->
        <property name="QueueName" value="conds"/>
        <property name="Load" value="1"/>
    </configuration>
    <configuration name="airs">
        <property name="PGETask/Condition/StartDateTimeKey" value="UTC_start_time"/>
        <property name="PGETask/Condition/EndDateTimeKey" value="UTC_stop_time"/>
        <property name="PGETask/Condition/SortByKey" value="UTC_start_time"/>
        <property name="PGETask/Condition/VersioningKey" value="ProductionDatetime"/>
        <property name="PGETask/Condition/ExpectedNumOfFiles" value="240"/>
        <property name="PGETask/Condition/EpsilonInMillis" value="10000"/> <!--10secs-->
    </configuration>
    <configuration name="14-files">
        <!-- filter properties -->
        <property name="PGETask/Condition/ExpectedNumOfFiles" value="14"/>
        <property name="PGETask/Condition/EpsilonInMillis" value="1000000"/> <!--1000secs-->
        
        <!-- gap analysis properties -->
        <property name="PGETask/Condition/MaxGap/Size" value="6000000"/> <!--100mins-->
        <property name="PGETask/Condition/MaxGap/StartDateTime" value="[NominalDate]T00:00:00.000Z"/>
        <property name="PGETask/Condition/MaxGap/EndDateTime" value="[NominalDate]T23:59:59.999Z"/>
    </configuration>
    <configuration name="480-files">
        <!-- filter properties -->
        <property name="PGETask/Condition/ExpectedNumOfFiles" value="480"/>
        <property name="PGETask/Condition/EpsilonInMillis" value="30000"/> <!--30secs-->
    </configuration>
    <configuration name="1-file">
        <property name="PGETask/Condition/FilterAlgorClass" value="gov.nasa.jpl.oodt.cas.filemgr.structs.query.filter.TakeEarliestEventFilterAlgor"/>
        <property name="PGETask/Condition/ExpectedNumOfFiles" value="1"/>
    </configuration>
    <configuration name="concat-files">
        <!-- filter properties -->
        <property name="PGETask/Condition/ExpectedNumOfFiles" value="28"/>
        <property name="PGETask/Condition/EpsilonInMillis" value="21600000"/> <!--6hours-->
        <property name="PGETask/Condition/MinNumOfFiles" value="2"/>
    </configuration>
</workflows>

