/***********************************************************************************************************************************
Command and Option Configuration

Automatically generated by 'build-code config' -- do not modify directly.
***********************************************************************************************************************************/
#ifndef CONFIG_CONFIG_AUTO_H
#define CONFIG_CONFIG_AUTO_H

/***********************************************************************************************************************************
Command constants
***********************************************************************************************************************************/
#define CFGCMD_ANNOTATE                                             "annotate"
#define CFGCMD_ARCHIVE_GET                                          "archive-get"
#define CFGCMD_ARCHIVE_PUSH                                         "archive-push"
#define CFGCMD_BACKUP                                               "backup"
#define CFGCMD_CHECK                                                "check"
#define CFGCMD_EXPIRE                                               "expire"
#define CFGCMD_HELP                                                 "help"
#define CFGCMD_INFO                                                 "info"
#define CFGCMD_MANIFEST                                             "manifest"
#define CFGCMD_REPO_GET                                             "repo-get"
#define CFGCMD_REPO_LS                                              "repo-ls"
#define CFGCMD_REPO_PUT                                             "repo-put"
#define CFGCMD_REPO_RM                                              "repo-rm"
#define CFGCMD_RESTORE                                              "restore"
#define CFGCMD_SERVER                                               "server"
#define CFGCMD_SERVER_PING                                          "server-ping"
#define CFGCMD_STANZA_CREATE                                        "stanza-create"
#define CFGCMD_STANZA_DELETE                                        "stanza-delete"
#define CFGCMD_STANZA_UPGRADE                                       "stanza-upgrade"
#define CFGCMD_START                                                "start"
#define CFGCMD_STOP                                                 "stop"
#define CFGCMD_VERIFY                                               "verify"
#define CFGCMD_VERSION                                              "version"

#define CFG_COMMAND_TOTAL                                           23

/***********************************************************************************************************************************
Option group constants
***********************************************************************************************************************************/
#define CFG_OPTION_GROUP_TOTAL                                      2

