/***********************************************************************************************************************************
Config Parse Rules

Automatically generated by 'make build-config' -- do not modify directly.
***********************************************************************************************************************************/

/***********************************************************************************************************************************
Rule Strings
***********************************************************************************************************************************/
#define PARSE_RULE_VAL_STR(value)                                   PARSE_RULE_U32_1(value)

static const StringPub parseRuleValueStr[] =
{
    PARSE_RULE_STRPUB("/tmp/pgbackrest"),
    PARSE_RULE_STRPUB("/var/lib/pgbackrest"),
    PARSE_RULE_STRPUB("/var/log/pgbackrest"),
    PARSE_RULE_STRPUB("/var/spool/pgbackrest"),
    PARSE_RULE_STRPUB("1"),
    PARSE_RULE_STRPUB("128MiB"),
    PARSE_RULE_STRPUB("15"),
    PARSE_RULE_STRPUB("1800"),
    PARSE_RULE_STRPUB("1830"),
    PARSE_RULE_STRPUB("1GiB"),
    PARSE_RULE_STRPUB("1MiB"),
    PARSE_RULE_STRPUB("2"),
    PARSE_RULE_STRPUB("3"),
    PARSE_RULE_STRPUB("443"),
    PARSE_RULE_STRPUB("5432"),
    PARSE_RULE_STRPUB("60"),
    PARSE_RULE_STRPUB("8432"),
    PARSE_RULE_STRPUB("asc"),
    PARSE_RULE_STRPUB("blob.core.windows.net"),
    PARSE_RULE_STRPUB("count"),
    PARSE_RULE_STRPUB("default"),
    PARSE_RULE_STRPUB("full"),
    PARSE_RULE_STRPUB("gz"),
    PARSE_RULE_STRPUB("host"),
    PARSE_RULE_STRPUB("incr"),
    PARSE_RULE_STRPUB("info"),
    PARSE_RULE_STRPUB("latest"),
    PARSE_RULE_STRPUB("localhost"),
    PARSE_RULE_STRPUB("none"),
    PARSE_RULE_STRPUB("pause"),
    PARSE_RULE_STRPUB("pgbackrest"),
    PARSE_RULE_STRPUB("posix"),
    PARSE_RULE_STRPUB("postgres"),
    PARSE_RULE_STRPUB("preserve"),
    PARSE_RULE_STRPUB("service"),
    PARSE_RULE_STRPUB("shared"),
    PARSE_RULE_STRPUB("ssh"),
    PARSE_RULE_STRPUB("storage.googleapis.com"),
    PARSE_RULE_STRPUB("text"),
    PARSE_RULE_STRPUB("warn"),
    PARSE_RULE_STRPUB(CFGOPTDEF_CONFIG_PATH),
    PARSE_RULE_STRPUB(CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE),
    PARSE_RULE_STRPUB(CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH),
};

typedef enum
{
    parseRuleValStrQT_FS_tmp_FS_pgbackrest_QT,
    parseRuleValStrQT_FS_var_FS_lib_FS_pgbackrest_QT,
    parseRuleValStrQT_FS_var_FS_log_FS_pgbackrest_QT,
    parseRuleValStrQT_FS_var_FS_spool_FS_pgbackrest_QT,
    parseRuleValStrQT_1_QT,
    parseRuleValStrQT_128MiB_QT,
    parseRuleValStrQT_15_QT,
    parseRuleValStrQT_1800_QT,
    parseRuleValStrQT_1830_QT,
    parseRuleValStrQT_1GiB_QT,
    parseRuleValStrQT_1MiB_QT,
    parseRuleValStrQT_2_QT,
    parseRuleValStrQT_3_QT,
    parseRuleValStrQT_443_QT,
    parseRuleValStrQT_5432_QT,
    parseRuleValStrQT_60_QT,
    parseRuleValStrQT_8432_QT,
    parseRuleValStrQT_asc_QT,
    parseRuleValStrQT_blob_DT_core_DT_windows_DT_net_QT,
    parseRuleValStrQT_count_QT,
    parseRuleValStrQT_default_QT,
    parseRuleValStrQT_full_QT,
    parseRuleValStrQT_gz_QT,
    parseRuleValStrQT_host_QT,
    parseRuleValStrQT_incr_QT,
    parseRuleValStrQT_info_QT,
    parseRuleValStrQT_latest_QT,
    parseRuleValStrQT_localhost_QT,
    parseRuleValStrQT_none_QT,
    parseRuleValStrQT_pause_QT,
    parseRuleValStrQT_pgbackrest_QT,
    parseRuleValStrQT_posix_QT,
    parseRuleValStrQT_postgres_QT,
    parseRuleValStrQT_preserve_QT,
    parseRuleValStrQT_service_QT,
    parseRuleValStrQT_shared_QT,
    parseRuleValStrQT_ssh_QT,
    parseRuleValStrQT_storage_DT_googleapis_DT_com_QT,
    parseRuleValStrQT_text_QT,
    parseRuleValStrQT_warn_QT,
    parseRuleValStrCFGOPTDEF_CONFIG_PATH,
    parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_FILE,
    parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_INCLUDE_PATH,
} ParseRuleValueStr;

