####################################################################################################################################
# Automatically generated by Build.pm -- do not modify directly.
####################################################################################################################################
package pgBackRest::LibCAuto;

use strict;
use warnings;

# Configuration option value constants
sub libcAutoConstant
{
    return
    {
        CFGOPTVAL_INFO_OUTPUT_TEXT                                       => 'text',
        CFGOPTVAL_INFO_OUTPUT_JSON                                       => 'json',

        CFGOPTVAL_REPO_CIPHER_TYPE_NONE                                  => 'none',
        CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC                           => 'aes-256-cbc',

        CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL                       => 'full',
        CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF                       => 'diff',
        CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR                       => 'incr',

        CFGOPTVAL_REPO_TYPE_CIFS                                         => 'cifs',
        CFGOPTVAL_REPO_TYPE_POSIX                                        => 'posix',
        CFGOPTVAL_REPO_TYPE_S3                                           => 's3',

        CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE                            => 'pause',
        CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE                          => 'promote',
        CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN                         => 'shutdown',

        CFGOPTVAL_BACKUP_TYPE_FULL                                       => 'full',
        CFGOPTVAL_BACKUP_TYPE_DIFF                                       => 'diff',
        CFGOPTVAL_BACKUP_TYPE_INCR                                       => 'incr',

        CFGOPTVAL_LOCAL_TYPE_DB                                          => 'db',
        CFGOPTVAL_LOCAL_TYPE_BACKUP                                      => 'backup',

        CFGOPTVAL_REMOTE_TYPE_DB                                         => 'db',
        CFGOPTVAL_REMOTE_TYPE_BACKUP                                     => 'backup',

        CFGOPTVAL_RESTORE_TYPE_NAME                                      => 'name',
        CFGOPTVAL_RESTORE_TYPE_TIME                                      => 'time',
        CFGOPTVAL_RESTORE_TYPE_XID                                       => 'xid',
        CFGOPTVAL_RESTORE_TYPE_PRESERVE                                  => 'preserve',
        CFGOPTVAL_RESTORE_TYPE_NONE                                      => 'none',
        CFGOPTVAL_RESTORE_TYPE_IMMEDIATE                                 => 'immediate',
        CFGOPTVAL_RESTORE_TYPE_DEFAULT                                   => 'default',

        CFGDEF_TYPE_BOOLEAN                                              => 0,
        CFGDEF_TYPE_FLOAT                                                => 1,
        CFGDEF_TYPE_HASH                                                 => 2,
        CFGDEF_TYPE_INTEGER                                              => 3,
        CFGDEF_TYPE_LIST                                                 => 4,
        CFGDEF_TYPE_SIZE                                                 => 5,
        CFGDEF_TYPE_STRING                                               => 6,

        ENCODE_TYPE_BASE64                                               => 0,

        CIPHER_MODE_ENCRYPT                                              => 0,
        CIPHER_MODE_DECRYPT                                              => 1,
    }
}

# Export function and constants
sub libcAutoExportTag
{
    return
    {
        checksum =>
        [
            'pageChecksum',
            'pageChecksumBufferTest',
            'pageChecksumTest',
        ],

        config =>
        [
            'CFGOPTVAL_INFO_OUTPUT_TEXT',
            'CFGOPTVAL_INFO_OUTPUT_JSON',
            'CFGOPTVAL_REPO_CIPHER_TYPE_NONE',
            'CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC',
            'CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL',
            'CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF',
            'CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR',
            'CFGOPTVAL_REPO_TYPE_CIFS',
            'CFGOPTVAL_REPO_TYPE_POSIX',
            'CFGOPTVAL_REPO_TYPE_S3',
            'CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE',
            'CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE',
            'CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN',
            'CFGOPTVAL_BACKUP_TYPE_FULL',
            'CFGOPTVAL_BACKUP_TYPE_DIFF',
            'CFGOPTVAL_BACKUP_TYPE_INCR',
            'CFGOPTVAL_LOCAL_TYPE_DB',
            'CFGOPTVAL_LOCAL_TYPE_BACKUP',
            'CFGOPTVAL_REMOTE_TYPE_DB',
            'CFGOPTVAL_REMOTE_TYPE_BACKUP',
            'CFGOPTVAL_RESTORE_TYPE_NAME',
            'CFGOPTVAL_RESTORE_TYPE_TIME',
            'CFGOPTVAL_RESTORE_TYPE_XID',
            'CFGOPTVAL_RESTORE_TYPE_PRESERVE',
            'CFGOPTVAL_RESTORE_TYPE_NONE',
            'CFGOPTVAL_RESTORE_TYPE_IMMEDIATE',
            'CFGOPTVAL_RESTORE_TYPE_DEFAULT',
            'CFGCMD_ARCHIVE_GET',
            'CFGCMD_ARCHIVE_PUSH',
            'CFGCMD_BACKUP',
            'CFGCMD_CHECK',
            'CFGCMD_EXPIRE',
            'CFGCMD_HELP',
            'CFGCMD_INFO',
            'CFGCMD_LOCAL',
            'CFGCMD_REMOTE',
            'CFGCMD_RESTORE',
            'CFGCMD_STANZA_CREATE',
            'CFGCMD_STANZA_DELETE',
            'CFGCMD_STANZA_UPGRADE',
            'CFGCMD_START',
            'CFGCMD_STOP',
            'CFGCMD_VERSION',
            'CFGOPT_ARCHIVE_ASYNC',
            'CFGOPT_ARCHIVE_CHECK',
            'CFGOPT_ARCHIVE_COPY',
            'CFGOPT_ARCHIVE_GET_QUEUE_MAX',
            'CFGOPT_ARCHIVE_PUSH_QUEUE_MAX',
            'CFGOPT_ARCHIVE_TIMEOUT',
            'CFGOPT_BACKUP_STANDBY',
            'CFGOPT_BUFFER_SIZE',
            'CFGOPT_CHECKSUM_PAGE',
            'CFGOPT_CMD_SSH',
            'CFGOPT_COMMAND',
            'CFGOPT_COMPRESS',
            'CFGOPT_COMPRESS_LEVEL',
            'CFGOPT_COMPRESS_LEVEL_NETWORK',
            'CFGOPT_CONFIG',
            'CFGOPT_CONFIG_INCLUDE_PATH',
            'CFGOPT_CONFIG_PATH',
            'CFGOPT_DB_INCLUDE',
            'CFGOPT_DB_TIMEOUT',
            'CFGOPT_DELTA',
            'CFGOPT_EXCLUDE',
            'CFGOPT_FORCE',
            'CFGOPT_HOST_ID',
            'CFGOPT_LINK_ALL',
            'CFGOPT_LINK_MAP',
            'CFGOPT_LOCK_PATH',
            'CFGOPT_LOG_LEVEL_CONSOLE',
            'CFGOPT_LOG_LEVEL_FILE',
            'CFGOPT_LOG_LEVEL_STDERR',
            'CFGOPT_LOG_PATH',
            'CFGOPT_LOG_SUBPROCESS',
            'CFGOPT_LOG_TIMESTAMP',
            'CFGOPT_MANIFEST_SAVE_THRESHOLD',
            'CFGOPT_NEUTRAL_UMASK',
            'CFGOPT_ONLINE',
            'CFGOPT_OUTPUT',
            'CFGOPT_PERL_OPTION',
            'CFGOPT_PG_HOST',
            'CFGOPT_PG_HOST2',
            'CFGOPT_PG_HOST3',
            'CFGOPT_PG_HOST4',
            'CFGOPT_PG_HOST5',
            'CFGOPT_PG_HOST6',
            'CFGOPT_PG_HOST7',
            'CFGOPT_PG_HOST8',
            'CFGOPT_PG_HOST_CMD',
            'CFGOPT_PG_HOST_CMD2',
            'CFGOPT_PG_HOST_CMD3',
            'CFGOPT_PG_HOST_CMD4',
            'CFGOPT_PG_HOST_CMD5',
            'CFGOPT_PG_HOST_CMD6',
            'CFGOPT_PG_HOST_CMD7',
            'CFGOPT_PG_HOST_CMD8',
            'CFGOPT_PG_HOST_CONFIG',
            'CFGOPT_PG_HOST_CONFIG2',
            'CFGOPT_PG_HOST_CONFIG3',
            'CFGOPT_PG_HOST_CONFIG4',
            'CFGOPT_PG_HOST_CONFIG5',
            'CFGOPT_PG_HOST_CONFIG6',
            'CFGOPT_PG_HOST_CONFIG7',
            'CFGOPT_PG_HOST_CONFIG8',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH2',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH3',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH4',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH5',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH6',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH7',
            'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH8',
            'CFGOPT_PG_HOST_CONFIG_PATH',
            'CFGOPT_PG_HOST_CONFIG_PATH2',
            'CFGOPT_PG_HOST_CONFIG_PATH3',
            'CFGOPT_PG_HOST_CONFIG_PATH4',
            'CFGOPT_PG_HOST_CONFIG_PATH5',
            'CFGOPT_PG_HOST_CONFIG_PATH6',
            'CFGOPT_PG_HOST_CONFIG_PATH7',
            'CFGOPT_PG_HOST_CONFIG_PATH8',
            'CFGOPT_PG_HOST_PORT',
            'CFGOPT_PG_HOST_PORT2',
            'CFGOPT_PG_HOST_PORT3',
            'CFGOPT_PG_HOST_PORT4',
            'CFGOPT_PG_HOST_PORT5',
            'CFGOPT_PG_HOST_PORT6',
            'CFGOPT_PG_HOST_PORT7',
            'CFGOPT_PG_HOST_PORT8',
            'CFGOPT_PG_HOST_USER',
            'CFGOPT_PG_HOST_USER2',
            'CFGOPT_PG_HOST_USER3',
            'CFGOPT_PG_HOST_USER4',
            'CFGOPT_PG_HOST_USER5',
            'CFGOPT_PG_HOST_USER6',
            'CFGOPT_PG_HOST_USER7',
            'CFGOPT_PG_HOST_USER8',
            'CFGOPT_PG_PATH',
            'CFGOPT_PG_PATH2',
            'CFGOPT_PG_PATH3',
            'CFGOPT_PG_PATH4',
            'CFGOPT_PG_PATH5',
            'CFGOPT_PG_PATH6',
            'CFGOPT_PG_PATH7',
            'CFGOPT_PG_PATH8',
            'CFGOPT_PG_PORT',
            'CFGOPT_PG_PORT2',
            'CFGOPT_PG_PORT3',
            'CFGOPT_PG_PORT4',
            'CFGOPT_PG_PORT5',
            'CFGOPT_PG_PORT6',
            'CFGOPT_PG_PORT7',
            'CFGOPT_PG_PORT8',
            'CFGOPT_PG_SOCKET_PATH',
            'CFGOPT_PG_SOCKET_PATH2',
            'CFGOPT_PG_SOCKET_PATH3',
            'CFGOPT_PG_SOCKET_PATH4',
            'CFGOPT_PG_SOCKET_PATH5',
            'CFGOPT_PG_SOCKET_PATH6',
            'CFGOPT_PG_SOCKET_PATH7',
            'CFGOPT_PG_SOCKET_PATH8',
            'CFGOPT_PROCESS',
            'CFGOPT_PROCESS_MAX',
            'CFGOPT_PROTOCOL_TIMEOUT',
            'CFGOPT_RECOVERY_OPTION',
            'CFGOPT_REPO_CIPHER_PASS',
            'CFGOPT_REPO_CIPHER_TYPE',
            'CFGOPT_REPO_HARDLINK',
            'CFGOPT_REPO_HOST',
            'CFGOPT_REPO_HOST_CMD',
            'CFGOPT_REPO_HOST_CONFIG',
            'CFGOPT_REPO_HOST_CONFIG_INCLUDE_PATH',
            'CFGOPT_REPO_HOST_CONFIG_PATH',
            'CFGOPT_REPO_HOST_PORT',
            'CFGOPT_REPO_HOST_USER',
            'CFGOPT_REPO_PATH',
            'CFGOPT_REPO_RETENTION_ARCHIVE',
            'CFGOPT_REPO_RETENTION_ARCHIVE_TYPE',
            'CFGOPT_REPO_RETENTION_DIFF',
            'CFGOPT_REPO_RETENTION_FULL',
            'CFGOPT_REPO_S3_BUCKET',
            'CFGOPT_REPO_S3_CA_FILE',
            'CFGOPT_REPO_S3_CA_PATH',
            'CFGOPT_REPO_S3_ENDPOINT',
            'CFGOPT_REPO_S3_HOST',
            'CFGOPT_REPO_S3_KEY',
            'CFGOPT_REPO_S3_KEY_SECRET',
            'CFGOPT_REPO_S3_REGION',
            'CFGOPT_REPO_S3_TOKEN',
            'CFGOPT_REPO_S3_VERIFY_SSL',
            'CFGOPT_REPO_TYPE',
            'CFGOPT_RESUME',
            'CFGOPT_SET',
            'CFGOPT_SPOOL_PATH',
            'CFGOPT_STANZA',
            'CFGOPT_START_FAST',
            'CFGOPT_STOP_AUTO',
            'CFGOPT_TABLESPACE_MAP',
            'CFGOPT_TABLESPACE_MAP_ALL',
            'CFGOPT_TARGET',
            'CFGOPT_TARGET_ACTION',
            'CFGOPT_TARGET_EXCLUSIVE',
            'CFGOPT_TARGET_TIMELINE',
            'CFGOPT_TEST',
            'CFGOPT_TEST_DELAY',
            'CFGOPT_TEST_POINT',
            'CFGOPT_TYPE',
            'cfgCommandName',
            'cfgOptionIndex',
            'cfgOptionIndexTotal',
            'cfgOptionName',
        ],

        configDefine =>
        [
            'CFGDEF_TYPE_BOOLEAN',
            'CFGDEF_TYPE_FLOAT',
            'CFGDEF_TYPE_HASH',
            'CFGDEF_TYPE_INTEGER',
            'CFGDEF_TYPE_LIST',
            'CFGDEF_TYPE_SIZE',
            'CFGDEF_TYPE_STRING',
            'cfgCommandId',
            'cfgDefOptionDefault',
            'cfgDefOptionPrefix',
            'cfgDefOptionSecure',
            'cfgDefOptionType',
            'cfgDefOptionValid',
            'cfgOptionId',
            'cfgOptionTotal',
        ],

        crypto =>
        [
            'CIPHER_MODE_ENCRYPT',
            'CIPHER_MODE_DECRYPT',
            'cryptoHashOne',
        ],

        debug =>
        [
            'libcUvSize',
        ],

        encode =>
        [
            'ENCODE_TYPE_BASE64',
            'decodeToBin',
            'encodeToStr',
        ],

        lock =>
        [
            'lockAcquire',
            'lockRelease',
        ],

        random =>
        [
            'cryptoRandomBytes',
        ],

        storage =>
        [
            'storageDriverPosixPathRemove',
        ],

        test =>
        [
            'cfgParseTest',
        ],
    }
}

1;