/***********************************************************************************************************************************
Option constants
***********************************************************************************************************************************/
#define CFGOPT_ALLOW_ROOT                                           "allow-root"
#define CFGOPT_ANNOTATION                                           "annotation"
#define CFGOPT_ARCHIVE_ASYNC                                        "archive-async"
#define CFGOPT_ARCHIVE_CHECK                                        "archive-check"
#define CFGOPT_ARCHIVE_COPY                                         "archive-copy"
#define CFGOPT_ARCHIVE_EXPIRE_BEFORE                                "archive-expire-before"
#define CFGOPT_ARCHIVE_GET_QUEUE_MAX                                "archive-get-queue-max"
#define CFGOPT_ARCHIVE_HEADER_CHECK                                 "archive-header-check"
#define CFGOPT_ARCHIVE_MISSING_RETRY                                "archive-missing-retry"
#define CFGOPT_ARCHIVE_MODE                                         "archive-mode"
#define CFGOPT_ARCHIVE_MODE_CHECK                                   "archive-mode-check"
#define CFGOPT_ARCHIVE_PUSH_BATCH_SIZE                              "archive-push-batch-size"
#define CFGOPT_ARCHIVE_PUSH_QUEUE_MAX                               "archive-push-queue-max"
#define CFGOPT_ARCHIVE_TIMEOUT                                      "archive-timeout"
#define CFGOPT_BACKUP_STANDBY                                       "backup-standby"
#define CFGOPT_BETA                                                 "beta"
#define CFGOPT_BUFFER_SIZE                                          "buffer-size"
#define CFGOPT_CHECKSUM_PAGE                                        "checksum-page"
#define CFGOPT_CIPHER_PASS                                          "cipher-pass"
#define CFGOPT_CMD                                                  "cmd"
#define CFGOPT_CMD_SSH                                              "cmd-ssh"
#define CFGOPT_COMPRESS                                             "compress"
#define CFGOPT_COMPRESS_LEVEL                                       "compress-level"
#define CFGOPT_COMPRESS_LEVEL_NETWORK                               "compress-level-network"
#define CFGOPT_COMPRESS_TYPE                                        "compress-type"
#define CFGOPT_CONFIG                                               "config"
#define CFGOPT_CONFIG_INCLUDE_PATH                                  "config-include-path"
#define CFGOPT_CONFIG_PATH                                          "config-path"
#define CFGOPT_DB_EXCLUDE                                           "db-exclude"
#define CFGOPT_DB_INCLUDE                                           "db-include"
#define CFGOPT_DB_TIMEOUT                                           "db-timeout"
#define CFGOPT_DELTA                                                "delta"
#define CFGOPT_DETAIL_LEVEL                                         "detail-level"
#define CFGOPT_DRY_RUN                                              "dry-run"
#define CFGOPT_EXCLUDE                                              "exclude"
#define CFGOPT_EXEC_ID                                              "exec-id"
#define CFGOPT_EXPIRE_AUTO                                          "expire-auto"
#define CFGOPT_FILTER                                               "filter"
#define CFGOPT_FORCE                                                "force"
#define CFGOPT_HELP                                                 "help"
#define CFGOPT_IGNORE_MISSING                                       "ignore-missing"
#define CFGOPT_IO_TIMEOUT                                           "io-timeout"
#define CFGOPT_JOB_RETRY                                            "job-retry"
#define CFGOPT_JOB_RETRY_INTERVAL                                   "job-retry-interval"
#define CFGOPT_LINK_ALL                                             "link-all"
#define CFGOPT_LINK_MAP                                             "link-map"
#define CFGOPT_LOCK                                                 "lock"
#define CFGOPT_LOCK_PATH                                            "lock-path"
#define CFGOPT_LOG_LEVEL_CONSOLE                                    "log-level-console"
#define CFGOPT_LOG_LEVEL_FILE                                       "log-level-file"
#define CFGOPT_LOG_LEVEL_STDERR                                     "log-level-stderr"
#define CFGOPT_LOG_PATH                                             "log-path"
#define CFGOPT_LOG_SUBPROCESS                                       "log-subprocess"
#define CFGOPT_LOG_TIMESTAMP                                        "log-timestamp"
#define CFGOPT_MANIFEST_SAVE_THRESHOLD                              "manifest-save-threshold"
#define CFGOPT_NEUTRAL_UMASK                                        "neutral-umask"
#define CFGOPT_OLDEST                                               "oldest"
#define CFGOPT_ONLINE                                               "online"
#define CFGOPT_OUTPUT                                               "output"
#define CFGOPT_PAGE_HEADER_CHECK                                    "page-header-check"
#define CFGOPT_PG                                                   "pg"
#define CFGOPT_PG_VERSION_FORCE                                     "pg-version-force"
#define CFGOPT_PRIORITY                                             "priority"
#define CFGOPT_PROCESS                                              "process"
#define CFGOPT_PROCESS_MAX                                          "process-max"
#define CFGOPT_PROTOCOL_TIMEOUT                                     "protocol-timeout"
#define CFGOPT_RAW                                                  "raw"
#define CFGOPT_RECOVERY_OPTION                                      "recovery-option"
#define CFGOPT_RECURSE                                              "recurse"
#define CFGOPT_REFERENCE                                            "reference"
#define CFGOPT_REMOTE_TYPE                                          "remote-type"
#define CFGOPT_REPO                                                 "repo"
#define CFGOPT_REPO_TARGET_TIME                                     "repo-target-time"
#define CFGOPT_REPORT                                               "report"
#define CFGOPT_RESUME                                               "resume"
#define CFGOPT_SCK_BLOCK                                            "sck-block"
#define CFGOPT_SCK_KEEP_ALIVE                                       "sck-keep-alive"
#define CFGOPT_SET                                                  "set"
#define CFGOPT_SORT                                                 "sort"
#define CFGOPT_SPOOL_PATH                                           "spool-path"
#define CFGOPT_STANZA                                               "stanza"
#define CFGOPT_START_FAST                                           "start-fast"
#define CFGOPT_STOP_AUTO                                            "stop-auto"
#define CFGOPT_TABLESPACE_MAP                                       "tablespace-map"
#define CFGOPT_TABLESPACE_MAP_ALL                                   "tablespace-map-all"
#define CFGOPT_TARGET                                               "target"
#define CFGOPT_TARGET_ACTION                                        "target-action"
#define CFGOPT_TARGET_EXCLUSIVE                                     "target-exclusive"
#define CFGOPT_TARGET_TIMELINE                                      "target-timeline"
#define CFGOPT_TCP_KEEP_ALIVE_COUNT                                 "tcp-keep-alive-count"
#define CFGOPT_TCP_KEEP_ALIVE_IDLE                                  "tcp-keep-alive-idle"
#define CFGOPT_TCP_KEEP_ALIVE_INTERVAL                              "tcp-keep-alive-interval"
#define CFGOPT_TLS_CIPHER_12                                        "tls-cipher-12"
#define CFGOPT_TLS_CIPHER_13                                        "tls-cipher-13"
#define CFGOPT_TLS_SERVER_ADDRESS                                   "tls-server-address"
#define CFGOPT_TLS_SERVER_AUTH                                      "tls-server-auth"
#define CFGOPT_TLS_SERVER_CA_FILE                                   "tls-server-ca-file"
#define CFGOPT_TLS_SERVER_CERT_FILE                                 "tls-server-cert-file"
#define CFGOPT_TLS_SERVER_KEY_FILE                                  "tls-server-key-file"
#define CFGOPT_TLS_SERVER_PORT                                      "tls-server-port"
#define CFGOPT_TYPE                                                 "type"
#define CFGOPT_VERBOSE                                              "verbose"
#define CFGOPT_VERSION                                              "version"

#define CFG_OPTION_TOTAL                                            198

/***********************************************************************************************************************************
Option value constants
***********************************************************************************************************************************/
#define CFGOPTVAL_ARCHIVE_MODE_PRESERVE                             0
#define CFGOPTVAL_ARCHIVE_MODE_PRESERVE_STRID                       STRID5S("preserve", 0, 0x2da45996502)
#define CFGOPTVAL_ARCHIVE_MODE_PRESERVE_Z                           "preserve"
#define CFGOPTVAL_ARCHIVE_MODE_OFF                                  1
#define CFGOPTVAL_ARCHIVE_MODE_OFF_STRID                            STRID5S("off", 1, 0x18cf4)
#define CFGOPTVAL_ARCHIVE_MODE_OFF_Z                                "off"