/***********************************************************************************************************************************
Rule StringIds
***********************************************************************************************************************************/
#define PARSE_RULE_VAL_STRID(value)                                 PARSE_RULE_U32_1(value)

static const StringId parseRuleValueStrId[] =
{
    STRID5("aes-256-cbc", 0xc43dfbbcdcca10),
    STRID5("asc", 0xe610),
    STRID5("auto", 0x7d2a10),
    STRID5("azure", 0x5957410),
    STRID5("bz2", 0x73420),
    STRID5("cifs", 0x999230),
    STRID5("count", 0x14755e30),
    STRID5("debug", 0x7a88a40),
    STRID5("default", 0x5195098a40),
    STRID5("desc", 0x1cca40),
    STRID5("detail", 0x1890d0a40),
    STRID5("diff", 0x319240),
    STRID5("error", 0x127ca450),
    STRID5("full", 0x632a60),
    STRID5("gcs", 0x4c670),
    STRID5("gz", 0x3470),
    STRID5("host", 0xa4de80),
    STRID5("immediate", 0x5a05242b5a90),
    STRID5("incr", 0x90dc90),
    STRID5("info", 0x799c90),
    STRID5("json", 0x73e6a0),
    STRID5("lsn", 0x3a6c0),
    STRID6("lz4", 0x2068c1),
    STRID5("name", 0x2b42e0),
    STRID5("none", 0x2b9ee0),
    STRID5("off", 0x18cf0),
    STRID5("path", 0x450300),
    STRID5("pause", 0x59d4300),
    STRID5("pg", 0xf00),
    STRID5("posix", 0x184cdf00),
    STRID5("preserve", 0x2da45996500),
    STRID5("promote", 0x168f6be500),
    STRID5("repo", 0x7c0b20),
    STRID6("s3", 0x7d31),
    STRID5("sas", 0x4c330),
    STRID5("service", 0x1469b48b30),
    STRID5("shared", 0x85905130),
    STRID5("shutdown", 0x75de4a55130),
    STRID5("ssh", 0x22730),
    STRID5("standby", 0x6444706930),
    STRID5("text", 0xa60b40),
    STRID5("time", 0x2b5340),
    STRID5("tls", 0x4d940),
    STRID5("token", 0xe2adf40),
    STRID5("trace", 0x5186540),
    STRID5("warn", 0x748370),
    STRID5("web-id", 0x89d88b70),
    STRID5("xid", 0x11380),
    STRID5("zst", 0x527a0),
};

typedef enum
{
    parseRuleValStrIdAes256Cbc,
    parseRuleValStrIdAsc,
    parseRuleValStrIdAuto,
    parseRuleValStrIdAzure,
    parseRuleValStrIdBz2,
    parseRuleValStrIdCifs,
    parseRuleValStrIdCount,
    parseRuleValStrIdDebug,
    parseRuleValStrIdDefault,
    parseRuleValStrIdDesc,
    parseRuleValStrIdDetail,
    parseRuleValStrIdDiff,
    parseRuleValStrIdError,
    parseRuleValStrIdFull,
    parseRuleValStrIdGcs,
    parseRuleValStrIdGz,
    parseRuleValStrIdHost,
    parseRuleValStrIdImmediate,
    parseRuleValStrIdIncr,
    parseRuleValStrIdInfo,
    parseRuleValStrIdJson,
    parseRuleValStrIdLsn,
    parseRuleValStrIdLz4,
    parseRuleValStrIdName,
    parseRuleValStrIdNone,
    parseRuleValStrIdOff,
    parseRuleValStrIdPath,
    parseRuleValStrIdPause,
    parseRuleValStrIdPg,
    parseRuleValStrIdPosix,
    parseRuleValStrIdPreserve,
    parseRuleValStrIdPromote,
    parseRuleValStrIdRepo,
    parseRuleValStrIdS3,
    parseRuleValStrIdSas,
    parseRuleValStrIdService,
    parseRuleValStrIdShared,
    parseRuleValStrIdShutdown,
    parseRuleValStrIdSsh,
    parseRuleValStrIdStandby,
    parseRuleValStrIdText,
    parseRuleValStrIdTime,
    parseRuleValStrIdTls,
    parseRuleValStrIdToken,
    parseRuleValStrIdTrace,
    parseRuleValStrIdWarn,
    parseRuleValStrIdWebId,
    parseRuleValStrIdXid,
    parseRuleValStrIdZst,
} ParseRuleValueStrId;

/***********************************************************************************************************************************
Rule Ints
***********************************************************************************************************************************/
#define PARSE_RULE_VAL_INT(value)                                   PARSE_RULE_U32_1(value)

static const int64_t parseRuleValueInt[] =
{
    0,
    1,
    2,
    3,
    9,
    32,
    100,
    256,
    360,
    443,
    900,
    999,
    1000,
    1024,
    3600,
    5432,
    8432,
    15000,
    16384,
    32768,
    60000,
    65535,
    65536,
    131072,
    262144,
    524288,
    900000,
    1048576,
    1800000,
    1830000,
    2097152,
    3600000,
    4194304,
    8388608,
    9999999,
    16777216,
    86400000,
    134217728,
    604800000,
    1073741824,
    1099511627776,
    4503599627370496,
};

typedef enum
{
    parseRuleValInt0,
    parseRuleValInt1,
    parseRuleValInt2,
    parseRuleValInt3,
    parseRuleValInt9,
    parseRuleValInt32,
    parseRuleValInt100,
    parseRuleValInt256,
    parseRuleValInt360,
    parseRuleValInt443,
    parseRuleValInt900,
    parseRuleValInt999,
    parseRuleValInt1000,
    parseRuleValInt1024,
    parseRuleValInt3600,
    parseRuleValInt5432,
    parseRuleValInt8432,
    parseRuleValInt15000,
    parseRuleValInt16384,
    parseRuleValInt32768,
    parseRuleValInt60000,
    parseRuleValInt65535,
    parseRuleValInt65536,
    parseRuleValInt131072,
    parseRuleValInt262144,
    parseRuleValInt524288,
    parseRuleValInt900000,
    parseRuleValInt1048576,
    parseRuleValInt1800000,
    parseRuleValInt1830000,
    parseRuleValInt2097152,
    parseRuleValInt3600000,
    parseRuleValInt4194304,
    parseRuleValInt8388608,
    parseRuleValInt9999999,
    parseRuleValInt16777216,
    parseRuleValInt86400000,
    parseRuleValInt134217728,
    parseRuleValInt604800000,
    parseRuleValInt1073741824,
    parseRuleValInt1099511627776,
    parseRuleValInt4503599627370496,
} ParseRuleValueInt;

/***********************************************************************************************************************************
Command parse data
***********************************************************************************************************************************/
#define PARSE_RULE_VAL_CMD(value)                                   PARSE_RULE_U32_1(value)

static const ParseRuleCommand parseRuleCommand[CFG_COMMAND_TOTAL] =
{
    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("archive-get"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeArchive),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleAsync)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleLocal)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("archive-push"),
        PARSE_RULE_COMMAND_LOCK_REMOTE_REQUIRED(true),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeArchive),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleAsync)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleLocal)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("backup"),
        PARSE_RULE_COMMAND_LOCK_REQUIRED(true),
        PARSE_RULE_COMMAND_LOCK_REMOTE_REQUIRED(true),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeBackup),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleLocal)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("check"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("expire"),
        PARSE_RULE_COMMAND_LOCK_REQUIRED(true),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeBackup),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("help"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("info"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("repo-create"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("repo-get"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("repo-ls"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("repo-put"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("repo-rm"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("restore"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleLocal)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("server"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("server-ping"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),
        PARSE_RULE_COMMAND_PARAMETER_ALLOWED(true),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("stanza-create"),
        PARSE_RULE_COMMAND_LOCK_REQUIRED(true),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeAll),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("stanza-delete"),
        PARSE_RULE_COMMAND_LOCK_REQUIRED(true),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeAll),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("stanza-upgrade"),
        PARSE_RULE_COMMAND_LOCK_REQUIRED(true),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeAll),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("start"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("stop"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("verify"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_FILE(true),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelInfo),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleLocal)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleRemote)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_COMMAND
    (
        PARSE_RULE_COMMAND_NAME("version"),
        PARSE_RULE_COMMAND_LOCK_TYPE(lockTypeNone),
        PARSE_RULE_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug),

        PARSE_RULE_COMMAND_ROLE_VALID_LIST
        (
            PARSE_RULE_COMMAND_ROLE(cfgCmdRoleMain)
        ),
    ),
};

/***********************************************************************************************************************************
Option group parse data
***********************************************************************************************************************************/
static const ParseRuleOptionGroup parseRuleOptionGroup[CFG_OPTION_GROUP_TOTAL] =
{
    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION_GROUP
    (
        PARSE_RULE_OPTION_GROUP_NAME("pg"),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION_GROUP
    (
        PARSE_RULE_OPTION_GROUP_NAME("repo"),
    ),
};

/***********************************************************************************************************************************
Option parse data
***********************************************************************************************************************************/
#define PARSE_RULE_VAL_OPT(value)                                   PARSE_RULE_U32_2(value)

static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
{
    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-async"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-check"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdBackup),
                ),

                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptOnline),
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-copy"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdBackup),
                ),

                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptArchiveCheck),
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-get-queue-max"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeSize),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt4503599627370496),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt134217728),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_128MiB_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-header-check"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-mode"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdOff),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPreserve),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPreserve),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_preserve_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-mode-check"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptArchiveCheck),
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-push-queue-max"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeSize),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt4503599627370496),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("archive-timeout"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeTime),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt100),
                    PARSE_RULE_VAL_INT(parseRuleValInt86400000),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt60000),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_60_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("backup-standby"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("buffer-size"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeSize),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt16384),
                    PARSE_RULE_VAL_INT(parseRuleValInt32768),
                    PARSE_RULE_VAL_INT(parseRuleValInt65536),
                    PARSE_RULE_VAL_INT(parseRuleValInt131072),
                    PARSE_RULE_VAL_INT(parseRuleValInt262144),
                    PARSE_RULE_VAL_INT(parseRuleValInt524288),
                    PARSE_RULE_VAL_INT(parseRuleValInt1048576),
                    PARSE_RULE_VAL_INT(parseRuleValInt2097152),
                    PARSE_RULE_VAL_INT(parseRuleValInt4194304),
                    PARSE_RULE_VAL_INT(parseRuleValInt8388608),
                    PARSE_RULE_VAL_INT(parseRuleValInt16777216),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1048576),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_1MiB_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("checksum-page"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("cipher-pass"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("cmd"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("cmd-ssh"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_ssh_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("compress"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("compress-level"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt9),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("compress-level-network"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt9),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt3),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_3_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("compress-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdNone),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdBz2),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdGz),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdLz4),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdZst),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdGz),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_gz_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("config"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_FILE),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("config-include-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_INCLUDE_PATH),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("config-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("db-exclude"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeList),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_MULTI(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("db-include"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeList),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_MULTI(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("db-timeout"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeTime),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt100),
                    PARSE_RULE_VAL_INT(parseRuleValInt604800000),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1800000),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_1800_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("delta"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("dry-run"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("exclude"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeList),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_MULTI(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("exec-id"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("expire-auto"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("filter"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("force"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdBackup),
                ),

                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptOnline),
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("ignore-missing"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("io-timeout"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeTime),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt100),
                    PARSE_RULE_VAL_INT(parseRuleValInt3600000),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt60000),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_60_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("job-retry"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdArchiveGet),
                    PARSE_RULE_VAL_CMD(cfgCmdArchivePush),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt360),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_1_QT),
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt360),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt2),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_2_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("job-retry-interval"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeTime),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdArchiveGet),
                    PARSE_RULE_VAL_CMD(cfgCmdArchivePush),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt900000),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1000),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_1_QT),
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt900000),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt15000),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_15_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("link-all"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("link-map"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeHash),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_MULTI(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("lock-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_FS_tmp_FS_pgbackrest_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("log-level-console"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdOff),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdError),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdWarn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdInfo),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDetail),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDebug),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTrace),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdWarn),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_warn_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("log-level-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdOff),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdError),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdWarn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdInfo),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDetail),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDebug),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTrace),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdInfo),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_info_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("log-level-stderr"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdOff),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdError),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdWarn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdInfo),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDetail),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDebug),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTrace),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdWarn),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_warn_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("log-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_FS_var_FS_log_FS_pgbackrest_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("log-subprocess"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("log-timestamp"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("manifest-save-threshold"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeSize),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt1099511627776),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1073741824),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_1GiB_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("neutral-umask"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("online"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("output"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdText),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdJson),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdText),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_text_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt256),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-database"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgPath),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_postgres_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgLocal),
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-ca-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-ca-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-cert-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-cmd"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHost),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-config"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_FILE),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-config-include-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_INCLUDE_PATH),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-config-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-key-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-port"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHost),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt65535),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgLocal),
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdSsh),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdSsh),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_ssh_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-host-user"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_postgres_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-local"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdArchivePush),
                ),

                PARSE_RULE_OPTIONAL_NOT_REQUIRED(),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-port"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgPath),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt65535),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt5432),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_5432_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-socket-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgPath),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("pg-user"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionStanza),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpPg),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptPgPath),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("process"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt1024),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("process-max"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt999),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_1_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("protocol-timeout"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeTime),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt100),
                    PARSE_RULE_VAL_INT(parseRuleValInt604800000),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1830000),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_1830_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("raw"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("recovery-option"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeHash),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_MULTI(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDefault),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdImmediate),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdLsn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdName),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTime),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdStandby),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdXid),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("recurse"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("remote-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPg),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdRepo),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt256),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-azure-account"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-azure-container"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-azure-endpoint"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_blob_DT_core_DT_windows_DT_net_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-azure-key"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-azure-key-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShared),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdSas),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShared),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_shared_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-azure-uri-style"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdHost),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPath),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdHost),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_host_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-cipher-pass"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoCipherType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAes256Cbc),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-cipher-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdNone),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAes256Cbc),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdNone),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_none_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-gcs-bucket"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoGcsKeyType),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-gcs-endpoint"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoGcsKeyType),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_storage_DT_googleapis_DT_com_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-gcs-key"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoGcsKeyType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdService),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdToken),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-gcs-key-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdGcs),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAuto),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdService),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdToken),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdService),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_service_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-hardlink"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoLocal),
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-ca-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-ca-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-cert-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-cmd"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHost),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-config"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_FILE),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-config-include-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH_SP_QT_FS_QT_SP_PROJECT_CONFIG_INCLUDE_PATH),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-config-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrCFGOPTDEF_CONFIG_PATH),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-key-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHostType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-port"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHost),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt65535),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoLocal),
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdSsh),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTls),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdSsh),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_ssh_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-host-user"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoHost),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_pgbackrest_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-local"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_FS_var_FS_lib_FS_pgbackrest_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-retention-archive"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt9999999),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-retention-archive-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdFull),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDiff),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdIncr),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdFull),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_full_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-retention-diff"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt9999999),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-retention-full"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt9999999),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-retention-full-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdCount),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTime),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdCount),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_count_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-retention-history"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt0),
                    PARSE_RULE_VAL_INT(parseRuleValInt9999999),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-bucket"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-endpoint"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-key"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoS3KeyType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShared),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-key-secret"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoS3KeyType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShared),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-key-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShared),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAuto),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdWebId),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShared),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_shared_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-region"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-role"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoS3KeyType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAuto),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-token"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_SECURE(true),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoS3KeyType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShared),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-s3-uri-style"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdHost),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPath),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdHost),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_host_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-storage-ca-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdGcs),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-storage-ca-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdGcs),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-storage-host"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-storage-port"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt65535),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt443),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_443_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-storage-verify-tls"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptRepoType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdGcs),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("repo-type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_GROUP_MEMBER(true),
        PARSE_RULE_OPTION_GROUP_ID(cfgOptGrpRepo),
        PARSE_RULE_OPTION_DEPRECATE_MATCH(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAzure),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdCifs),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdGcs),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPosix),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdS3),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPosix),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_posix_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("resume"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("sck-block"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("sck-keep-alive"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("set"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdInfo),
                ),

                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptStanza),
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdRestore),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_latest_QT),
                ),

                PARSE_RULE_OPTIONAL_REQUIRED(),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("sort"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdNone),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAsc),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDesc),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdAsc),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_asc_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("spool-path"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdArchiveGet),
                    PARSE_RULE_VAL_CMD(cfgCmdArchivePush),
                ),

                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptArchiveAsync),
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_FS_var_FS_spool_FS_pgbackrest_QT),
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_FS_var_FS_spool_FS_pgbackrest_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("stanza"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStart)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStop)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdInfo),
                    PARSE_RULE_VAL_CMD(cfgCmdRepoCreate),
                    PARSE_RULE_VAL_CMD(cfgCmdRepoGet),
                    PARSE_RULE_VAL_CMD(cfgCmdRepoLs),
                    PARSE_RULE_VAL_CMD(cfgCmdRepoPut),
                    PARSE_RULE_VAL_CMD(cfgCmdRepoRm),
                    PARSE_RULE_VAL_CMD(cfgCmdStart),
                    PARSE_RULE_VAL_CMD(cfgCmdStop),
                ),

                PARSE_RULE_OPTIONAL_NOT_REQUIRED(),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("start-fast"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("stop-auto"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_NEGATE(true),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tablespace-map"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeHash),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_MULTI(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tablespace-map-all"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("target"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdLsn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdName),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTime),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdXid),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("target-action"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdImmediate),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdLsn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdName),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTime),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdXid),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPause),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPromote),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdShutdown),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPause),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_pause_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("target-exclusive"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeBoolean),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdLsn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTime),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdXid),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_BOOL_FALSE,
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("target-timeline"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptType),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDefault),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdLsn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdName),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdStandby),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTime),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdXid),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tcp-keep-alive-count"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptSckKeepAlive),
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt32),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tcp-keep-alive-idle"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptSckKeepAlive),
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt3600),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tcp-keep-alive-interval"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(false),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdExpire)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_ASYNC_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_LOCAL_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTION_COMMAND_ROLE_REMOTE_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchiveGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdArchivePush)
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdCheck)
            PARSE_RULE_OPTION_COMMAND(cfgCmdInfo)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoGet)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoLs)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
            PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
            PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEPEND
                (
                    PARSE_RULE_VAL_OPT(cfgOptSckKeepAlive),
                    PARSE_RULE_VAL_BOOL_TRUE,
                ),

                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt900),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tls-server-address"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeString),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_localhost_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tls-server-auth"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeHash),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),
        PARSE_RULE_OPTION_MULTI(true),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tls-server-ca-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tls-server-cert-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tls-server-key-file"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypePath),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("tls-server-port"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeInteger),
        PARSE_RULE_OPTION_RESET(true),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionGlobal),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdServer)
            PARSE_RULE_OPTION_COMMAND(cfgCmdServerPing)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_OPTIONAL_ALLOW_RANGE
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt1),
                    PARSE_RULE_VAL_INT(parseRuleValInt65535),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_INT(parseRuleValInt8432),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_8432_QT),
                ),
            ),
        ),
    ),

    // -----------------------------------------------------------------------------------------------------------------------------
    PARSE_RULE_OPTION
    (
        PARSE_RULE_OPTION_NAME("type"),
        PARSE_RULE_OPTION_TYPE(cfgOptTypeStringId),
        PARSE_RULE_OPTION_REQUIRED(true),
        PARSE_RULE_OPTION_SECTION(cfgSectionCommandLine),

        PARSE_RULE_OPTION_COMMAND_ROLE_MAIN_VALID_LIST
        (
            PARSE_RULE_OPTION_COMMAND(cfgCmdBackup)
            PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
        ),

        PARSE_RULE_OPTIONAL
        (
            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdBackup),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdFull),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDiff),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdIncr),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdIncr),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_incr_QT),
                ),
            ),

            PARSE_RULE_OPTIONAL_GROUP
            (
                PARSE_RULE_FILTER_CMD
                (
                    PARSE_RULE_VAL_CMD(cfgCmdRestore),
                ),

                PARSE_RULE_OPTIONAL_ALLOW_LIST
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdLsn),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdName),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdTime),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdXid),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdPreserve),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdNone),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdImmediate),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDefault),
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdStandby),
                ),

                PARSE_RULE_OPTIONAL_DEFAULT
                (
                    PARSE_RULE_VAL_STRID(parseRuleValStrIdDefault),
                    PARSE_RULE_VAL_STR(parseRuleValStrQT_default_QT),
                ),
            ),
        ),
    ),
};

/***********************************************************************************************************************************
Option deprecations
***********************************************************************************************************************************/
#define CFG_OPTION_DEPRECATE_TOTAL                                  39

static const ParseRuleOptionDeprecate parseRuleOptionDeprecate[CFG_OPTION_DEPRECATE_TOTAL] =
{
    // archive-push-queue-max deprecation
    {
        .name = "archive-queue-max",
        .id = cfgOptArchivePushQueueMax,
        .unindexed = true,
    },

    // repo-host-cmd deprecation
    {
        .name = "backup-cmd",
        .id = cfgOptRepoHostCmd,
        .unindexed = true,
    },

    // repo-host-config deprecation
    {
        .name = "backup-config",
        .id = cfgOptRepoHostConfig,
        .unindexed = true,
    },

    // repo-host deprecation
    {
        .name = "backup-host",
        .id = cfgOptRepoHost,
        .unindexed = true,
    },

    // repo-host-port deprecation
    {
        .name = "backup-ssh-port",
        .id = cfgOptRepoHostPort,
        .unindexed = true,
    },

    // repo-host-user deprecation
    {
        .name = "backup-user",
        .id = cfgOptRepoHostUser,
        .unindexed = true,
    },

    // pg-host-cmd deprecation
    {
        .name = "db-cmd",
        .id = cfgOptPgHostCmd,
        .indexed = true,
        .unindexed = true,
    },

    // pg-host-config deprecation
    {
        .name = "db-config",
        .id = cfgOptPgHostConfig,
        .indexed = true,
        .unindexed = true,
    },

    // pg-host deprecation
    {
        .name = "db-host",
        .id = cfgOptPgHost,
        .indexed = true,
        .unindexed = true,
    },

    // pg-path deprecation
    {
        .name = "db-path",
        .id = cfgOptPgPath,
        .indexed = true,
        .unindexed = true,
    },

    // pg-port deprecation
    {
        .name = "db-port",
        .id = cfgOptPgPort,
        .indexed = true,
        .unindexed = true,
    },

    // pg-socket-path deprecation
    {
        .name = "db-socket-path",
        .id = cfgOptPgSocketPath,
        .indexed = true,
        .unindexed = true,
    },

    // pg-host-port deprecation
    {
        .name = "db-ssh-port",
        .id = cfgOptPgHostPort,
        .indexed = true,
        .unindexed = true,
    },

    // pg-host-user deprecation
    {
        .name = "db-user",
        .id = cfgOptPgHostUser,
        .indexed = true,
        .unindexed = true,
    },

    // repo-hardlink deprecation
    {
        .name = "hardlink",
        .id = cfgOptRepoHardlink,
        .unindexed = true,
    },

    // repo-storage-ca-file deprecation
    {
        .name = "repo-azure-ca-file",
        .id = cfgOptRepoStorageCaFile,
        .indexed = true,
    },

    // repo-storage-ca-path deprecation
    {
        .name = "repo-azure-ca-path",
        .id = cfgOptRepoStorageCaPath,
        .indexed = true,
    },

    // repo-storage-host deprecation
    {
        .name = "repo-azure-host",
        .id = cfgOptRepoStorageHost,
        .indexed = true,
    },

    // repo-storage-port deprecation
    {
        .name = "repo-azure-port",
        .id = cfgOptRepoStoragePort,
        .indexed = true,
    },

    // repo-storage-verify-tls deprecation
    {
        .name = "repo-azure-verify-tls",
        .id = cfgOptRepoStorageVerifyTls,
        .indexed = true,
    },

    // repo-cipher-pass deprecation
    {
        .name = "repo-cipher-pass",
        .id = cfgOptRepoCipherPass,
        .unindexed = true,
    },

    // repo-cipher-type deprecation
    {
        .name = "repo-cipher-type",
        .id = cfgOptRepoCipherType,
        .unindexed = true,
    },

    // repo-path deprecation
    {
        .name = "repo-path",
        .id = cfgOptRepoPath,
        .unindexed = true,
    },

    // repo-s3-bucket deprecation
    {
        .name = "repo-s3-bucket",
        .id = cfgOptRepoS3Bucket,
        .unindexed = true,
    },

    // repo-storage-ca-file deprecation
    {
        .name = "repo-s3-ca-file",
        .id = cfgOptRepoStorageCaFile,
        .indexed = true,
        .unindexed = true,
    },

    // repo-storage-ca-path deprecation
    {
        .name = "repo-s3-ca-path",
        .id = cfgOptRepoStorageCaPath,
        .indexed = true,
        .unindexed = true,
    },

    // repo-s3-endpoint deprecation
    {
        .name = "repo-s3-endpoint",
        .id = cfgOptRepoS3Endpoint,
        .unindexed = true,
    },

    // repo-storage-host deprecation
    {
        .name = "repo-s3-host",
        .id = cfgOptRepoStorageHost,
        .indexed = true,
        .unindexed = true,
    },

    // repo-s3-key deprecation
    {
        .name = "repo-s3-key",
        .id = cfgOptRepoS3Key,
        .unindexed = true,
    },

    // repo-s3-key-secret deprecation
    {
        .name = "repo-s3-key-secret",
        .id = cfgOptRepoS3KeySecret,
        .unindexed = true,
    },

    // repo-storage-port deprecation
    {
        .name = "repo-s3-port",
        .id = cfgOptRepoStoragePort,
        .indexed = true,
    },

    // repo-s3-region deprecation
    {
        .name = "repo-s3-region",
        .id = cfgOptRepoS3Region,
        .unindexed = true,
    },

    // repo-storage-verify-tls deprecation
    {
        .name = "repo-s3-verify-ssl",
        .id = cfgOptRepoStorageVerifyTls,
        .indexed = true,
        .unindexed = true,
    },

    // repo-storage-verify-tls deprecation
    {
        .name = "repo-s3-verify-tls",
        .id = cfgOptRepoStorageVerifyTls,
        .indexed = true,
    },

    // repo-type deprecation
    {
        .name = "repo-type",
        .id = cfgOptRepoType,
        .unindexed = true,
    },

    // repo-retention-archive deprecation
    {
        .name = "retention-archive",
        .id = cfgOptRepoRetentionArchive,
        .unindexed = true,
    },

    // repo-retention-archive-type deprecation
    {
        .name = "retention-archive-type",
        .id = cfgOptRepoRetentionArchiveType,
        .unindexed = true,
    },

    // repo-retention-diff deprecation
    {
        .name = "retention-diff",
        .id = cfgOptRepoRetentionDiff,
        .unindexed = true,
    },

    // repo-retention-full deprecation
    {
        .name = "retention-full",
        .id = cfgOptRepoRetentionFull,
        .unindexed = true,
    },
};

