AWS SDK for C++  1.7.111
AWS SDK for C++
Public Member Functions | Public Attributes | List of all members
Aws::Client::ClientConfiguration Struct Reference

#include <ClientConfiguration.h>

Public Member Functions

 ClientConfiguration ()
 ClientConfiguration (const char *profileName)

Public Attributes

Aws::String userAgent
Aws::Http::Scheme scheme
Aws::String region
bool useDualStack
unsigned maxConnections
long requestTimeoutMs
long connectTimeoutMs
bool enableTcpKeepAlive
unsigned long tcpKeepAliveIntervalMs
unsigned long lowSpeedLimit
std::shared_ptr< RetryStrategyretryStrategy
Aws::String endpointOverride
Aws::Http::Scheme proxyScheme
Aws::String proxyHost
unsigned proxyPort
Aws::String proxyUserName
Aws::String proxyPassword
Aws::String proxySSLCertPath
Aws::String proxySSLCertType
Aws::String proxySSLKeyPath
Aws::String proxySSLKeyType
Aws::String proxySSLKeyPassword
std::shared_ptr< Aws::Utils::Threading::Executorexecutor
bool verifySSL
Aws::String caPath
Aws::String caFile
std::shared_ptr< Aws::Utils::RateLimits::RateLimiterInterfacewriteRateLimiter
std::shared_ptr< Aws::Utils::RateLimits::RateLimiterInterfacereadRateLimiter
Aws::Http::TransferLibType httpLibOverride
bool followRedirects
bool disableExpectHeader
bool enableClockSkewAdjustment
bool enableHostPrefixInjection
bool enableEndpointDiscovery

Detailed Description

This mutable structure is used to configure any of the AWS clients. Default values can only be overwritten prior to passing to the client constructors.

Definition at line 48 of file ClientConfiguration.h.

Constructor & Destructor Documentation

◆ ClientConfiguration() [1/2]

Aws::Client::ClientConfiguration::ClientConfiguration ( )

◆ ClientConfiguration() [2/2]

Aws::Client::ClientConfiguration::ClientConfiguration ( const char *  profileName)

Create a configuration based on settings in the aws configuration file for the given profile name. The configuration file location can be set via the environment variable AWS_CONFIG_FILE

Member Data Documentation

◆ caFile

Aws::String Aws::Client::ClientConfiguration::caFile

If you certificate file is different from the default, you can tell clients that aren't using the default trust store where to find your ca file. If you are on windows or apple, you likely don't want this.

Definition at line 177 of file ClientConfiguration.h.

◆ caPath

Aws::String Aws::Client::ClientConfiguration::caPath

If your Certificate Authority path is different from the default, you can tell clients that aren't using the default trust store where to find your CA trust store. If you are on windows or apple, you likely don't want this.

Definition at line 171 of file ClientConfiguration.h.

◆ connectTimeoutMs

long Aws::Client::ClientConfiguration::connectTimeoutMs

Socket connect timeout. Default 1000 ms. Unless you are very far away from your the data center you are talking to. 1000ms is more than sufficient.

Definition at line 87 of file ClientConfiguration.h.

◆ disableExpectHeader

bool Aws::Client::ClientConfiguration::disableExpectHeader

Only works for Curl http client. Curl will by default add "Expect: 100-Continue" header in a Http request so as to avoid sending http payload to wire if server respond error immediately after receiving the header. Set this option to true will tell Curl to send http request header and body together. This can save one round-trip time and especially useful when the payload is small and network latency is more important. But be careful when Http request has large payload such S3 PutObject. You don't want to spend long time sending a large payload just getting a error response for server. The default value will be false.

Definition at line 204 of file ClientConfiguration.h.

◆ enableClockSkewAdjustment

bool Aws::Client::ClientConfiguration::enableClockSkewAdjustment

If set to true clock skew will be adjusted after each http attempt, default to true.

Definition at line 209 of file ClientConfiguration.h.