#define CFGOPTVAL_BACKUP_STANDBY_N                                  0
#define CFGOPTVAL_BACKUP_STANDBY_N_STRID                            STRID5S("n", 0, 0xe2)
#define CFGOPTVAL_BACKUP_STANDBY_N_Z                                "n"
#define CFGOPTVAL_BACKUP_STANDBY_PREFER                             1
#define CFGOPTVAL_BACKUP_STANDBY_PREFER_STRID                       STRID5S("prefer", 1, 0x245316504)
#define CFGOPTVAL_BACKUP_STANDBY_PREFER_Z                           "prefer"
#define CFGOPTVAL_BACKUP_STANDBY_Y                                  2
#define CFGOPTVAL_BACKUP_STANDBY_Y_STRID                            STRID5S("y", 2, 0x196)
#define CFGOPTVAL_BACKUP_STANDBY_Y_Z                                "y"

#define CFGOPTVAL_COMPRESS_TYPE_BZ2                                 STRID5("bz2", 0x73420)
#define CFGOPTVAL_COMPRESS_TYPE_BZ2_Z                               "bz2"
#define CFGOPTVAL_COMPRESS_TYPE_GZ                                  STRID5("gz", 0x3470)
#define CFGOPTVAL_COMPRESS_TYPE_GZ_Z                                "gz"
#define CFGOPTVAL_COMPRESS_TYPE_LZ4                                 STRID6("lz4", 0x2068c1)
#define CFGOPTVAL_COMPRESS_TYPE_LZ4_Z                               "lz4"
#define CFGOPTVAL_COMPRESS_TYPE_NONE                                STRID5("none", 0x2b9ee0)
#define CFGOPTVAL_COMPRESS_TYPE_NONE_Z                              "none"
#define CFGOPTVAL_COMPRESS_TYPE_ZST                                 STRID5("zst", 0x527a0)
#define CFGOPTVAL_COMPRESS_TYPE_ZST_Z                               "zst"

#define CFGOPTVAL_DETAIL_LEVEL_FULL                                 0
#define CFGOPTVAL_DETAIL_LEVEL_FULL_STRID                           STRID5S("full", 0, 0x632a62)
#define CFGOPTVAL_DETAIL_LEVEL_FULL_Z                               "full"
#define CFGOPTVAL_DETAIL_LEVEL_PROGRESS                             1
#define CFGOPTVAL_DETAIL_LEVEL_PROGRESS_STRID                       STRID5S("progress", 1, 0x9ccb23be504)
#define CFGOPTVAL_DETAIL_LEVEL_PROGRESS_Z                           "progress"

#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF                             0
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF_STRID                       STRID5S("off", 0, 0x18cf2)
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_OFF_Z                           "off"
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR                           1
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR_STRID                     STRID5S("error", 1, 0x127ca454)
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_ERROR_Z                         "error"
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN                            2
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN_STRID                      STRID5S("warn", 2, 0x748376)
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_WARN_Z                          "warn"
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_INFO                            3
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_INFO_STRID                      STRID5S("info", 3, 0x799c98)
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_INFO_Z                          "info"
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DETAIL                          4
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DETAIL_STRID                    STRID5S("detail", 4, 0x1890d0a4a)
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DETAIL_Z                        "detail"
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG                           5
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG_STRID                     STRID5S("debug", 5, 0x7a88a4c)
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_DEBUG_Z                         "debug"
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_TRACE                           6
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_TRACE_STRID                     STRID5S("trace", 6, 0xa30ca80e)
#define CFGOPTVAL_LOG_LEVEL_CONSOLE_TRACE_Z                         "trace"

#define CFGOPTVAL_LOG_LEVEL_FILE_OFF                                0
#define CFGOPTVAL_LOG_LEVEL_FILE_OFF_STRID                          STRID5S("off", 0, 0x18cf2)
#define CFGOPTVAL_LOG_LEVEL_FILE_OFF_Z                              "off"
#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR                              1
#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR_STRID                        STRID5S("error", 1, 0x127ca454)
#define CFGOPTVAL_LOG_LEVEL_FILE_ERROR_Z                            "error"
#define CFGOPTVAL_LOG_LEVEL_FILE_WARN                               2
#define CFGOPTVAL_LOG_LEVEL_FILE_WARN_STRID                         STRID5S("warn", 2, 0x748376)
#define CFGOPTVAL_LOG_LEVEL_FILE_WARN_Z                             "warn"
#define CFGOPTVAL_LOG_LEVEL_FILE_INFO                               3
#define CFGOPTVAL_LOG_LEVEL_FILE_INFO_STRID                         STRID5S("info", 3, 0x799c98)
#define CFGOPTVAL_LOG_LEVEL_FILE_INFO_Z                             "info"
#define CFGOPTVAL_LOG_LEVEL_FILE_DETAIL                             4
#define CFGOPTVAL_LOG_LEVEL_FILE_DETAIL_STRID                       STRID5S("detail", 4, 0x1890d0a4a)
#define CFGOPTVAL_LOG_LEVEL_FILE_DETAIL_Z                           "detail"
#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG                              5
#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG_STRID                        STRID5S("debug", 5, 0x7a88a4c)
#define CFGOPTVAL_LOG_LEVEL_FILE_DEBUG_Z                            "debug"
#define CFGOPTVAL_LOG_LEVEL_FILE_TRACE                              6
#define CFGOPTVAL_LOG_LEVEL_FILE_TRACE_STRID                        STRID5S("trace", 6, 0xa30ca80e)
#define CFGOPTVAL_LOG_LEVEL_FILE_TRACE_Z                            "trace"

#define CFGOPTVAL_LOG_LEVEL_STDERR_OFF                              0
#define CFGOPTVAL_LOG_LEVEL_STDERR_OFF_STRID                        STRID5S("off", 0, 0x18cf2)
#define CFGOPTVAL_LOG_LEVEL_STDERR_OFF_Z                            "off"
#define CFGOPTVAL_LOG_LEVEL_STDERR_ERROR                            1
#define CFGOPTVAL_LOG_LEVEL_STDERR_ERROR_STRID                      STRID5S("error", 1, 0x127ca454)
#define CFGOPTVAL_LOG_LEVEL_STDERR_ERROR_Z                          "error"
#define CFGOPTVAL_LOG_LEVEL_STDERR_WARN                             2
#define CFGOPTVAL_LOG_LEVEL_STDERR_WARN_STRID                       STRID5S("warn", 2, 0x748376)
#define CFGOPTVAL_LOG_LEVEL_STDERR_WARN_Z                           "warn"
#define CFGOPTVAL_LOG_LEVEL_STDERR_INFO                             3
#define CFGOPTVAL_LOG_LEVEL_STDERR_INFO_STRID                       STRID5S("info", 3, 0x799c98)
#define CFGOPTVAL_LOG_LEVEL_STDERR_INFO_Z                           "info"
#define CFGOPTVAL_LOG_LEVEL_STDERR_DETAIL                           4
#define CFGOPTVAL_LOG_LEVEL_STDERR_DETAIL_STRID                     STRID5S("detail", 4, 0x1890d0a4a)
#define CFGOPTVAL_LOG_LEVEL_STDERR_DETAIL_Z                         "detail"
#define CFGOPTVAL_LOG_LEVEL_STDERR_DEBUG                            5
#define CFGOPTVAL_LOG_LEVEL_STDERR_DEBUG_STRID                      STRID5S("debug", 5, 0x7a88a4c)
#define CFGOPTVAL_LOG_LEVEL_STDERR_DEBUG_Z                          "debug"
#define CFGOPTVAL_LOG_LEVEL_STDERR_TRACE                            6
#define CFGOPTVAL_LOG_LEVEL_STDERR_TRACE_STRID                      STRID5S("trace", 6, 0xa30ca80e)
#define CFGOPTVAL_LOG_LEVEL_STDERR_TRACE_Z                          "trace"

#define CFGOPTVAL_OUTPUT_TEXT                                       0
#define CFGOPTVAL_OUTPUT_TEXT_STRID                                 STRID5S("text", 0, 0xa60b42)
#define CFGOPTVAL_OUTPUT_TEXT_Z                                     "text"
#define CFGOPTVAL_OUTPUT_JSON                                       1
#define CFGOPTVAL_OUTPUT_JSON_STRID                                 STRID5S("json", 1, 0x73e6a4)
#define CFGOPTVAL_OUTPUT_JSON_Z                                     "json"

#define CFGOPTVAL_VERIFY_OUTPUT_NONE                                0
#define CFGOPTVAL_VERIFY_OUTPUT_NONE_STRID                          STRID5S("none", 0, 0x2b9ee2)
#define CFGOPTVAL_VERIFY_OUTPUT_NONE_Z                              "none"
#define CFGOPTVAL_VERIFY_OUTPUT_TEXT                                1
#define CFGOPTVAL_VERIFY_OUTPUT_TEXT_STRID                          STRID5S("text", 1, 0xa60b44)
#define CFGOPTVAL_VERIFY_OUTPUT_TEXT_Z                              "text"

#define CFGOPTVAL_VERSION_OUTPUT_TEXT                               0
#define CFGOPTVAL_VERSION_OUTPUT_TEXT_STRID                         STRID5S("text", 0, 0xa60b42)
#define CFGOPTVAL_VERSION_OUTPUT_TEXT_Z                             "text"
#define CFGOPTVAL_VERSION_OUTPUT_NUM                                1
#define CFGOPTVAL_VERSION_OUTPUT_NUM_STRID                          STRID5S("num", 1, 0x36ae4)
#define CFGOPTVAL_VERSION_OUTPUT_NUM_Z                              "num"

#define CFGOPTVAL_PG_HOST_TYPE_SSH                                  STRID5("ssh", 0x22730)
#define CFGOPTVAL_PG_HOST_TYPE_SSH_Z                                "ssh"
#define CFGOPTVAL_PG_HOST_TYPE_TLS                                  STRID5("tls", 0x4d940)
#define CFGOPTVAL_PG_HOST_TYPE_TLS_Z                                "tls"

#define CFGOPTVAL_REMOTE_TYPE_PG                                    STRID5("pg", 0xf00)
#define CFGOPTVAL_REMOTE_TYPE_PG_Z                                  "pg"
#define CFGOPTVAL_REMOTE_TYPE_REPO                                  STRID5("repo", 0x7c0b20)
#define CFGOPTVAL_REMOTE_TYPE_REPO_Z                                "repo"

#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SHARED                        0
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SHARED_STRID                  STRID5S("shared", 0, 0x85905132)
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SHARED_Z                      "shared"
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SAS                           1
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SAS_STRID                     STRID5S("sas", 1, 0x4c334)
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_SAS_Z                         "sas"
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_AUTO                          2
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_AUTO_STRID                    STRID5S("auto", 2, 0x7d2a16)
#define CFGOPTVAL_REPO_AZURE_KEY_TYPE_AUTO_Z                        "auto"

#define CFGOPTVAL_REPO_AZURE_URI_STYLE_HOST                         0
#define CFGOPTVAL_REPO_AZURE_URI_STYLE_HOST_STRID                   STRID5S("host", 0, 0xa4de82)
#define CFGOPTVAL_REPO_AZURE_URI_STYLE_HOST_Z                       "host"
#define CFGOPTVAL_REPO_AZURE_URI_STYLE_PATH                         1
#define CFGOPTVAL_REPO_AZURE_URI_STYLE_PATH_STRID                   STRID5S("path", 1, 0x450304)
#define CFGOPTVAL_REPO_AZURE_URI_STYLE_PATH_Z                       "path"

#define CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC                      STRID5("aes-256-cbc", 0xc43dfbbcdcca10)
#define CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC_Z                    "aes-256-cbc"
#define CFGOPTVAL_REPO_CIPHER_TYPE_NONE                             STRID5("none", 0x2b9ee0)
#define CFGOPTVAL_REPO_CIPHER_TYPE_NONE_Z                           "none"

#define CFGOPTVAL_REPO_GCS_KEY_TYPE_SERVICE                         0
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_SERVICE_STRID                   STRID5S("service", 0, 0x1469b48b32)
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_SERVICE_Z                       "service"
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_TOKEN                           1
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_TOKEN_STRID                     STRID5S("token", 1, 0xe2adf44)
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_TOKEN_Z                         "token"
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_AUTO                            2
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_AUTO_STRID                      STRID5S("auto", 2, 0x7d2a16)
#define CFGOPTVAL_REPO_GCS_KEY_TYPE_AUTO_Z                          "auto"

#define CFGOPTVAL_REPO_HOST_TYPE_SSH                                STRID5("ssh", 0x22730)
#define CFGOPTVAL_REPO_HOST_TYPE_SSH_Z                              "ssh"
#define CFGOPTVAL_REPO_HOST_TYPE_TLS                                STRID5("tls", 0x4d940)
#define CFGOPTVAL_REPO_HOST_TYPE_TLS_Z                              "tls"

#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF                  STRID5("diff", 0x319240)
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF_Z                "diff"
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL                  STRID5("full", 0x632a60)
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL_Z                "full"
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR                  STRID5("incr", 0x90dc90)
#define CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR_Z                "incr"

#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_COUNT                    0
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_COUNT_STRID              STRID5S("count", 0, 0x14755e32)
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_COUNT_Z                  "count"
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_TIME                     1
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_TIME_STRID               STRID5S("time", 1, 0x2b5344)
#define CFGOPTVAL_REPO_RETENTION_FULL_TYPE_TIME_Z                   "time"

#define CFGOPTVAL_REPO_S3_KEY_TYPE_SHARED                           0
#define CFGOPTVAL_REPO_S3_KEY_TYPE_SHARED_STRID                     STRID5S("shared", 0, 0x85905132)
#define CFGOPTVAL_REPO_S3_KEY_TYPE_SHARED_Z                         "shared"
#define CFGOPTVAL_REPO_S3_KEY_TYPE_AUTO                             1
#define CFGOPTVAL_REPO_S3_KEY_TYPE_AUTO_STRID                       STRID5S("auto", 1, 0x7d2a14)
#define CFGOPTVAL_REPO_S3_KEY_TYPE_AUTO_Z                           "auto"
#define CFGOPTVAL_REPO_S3_KEY_TYPE_WEB_ID                           2
#define CFGOPTVAL_REPO_S3_KEY_TYPE_WEB_ID_STRID                     STRID5S("web-id", 2, 0x89d88b76)
#define CFGOPTVAL_REPO_S3_KEY_TYPE_WEB_ID_Z                         "web-id"
#define CFGOPTVAL_REPO_S3_KEY_TYPE_POD_ID                           3
#define CFGOPTVAL_REPO_S3_KEY_TYPE_POD_ID_STRID                     STRID5S("pod-id", 3, 0x89d91f08)
#define CFGOPTVAL_REPO_S3_KEY_TYPE_POD_ID_Z                         "pod-id"
#define CFGOPTVAL_REPO_S3_KEY_TYPE_PROCESS                          4
#define CFGOPTVAL_REPO_S3_KEY_TYPE_PROCESS_STRID                    STRID5S("process", 4, 0x4e651be50a)
#define CFGOPTVAL_REPO_S3_KEY_TYPE_PROCESS_Z                        "process"

#define CFGOPTVAL_REPO_S3_URI_STYLE_HOST                            0
#define CFGOPTVAL_REPO_S3_URI_STYLE_HOST_STRID                      STRID5S("host", 0, 0xa4de82)
#define CFGOPTVAL_REPO_S3_URI_STYLE_HOST_Z                          "host"
#define CFGOPTVAL_REPO_S3_URI_STYLE_PATH                            1
#define CFGOPTVAL_REPO_S3_URI_STYLE_PATH_STRID                      STRID5S("path", 1, 0x450304)
#define CFGOPTVAL_REPO_S3_URI_STYLE_PATH_Z                          "path"

#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_ACCEPT_NEW          STRID5("accept-new", 0x2e576e9028c610)
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_ACCEPT_NEW_Z        "accept-new"
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_FINGERPRINT         STRID5("fingerprint", 0x51c9942453b9260)
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_FINGERPRINT_Z       "fingerprint"
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_NONE                STRID5("none", 0x2b9ee0)
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_NONE_Z              "none"
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_STRICT              STRID5("strict", 0x2834ca930)
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_CHECK_TYPE_STRICT_Z            "strict"

#define CFGOPTVAL_REPO_SFTP_HOST_KEY_HASH_TYPE_MD5                  STRID5("md5", 0x748d0)
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_HASH_TYPE_MD5_Z                "md5"
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_HASH_TYPE_SHA1                 STRID6("sha1", 0x7412131)
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_HASH_TYPE_SHA1_Z               "sha1"
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_HASH_TYPE_SHA256               STRID5("sha256", 0x3dde05130)
#define CFGOPTVAL_REPO_SFTP_HOST_KEY_HASH_TYPE_SHA256_Z             "sha256"

#define CFGOPTVAL_REPO_TYPE_AZURE                                   STRID5("azure", 0x5957410)
#define CFGOPTVAL_REPO_TYPE_AZURE_Z                                 "azure"
#define CFGOPTVAL_REPO_TYPE_CIFS                                    STRID5("cifs", 0x999230)
#define CFGOPTVAL_REPO_TYPE_CIFS_Z                                  "cifs"
#define CFGOPTVAL_REPO_TYPE_GCS                                     STRID5("gcs", 0x4c670)
#define CFGOPTVAL_REPO_TYPE_GCS_Z                                   "gcs"
#define CFGOPTVAL_REPO_TYPE_POSIX                                   STRID5("posix", 0x184cdf00)
#define CFGOPTVAL_REPO_TYPE_POSIX_Z                                 "posix"
#define CFGOPTVAL_REPO_TYPE_S3                                      STRID6("s3", 0x7d31)
#define CFGOPTVAL_REPO_TYPE_S3_Z                                    "s3"
#define CFGOPTVAL_REPO_TYPE_SFTP                                    STRID5("sftp", 0x850d30)
#define CFGOPTVAL_REPO_TYPE_SFTP_Z                                  "sftp"

#define CFGOPTVAL_SORT_NONE                                         0
#define CFGOPTVAL_SORT_NONE_STRID                                   STRID5S("none", 0, 0x2b9ee2)
#define CFGOPTVAL_SORT_NONE_Z                                       "none"
#define CFGOPTVAL_SORT_ASC                                          1
#define CFGOPTVAL_SORT_ASC_STRID                                    STRID5S("asc", 1, 0xe614)
#define CFGOPTVAL_SORT_ASC_Z                                        "asc"
#define CFGOPTVAL_SORT_DESC                                         2
#define CFGOPTVAL_SORT_DESC_STRID                                   STRID5S("desc", 2, 0x1cca46)
#define CFGOPTVAL_SORT_DESC_Z                                       "desc"

#define CFGOPTVAL_TARGET_ACTION_PAUSE                               STRID5("pause", 0x59d4300)
#define CFGOPTVAL_TARGET_ACTION_PAUSE_Z                             "pause"
#define CFGOPTVAL_TARGET_ACTION_PROMOTE                             STRID5("promote", 0x168f6be500)
#define CFGOPTVAL_TARGET_ACTION_PROMOTE_Z                           "promote"
#define CFGOPTVAL_TARGET_ACTION_SHUTDOWN                            STRID5("shutdown", 0x75de4a55130)
#define CFGOPTVAL_TARGET_ACTION_SHUTDOWN_Z                          "shutdown"

#define CFGOPTVAL_TYPE_DIFF                                         STRID5("diff", 0x319240)
#define CFGOPTVAL_TYPE_DIFF_Z                                       "diff"
#define CFGOPTVAL_TYPE_FULL                                         STRID5("full", 0x632a60)
#define CFGOPTVAL_TYPE_FULL_Z                                       "full"
#define CFGOPTVAL_TYPE_INCR                                         STRID5("incr", 0x90dc90)
#define CFGOPTVAL_TYPE_INCR_Z                                       "incr"

#define CFGOPTVAL_RESTORE_TYPE_DEFAULT                              0
#define CFGOPTVAL_RESTORE_TYPE_DEFAULT_STRID                        STRID5S("default", 0, 0x5195098a42)
#define CFGOPTVAL_RESTORE_TYPE_DEFAULT_Z                            "default"
#define CFGOPTVAL_RESTORE_TYPE_PRESERVE                             1
#define CFGOPTVAL_RESTORE_TYPE_PRESERVE_STRID                       STRID5S("preserve", 1, 0x2da45996504)
#define CFGOPTVAL_RESTORE_TYPE_PRESERVE_Z                           "preserve"
#define CFGOPTVAL_RESTORE_TYPE_IMMEDIATE                            2
#define CFGOPTVAL_RESTORE_TYPE_IMMEDIATE_STRID                      STRID5S("immediate", 2, 0x5a05242b5a96)
#define CFGOPTVAL_RESTORE_TYPE_IMMEDIATE_Z                          "immediate"
#define CFGOPTVAL_RESTORE_TYPE_STANDBY                              3
#define CFGOPTVAL_RESTORE_TYPE_STANDBY_STRID                        STRID5S("standby", 3, 0x6444706938)
#define CFGOPTVAL_RESTORE_TYPE_STANDBY_Z                            "standby"
#define CFGOPTVAL_RESTORE_TYPE_NONE                                 4
#define CFGOPTVAL_RESTORE_TYPE_NONE_STRID                           STRID5S("none", 4, 0x2b9eea)
#define CFGOPTVAL_RESTORE_TYPE_NONE_Z                               "none"
#define CFGOPTVAL_RESTORE_TYPE_NAME                                 5
#define CFGOPTVAL_RESTORE_TYPE_NAME_STRID                           STRID5S("name", 5, 0x2b42ec)
#define CFGOPTVAL_RESTORE_TYPE_NAME_Z                               "name"
#define CFGOPTVAL_RESTORE_TYPE_TIME                                 6
#define CFGOPTVAL_RESTORE_TYPE_TIME_STRID                           STRID5S("time", 6, 0x56a680e)
#define CFGOPTVAL_RESTORE_TYPE_TIME_Z                               "time"
#define CFGOPTVAL_RESTORE_TYPE_LSN                                  7
#define CFGOPTVAL_RESTORE_TYPE_LSN_STRID                            STRID5S("lsn", 7, 0x74d81e)
#define CFGOPTVAL_RESTORE_TYPE_LSN_Z                                "lsn"
#define CFGOPTVAL_RESTORE_TYPE_XID                                  8
#define CFGOPTVAL_RESTORE_TYPE_XID_STRID                            STRID5S("xid", 8, 0x22702e)
#define CFGOPTVAL_RESTORE_TYPE_XID_Z                                "xid"

/***********************************************************************************************************************************
Command enum
***********************************************************************************************************************************/
typedef enum
{
    cfgCmdAnnotate,
    cfgCmdArchiveGet,
    cfgCmdArchivePush,
    cfgCmdBackup,
    cfgCmdCheck,
    cfgCmdExpire,
    cfgCmdHelp,
    cfgCmdInfo,
    cfgCmdManifest,
    cfgCmdRepoGet,
    cfgCmdRepoLs,
    cfgCmdRepoPut,
    cfgCmdRepoRm,
    cfgCmdRestore,
    cfgCmdServer,
    cfgCmdServerPing,
    cfgCmdStanzaCreate,
    cfgCmdStanzaDelete,
    cfgCmdStanzaUpgrade,
    cfgCmdStart,
    cfgCmdStop,
    cfgCmdVerify,
    cfgCmdVersion,
} ConfigCommand;

/***********************************************************************************************************************************
Option group enum
***********************************************************************************************************************************/
typedef enum
{
    cfgOptGrpPg,
    cfgOptGrpRepo,
} ConfigOptionGroup;

