void Config::PrintHelpMessage()

in source/config/Config.cpp [1635:1731]


void Config::PrintHelpMessage()
{
    const char *helpMessageTemplate =
        "\n\n\tAWS IoT Device Client BINARY\n"
        "\n"
        "For more documentation, see https://github.com/awslabs/aws-iot-device-client\n"
        "\n"
        "Available sub-commands:\n"
        "\n"
        "%s:\t\t\t\t\t\t\t\t\tGet more help on commands\n"
        "%s <JSON-File-Location>:\t\t\t\tExport default settings for the AWS IoT Device Client binary to the specified "
        "file "
        "and exit "
        "program\n"
        "%s <JSON-File-Location>:\t\t\t\t\tTake settings defined in the specified JSON file and start the binary\n"
        "%s <[DEBUG, INFO, WARN, ERROR]>:\t\t\t\tSpecify the log level for the AWS IoT Device Client\n"
        "%s <[STDOUT, FILE]>:\t\t\t\t\t\tSpecify the logger implementation to use.\n"
        "%s <File-Location>:\t\t\t\t\t\tWrite logs to specified log file when using the file logger.\n"
        "%s \t\t\t\t\t\t\tEnable SDK Logging.\n"
        "%s <[Trace, Debug, Info, Warn, Error, Fatal]>:\t\tSpecify the log level for the SDK\n"
        "%s <File-Location>:\t\t\t\t\t\tWrite SDK logs to specified log file.\n"
        "%s [true|false]:\t\t\t\t\t\tEnables/Disables Jobs feature\n"
        "%s [true|false]:\t\t\t\t\tEnables/Disables Tunneling feature\n"
        "%s [true|false]:\t\t\t\t\tEnables/Disables Device Defender feature\n"
        "%s [true|false]:\t\t\t\tEnables/Disables Fleet Provisioning feature\n"
        "%s [true|false]:\t\t\t\t\t\tEnables/Disables Pub/Sub Sample feature\n"
        "%s [true|false]:\t\t\t\t\t\tEnables/Disables Sample Shadow feature\n"
        "%s [true|false]:\t\t\t\t\t\tEnables/Disables Config Shadow feature\n"
        "%s <endpoint-value>:\t\t\t\t\t\tUse Specified Endpoint\n"
        "%s <Cert-Location>:\t\t\t\t\t\t\tUse Specified Cert file\n"
        "%s <Key-Location>:\t\t\t\t\t\t\tUse Specified Key file\n"
        "%s <Root-CA-Location>:\t\t\t\t\t\tUse Specified Root-CA file\n"
        "%s <thing-name-value/client-id-value>:\t\t\t\t\tUse Specified Thing Name (Also used as Client ID)\n"
        "%s <Jobs-handler-directory>:\t\t\t\tUse specified directory to find job handlers\n"
        "%s <region>:\t\t\t\t\t\tUse Specified AWS Region for Secure Tunneling\n"
        "%s <service>:\t\t\t\t\t\tConnect secure tunnel to specific service\n"
        "%s:\t\t\t\t\tDisable MQTT new tunnel notification for Secure Tunneling\n"
        "%s <interval>:\t\t\t\t\tPositive integer to publish Device Defender metrics\n"
        "%s <template-name>:\t\t\tUse specified Fleet Provisioning template name\n"
        "%s <template-parameters>:\t\tUse specified Fleet Provisioning template parameters. A JSON object specified as "
        "an escaped string\n"
        "%s <csr-file-path>:\t\t\t\t\t\tUse specified CSR file to generate a certificate by keeping user private key "
        "secure. If the CSR file is specified without also specifying a device private key, the Device Client will use "
        "Claim Certificate and Private key to generate new Certificate and Private Key while provisioning the device\n"
        "%s <device-key-path>:\t\t\t\t\t\tUse specified device key to connect to IoT core after provisioning using csr "
        "file is completed. If the CSR file is specified without also specifying a device private key, the Device "
        "Client will use Claim Certificate and Private key to generate new Certificate and Private Key while "
        "provisioning the device\n"
        "%s <publish-topic>:\t\t\t\t\tThe topic the Pub/Sub sample feature will publish to\n"
        "%s <path/to/publish/file>:\t\t\t\t\tThe file the Pub/Sub sample feature will read from when publishing\n"
        "%s <subscribe-topic>:\t\t\t\t\tThe topic the Pub/Sub sample feature will receive messages on\n"
        "%s <path/to/sub/file>:\t\t\t\t\tThe file the Pub/Sub sample feature will write received messaged to\n"
        "%s <shadow-name>:\t\t\t\t\tThe name of shadow SampleShadow feature will create or update\n"
        "%s <shadow-input-file>:\t\t\t\t\tThe file the Sample Shadow feature will read from when updating shadow data\n"
        "%s <shadow-output-file>:\t\t\t\t\tThe file the Sample Shadow feature will write the latest shadow document "
        "to\n";

    cout << FormatMessage(
        helpMessageTemplate,
        CLI_HELP,
        CLI_EXPORT_DEFAULT_SETTINGS,
        CLI_CONFIG_FILE,
        PlainConfig::LogConfig::CLI_LOG_LEVEL,
        PlainConfig::LogConfig::CLI_LOG_TYPE,
        PlainConfig::LogConfig::CLI_LOG_FILE,
        PlainConfig::LogConfig::CLI_ENABLE_SDK_LOGGING,
        PlainConfig::LogConfig::CLI_SDK_LOG_LEVEL,
        PlainConfig::LogConfig::CLI_SDK_LOG_FILE,
        PlainConfig::Jobs::CLI_ENABLE_JOBS,
        PlainConfig::Tunneling::CLI_ENABLE_TUNNELING,
        PlainConfig::DeviceDefender::CLI_ENABLE_DEVICE_DEFENDER,
        PlainConfig::FleetProvisioning::CLI_ENABLE_FLEET_PROVISIONING,
        PlainConfig::PubSub::CLI_ENABLE_PUB_SUB,
        PlainConfig::SampleShadow::CLI_ENABLE_SAMPLE_SHADOW,
        PlainConfig::ConfigShadow::CLI_ENABLE_CONFIG_SHADOW,
        PlainConfig::CLI_ENDPOINT,
        PlainConfig::CLI_CERT,
        PlainConfig::CLI_KEY,
        PlainConfig::CLI_ROOT_CA,
        PlainConfig::CLI_THING_NAME,
        PlainConfig::Jobs::CLI_HANDLER_DIR,
        PlainConfig::Tunneling::CLI_TUNNELING_REGION,
        PlainConfig::Tunneling::CLI_TUNNELING_SERVICE,
        PlainConfig::Tunneling::CLI_TUNNELING_DISABLE_NOTIFICATION,
        PlainConfig::DeviceDefender::CLI_DEVICE_DEFENDER_INTERVAL,
        PlainConfig::FleetProvisioning::CLI_FLEET_PROVISIONING_TEMPLATE_NAME,
        PlainConfig::FleetProvisioning::CLI_FLEET_PROVISIONING_TEMPLATE_PARAMETERS,
        PlainConfig::FleetProvisioning::CLI_FLEET_PROVISIONING_CSR_FILE,
        PlainConfig::FleetProvisioning::CLI_FLEET_PROVISIONING_DEVICE_KEY,
        PlainConfig::PubSub::CLI_PUB_SUB_PUBLISH_TOPIC,
        PlainConfig::PubSub::CLI_PUB_SUB_PUBLISH_FILE,
        PlainConfig::PubSub::CLI_PUB_SUB_SUBSCRIBE_TOPIC,
        PlainConfig::PubSub::CLI_PUB_SUB_SUBSCRIBE_FILE,
        PlainConfig::SampleShadow::CLI_SAMPLE_SHADOW_NAME,
        PlainConfig::SampleShadow::CLI_SAMPLE_SHADOW_INPUT_FILE,
        PlainConfig::SampleShadow::CLI_SAMPLE_SHADOW_OUTPUT_FILE);
}