◆ enableEndpointDiscovery

bool Aws::Client::ClientConfiguration::enableEndpointDiscovery

Enable endpoint discovery For some services to dynamically set up their endpoints for different requests. Defaults to false, it's an opt-in feature. If disabled, regional or overriden endpoint will be used instead. If a request requires endpoint discovery but you disabled it. The request will never succeed.

Definition at line 225 of file ClientConfiguration.h.

◆ enableHostPrefixInjection

bool Aws::Client::ClientConfiguration::enableHostPrefixInjection

Enable host prefix injection. For services whose endpoint is injectable. e.g. servicediscovery, you can modify the http host's prefix so as to add "data-" prefix for DiscoverInstances request. Default to true, enabled. You can disable it for testing purpose.

Definition at line 216 of file ClientConfiguration.h.

◆ enableTcpKeepAlive

bool Aws::Client::ClientConfiguration::enableTcpKeepAlive

Enable TCP keep-alive. Default true; No-op for WinHTTP, WinINet and IXMLHTTPRequest2 client.

Definition at line 92 of file ClientConfiguration.h.

◆ endpointOverride

Aws::String Aws::Client::ClientConfiguration::endpointOverride

Override the http endpoint used to talk to a service.

Definition at line 111 of file ClientConfiguration.h.

◆ executor

std::shared_ptr<Aws::Utils::Threading::Executor> Aws::Client::ClientConfiguration::executor

Threading Executor implementation. Default uses std::thread::detach()

Definition at line 160 of file ClientConfiguration.h.

◆ followRedirects

bool Aws::Client::ClientConfiguration::followRedirects

If set to true the http stack will follow 300 redirect codes.

Definition at line 193 of file ClientConfiguration.h.

◆ httpLibOverride

Aws::Http::TransferLibType Aws::Client::ClientConfiguration::httpLibOverride

Override the http implementation the default factory returns.

Definition at line 189 of file ClientConfiguration.h.

◆ lowSpeedLimit

unsigned long Aws::Client::ClientConfiguration::lowSpeedLimit

Average transfer speed in bytes per second that the transfer should be below during the request timeout interval for it to be considered too slow and abort. Default 1 byte/second. Only for CURL client currently.

Definition at line 103 of file ClientConfiguration.h.

◆ maxConnections

unsigned Aws::Client::ClientConfiguration::maxConnections

Max concurrent tcp connections for a single http client to use. Default 25.

Definition at line 77 of file ClientConfiguration.h.

◆ proxyHost

Aws::String Aws::Client::ClientConfiguration::proxyHost

If you have users going through a proxy, set the host here.

Definition at line 119 of file ClientConfiguration.h.

◆ proxyPassword

Aws::String Aws::Client::ClientConfiguration::proxyPassword

If you have users going through a proxy, set the password here.

Definition at line 131 of file ClientConfiguration.h.

◆ proxyPort

unsigned Aws::Client::ClientConfiguration::proxyPort

If you have users going through a proxy, set the port here.

Definition at line 123 of file ClientConfiguration.h.

◆ proxyScheme

Aws::Http::Scheme Aws::Client::ClientConfiguration::proxyScheme

If you have users going through a proxy, set the proxy scheme here. Default HTTP

Definition at line 115 of file ClientConfiguration.h.

◆ proxySSLCertPath

Aws::String Aws::Client::ClientConfiguration::proxySSLCertPath

SSL Certificate file to use for connecting to an HTTPS proxy. Used to set CURLOPT_PROXY_SSLCERT in libcurl. Example: client.pem

Definition at line 136 of file ClientConfiguration.h.

◆ proxySSLCertType

Aws::String Aws::Client::ClientConfiguration::proxySSLCertType

Type of proxy client SSL certificate. Used to set CURLOPT_PROXY_SSLCERTTYPE in libcurl. Example: PEM

Definition at line 141 of file ClientConfiguration.h.

◆ proxySSLKeyPassword