/***********************************************************************************************************************************
Option enum
***********************************************************************************************************************************/
typedef enum
{
    cfgOptAllowRoot,
    cfgOptAnnotation,
    cfgOptArchiveAsync,
    cfgOptArchiveCheck,
    cfgOptArchiveCopy,
    cfgOptArchiveExpireBefore,
    cfgOptArchiveGetQueueMax,
    cfgOptArchiveHeaderCheck,
    cfgOptArchiveMissingRetry,
    cfgOptArchiveMode,
    cfgOptArchiveModeCheck,
    cfgOptArchivePushBatchSize,
    cfgOptArchivePushQueueMax,
    cfgOptArchiveTimeout,
    cfgOptBackupStandby,
    cfgOptBeta,
    cfgOptBufferSize,
    cfgOptChecksumPage,
    cfgOptCipherPass,
    cfgOptCmd,
    cfgOptCmdSsh,
    cfgOptCompress,
    cfgOptCompressLevel,
    cfgOptCompressLevelNetwork,
    cfgOptCompressType,
    cfgOptConfig,
    cfgOptConfigIncludePath,
    cfgOptConfigPath,
    cfgOptDbExclude,
    cfgOptDbInclude,
    cfgOptDbTimeout,
    cfgOptDelta,
    cfgOptDetailLevel,
    cfgOptDryRun,
    cfgOptExclude,
    cfgOptExecId,
    cfgOptExpireAuto,
    cfgOptFilter,
    cfgOptForce,
    cfgOptHelp,
    cfgOptIgnoreMissing,
    cfgOptIoTimeout,
    cfgOptJobRetry,
    cfgOptJobRetryInterval,
    cfgOptLinkAll,
    cfgOptLinkMap,
    cfgOptLock,
    cfgOptLockPath,
    cfgOptLogLevelConsole,
    cfgOptLogLevelFile,
    cfgOptLogLevelStderr,
    cfgOptLogPath,
    cfgOptLogSubprocess,
    cfgOptLogTimestamp,
    cfgOptManifestSaveThreshold,
    cfgOptNeutralUmask,
    cfgOptOldest,
    cfgOptOnline,
    cfgOptOutput,
    cfgOptPageHeaderCheck,
    cfgOptPg,
    cfgOptPgDatabase,
    cfgOptPgHost,
    cfgOptPgHostCaFile,
    cfgOptPgHostCaPath,
    cfgOptPgHostCertFile,
    cfgOptPgHostCmd,
    cfgOptPgHostConfig,
    cfgOptPgHostConfigIncludePath,
    cfgOptPgHostConfigPath,
    cfgOptPgHostKeyFile,
    cfgOptPgHostPort,
    cfgOptPgHostType,
    cfgOptPgHostUser,
    cfgOptPgLocal,
    cfgOptPgPath,
    cfgOptPgPort,
    cfgOptPgSocketPath,
    cfgOptPgUser,
    cfgOptPgVersionForce,
    cfgOptPriority,
    cfgOptProcess,
    cfgOptProcessMax,
    cfgOptProtocolTimeout,
    cfgOptRaw,
    cfgOptRecoveryOption,
    cfgOptRecurse,
    cfgOptReference,
    cfgOptRemoteType,
    cfgOptRepo,
    cfgOptRepoAzureAccount,
    cfgOptRepoAzureContainer,
    cfgOptRepoAzureEndpoint,
    cfgOptRepoAzureKey,
    cfgOptRepoAzureKeyType,
    cfgOptRepoAzureUriStyle,
    cfgOptRepoBlock,
    cfgOptRepoBlockAgeMap,
    cfgOptRepoBlockChecksumSizeMap,
    cfgOptRepoBlockSizeMap,
    cfgOptRepoBlockSizeSuper,
    cfgOptRepoBlockSizeSuperFull,
    cfgOptRepoBundle,
    cfgOptRepoBundleLimit,
    cfgOptRepoBundleSize,
    cfgOptRepoCipherPass,
    cfgOptRepoCipherType,
    cfgOptRepoGcsBucket,
    cfgOptRepoGcsEndpoint,
    cfgOptRepoGcsKey,
    cfgOptRepoGcsKeyType,
    cfgOptRepoGcsUserProject,
    cfgOptRepoHardlink,
    cfgOptRepoHost,
    cfgOptRepoHostCaFile,
    cfgOptRepoHostCaPath,
    cfgOptRepoHostCertFile,
    cfgOptRepoHostCmd,
    cfgOptRepoHostConfig,
    cfgOptRepoHostConfigIncludePath,
    cfgOptRepoHostConfigPath,
    cfgOptRepoHostKeyFile,
    cfgOptRepoHostPort,
    cfgOptRepoHostType,
    cfgOptRepoHostUser,
    cfgOptRepoLocal,
    cfgOptRepoPath,
    cfgOptRepoRetentionArchive,
    cfgOptRepoRetentionArchiveType,
    cfgOptRepoRetentionDiff,
    cfgOptRepoRetentionFull,
    cfgOptRepoRetentionFullType,
    cfgOptRepoRetentionHistory,
    cfgOptRepoS3Bucket,
    cfgOptRepoS3Endpoint,
    cfgOptRepoS3Key,
    cfgOptRepoS3KeySecret,
    cfgOptRepoS3KeyType,
    cfgOptRepoS3KmsKeyId,
    cfgOptRepoS3ProcessCmd,
    cfgOptRepoS3Region,
    cfgOptRepoS3RequesterPays,
    cfgOptRepoS3Role,
    cfgOptRepoS3Service,
    cfgOptRepoS3SseCustomerKey,
    cfgOptRepoS3StsHost,
    cfgOptRepoS3Token,
    cfgOptRepoS3UriStyle,
    cfgOptRepoSftpHost,
    cfgOptRepoSftpHostFingerprint,
    cfgOptRepoSftpHostKeyCheckType,
    cfgOptRepoSftpHostKeyHashType,
    cfgOptRepoSftpHostPort,
    cfgOptRepoSftpHostUser,
    cfgOptRepoSftpKnownHost,
    cfgOptRepoSftpPrivateKeyFile,
    cfgOptRepoSftpPrivateKeyPassphrase,
    cfgOptRepoSftpPublicKeyFile,
    cfgOptRepoStorageCaFile,
    cfgOptRepoStorageCaPath,
    cfgOptRepoStorageHost,
    cfgOptRepoStoragePort,
    cfgOptRepoStorageTag,
    cfgOptRepoStorageUploadChunkSize,
    cfgOptRepoStorageVerifyTls,
    cfgOptRepoSymlink,
    cfgOptRepoTargetTime,
    cfgOptRepoType,
    cfgOptReport,
    cfgOptResume,
    cfgOptSckBlock,
    cfgOptSckKeepAlive,
    cfgOptSet,
    cfgOptSort,
    cfgOptSpoolPath,
    cfgOptStanza,
    cfgOptStartFast,
    cfgOptStopAuto,
    cfgOptTablespaceMap,
    cfgOptTablespaceMapAll,
    cfgOptTarget,
    cfgOptTargetAction,
    cfgOptTargetExclusive,
    cfgOptTargetTimeline,
    cfgOptTcpKeepAliveCount,
    cfgOptTcpKeepAliveIdle,
    cfgOptTcpKeepAliveInterval,
    cfgOptTlsCipher12,
    cfgOptTlsCipher13,
    cfgOptTlsServerAddress,
    cfgOptTlsServerAuth,
    cfgOptTlsServerCaFile,
    cfgOptTlsServerCertFile,
    cfgOptTlsServerKeyFile,
    cfgOptTlsServerPort,
    cfgOptType,
    cfgOptVerbose,
    cfgOptVersion,
} ConfigOption;

#endif