/***********************************************************************************************************************************
Order for option parse resolution
***********************************************************************************************************************************/
static const ConfigOption optionResolveOrder[] =
{
    cfgOptStanza,
    cfgOptArchiveAsync,
    cfgOptArchiveGetQueueMax,
    cfgOptArchiveHeaderCheck,
    cfgOptArchiveMode,
    cfgOptArchivePushQueueMax,
    cfgOptArchiveTimeout,
    cfgOptBackupStandby,
    cfgOptBufferSize,
    cfgOptChecksumPage,
    cfgOptCipherPass,
    cfgOptCmd,
    cfgOptCmdSsh,
    cfgOptCompress,
    cfgOptCompressLevel,
    cfgOptCompressLevelNetwork,
    cfgOptCompressType,
    cfgOptConfig,
    cfgOptConfigIncludePath,
    cfgOptConfigPath,
    cfgOptDbExclude,
    cfgOptDbInclude,
    cfgOptDbTimeout,
    cfgOptDelta,
    cfgOptDryRun,
    cfgOptExclude,
    cfgOptExecId,
    cfgOptExpireAuto,
    cfgOptFilter,
    cfgOptIgnoreMissing,
    cfgOptIoTimeout,
    cfgOptJobRetry,
    cfgOptJobRetryInterval,
    cfgOptLinkAll,
    cfgOptLinkMap,
    cfgOptLockPath,
    cfgOptLogLevelConsole,
    cfgOptLogLevelFile,
    cfgOptLogLevelStderr,
    cfgOptLogPath,
    cfgOptLogSubprocess,
    cfgOptLogTimestamp,
    cfgOptManifestSaveThreshold,
    cfgOptNeutralUmask,
    cfgOptOnline,
    cfgOptOutput,
    cfgOptPg,
    cfgOptPgLocal,
    cfgOptPgPath,
    cfgOptPgPort,
    cfgOptPgSocketPath,
    cfgOptPgUser,
    cfgOptProcess,
    cfgOptProcessMax,
    cfgOptProtocolTimeout,
    cfgOptRaw,
    cfgOptRecurse,
    cfgOptRemoteType,
    cfgOptRepo,
    cfgOptRepoCipherType,
    cfgOptRepoHardlink,
    cfgOptRepoLocal,
    cfgOptRepoPath,
    cfgOptRepoRetentionArchive,
    cfgOptRepoRetentionArchiveType,
    cfgOptRepoRetentionDiff,
    cfgOptRepoRetentionFull,
    cfgOptRepoRetentionFullType,
    cfgOptRepoRetentionHistory,
    cfgOptRepoType,
    cfgOptResume,
    cfgOptSckBlock,
    cfgOptSckKeepAlive,
    cfgOptSet,
    cfgOptSort,
    cfgOptSpoolPath,
    cfgOptStartFast,
    cfgOptStopAuto,
    cfgOptTablespaceMap,
    cfgOptTablespaceMapAll,
    cfgOptTcpKeepAliveCount,
    cfgOptTcpKeepAliveIdle,
    cfgOptTcpKeepAliveInterval,
    cfgOptTlsServerAddress,
    cfgOptTlsServerAuth,
    cfgOptTlsServerCaFile,
    cfgOptTlsServerCertFile,
    cfgOptTlsServerKeyFile,
    cfgOptTlsServerPort,
    cfgOptType,
    cfgOptArchiveCheck,
    cfgOptArchiveCopy,
    cfgOptArchiveModeCheck,
    cfgOptForce,
    cfgOptPgDatabase,
    cfgOptPgHost,
    cfgOptPgHostCmd,
    cfgOptPgHostConfig,
    cfgOptPgHostConfigIncludePath,
    cfgOptPgHostConfigPath,
    cfgOptPgHostPort,
    cfgOptPgHostType,
    cfgOptPgHostUser,
    cfgOptRecoveryOption,
    cfgOptRepoAzureAccount,
    cfgOptRepoAzureContainer,
    cfgOptRepoAzureEndpoint,
    cfgOptRepoAzureKey,
    cfgOptRepoAzureKeyType,
    cfgOptRepoAzureUriStyle,
    cfgOptRepoCipherPass,
    cfgOptRepoGcsKeyType,
    cfgOptRepoHost,
    cfgOptRepoHostCmd,
    cfgOptRepoHostConfig,
    cfgOptRepoHostConfigIncludePath,
    cfgOptRepoHostConfigPath,
    cfgOptRepoHostPort,
    cfgOptRepoHostType,
    cfgOptRepoHostUser,
    cfgOptRepoS3Bucket,
    cfgOptRepoS3Endpoint,
    cfgOptRepoS3KeyType,
    cfgOptRepoS3Region,
    cfgOptRepoS3Role,
    cfgOptRepoS3Token,
    cfgOptRepoS3UriStyle,
    cfgOptRepoStorageCaFile,
    cfgOptRepoStorageCaPath,
    cfgOptRepoStorageHost,
    cfgOptRepoStoragePort,
    cfgOptRepoStorageVerifyTls,
    cfgOptTarget,
    cfgOptTargetAction,
    cfgOptTargetExclusive,
    cfgOptTargetTimeline,
    cfgOptPgHostCaFile,
    cfgOptPgHostCaPath,
    cfgOptPgHostCertFile,
    cfgOptPgHostKeyFile,
    cfgOptRepoGcsBucket,
    cfgOptRepoGcsEndpoint,
    cfgOptRepoGcsKey,
    cfgOptRepoHostCaFile,
    cfgOptRepoHostCaPath,
    cfgOptRepoHostCertFile,
    cfgOptRepoHostKeyFile,
    cfgOptRepoS3Key,
    cfgOptRepoS3KeySecret,
};
