AWS SDK for C++AWS SDK for C++ Version 1.11.912 |
#include <ClientConfiguration.h>
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 107 of file ClientConfiguration.h.
Create a configuration with default settings. By default IMDS calls are enabled.
| ClientConfigurationInitValues | ClientConfiguration initial customizable values |
false
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
| profileName | the aws profile name. |
| shouldDisableIMDS | whether or not to disable IMDS calls. |
"legacy",
false
Create a configuration with a predefined smart defaults
| useSmartDefaults,required | to differentiate c-tors |
| defaultMode,default | mode to use |
| shouldDisableIMDS | whether or not to disable IMDS calls. |
Add virtual method to allow use of dynamic_cast under inheritance.
A helper function to read config value from env variable or aws profile config
Utils::StringUtils::ToLower
A helper function to read config value from env variable or aws profile config. Addresses a problem in LoadConfigFromEnvOrProfile where env variables values are always mapped to their lower case equivalent. This fails for cases where ENV vars need to be case sensitive in instances like AWS_ROLE_ARN can have camel case values.
Returns a copy of credentialProviderConfig with parent fields (such as allowSystemProxy) re-synced from their current values on this ClientConfiguration. Use this at the point of constructing a credentials provider so post-construction assignments to parent fields are picked up; reading credentialProviderConfig directly captures values from ClientConfiguration construction time only.
The AWS account ID. Used for account-based endpoint routing. An AWS account ID has a format like 111122223333. Account-based endpoint routing provides better request performance for some services.
https://docs.aws.amazon.com/sdkref/latest/guide/feature-account-endpoints.html
Definition at line 511 of file ClientConfiguration.h.
This setting is used to turn off account-based endpoint routing if necessary, and bypass account-based rules. Can be the case sensitive string values "required", "disabled", or "preferred". Defaults to "preferred".
https://docs.aws.amazon.com/sdkref/latest/guide/feature-account-endpoints.html
Definition at line 519 of file ClientConfiguration.h.
Allow HTTP client to discover system proxy setting. Off by default for legacy reasons.
Definition at line 244 of file ClientConfiguration.h.
AppId is an optional application specific identifier that can be set. When set it will be appended to the User-Agent header of every request in the form of App/{AppId}. This variable is sourced from environment variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. See https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html for more information on environment variables and shared config settings.
Definition at line 441 of file ClientConfiguration.h.
Authentication scheme preferences in order of preference. First available auth scheme will be used for each operation.
Definition at line 633 of file ClientConfiguration.h.
Buffer size in bytes that will be used to content encode bodies using aws-chunked. Changing this is useful when you want to minimize memory use while uploading to S3. Size MUST be greater than 8KB otherwise S3 will reject the request.
Defaults to 64KiB.
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html
Definition at line 650 of file ClientConfiguration.h.
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 322 of file ClientConfiguration.h.
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 309 of file ClientConfiguration.h.
Client configuration factory methods to init client utility classes such as Executor, Retry Strategy
Definition at line 169 of file ClientConfiguration.h.
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 214 of file ClientConfiguration.h.
When set to true, the SDK will NOT add "Expect: 100-Continue" header to any HTTP request, including streaming operations like S3 PutObject or UploadPart.
By default (false), the SDK automatically adds "Expect: 100-Continue" only to streaming requests (operations with streaming input bodies). This allows the server to reject the request before the client sends a potentially large payload, saving bandwidth on failures. Non-streaming requests never receive the Expect header regardless of this setting.
Set to true if you are going through a proxy or middleware that does not correctly handle the Expect: 100-Continue mechanism.
Definition at line 366 of file ClientConfiguration.h.
Disable all internal IMDS Calls
Definition at line 416 of file ClientConfiguration.h.
Disable all internal IMDSV1 Calls
Definition at line 431 of file ClientConfiguration.h.
If set to true clock skew will be adjusted after each http attempt, default to true.
Definition at line 371 of file ClientConfiguration.h.
Enable endpoint discovery For some services to dynamically set up their endpoints for different requests. By default, service clients will decide if endpoint discovery is enabled or not. If disabled, regional or overridden endpoint will be used instead. If a request requires endpoint discovery but you disabled it. The request will never succeed. A boolean value is either true of false, use Optional here to have an instance does not contain a value, such that SDK will decide the default behavior as stated before, if no value specified.
Deprecated in API v. 1.10. Please set in service-specific client configuration.
Definition at line 393 of file ClientConfiguration.h.
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.
Deprecated in API v. 1.10. Please set in service-specific client configuration.
Definition at line 380 of file ClientConfiguration.h.
Enable http client (WinHTTP or CURL) traces. Defaults to false, it's an optional feature.
Definition at line 399 of file ClientConfiguration.h.
Enable TCP keep-alive. Default true; No-op for WinHTTP, WinINet and IXMLHTTPRequest2 client.
Definition at line 219 of file ClientConfiguration.h.
Override the http endpoint used to talk to a service.
Definition at line 239 of file ClientConfiguration.h.
Threading Executor implementation. Default uses std::thread::detach() Provide executor here or via a factory method.
Definition at line 298 of file ClientConfiguration.h.
Sets the behavior how http stack handles 30x redirect codes.
Definition at line 352 of file ClientConfiguration.h.
Control HTTP client chunking implementation mode. Default is set automatically: CLIENT_IMPLEMENTATION for custom clients, DEFAULT for AWS clients.
Definition at line 525 of file ClientConfiguration.h.
Override the http implementation the default factory returns.
Definition at line 343 of file ClientConfiguration.h.
Configure low latency or low cpu consumption http client operation mode. Currently applies only to streaming APIs and libCurl. Defaults to LOW_LATENCY
Definition at line 348 of file ClientConfiguration.h.
This is currently only applicable for Curl to set the http request level timeout, including possible dns lookup time, connection establish time, ssl handshake time and actual data transmission time. the corresponding Curl option is CURLOPT_TIMEOUT_MS defaults to 0, no http request level timeout.
Definition at line 202 of file ClientConfiguration.h.
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 230 of file ClientConfiguration.h.
Max concurrent tcp connections for a single http client to use. Default 25.
Definition at line 196 of file ClientConfiguration.h.
Calls to hosts in this vector will not use proxy configuration
Definition at line 293 of file ClientConfiguration.h.
profileName in config file that will be used by this object to resolve more configurations.
Definition at line 404 of file ClientConfiguration.h.
Same as caFile, but used when verifying an HTTPS proxy. Used to set CURLOPT_PROXY_CAINFO in libcurl and proxy tls settings in crt HTTP client. Does nothing on windows.
Definition at line 329 of file ClientConfiguration.h.
Same as caPath, but used when verifying an HTTPS proxy. Used to set CURLOPT_PROXY_CAPATH in libcurl and proxy tls settings in crt HTTP client. Does nothing on windows.
Definition at line 316 of file ClientConfiguration.h.
If you have users going through a proxy, set the host here.
Definition at line 252 of file ClientConfiguration.h.
If you have users going through a proxy, set the password here.
Definition at line 264 of file ClientConfiguration.h.
If you have users going through a proxy, set the port here.
Definition at line 256 of file ClientConfiguration.h.
If you have users going through a proxy, set the proxy scheme here. Default HTTP
Definition at line 248 of file ClientConfiguration.h.
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 269 of file ClientConfiguration.h.
Type of proxy client SSL certificate. Used to set CURLOPT_PROXY_SSLCERTTYPE in libcurl. Example: PEM
Definition at line 274 of file ClientConfiguration.h.
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 289 of file ClientConfiguration.h.
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 279 of file ClientConfiguration.h.
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 284 of file ClientConfiguration.h.
If you have users going through a proxy, set the username here.
Definition at line 260 of file ClientConfiguration.h.
Rate Limiter implementation for incoming bandwidth. Default is wide-open. Provide limiter here or via a factory method.
Definition at line 339 of file ClientConfiguration.h.
AWS Region to use in signing requests. Default US_EAST_1
Definition at line 182 of file ClientConfiguration.h.
Setting on whether to calculate a checksum for a payload only when it is required. i.e. when setting WHEN_REQUIRED the SDK will NOT calculate a checksum for an endpoint where it is supported but is NOT required.
Definition at line 449 of file ClientConfiguration.h.
Request compression configuration To use this feature, the service needs to provide the support, and the compression algorithms needs to be available at SDK build time.
Definition at line 411 of file ClientConfiguration.h.
Socket read timeouts for HTTP clients on Windows. Default 3000 ms. This should be more than adequate for most services. However, if you are transferring 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. Note that for Curl this config is converted to seconds by rounding down to the nearest whole second except when the value is greater than 0 and less than 1000. In this case it is set to one second. When it's 0, low speed limit check will be disabled. Note that for Windows when this config is 0, the behavior is not specified by Windows.
Definition at line 210 of file ClientConfiguration.h.
Setting on whether to client side response validate a content body that had a checksum associated with it. Response validation right now cannot be modeled as required but rely on an associated model configuration.
Definition at line 456 of file ClientConfiguration.h.
Strategy to use in case of failed requests. Default is DefaultRetryStrategy (i.e. exponential backoff). Provide retry strategy here or via a factory method.
Definition at line 235 of file ClientConfiguration.h.
Http scheme to use. E.g. Http or Https. Default HTTPS
Definition at line 178 of file ClientConfiguration.h.
List of AWS regions for SigV4a multi-region signing.
Definition at line 638 of file ClientConfiguration.h.
Interval to send a keep-alive packet over the connection. Default 30 seconds. Minimum 15 seconds. WinHTTP & libcurl support this option. Note that for Curl, this value will be rounded to an integer with second granularity. No-op for WinINet and IXMLHTTPRequest2 client.
Definition at line 225 of file ClientConfiguration.h.
A wrapper for interfacing with telemetry functionality. Defaults to Noop provider. Provide TelemetryProvider here or via a factory method.
Definition at line 480 of file ClientConfiguration.h.
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 186 of file ClientConfiguration.h.
Use FIPS endpoint in the endpoint calculation. Please check first that the service supports FIPS in a selected region.
Definition at line 191 of file ClientConfiguration.h.
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 174 of file ClientConfiguration.h.
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 303 of file ClientConfiguration.h.
Request HTTP client to use specific http version. Currently supported for only Curl. More or less is a one to one conversion of the CURLOPT_HTTP_VERSION configuration option.
Default to Version 2 TLS which is the default after curl version 7.62.0. Will fall back to 1.1 if compiled against a earlier version of curl.
Definition at line 426 of file ClientConfiguration.h.
Rate Limiter implementation for outgoing bandwidth. Default is wide-open. Provide limiter here or via a factory method.
Definition at line 334 of file ClientConfiguration.h.