<model>
    <mount>//OPNsense/cron</mount>
    <version>1.0.4</version>
    <description>Cron settings</description>
    <items>
        <jobs>
            <job type="ArrayField">
                <origin type="TextField">
                    <Required>Y</Required>
                    <Default>cron</Default>
                    <Mask>/^([a-z,A-Z,1-9]){0,30}$/</Mask>
                    <ValidationMessage>Origin should be regular text of max 30 characters.</ValidationMessage>
                </origin>
                <enabled type="BooleanField">
                    <Default>1</Default>
                    <Required>Y</Required>
                </enabled>
                <minutes type="TextField">
                    <Default>0</Default>
                    <Required>Y</Required>
                    <Mask>/^((?:\*|[1-5][0-9]|0[0-9]|[0-9])(,{1}|-{1}|\/{1}|$))+$/</Mask>
                    <ValidationMessage>Value needs to be between 0 and 59; multiple values, ranges, steps and asterisk are supported (ex. 1,10,20,30 or 1-30).</ValidationMessage>
                </minutes>
                <hours type="TextField">
                    <Default>0</Default>
                    <Required>Y</Required>
                    <Mask>/^((?:\*|([1][0-9]|[2][0-3])|0[0-9]|[0-9])(,{1}|-{1}|\/{1}|$))+$/</Mask>
                    <ValidationMessage>Value needs to be between 0 and 23; multiple values, ranges, steps and asterisk are supported (ex. 1,2,8 or 0-8).</ValidationMessage>
                </hours>
                <days type="TextField">
                    <Default>*</Default>
                    <Required>Y</Required>
                    <Mask>/^(((?:\*|[1-2][0-9]|0[1-9]|[1-9]|[3][0-1])(,{1}|-{1}|\/{1}|$))+|L)$/</Mask>
                    <ValidationMessage>Value needs to be between 1 and 31; multiple values, ranges, L (last day of month), steps and asterisk are supported (ex. 1,2,8 or 1-28).</ValidationMessage>
                </days>
                <months type="TextField">
                    <Default>*</Default>
                    <Required>Y</Required>
                    <Mask>/^(((?:\*|[1][0-2]|0[1-9]|[1-9]|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(,{1}|-{1}|\/{1}|$))+)$/</Mask>
                    <ValidationMessage>Value needs to be between 1 and 12 or JAN to DEC, multiple values, ranges, steps and asterisk are supported (ex. JAN,2,10 or 3-8).</ValidationMessage>
                </months>
                <weekdays type="TextField">
                    <Default>*</Default>
                    <Required>Y</Required>
                    <Mask>/^(((?:\*|[0-7])(,{1}|-{1}|\/{1}|$))+)$/</Mask>
                    <ValidationMessage>Value needs to be between 0 and 7 (Sunday to Sunday), multiple values, ranges, steps and asterisk are supported (ex. 1,2,4 or 0-4).</ValidationMessage>
                </weekdays>
                <who type="TextField">
                    <Default>root</Default>
                    <Required>Y</Required>
                </who>
                <command type="ConfigdActionsField">
                    <filters>
                        <description>/(.){1,255}/</description>
                    </filters>
                    <ValidationMessage>Select a command from the list.</ValidationMessage>
                    <Required>Y</Required>
                </command>
                <parameters type="TextField">
                    <Mask>/^(.){1,255}$/</Mask>
                    <ValidationMessage>Input too long.</ValidationMessage>
                </parameters>
                <description type="DescriptionField">
                    <Required>Y</Required>
                </description>
            </job>
        </jobs>
    </items>
</model>