Aws::String Aws::Client::ClientConfiguration::proxySSLKeyPassword

Passphrase to the private key file used to connect to an HTTPS proxy. Used to set CURLOPT_PROXY_KEYPASSWD in libcurl. Example: password1

Definition at line 156 of file ClientConfiguration.h.

◆ proxySSLKeyPath

Aws::String Aws::Client::ClientConfiguration::proxySSLKeyPath

Private key file to use for connecting to an HTTPS proxy. Used to set CURLOPT_PROXY_SSLKEY in libcurl. Example: key.pem

Definition at line 146 of file ClientConfiguration.h.

◆ proxySSLKeyType

Aws::String Aws::Client::ClientConfiguration::proxySSLKeyType

Type of private key file used to connect to an HTTPS proxy. Used to set CURLOPT_PROXY_SSLKEYTYPE in libcurl. Example: PEM

Definition at line 151 of file ClientConfiguration.h.

◆ proxyUserName

Aws::String Aws::Client::ClientConfiguration::proxyUserName

If you have users going through a proxy, set the username here.

Definition at line 127 of file ClientConfiguration.h.

◆ readRateLimiter

std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> Aws::Client::ClientConfiguration::readRateLimiter

Rate Limiter implementation for incoming bandwidth. Default is wide-open.

Definition at line 185 of file ClientConfiguration.h.

◆ region

Aws::String Aws::Client::ClientConfiguration::region

AWS Region to use in signing requests. Default US_EAST_1

Definition at line 69 of file ClientConfiguration.h.

◆ requestTimeoutMs

long Aws::Client::ClientConfiguration::requestTimeoutMs

Socket read timeouts for HTTP clients on Windows. Default 3000 ms. This should be more than adequate for most services. However, if you are transfering large amounts of data or are worried about higher latencies, you should set to something that makes more sense for your use case. For Curl, it's the low speed time, which contains the time in number milliseconds that transfer speed should be below "lowSpeedLimit" for the library to consider it too slow and abort.

Definition at line 83 of file ClientConfiguration.h.

◆ retryStrategy

std::shared_ptr<RetryStrategy> Aws::Client::ClientConfiguration::retryStrategy

Strategy to use in case of failed requests. Default is DefaultRetryStrategy (e.g. exponential backoff)

Definition at line 107 of file ClientConfiguration.h.

◆ scheme

Aws::Http::Scheme Aws::Client::ClientConfiguration::scheme

Http scheme to use. E.g. Http or Https. Default HTTPS

Definition at line 65 of file ClientConfiguration.h.

◆ tcpKeepAliveIntervalMs

unsigned long Aws::Client::ClientConfiguration::tcpKeepAliveIntervalMs

Interval to send a keep-alive packet over the connection. Default 30 seconds. Minimum 15 seconds. WinHTTP & libcurl support this option. No-op for WinINet and IXMLHTTPRequest2 client.

Definition at line 98 of file ClientConfiguration.h.

◆ useDualStack

bool Aws::Client::ClientConfiguration::useDualStack

Use dual stack endpoint in the endpoint calculation. It is your responsibility to verify that the service supports ipv6 in the region you select.

Definition at line 73 of file ClientConfiguration.h.

◆ userAgent

Aws::String Aws::Client::ClientConfiguration::userAgent

User Agent string user for http calls. This is filled in for you in the constructor. Don't override this unless you have a really good reason.

Definition at line 61 of file ClientConfiguration.h.

◆ verifySSL

bool Aws::Client::ClientConfiguration::verifySSL

If you need to test and want to get around TLS validation errors, do that here. you probably shouldn't use this flag in a production scenario.

Definition at line 165 of file ClientConfiguration.h.

◆ writeRateLimiter

std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> Aws::Client::ClientConfiguration::writeRateLimiter

Rate Limiter implementation for outgoing bandwidth. Default is wide-open.

Definition at line 181 of file ClientConfiguration.h.

The documentation for this struct was generated from the following file: