1# 1.11 to 2.0 Changelog 2 3- [1. Clients](#1-clients) 4 - [1.1. Client Creation Defaults](#11-client-creation-defaults) 5 - [1.2. AWS Client Configuration: Custom Regions, Credentials and Endpoints](#12-aws-client-configuration-custom-regions-credentials-and-endpoints) 6 - [1.2.1. Client Regions](#121-client-regions) 7 - [1.2.2. Client Credentials](#122-client-credentials) 8 - [1.3. SDK Client Configuration](#13-sdk-client-configuration) 9 - [1.3.1. Client HTTP Configuration](#131-client-http-configuration) 10 - [1.3.2. Client HTTP Proxy Configuration](#132-client-http-proxy-configuration) 11 - [1.3.3. Client Override Configuration](#133-client-override-configuration) 12 - [1.3.4. Client Override Retry Configuration](#134-client-override-retry-configuration) 13 - [1.3.5. Async Configuration](#135-async-configuration) 14 - [1.3.6. Other Options](#136-other-options) 15- [2. Operations, Request and Response Changes](#2-operations-request-and-response-changes) 16 - [2.1. Streaming Operations](#21-streaming-operations) 17- [3. Exception Changes](#3-exception-changes) 18- [4. Service Changes](#4-service-changes) 19 - [4.1. S3 Changes](#41-s3-changes) 20 - [4.1.1. S3 Operation Migration](#411-s3-operation-migration) 21 - [4.2. SNS Changes](#42-sns-changes) 22 - [4.3. SQS Changes](#43-sqs-changes) 23- [5. Profile File Changes](#5-profile-file-changes) 24- [6. Conversion Tables](#6-conversion-tables) 25 - [6.1. Environment Variables and System Properties](#61-environment-variables-and-system-properties) 26 - [6.2. Credential Providers](#62-credential-providers) 27 - [6.3. Client Names](#63-client-names) 28- [7. High-Level Libraries](#7-high-level-libraries) 29 30# 1. Clients 31 32Clients, like the `DynamoDbClient` are the most direct way of communicating with AWS services. See [7. High-Level Libraries](#7-high-level-libraries) for the status of high-level libraries like S3 Transfer Manager, the Dynamo DB Mapper, S3 Encryption Client and waiters. 33 34In 2.0, the following changes have been made to the clients: 35 361. Clients can no longer be mutated. 372. Clients can no longer be created by their default constructor. The static `create` or `builder` methods must be used instead: `new AmazonDynamoDBClient` is now `DynamoDbClient.create` and `AmazonDynamoDBClient.builder` is now `DynamoDbClient.builder`. 383. Client builders no longer contain static methods. The static methods on the clients must be used: `AmazonDynamoDBClientBuilder.defaultClient` is now `DynamoDbClient.create` and `AmazonDynamoDBClientBuilder.standard` is now `DynamoDbClient.builder`. 394. Client classes have been renamed. See [6.3. Client Names](#63-client-names) for the 2.0-equivalent client names. 405. Async clients now use non-blocking IO. 416. Async operations now return `CompletableFuture`. 427. Async clients now use an internal executor only for calling `complete` on the `CompletableFuture` and retries. 43 44## 1.1. Client Creation Defaults 45 46In 2.0, the following changes have been made to the default client creation logic: 47 481. The default credential provider chain for S3 no longer includes anonymous credentials. Anonymous access to S3 must be specified manually using the `AnonymousCredentialsProvider`. 492. The following environment variables related to default client creation have been changed: 50 1. `AWS_CBOR_DISABLED` is now `CBOR_ENABLED` 51 2. `AWS_ION_BINARY_DISABLE` is now `BINARY_ION_ENABLED` 523. The following system properties related to default client creation have been changed: 53 1. `com.amazonaws.sdk.disableEc2Metadata` is now `aws.disableEc2Metadata`. 54 2. `com.amazonaws.sdk.ec2MetadataServiceEndpointOverride` is now `aws.ec2MetadataServiceEndpoint`. 55 3. `com.amazonaws.sdk.disableCbor` is now `aws.cborEnabled`. 56 4. `com.amazonaws.sdk.disableIonBinary` is now `aws.binaryIonEnabled`. 57 5. The following system properties no longer supported: `com.amazonaws.sdk.disableCertChecking`, `com.amazonaws.sdk.enableDefaultMetrics`, `com.amazonaws.sdk.enableThrottledRetry`, `com.amazonaws.regions.RegionUtils.fileOverride`, `com.amazonaws.regions.RegionUtils.disableRemote`, `com.amazonaws.services.s3.disableImplicitGlobalClients`, `com.amazonaws.sdk.enableInRegionOptimizedMode` 584. Loading region configuration from a custom `endpoints.json` file is no longer supported. 595. The default credentials logic has been modified. See `com.amazonaws.auth.DefaultAWSCredentialsProviderChain` changes below for more information. 606. Profile file format has changed to more closely match the CLI's behavior. See [5. Profile File Changes](#5-profile-file-changes). 61 62## 1.2. AWS Client Configuration: Custom Regions, Credentials and Endpoints 63 64In 2.0, regions, credentials and endpoints must be specified using the client builder. 65 66| Setting | 1.x (Client) | 1.x (Builder) | 2.0 | 67|-------------|-----------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------| 68| Region | `new AmazonDynamoDBClient()`<br />`.withRegion(Regions.US_EAST_1)` | `AmazonDynamoDBClientBuilder.standard()`<br />`.withRegion(Regions.US_EAST_1)`<br />`.build()` | `DynamoDbClient.builder()`<br />`.region(Region.US_EAST_1)`<br />`.build()` | 69| Credentials | `new AmazonDynamoDBClient(credentials)` | `AmazonDynamoDBClientBuilder.standard()`<br />`.withCredentials(credentials)`<br />`.build()` | `DynamoDbClient.builder()`<br />`.credentials(credentials)`<br />`.build()` | 70| Endpoint | `new AmazonDynamoDBClient()`<br />`.withRegion(signingRegion)`<br />`.withEndpoint(endpoint)` | `AmazonDynamoDBClientBuilder.standard()`<br />`.withEndpointConfiguration(new EndpointConfiguration(endpoint, signingRegion))`<br />`.build()` | `DynamoDbClient.builder()`<br />`.region(signingRegion)`<br />`.endpointOverride(endpoint)`<br />`.build()` | 71 72### 1.2.1. Client Regions 73 74In 2.0, the following changes have been made related to regions: 75 761. When using a service that does not currently have region-specific endpoints, you must use `Region.AWS_GLOBAL` or `Region.AWS_CN_GLOBAL` instead of a region-specific endpoint. 772. `com.amazonaws.regions.Regions` changes: 78 1. This class has been replaced with `software.amazon.awssdk.regions.Region`. 79 2. `Regions.fromName` is now `Region.of`. 80 3. `Regions.getName` is now `Region.id`. 81 4. The following `Regions` methods and fields are no longer supported: `DEFAULT_REGION`, `getDescription`, `getCurrentRegion`, `name`. 823. `com.amazonaws.regions.Region` changes: 83 1. For region identification: 84 1. This class has been replaced with `software.amazon.awssdk.regions.Region`, created with `Region.of`. 85 2. `Region.getName` is now `Region.id`. 86 2. For region metadata: 87 1. This class has been replaced with `software.amazon.awssdk.regions.RegionMetadata`, created with `RegionMetadata.of`. 88 2. `Region.getName` is now `RegionMetadata.name`. 89 3. `Region.getDomain` is now `RegionMetadata.domain`. 90 4. `Region.getPartition` is now `RegionMetadata.partition`. 91 3. For service metadata: 92 1. This class has been replaced with `software.amazon.awssdk.regions.ServiceMetadata`, created by calling `ServiceMetadata.of` (or the `serviceMetadata` method on any service client). 93 2. `Region.getServiceEndpoint` is now `ServiceMetadata.endpointFor(Region)`. 94 3. `Region.isServiceSupported` is now `ServiceMetadata.regions().contains(Region)`. 95 4. The following `Region` methods are no longer supported: `hasHttpsEndpoint`, `hasHttpEndpoint`, `getAvailableEndpoints`, `createClient`. 96 97### 1.2.2. Client Credentials 98 99In 2.0, the following changes have been made related to the credentials providers: 100 1011. `com.amazonaws.auth.AWSCredentialsProvider` changes: 102 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.AwsCredentialsProvider`. 103 2. `AWSCredentialsProvider.getCredentials` is now `AwsCredentialsProvider.resolveCredentials`. 104 3. The following `AWSCredentialsProvider` methods are no longer supported: `refresh`. 1052. `com.amazonaws.auth.DefaultAWSCredentialsProviderChain` changes: 106 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider`. 107 2. `new DefaultAWSCredentialsProviderChain` is now `DefaultCredentialsProvider.create`. 108 3. System properties are treated as higher-priority than environment variables. 109 4. See `EnvironmentVariableCredentialsProvider`, `SystemPropertiesCredentialsProvider`, `ProfileCredentialsProvider` and `EC2ContainerCredentialsProviderWrapper` below for more changes. 110 5. The following `DefaultAWSCredentialsProviderChain` methods are no longer supported: `getInstance`. 1113. `com.amazonaws.auth.AWSStaticCredentialsProvider` changes: 112 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.StaticCredentialsProvider`. 113 2. `new AWSStaticCredentialsProvider` is now `StaticCredentialsProvider.create`. 1144. `com.amazonaws.auth.EnvironmentVariableCredentialsProvider` changes: 115 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider`. 116 2. `new EnvironmentVariableCredentialsProvider` is now `EnvironmentVariableCredentialsProvider.create`. 117 3. The `AWS_ACCESS_KEY` environment variable is now `AWS_ACCESS_KEY_ID`. 118 4. The `AWS_SECRET_KEY` environment variable is now `AWS_SECRET_ACCESS_KEY`. 1195. `com.amazonaws.auth.SystemPropertiesCredentialsProvider` changes: 120 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.SystemPropertyCredentialsProvider`. 121 2. `new SystemPropertiesCredentialsProvider` is now `SystemPropertyCredentialsProvider.create`. 122 3. The `aws.secretKey` system property is now `aws.secretAccessKey`. 1236. `com.amazonaws.auth.profile.ProfileCredentialsProvider` changes: 124 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider`. 125 2. `new ProfileCredentialsProvider` is now `ProfileCredentialsProvider.create`. 126 3. Custom profile file paths are now specified via `ProfileCredentialsProvider.builder`. 127 4. The `AWS_CREDENTIAL_PROFILES_FILE` environment variable is now `AWS_SHARED_CREDENTIALS_FILE`. 128 5. Profile file format has changed to more closely match the CLI's behavior. See [5. Profile File Changes](#5-profile-file-changes). 1297. `com.amazonaws.auth.ContainerCredentialsProvider` changes: 130 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.ContainerCredentialsProvider`. 131 2. Async refresh is specified via `ContainerCredentialsProvider.builder`. 132 3. `new ContainerCredentialsProvider` is now `ContainerCredentialsProvider.create`. 1338. `com.amazonaws.auth.InstanceProfileCredentialsProvider` changes: 134 1. This class has been replaced with `software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider`. 135 2. Async refresh is specified via `InstanceProfileCredentialsProvider.builder`. 136 3. `new InstanceProfileCredentialsProvider` is now `InstanceProfileCredentialsProvider.create`. 137 4. The `com.amazonaws.sdk.disableEc2Metadata` system property is now `aws.disableEc2Metadata`. 138 5. The `com.amazonaws.sdk.ec2MetadataServiceEndpointOverride` system property is now `aws.ec2MetadataServiceEndpoint`. 139 6. The following `AWSCredentialsProvider` methods are no longer supported: `getInstance`. 1409. `com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider` changes: 141 1. This class has been replaced with `software.amazon.awssdk.services.sts.auth.StsAssumeRoleCredentialsProvider`. 142 2. Async refresh is no longer the default, but can be specified via `StsAssumeRoleCredentialsProvider.builder`. 143 3. `new STSAssumeRoleSessionCredentialsProvider` and `new STSAssumeRoleSessionCredentialsProvider.Builder` are now `StsAssumeRoleCredentialsProvider.builder`. 144 4. All builder configuration has been replaced in favor of specifying a `StsClient` and `AssumeRoleRequest` request. 14510. `com.amazonaws.auth.STSSessionCredentialsProvider` changes: 146 1. This class has been replaced with `software.amazon.awssdk.services.sts.auth.StsGetSessionTokenCredentialsProvider`. 147 2. Async refresh is no longer the default, but can be specified via `StsGetSessionTokenCredentialsProvider.builder`. 148 3. `new STSAssumeRoleSessionCredentialsProvider` is now `StsGetSessionTokenCredentialsProvider.builder`. 149 4. All constructor parameters have been replaced in favor of specifying a `StsClient` and `GetSessionTokenRequest` request in a builder. 15011. `com.amazonaws.auth.WebIdentityFederationSessionCredentialsProvider` changes: 151 1. This class has been replaced with `software.amazon.awssdk.services.sts.auth.StsAssumeRoleWithWebIdentityCredentialsProvider`. 152 2. Async refresh is no longer the default, but can be specified via `StsAssumeRoleWithWebIdentityCredentialsProvider.builder`. 153 3. `new WebIdentityFederationSessionCredentialsProvider` is now `StsAssumeRoleWithWebIdentityCredentialsProvider.builder`. 154 4. All constructor parameters have been replaced in favor of specifying a `StsClient` and `AssumeRoleWithWebIdentityRequest` request in a builder. 15512. `com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper` has been removed in favor of `software.amazon.awssdk.auth.credentials.ContainerCredentialsProvider` and `software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider`. 15613. `com.amazonaws.services.s3.S3CredentialsProviderChain` has been removed in favor of `software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider` and `software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider`. 15714. `com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider` and `com.amazonaws.auth.PropertiesFileCredentialsProvider` have been removed. 158 159## 1.3. SDK Client Configuration 160 161In 1.x, SDK client configuration was modified by setting a `ClientConfiguration` instance on the client or client builder: 162 163| 1.x (Client) | 1.x (Builder) | 164|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------| 165| `new AmazonDynamoDBClient(clientConfiguration)` | `AmazonDynamoDBClientBuilder.standard()`<br />`.withClientConfiguration(clientConfiguration)`<br />`.build()` | 166 167In 2.0, SDK client configuration is split into separate configuration settings: 168 169**Synchronous Configuration** 170 171```Java 172ProxyConfiguration.Builder proxyConfig = 173 ProxyConfiguration.builder(); 174 175ApacheHttpClient.Builder httpClientBuilder = 176 ApacheHttpClient.builder() 177 .proxyConfiguration(proxyConfig.build()); 178 179ClientOverrideConfiguration.Builder overrideConfig = 180 ClientOverrideConfiguration.builder(); 181 182DynamoDbClient client = 183 DynamoDbClient.builder() 184 .httpClientBuilder(httpClientBuilder) 185 .overrideConfiguration(overrideConfig.build()) 186 .build(); 187``` 188 189**Asynchronous Configuration** 190 191```Java 192NettyNioAsyncHttpClient.Builder httpClientBuilder = 193 NettyNioAsyncHttpClient.builder(); 194 195ClientOverrideConfiguration.Builder overrideConfig = 196 ClientOverrideConfiguration.builder(); 197 198ClientAsyncConfiguration.Builder asyncConfig = 199 ClientAsyncConfiguration.builder(); 200 201DynamoDbAsyncClient client = 202 DynamoDbAsyncClient.builder() 203 .httpClientBuilder(httpClientBuilder) 204 .overrideConfiguration(overrideConfig.build()) 205 .asyncConfiguration(asyncConfig.build()) 206 .build(); 207``` 208 209### 1.3.1. Client HTTP Configuration 210 2111. It is now possible to change which HTTP client is used at runtime by specifying an implementation via `clientBuilder.httpClientBuilder`. 2122. HTTP clients passed to `clientBuilder.httpClient` are not closed by default, allowing them to be shared between AWS clients. 2133. HTTP for async clients now use non-blocking IO. 2144. Some operations now utilize HTTP/2 for performance improvements. 215 216| Setting | 1.x | 2.0 (Sync, Apache) | 2.0 (Async, Netty) | 217|---------------------------|-----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------| 218| | `ClientConfiguration clientConfig =`<br />`new ClientConfiguration()` | `ApacheHttpClient.Builder httpClientBuilder =`<br />`ApacheHttpClient.builder()` | `NettyNioAsyncHttpClient.Builder httpClientBuilder =`<br />`NettyNioAsyncHttpClient.builder()` | 219| Max Connections | `clientConfig.setMaxConnections(...)`<br />`clientConfig.withMaxConnections(...)` | `httpClientBuilder.maxConnections(...)` | `httpClientBuilder.maxConcurrency(...)` | 220| Connection Timeout | `clientConfig.setConnectionTimeout(...)`<br />`clientConfig.withConnectionTimeout(...)` | `httpClientBuilder.connectionTimeout(...)` | `httpClientBuilder.connectionTimeout(...)` | 221| Socket Timeout | `clientConfig.setSocketTimeout(...)`<br />`clientConfig.withSocketTimeout(...)` | `httpClientBuilder.socketTimeout(...)` | `httpClientBuilder.writeTimeout(...)` <br /> `httpClientBuilder.readTimeout(...)` | 222| Connection TTL | `clientConfig.setConnectionTTL(...)`<br />`clientConfig.withConnectionTTL(...)` | `httpClientBuilder.connectionTimeToLive(...)` | `httpClientBuilder.connectionTimeToLive(...)` | 223| Connection Max Idle | `clientConfig.setConnectionMaxIdleMillis(...)`<br />`clientConfig.withConnectionMaxIdleMillis(...)` | `httpClientBuilder.connectionMaxIdleTime(...)` | `httpClientBuilder.connectionMaxIdleTime(...)` | 224| Validate After Inactivity | `clientConfig.setValidateAfterInactivityMillis(...)`<br />`clientConfig.withValidateAfterInactivityMillis(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 225| Local Address | `clientConfig.setLocalAddress(...)`<br />`clientConfig.withLocalAddress(...)` | `httpClientBuilder.localAddress(...)` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/857) | 226| Expect-Continue Enabled | `clientConfig.setUseExpectContinue(...)`<br />`clientConfig.withUseExpectContinue(...)` | `httpClientBuilder.expectContinueEnabled(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 227| Connection Reaper | `clientConfig.setUseReaper(...)`<br />`clientConfig.withReaper(...)` | `httpClientBuilder.useIdleConnectionReaper(...)` | `httpClientBuilder.useIdleConnectionReaper(...)` | 228| | `AmazonDynamoDBClientBuilder.standard()`<br />`.withClientConfiguration(clientConfiguration)`<br />`.build()` | `DynamoDbClient.builder()`<br />`.httpClientBuilder(httpClientBuilder)`<br />`.build()` | `DynamoDbAsyncClient.builder()`<br />`.httpClientBuilder(httpClientBuilder)`<br />`.build()` | 229 230 231### 1.3.2. Client HTTP Proxy Configuration 232 233| Setting | 1.x | 2.0 (Sync, Apache) | 2.0 (Async, Netty) | 234|---------------------------------------|---------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------| 235| | `ClientConfiguration clientConfig =`<br />`new ClientConfiguration()` | `ProxyConfiguration.Builder proxyConfig =`<br />`ProxyConfiguration.builder()` | `ProxyConfiguration.Builder proxyConfig =`<br />`ProxyConfiguration.builder()` | 236| Proxy Host | `clientConfig.setProxyHost(...)`<br />`clientConfig.withProxyHost(...)` | `proxyConfig.endpoint(...)` | `proxyConfig.host(...)` | 237| Proxy Port | `clientConfig.setProxyPort(...)`<br />`clientConfig.withProxyPort(...)` | `proxyConfig.endpoint(...)` | `proxyConfig.port(...)` | 238| Proxy Username | `clientConfig.setProxyUsername(...)`<br />`clientConfig.withProxyUsername(...)` | `proxyConfig.username(...)` | `proxyConfig.username(...)` | 239| Proxy Password | `clientConfig.setProxyPassword(...)`<br />`clientConfig.withProxyPassword(...)` | `proxyConfig.password(...)` | `proxyConfig.password(...)` | 240| Proxy Domain | `clientConfig.setProxyDomain(...)`<br />`clientConfig.withProxyDomain(...)` | `proxyConfig.ntlmDomain(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 241| Proxy Workstation | `clientConfig.setProxyWorkspace(...)`<br />`clientConfig.withProxyWorkstation(...)` | `proxyConfig.ntlmWorkstation(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 242| Proxy Authentication Methods | `clientConfig.setProxyAuthenticationMethods(...)`<br />`clientConfig.withProxyAuthenticationMethods(...)` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/858) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 243| Preemptive Basic Proxy Authentication | `clientConfig.setPreemptiveBasicProxyAuth(...)`<br />`clientConfig.withPreemptiveBasicProxyAuth(...)` | `proxyConfig.preemptiveBasicAuthenticationEnabled(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 244| Non Proxy Hosts | `clientConfig.setNonProxyHosts(...)`<br />`clientConfig.withNonProxyHosts(...)` | `proxyConfig.nonProxyHosts(...)` | `proxyConfig.nonProxyHosts(...)` | 245| Disable Socket Proxy | `clientConfig.setDisableSocketProxy(...)`<br />`clientConfig.withDisableSocketProxy(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 246| | `AmazonDynamoDBClientBuilder.standard()`<br />`.withClientConfiguration(clientConfiguration)`<br />`.build()` | `httpClientBuilder.proxyConfiguration(proxyConfig.build())` | `httpClientBuilder.proxyConfiguration(proxyConfig.build())` | 247 248### 1.3.3. Client Override Configuration 249 250| Setting | 1.x | 2.0 | 251|------------------------------|---------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 252| | `ClientConfiguration clientConfig =`<br />`new ClientConfiguration()` | `ClientOverrideConfiguration.Builder overrideConfig =`<br />`ClientOverrideConfiguration.builder()` | 253| User Agent Prefix | `clientConfig.setUserAgentPrefix(...)`<br />`clientConfig.withUserAgentPrefix(...)` | `overrideConfig.advancedOption(SdkAdvancedClientOption.USER_AGENT_PREFIX, ...)` | 254| User Agent Suffix | `clientConfig.setUserAgentSuffix(...)`<br />`clientConfig.withUserAgentSuffix(...)` | `overrideConfig.advancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX, ...)` | 255| Signer | `clientConfig.setSignerOverride(...)`<br />`clientConfig.withSignerOverride(...)` | `overrideConfig.advancedOption(SdkAdvancedClientOption.SIGNER, ...)` | 256| Additional Headers | `clientConfig.addHeader(...)`<br />`clientConfig.withHeader(...)` | `overrideConfig.putHeader(...)` | 257| Request Timeout | `clientConfig.setRequestTimeout(...)`<br />`clientConfig.withRequestTimeout(...)` | `overrideConfig.apiCallAttemptTimeout(...)` | 258| Client Execution Timeout | `clientConfig.setClientExecutionTimeout(...)`<br />`clientConfig.withClientExecutionTimeout(...)` | `overrideConfig.apiCallTimeout(...)` | 259| Use Gzip | `clientConfig.setUseGzip(...)`<br />`clientConfig.withGzip(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 260| Socket Buffer Size Hint | `clientConfig.setSocketBufferSizeHints(...)`<br />`clientConfig.withSocketBufferSizeHints(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 261| Cache Response Metadata | `clientConfig.setCacheResponseMetadata(...)`<br />`clientConfig.withCacheResponseMetadata(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 262| Response Metadata Cache Size | `clientConfig.setResponseMetadataCacheSize(...)`<br />`clientConfig.withResponseMetadataCacheSize(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 263| DNS Resolver | `clientConfig.setDnsResolver(...)`<br />`clientConfig.withDnsResolver(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 264| TCP Keepalive | `clientConfig.setUseTcpKeepAlive(...)`<br />`clientConfig.withTcpKeepAlive(...)` | This option is now in the HTTP Client configuration: <br />`- ApacheHttpClient.builder().tcpKeepAlive(true)`<br /> `- NettyNioAsyncHttpClient.builder().tcpKeepAlive(true)` | 265| Secure Random | `clientConfig.setSecureRandom(...)`<br />`clientConfig.withSecureRandom(...)` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 266| | `AmazonDynamoDBClientBuilder.standard()`<br />`.withClientConfiguration(clientConfiguration)`<br />`.build()` | `DynamoDbClient.builder()`<br />`.httpClientBuilder(httpClientBuilder)`<br />`.build()` | 267 268### 1.3.4. Client Override Retry Configuration 269 270Retry configuration has changed in 2.0 to be controlled entirely through the `RetryPolicy` in the `ClientOverrideConfiguration`. 271 272| Setting | 1.x | 2.0 | 273|-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| 274| | `ClientConfiguration clientConfig =`<br />`new ClientConfiguration()` | `RetryPolicy.Builder retryPolicy =`<br />`RetryPolicy.builder()` | 275| Max Error Retry | `clientConfig.setMaxErrorRetry(...)`<br />`clientConfig.withMaxErrorRetry(...)` | `retryPolicy.numRetries(...)` | 276| Use Throttled Retries | `clientConfig.setUseThrottleRetries(...)`<br />`clientConfig.withUseThrottleRetries(...)` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/645) | 277| Max Consecutive Retries Before Throttling | `clientConfig.setMaxConsecutiveRetriesBeforeThrottling(...)`<br />`clientConfig.withMaxConsecutiveRetriesBeforeThrottling(...)` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/645) | 278| | `AmazonDynamoDBClientBuilder.standard()`<br />`.withClientConfiguration(clientConfiguration)`<br />`.build()` | `overrideConfig.retryPolicy(retryPolicy.build())` | | 279 280### 1.3.5. Async Configuration 281 2821. Async executors passed to `asyncConfig.advancedOption(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR, ...)` must be shut down by the user. 283 284| Setting | 1.x | 2.0 | 285|----------|------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------| 286| | | `ClientAsyncConfiguration.Builder asyncConfig =`<br />`ClientAsyncConfiguration.builder()` | 287| Executor | `AmazonDynamoDBAsyncClientBuilder.standard()`<br />`.withExecutorFactory(...)`<br />`.build()` | `asyncConfig.advancedOption(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR, ...)` | 288| | | `AmazonDynamoDBAsyncClientBuilder.standard()`<br />`.withExecutorFactory(...)`<br />`.build()` | `DynamoDbAsyncClient.builder()`<br />`.asyncConfiguration(asyncConfig.build())`<br />`.build()` | 289 290### 1.3.6. Other Options 291 292These `ClientConfiguration` options from 1.x have changed in 2.0 of the SDK and don't have direct equivalents. 293 294| Setting | 1.x | 2.0 Equivalent | 295|----------|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 296| Protocol | `clientConfig.setProtocol(Protocol.HTTP)`<br />`clientConfig.withProtocol(Protocol.HTTP)` | The protocol is now HTTPS by default, and can only be modified by setting an HTTP endpoint on the client builder: `clientBuilder.endpointOverride(URI.create("http://..."))` | 297 298# 2. Operations, Request and Response Changes 299 300Requests, like `DynamoDbClient`'s `PutItemRequest` are passed to a client operation, like `DynamoDbClient.putItem`. These operations return a response from the AWS service, like a `PutItemResponse`. 301 302In 2.0, the following changes have been made to the operations: 303 3041. Operations with multiple response pages now have a `Paginator` method for automatically iterating over all items in the response. 3052. Requests and responses can no longer be mutated. 3063. Requests and responses can no longer be created by their default constructor. The static `builder` method must be used instead: `new PutItemRequest().withTableName(...)` is now `PutItemRequest.builder().tableName(...).build()`. 3074. Operations and requests support a short-hand method of creating requests: `dynamoDbClient.putItem(request -> request.tableName(...))`. 308 309## 2.1. Streaming Operations 310 311Streaming operations, like `S3Client`'s `getObject` and `putObject` accept a stream of bytes or return a stream of bytes, without loading the entire payload into memory. 312 3131. Streaming operation request objects no longer include the payload. 3142. Sync streaming request methods now accept request payloads as a `RequestBody` that simplifies common loading logic: eg. `RequestBody.fromFile(...)`. 3153. Async streaming request methods now accept request payloads as an `AsyncRequestBody` that simplifies common loading logic: eg. `AsyncRequestBody.fromFile(...)`. 3164. Sync streaming response methods now specify response handling as a `ResponseTransformer` that simplifies common transformation logic: eg. `ResponseTransformer.toFile(...)`. 3175. Async streaming response methods now specify response handling as an `AsyncResponseTransformer` that simplifies common transformation logic: eg. `AsyncResponseTransformer.toFile(...)`. 3186. Streaming response operations now have an `AsBytes` method to load the response into memory and simplify common in-memory type conversions. 319 320# 3. Exception Changes 321 322In 2.0, the following changes have been made related to exceptions: 323 3241. `com.amazonaws.SdkBaseException` and `com.amazonaws.AmazonClientException` changes: 325 1. These classes have combined and replaced with `software.amazon.awssdk.core.exception.SdkException`. 326 2. `AmazonClientException.isRetryable` is now `SdkException.retryable`. 3272. `com.amazonaws.SdkClientException` changes: 328 1. This class has been replaced with `software.amazon.awssdk.core.exception.SdkClientException`. 329 2. This class now extends `software.amazon.awssdk.core.exception.SdkException`. 3303. `com.amazonaws.AmazonServiceException` changes: 331 1. This class has been replaced with `software.amazon.awssdk.awscore.exception.AwsServiceException`. 332 2. This class now extends `software.amazon.awssdk.core.exception.SdkServiceException`, a new exception type that extends `software.amazon.awssdk.core.exception.SdkException`. 333 3. `AmazonServiceException.getRequestId` is now `SdkServiceException.requestId`. 334 4. `AmazonServiceException.getServiceName` is now `AwsServiceException.awsErrorDetails().serviceName`. 335 5. `AmazonServiceException.getErrorCode` is now `AwsServiceException.awsErrorDetails().errorCode`. 336 6. `AmazonServiceException.getErrorMessage` is now `AwsServiceException.awsErrorDetails().errorMessage`. 337 7. `AmazonServiceException.getStatusCode` is now `AwsServiceException.awsErrorDetails().sdkHttpResponse().statusCode`. 338 8. `AmazonServiceException.getHttpHeaders` is now `AwsServiceException.awsErrorDetails().sdkHttpResponse().headers`. 339 9. `AmazonServiceException.rawResponse` is now `AwsServiceException.awsErrorDetails().rawResponse`. 340 10. `AmazonServiceException.getErrorType` is no longer supported. 341 342# 4. Service Changes 343 344## 4.1. S3 Changes 345 346The S3 client in 2.0 is drastically different from the client in 1.11, because it is now generated from models like every other service. 347 3481. Cross-region access is no longer supported. A client may now only access buckets in the region with which the client has been configured. 3492. Anonymous access is disabled by default and must be enabled using the `AnonymousCredentialsProvider`. 350 351### 4.1.1. S3 Operation Migration 352 353| 1.x Operation | 2.0 Operation | 354|----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 355| `abortMultipartUpload` | `abortMultipartUpload` | 356| `changeObjectStorageClass` | `copyObject` | 357| `completeMultipartUpload` | `completeMultipartUpload` | 358| `copyObject` | `copyObject` | 359| `copyPart` | `uploadPartCopy` | 360| `createBucket` | `createBucket` | 361| `deleteBucket` | `deleteBucket` | 362| `deleteBucketAnalyticsConfiguration` | `deleteBucketAnalyticsConfiguration` | 363| `deleteBucketCrossOriginConfiguration` | `deleteBucketCors` | 364| `deleteBucketEncryption` | `deleteBucketEncryption` | 365| `deleteBucketInventoryConfiguration` | `deleteBucketInventoryConfiguration` | 366| `deleteBucketLifecycleConfiguration` | `deleteBucketLifecycle` | 367| `deleteBucketMetricsConfiguration` | `deleteBucketMetricsConfiguration` | 368| `deleteBucketPolicy` | `deleteBucketPolicy` | 369| `deleteBucketReplicationConfiguration` | `deleteBucketReplication` | 370| `deleteBucketTaggingConfiguration` | `deleteBucketTagging` | 371| `deleteBucketWebsiteConfiguration` | `deleteBucketWebsite` | 372| `deleteObject` | `deleteObject` | 373| `deleteObjectTagging` | `deleteObjectTagging` | 374| `deleteObjects` | `deleteObjects` | 375| `deleteVersion` | `deleteObject` | 376| `disableRequesterPays` | `putBucketRequestPayment` | 377| `doesBucketExist` | `headBucket` | 378| `doesBucketExistV2` | `headBucket` | 379| `doesObjectExist` | `headObject` | 380| `enableRequesterPays` | `putBucketRequestPayment` | 381| `generatePresignedUrl` | [S3Presigner](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/examples-s3-presign.html) | 382| `getBucketAccelerateConfiguration` | `getBucketAccelerateConfiguration` | 383| `getBucketAcl` | `getBucketAcl` | 384| `getBucketAnalyticsConfiguration` | `getBucketAnalyticsConfiguration` | 385| `getBucketCrossOriginConfiguration` | `getBucketCors` | 386| `getBucketEncryption` | `getBucketEncryption` | 387| `getBucketInventoryConfiguration` | `getBucketInventoryConfiguration` | 388| `getBucketLifecycleConfiguration` | `getBucketLifecycle` or `getBucketLifecycleConfiguration` | 389| `getBucketLocation` | `getBucketLocation` | 390| `getBucketLoggingConfiguration` | `getBucketLogging` | 391| `getBucketMetricsConfiguration` | `getBucketMetricsConfiguration` | 392| `getBucketNotificationConfiguration` | `getBucketNotification` or `getBucketNotificationConfiguration` | 393| `getBucketPolicy` | `getBucketPolicy` | 394| `getBucketReplicationConfiguration` | `getBucketReplication` | 395| `getBucketTaggingConfiguration` | `getBucketTagging` | 396| `getBucketVersioningConfiguration` | `getBucketVersioning` | 397| `getBucketWebsiteConfiguration` | `getBucketWebsite` | 398| `getObject` | `getObject` | 399| `getObjectAcl` | `getObjectAcl` | 400| `getObjectAsString` | `getObjectAsBytes().asUtf8String` | 401| `getObjectMetadata` | `headObject` | 402| `getObjectTagging` | `getObjectTagging` | 403| `getResourceUrl` | [S3Utilities#getUrl](https://github.com/aws/aws-sdk-java-v2/blob/7428f629753c603f96dd700ca686a7b169fc4cd4/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java#L140) | 404| `getS3AccountOwner` | `listBuckets` | 405| `getUrl` | [S3Utilities#getUrl](https://github.com/aws/aws-sdk-java-v2/blob/7428f629753c603f96dd700ca686a7b169fc4cd4/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java#L140) | 406| `headBucket` | `headBucket` | 407| `initiateMultipartUpload` | `createMultipartUpload` | 408| `isRequesterPaysEnabled` | `getBucketRequestPayment` | 409| `listBucketAnalyticsConfigurations` | `listBucketAnalyticsConfigurations` | 410| `listBucketInventoryConfigurations` | `listBucketInventoryConfigurations` | 411| `listBucketMetricsConfigurations` | `listBucketMetricsConfigurations` | 412| `listBuckets` | `listBuckets` | 413| `listMultipartUploads` | `listMultipartUploads` | 414| `listNextBatchOfObjects` | `listObjectsV2Paginator` | 415| `listNextBatchOfVersions` | `listObjectVersionsPaginator` | 416| `listObjects` | `listObjects` | 417| `listObjectsV2` | `listObjectsV2` | 418| `listParts` | `listParts` | 419| `listVersions` | `listObjectVersions` | 420| `putObject` | `putObject` | 421| `restoreObject` | `restoreObject` | 422| `restoreObjectV2` | `restoreObject` | 423| `selectObjectContent` | `selectObjectContent` | 424| `setBucketAccelerateConfiguration` | `putBucketAccelerateConfiguration` | 425| `setBucketAcl` | `putBucketAcl` | 426| `setBucketAnalyticsConfiguration` | `putBucketAnalyticsConfiguration` | 427| `setBucketCrossOriginConfiguration` | `putBucketCors` | 428| `setBucketEncryption` | `putBucketEncryption` | 429| `setBucketInventoryConfiguration` | `putBucketInventoryConfiguration` | 430| `setBucketLifecycleConfiguration` | `putBucketLifecycle` or `putBucketLifecycleConfiguration` | 431| `setBucketLoggingConfiguration` | `putBucketLogging` | 432| `setBucketMetricsConfiguration` | `putBucketMetricsConfiguration` | 433| `setBucketNotificationConfiguration` | `putBucketNotification` or `putBucketNotificationConfiguration` | 434| `setBucketPolicy` | `putBucketPolicy` | 435| `setBucketReplicationConfiguration` | `putBucketReplication` | 436| `setBucketTaggingConfiguration` | `putBucketTagging` | 437| `setBucketVersioningConfiguration` | `putBucketVersioning` | 438| `setBucketWebsiteConfiguration` | `putBucketWebsite` | 439| `setObjectAcl` | `putObjectAcl` | 440| `setObjectRedirectLocation` | `copyObject` | 441| `setObjectTagging` | `putObjectTagging` | 442| `uploadPart` | `uploadPart` | 443 444## 4.2. SNS Changes 445 4461. An SNS client may no longer access SNS topics in regions different than the one with which the client was configured. 447 448## 4.3. SQS Changes 449 4501. An SQS client may no longer access SQS queues in regions different than the one with which the client was configured. 451 452## 4.4. RDS Changes 453 4541. The class`RdsIamAuthTokenGenerator` has been replaced with `RdsUtilities#generateAuthenticationToken`. 455 456# 5. Profile File Changes 457 458The parsing of the `~/.aws/config` and `~/.aws/credentials` has changed to more closely emulate that used by the AWS CLI. 459 4601. A `~/` or `~` followed by the file system's default path separator at the start of the path is resolved by checking, in order, `$HOME`, `$USERPROFILE` (Windows only), `$HOMEDRIVE$HOMEPATH` (Windows only), and then the `user.home` system property. 4612. The `AWS_CREDENTIAL_PROFILES_FILE` environment variable is now `AWS_SHARED_CREDENTIALS_FILE`. 4623. Profile definitions in configuration files without a `profile` prefix are silently dropped. 4634. Profile names that do not consist of alphanumeric, underscore or dash characters are silently dropped (after the `profile` prefix has been removed for configuration files). 4645. Profiles duplicated within the same file have their properties merged. 4656. Profiles duplicated in both the configuration and credentials files have their properties merged. 4667. If both `[profile foo]` and `[foo]` are specified in the same file, their properties are NOT merged. 4678. If both `[profile foo]` and `[foo]` are specified in the configuration file, `[profile foo]`'s properties are used. 4689. Properties duplicated within the same file and profile use the later property in the file. 46910. Both `;` and `#` are supported for defining a comment. 47011. In profile definitions, `;` and `#` define a comment, even if they are adjacent to the closing bracket. 47112. In property values, `;` and `#` define a comment only if they are preceded by whitespace. 47213. In property values, `;` and `#` and all following content are included in the value if they are not preceded by whitespace. 47314. Role-based credentials are the highest-priority credentials, and are always used if the user specifies the `role_arn` property. 47415. Session-based credentials are the next-highest-priority credentials, and are always used if role-based credentials were not used and the user specifies the `aws_access_key_id` and `aws_session_token` properties. 47516. Basic credentials are used if role-based and session-based credentials are not used and the user specified the `aws_access_key_id` property. 476 477# 6. Conversion Tables 478 479## 6.1. Environment Variables and System Properties 480 481| 1.x Environment Variable | 1.x System Property | 2.0 Environment Variable | 2.0 System Property | 482|-----------------------------------------------|----------------------------------------------------------|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------| 483| `AWS_ACCESS_KEY_ID`<br />`AWS_ACCESS_KEY` | `aws.accessKeyId` | `AWS_ACCESS_KEY_ID` | `aws.accessKeyId` | 484| `AWS_SECRET_KEY`<br />`AWS_SECRET_ACCESS_KEY` | `aws.secretKey` | `AWS_SECRET_ACCESS_KEY` | `aws.secretAccessKey` | 485| `AWS_SESSION_TOKEN` | `aws.sessionToken` | `AWS_SESSION_TOKEN` | `aws.sessionToken` | 486| `AWS_REGION` | `aws.region` | `AWS_REGION` | `aws.region` | 487| `AWS_CONFIG_FILE` | | `AWS_CONFIG_FILE` | `aws.configFile` | 488| `AWS_CREDENTIAL_PROFILES_FILE` | | `AWS_SHARED_CREDENTIALS_FILE` | `aws.sharedCredentialsFile` | 489| `AWS_PROFILE` | `aws.profile` | `AWS_PROFILE` | `aws.profile` | 490| `AWS_EC2_METADATA_DISABLED` | `com.amazonaws.sdk.disableEc2Metadata` | `AWS_EC2_METADATA_DISABLED` | `aws.disableEc2Metadata` | 491| | `com.amazonaws.sdk.ec2MetadataServiceEndpointOverride` | `AWS_EC2_METADATA_SERVICE_ENDPOINT` | `aws.ec2MetadataServiceEndpoint` | 492| `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` | | `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` | `aws.containerCredentialsPath` | 493| `AWS_CONTAINER_CREDENTIALS_FULL_URI` | | `AWS_CONTAINER_CREDENTIALS_FULL_URI` | `aws.containerCredentialsFullUri` | 494| `AWS_CONTAINER_AUTHORIZATION_TOKEN` | | `AWS_CONTAINER_AUTHORIZATION_TOKEN` | `aws.containerAuthorizationToken` | 495| `AWS_CBOR_DISABLED` | `com.amazonaws.sdk.disableCbor` | `CBOR_ENABLED` | `aws.cborEnabled` | 496| `AWS_ION_BINARY_DISABLE` | `com.amazonaws.sdk.disableIonBinary` | `BINARY_ION_ENABLED` | `aws.binaryIonEnabled` | 497| `AWS_EXECUTION_ENV` | | `AWS_EXECUTION_ENV` | `aws.executionEnvironment` | 498| | `com.amazonaws.sdk.disableCertChecking` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 499| | `com.amazonaws.sdk.enableDefaultMetrics` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/23) | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/23) | 500| | `com.amazonaws.sdk.enableThrottledRetry` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/645) | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/645) | 501| | `com.amazonaws.regions.RegionUtils.fileOverride` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 502| | `com.amazonaws.regions.RegionUtils.disableRemote` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 503| | `com.amazonaws.services.s3.disableImplicitGlobalClients` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 504| | `com.amazonaws.sdk.enableInRegionOptimizedMode` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 505 506## 6.2. Credential Providers 507 508| 1.x Credential Provider | 2.0 Credential Provider | 509|----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| 510| `com.amazonaws.auth.AWSCredentialsProvider` | `software.amazon.awssdk.auth.credentials.AwsCredentialsProvider` | 511| `com.amazonaws.auth.DefaultAWSCredentialsProviderChain` | `software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider` | 512| `com.amazonaws.auth.AWSStaticCredentialsProvider` | `software.amazon.awssdk.auth.credentials.StaticCredentialsProvider` | 513| `com.amazonaws.auth.EnvironmentVariableCredentialsProvider` | `software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider` | 514| `com.amazonaws.auth.SystemPropertiesCredentialsProvider` | `software.amazon.awssdk.auth.credentials.SystemPropertyCredentialsProvider` | 515| `com.amazonaws.auth.profile.ProfileCredentialsProvider` | `software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider` | 516| `com.amazonaws.auth.ContainerCredentialsProvider` | `software.amazon.awssdk.auth.credentials.ContainerCredentialsProvider` | 517| `com.amazonaws.auth.InstanceProfileCredentialsProvider` | `software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider` | 518| `com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider` | `software.amazon.awssdk.services.sts.auth.StsAssumeRoleCredentialsProvider` | 519| `com.amazonaws.auth.STSSessionCredentialsProvider` | `software.amazon.awssdk.services.sts.auth.StsGetSessionTokenCredentialsProvider` | 520| `com.amazonaws.auth.WebIdentityFederationSessionCredentialsProvider` | `software.amazon.awssdk.services.sts.auth.StsAssumeRoleWithWebIdentityCredentialsProvider` | 521| `com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper` | `software.amazon.awssdk.auth.credentials.ContainerCredentialsProvider` and `software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider` | 522| `com.amazonaws.services.s3.S3CredentialsProviderChain` | `software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider` and `software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider` | 523| `com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 524| `com.amazonaws.auth.PropertiesFileCredentialsProvider` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 525 526## 6.3. Client Names 527 528| 1.x Client | 2.0 Client | 529|----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| 530| `amazonaws.services.acmpca.AWSACMPCAAsyncClient` | `software.amazon.awssdk.services.acm.AcmAsyncClient` | 531| `amazonaws.services.acmpca.AWSACMPCAClient` | `software.amazon.awssdk.services.acm.AcmClient` | 532| `amazonaws.services.alexaforbusiness.AmazonAlexaForBusinessAsyncClient` | `software.amazon.awssdk.services.alexaforbusiness.AlexaForBusinessAsyncClient` | 533| `amazonaws.services.alexaforbusiness.AmazonAlexaForBusinessClient` | `software.amazon.awssdk.services.alexaforbusiness.AlexaForBusinessClient` | 534| `amazonaws.services.apigateway.AmazonApiGatewayAsyncClient` | `software.amazon.awssdk.services.apigateway.ApiGatewayAsyncClient` | 535| `amazonaws.services.apigateway.AmazonApiGatewayClient` | `software.amazon.awssdk.services.apigateway.ApiGatewayClient` | 536| `amazonaws.services.applicationautoscaling.AWSApplicationAutoScalingAsyncClient` | `software.amazon.awssdk.services.applicationautoscaling.ApplicationAutoScalingAsyncClient` | 537| `amazonaws.services.applicationautoscaling.AWSApplicationAutoScalingClient` | `software.amazon.awssdk.services.applicationautoscaling.ApplicationAutoScalingClient` | 538| `amazonaws.services.applicationdiscovery.AWSApplicationDiscoveryAsyncClient` | `software.amazon.awssdk.services.applicationdiscovery.ApplicationDiscoveryAsyncClient` | 539| `amazonaws.services.applicationdiscovery.AWSApplicationDiscoveryClient` | `software.amazon.awssdk.services.applicationdiscovery.ApplicationDiscoveryClient` | 540| `amazonaws.services.appstream.AmazonAppStreamAsyncClient` | `software.amazon.awssdk.services.appstream.AppStreamAsyncClient` | 541| `amazonaws.services.appstream.AmazonAppStreamClient` | `software.amazon.awssdk.services.appstream.AppStreamClient` | 542| `amazonaws.services.appsync.AWSAppSyncAsyncClient` | `software.amazon.awssdk.services.appsync.AppSyncAsyncClient` | 543| `amazonaws.services.appsync.AWSAppSyncClient` | `software.amazon.awssdk.services.appsync.AppSyncClient` | 544| `amazonaws.services.athena.AmazonAthenaAsyncClient` | `software.amazon.awssdk.services.athena.AthenaAsyncClient` | 545| `amazonaws.services.athena.AmazonAthenaClient` | `software.amazon.awssdk.services.athena.AthenaClient` | 546| `amazonaws.services.autoscaling.AmazonAutoScalingAsyncClient` | `software.amazon.awssdk.services.autoscaling.AutoScalingAsyncClient` | 547| `amazonaws.services.autoscaling.AmazonAutoScalingClient` | `software.amazon.awssdk.services.autoscaling.AutoScalingClient` | 548| `amazonaws.services.autoscalingplans.AWSAutoScalingPlansAsyncClient` | `software.amazon.awssdk.services.autoscalingplans.AutoScalingPlansAsyncClient` | 549| `amazonaws.services.autoscalingplans.AWSAutoScalingPlansClient` | `software.amazon.awssdk.services.autoscalingplans.AutoScalingPlansClient` | 550| `amazonaws.services.batch.AWSBatchAsyncClient` | `software.amazon.awssdk.services.batch.BatchAsyncClient` | 551| `amazonaws.services.batch.AWSBatchClient` | `software.amazon.awssdk.services.batch.BatchClient` | 552| `amazonaws.services.budgets.AWSBudgetsAsyncClient` | `software.amazon.awssdk.services.budgets.BudgetsAsyncClient` | 553| `amazonaws.services.budgets.AWSBudgetsClient` | `software.amazon.awssdk.services.budgets.BudgetsClient` | 554| `amazonaws.services.certificatemanager.AWSCertificateManagerAsyncClient` | `software.amazon.awssdk.services.acm.AcmAsyncClient` | 555| `amazonaws.services.certificatemanager.AWSCertificateManagerClient` | `software.amazon.awssdk.services.acm.AcmClient` | 556| `amazonaws.services.cloud9.AWSCloud9AsyncClient` | `software.amazon.awssdk.services.cloud9.Cloud9AsyncClient` | 557| `amazonaws.services.cloud9.AWSCloud9Client` | `software.amazon.awssdk.services.cloud9.Cloud9Client` | 558| `amazonaws.services.clouddirectory.AmazonCloudDirectoryAsyncClient` | `software.amazon.awssdk.services.clouddirectory.CloudDirectoryAsyncClient` | 559| `amazonaws.services.clouddirectory.AmazonCloudDirectoryClient` | `software.amazon.awssdk.services.clouddirectory.CloudDirectoryClient` | 560| `amazonaws.services.cloudformation.AmazonCloudFormationAsyncClient` | `software.amazon.awssdk.services.cloudformation.CloudFormationAsyncClient` | 561| `amazonaws.services.cloudformation.AmazonCloudFormationClient` | `software.amazon.awssdk.services.cloudformation.CloudFormationClient` | 562| `amazonaws.services.cloudfront.AmazonCloudFrontAsyncClient` | `software.amazon.awssdk.services.cloudfront.CloudFrontAsyncClient` | 563| `amazonaws.services.cloudfront.AmazonCloudFrontClient` | `software.amazon.awssdk.services.cloudfront.CloudFrontClient` | 564| `amazonaws.services.cloudhsm.AWSCloudHSMAsyncClient` | `software.amazon.awssdk.services.cloudhsm.CloudHsmAsyncClient` | 565| `amazonaws.services.cloudhsm.AWSCloudHSMClient` | `software.amazon.awssdk.services.cloudhsm.CloudHsmClient` | 566| `amazonaws.services.cloudhsmv2.AWSCloudHSMV2AsyncClient` | `software.amazon.awssdk.services.cloudhsmv2.CloudHsmV2AsyncClient` | 567| `amazonaws.services.cloudhsmv2.AWSCloudHSMV2Client` | `software.amazon.awssdk.services.cloudhsmv2.CloudHsmV2Client` | 568| `amazonaws.services.cloudsearchdomain.AmazonCloudSearchDomainAsyncClient` | `software.amazon.awssdk.services.cloudsearchdomain.CloudSearchDomainAsyncClient` | 569| `amazonaws.services.cloudsearchdomain.AmazonCloudSearchDomainClient` | `software.amazon.awssdk.services.cloudsearchdomain.CloudSearchDomainClient` | 570| `amazonaws.services.cloudsearchv2.AmazonCloudSearchAsyncClient` | `software.amazon.awssdk.services.cloudsearch.CloudSearchAsyncClient` | 571| `amazonaws.services.cloudsearchv2.AmazonCloudSearchClient` | `software.amazon.awssdk.services.cloudsearch.CloudSearchClient` | 572| `amazonaws.services.cloudtrail.AWSCloudTrailAsyncClient` | `software.amazon.awssdk.services.cloudtrail.CloudTrailAsyncClient` | 573| `amazonaws.services.cloudtrail.AWSCloudTrailClient` | `software.amazon.awssdk.services.cloudtrail.CloudTrailClient` | 574| `amazonaws.services.cloudwatch.AmazonCloudWatchAsyncClient` | `software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient` | 575| `amazonaws.services.cloudwatch.AmazonCloudWatchClient` | `software.amazon.awssdk.services.cloudwatch.CloudWatchClient` | 576| `amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsAsyncClient` | `software.amazon.awssdk.services.cloudwatchevents.CloudWatchEventsAsyncClient` | 577| `amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsClient` | `software.amazon.awssdk.services.cloudwatchevents.CloudWatchEventsClient` | 578| `amazonaws.services.codebuild.AWSCodeBuildAsyncClient` | `software.amazon.awssdk.services.codebuild.CodeBuildAsyncClient` | 579| `amazonaws.services.codebuild.AWSCodeBuildClient` | `software.amazon.awssdk.services.codebuild.CodeBuildClient` | 580| `amazonaws.services.codecommit.AWSCodeCommitAsyncClient` | `software.amazon.awssdk.services.codecommit.CodeCommitAsyncClient` | 581| `amazonaws.services.codecommit.AWSCodeCommitClient` | `software.amazon.awssdk.services.codecommit.CodeCommitClient` | 582| `amazonaws.services.codedeploy.AmazonCodeDeployAsyncClient` | `software.amazon.awssdk.services.codedeploy.CodeDeployAsyncClient` | 583| `amazonaws.services.codedeploy.AmazonCodeDeployClient` | `software.amazon.awssdk.services.codedeploy.CodeDeployClient` | 584| `amazonaws.services.codepipeline.AWSCodePipelineAsyncClient` | `software.amazon.awssdk.services.codepipeline.CodePipelineAsyncClient` | 585| `amazonaws.services.codepipeline.AWSCodePipelineClient` | `software.amazon.awssdk.services.codepipeline.CodePipelineClient` | 586| `amazonaws.services.codestar.AWSCodeStarAsyncClient` | `software.amazon.awssdk.services.codestar.CodeStarAsyncClient` | 587| `amazonaws.services.codestar.AWSCodeStarClient` | `software.amazon.awssdk.services.codestar.CodeStarClient` | 588| `amazonaws.services.cognitoidentity.AmazonCognitoIdentityAsyncClient` | `software.amazon.awssdk.services.cognitoidentity.CognitoIdentityAsyncClient` | 589| `amazonaws.services.cognitoidentity.AmazonCognitoIdentityClient` | `software.amazon.awssdk.services.cognitoidentity.CognitoIdentityClient` | 590| `amazonaws.services.cognitoidp.AWSCognitoIdentityProviderAsyncClient` | `software.amazon.awssdk.services.cognitoidentityprovider.CognitoIdentityProviderAsyncClient` | 591| `amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClient` | `software.amazon.awssdk.services.cognitoidentityprovider.CognitoIdentityProviderClient` | 592| `amazonaws.services.cognitosync.AmazonCognitoSyncAsyncClient` | `software.amazon.awssdk.services.cognitosync.CognitoSyncAsyncClient` | 593| `amazonaws.services.cognitosync.AmazonCognitoSyncClient` | `software.amazon.awssdk.services.cognitosync.CognitoSyncClient` | 594| `amazonaws.services.comprehend.AmazonComprehendAsyncClient` | `software.amazon.awssdk.services.comprehend.ComprehendAsyncClient` | 595| `amazonaws.services.comprehend.AmazonComprehendClient` | `software.amazon.awssdk.services.comprehend.ComprehendClient` | 596| `amazonaws.services.config.AmazonConfigAsyncClient` | `software.amazon.awssdk.services.config.ConfigAsyncClient` | 597| `amazonaws.services.config.AmazonConfigClient` | `software.amazon.awssdk.services.config.ConfigClient` | 598| `amazonaws.services.connect.AmazonConnectAsyncClient` | `software.amazon.awssdk.services.connect.ConnectAsyncClient` | 599| `amazonaws.services.connect.AmazonConnectClient` | `software.amazon.awssdk.services.connect.ConnectClient` | 600| `amazonaws.services.costandusagereport.AWSCostAndUsageReportAsyncClient` | `software.amazon.awssdk.services.costandusagereport.CostAndUsageReportAsyncClient` | 601| `amazonaws.services.costandusagereport.AWSCostAndUsageReportClient` | `software.amazon.awssdk.services.costandusagereport.CostAndUsageReportClient` | 602| `amazonaws.services.costexplorer.AWSCostExplorerAsyncClient` | `software.amazon.awssdk.services.costexplorer.CostExplorerAsyncClient` | 603| `amazonaws.services.costexplorer.AWSCostExplorerClient` | `software.amazon.awssdk.services.costexplorer.CostExplorerClient` | 604| `amazonaws.services.databasemigrationservice.AWSDatabaseMigrationServiceAsyncClient` | `software.amazon.awssdk.services.databasemigration.DatabaseMigrationAsyncClient` | 605| `amazonaws.services.databasemigrationservice.AWSDatabaseMigrationServiceClient` | `software.amazon.awssdk.services.databasemigration.DatabaseMigrationClient` | 606| `amazonaws.services.datapipeline.DataPipelineAsyncClient` | `software.amazon.awssdk.services.datapipeline.DataPipelineAsyncClient` | 607| `amazonaws.services.datapipeline.DataPipelineClient` | `software.amazon.awssdk.services.datapipeline.DataPipelineAsyncClient` | 608| `amazonaws.services.dax.AmazonDaxAsyncClient` | `software.amazon.awssdk.services.dax.DaxAsyncClient` | 609| `amazonaws.services.dax.AmazonDaxClient` | `software.amazon.awssdk.services.dax.DaxClient` | 610| `amazonaws.services.devicefarm.AWSDeviceFarmAsyncClient` | `software.amazon.awssdk.services.devicefarm.DeviceFarmAsyncClient` | 611| `amazonaws.services.devicefarm.AWSDeviceFarmClient` | `software.amazon.awssdk.services.devicefarm.DeviceFarmClient` | 612| `amazonaws.services.directconnect.AmazonDirectConnectAsyncClient` | `software.amazon.awssdk.services.directconnect.DirectConnectAsyncClient` | 613| `amazonaws.services.directconnect.AmazonDirectConnectClient` | `software.amazon.awssdk.services.directconnect.DirectConnectClient` | 614| `amazonaws.services.directory.AWSDirectoryServiceAsyncClient` | `software.amazon.awssdk.services.directory.DirectoryAsyncClient` | 615| `amazonaws.services.directory.AWSDirectoryServiceClient` | `software.amazon.awssdk.services.directory.DirectoryClient` | 616| `amazonaws.services.dlm.AmazonDLMAsyncClient` | `software.amazon.awssdk.services.dlm.DlmAsyncClient` | 617| `amazonaws.services.dlm.AmazonDLMClient` | `software.amazon.awssdk.services.dlm.DlmClient` | 618| `amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClient` | `software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient` | 619| `amazonaws.services.dynamodbv2.AmazonDynamoDBClient` | `software.amazon.awssdk.services.dynamodb.DynamoDbClient` | 620| `amazonaws.services.dynamodbv2.AmazonDynamoDBStreamsAsyncClient` | `software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsAsyncClient` | 621| `amazonaws.services.dynamodbv2.AmazonDynamoDBStreamsClient` | `software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient` | 622| `amazonaws.services.ec2.AmazonEC2AsyncClient` | `software.amazon.awssdk.services.ec2.Ec2AsyncClient` | 623| `amazonaws.services.ec2.AmazonEC2Client` | `software.amazon.awssdk.services.ec2.Ec2Client` | 624| `amazonaws.services.ecr.AmazonECRAsyncClient` | `software.amazon.awssdk.services.ecr.EcrAsyncClient` | 625| `amazonaws.services.ecr.AmazonECRClient` | `software.amazon.awssdk.services.ecr.EcrClient` | 626| `amazonaws.services.ecs.AmazonECSAsyncClient` | `software.amazon.awssdk.services.ecs.EcsAsyncClient` | 627| `amazonaws.services.ecs.AmazonECSClient` | `software.amazon.awssdk.services.ecs.EcsClient` | 628| `amazonaws.services.eks.AmazonEKSAsyncClient` | `software.amazon.awssdk.services.eks.EksAsyncClient` | 629| `amazonaws.services.eks.AmazonEKSClient` | `software.amazon.awssdk.services.eks.EksClient` | 630| `amazonaws.services.elasticache.AmazonElastiCacheAsyncClient` | `software.amazon.awssdk.services.elasticache.ElastiCacheAsyncClient` | 631| `amazonaws.services.elasticache.AmazonElastiCacheClient` | `software.amazon.awssdk.services.elasticache.ElastiCacheClient` | 632| `amazonaws.services.elasticbeanstalk.AWSElasticBeanstalkAsyncClient` | `software.amazon.awssdk.services.elasticbeanstalk.ElasticBeanstalkAsyncClient` | 633| `amazonaws.services.elasticbeanstalk.AWSElasticBeanstalkClient` | `software.amazon.awssdk.services.elasticbeanstalk.ElasticBeanstalkClient` | 634| `amazonaws.services.elasticfilesystem.AmazonElasticFileSystemAsyncClient` | `software.amazon.awssdk.services.efs.EfsAsyncClient` | 635| `amazonaws.services.elasticfilesystem.AmazonElasticFileSystemClient` | `software.amazon.awssdk.services.efs.EfsClient` | 636| `amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingAsyncClient` | `software.amazon.awssdk.services.elasticloadbalancing.ElasticLoadBalancingAsyncClient` | 637| `amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingClient` | `software.amazon.awssdk.services.elasticloadbalancing.ElasticLoadBalancingClient` | 638| `amazonaws.services.elasticloadbalancingv2.AmazonElasticLoadBalancingAsyncClient` | `software.amazon.awssdk.services.elasticloadbalancingv2.ElasticLoadBalancingV2AsyncClient` | 639| `amazonaws.services.elasticloadbalancingv2.AmazonElasticLoadBalancingClient` | `software.amazon.awssdk.services.elasticloadbalancingv2.ElasticLoadBalancingV2Client` | 640| `amazonaws.services.elasticmapreduce.AmazonElasticMapReduceAsyncClient` | `software.amazon.awssdk.services.emr.EmrAsyncClient` | 641| `amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClient` | `software.amazon.awssdk.services.emr.EmrClient` | 642| `amazonaws.services.elasticsearch.AWSElasticsearchAsyncClient` | `software.amazon.awssdk.services.elasticsearch.ElasticsearchAsyncClient` | 643| `amazonaws.services.elasticsearch.AWSElasticsearchClient` | `software.amazon.awssdk.services.elasticsearch.ElasticsearchClient` | 644| `amazonaws.services.elastictranscoder.AmazonElasticTranscoderAsyncClient` | `software.amazon.awssdk.services.elastictranscoder.ElasticTranscoderAsyncClient` | 645| `amazonaws.services.elastictranscoder.AmazonElasticTranscoderClient` | `software.amazon.awssdk.services.elastictranscoder.ElasticTranscoderClient` | 646| `amazonaws.services.fms.AWSFMSAsyncClient` | `software.amazon.awssdk.services.fms.FmsAsyncClient` | 647| `amazonaws.services.fms.AWSFMSClient` | `software.amazon.awssdk.services.fms.FmsClient` | 648| `amazonaws.services.gamelift.AmazonGameLiftAsyncClient` | `software.amazon.awssdk.services.gamelift.GameLiftAsyncClient` | 649| `amazonaws.services.gamelift.AmazonGameLiftClient` | `software.amazon.awssdk.services.gamelift.GameLiftClient` | 650| `amazonaws.services.glacier.AmazonGlacierAsyncClient` | `software.amazon.awssdk.services.glacier.GlacierAsyncClient` | 651| `amazonaws.services.glacier.AmazonGlacierClient` | `software.amazon.awssdk.services.glacier.GlacierClient` | 652| `amazonaws.services.glue.AWSGlueAsyncClient` | `software.amazon.awssdk.services.glue.GlueAsyncClient` | 653| `amazonaws.services.glue.AWSGlueClient` | `software.amazon.awssdk.services.glue.GlueClient` | 654| `amazonaws.services.greengrass.AWSGreengrassAsyncClient` | `software.amazon.awssdk.services.greengrass.GreengrassAsyncClient` | 655| `amazonaws.services.greengrass.AWSGreengrassClient` | `software.amazon.awssdk.services.greengrass.GreengrassClient` | 656| `amazonaws.services.guardduty.AmazonGuardDutyAsyncClient` | `software.amazon.awssdk.services.guardduty.GuardDutyAsyncClient` | 657| `amazonaws.services.guardduty.AmazonGuardDutyClient` | `software.amazon.awssdk.services.guardduty.GuardDutyClient` | 658| `amazonaws.services.health.AWSHealthAsyncClient` | `software.amazon.awssdk.services.health.HealthAsyncClient` | 659| `amazonaws.services.health.AWSHealthClient` | `software.amazon.awssdk.services.health.HealthClient` | 660| `amazonaws.services.identitymanagement.AmazonIdentityManagementAsyncClient` | `software.amazon.awssdk.services.iam.IamAsyncClient` | 661| `amazonaws.services.identitymanagement.AmazonIdentityManagementClient` | `software.amazon.awssdk.services.iam.IamClient` | 662| `amazonaws.services.importexport.AmazonImportExportAsyncClient` | `software.amazon.awssdk.services.importexport.ImportExportAsyncClient` | 663| `amazonaws.services.importexport.AmazonImportExportClient` | `software.amazon.awssdk.services.importexport.ImportExportClient` | 664| `amazonaws.services.inspector.AmazonInspectorAsyncClient` | `software.amazon.awssdk.services.inspector.InspectorAsyncClient` | 665| `amazonaws.services.inspector.AmazonInspectorClient` | `software.amazon.awssdk.services.inspector.InspectorClient` | 666| `amazonaws.services.iot.AWSIotAsyncClient` | `software.amazon.awssdk.services.iot.IotAsyncClient` | 667| `amazonaws.services.iot.AWSIotClient` | `software.amazon.awssdk.services.iot.IotClient` | 668| `amazonaws.services.iot1clickdevices.AWSIoT1ClickDevicesAsyncClient` | `software.amazon.awssdk.services.iot1clickdevices.Iot1ClickDevicesAsyncClient` | 669| `amazonaws.services.iot1clickdevices.AWSIoT1ClickDevicesClient` | `software.amazon.awssdk.services.iot1clickdevices.Iot1ClickDevicesClient` | 670| `amazonaws.services.iot1clickprojects.AWSIoT1ClickProjectsAsyncClient` | `software.amazon.awssdk.services.iot1clickprojects.Iot1ClickProjectsAsyncClient` | 671| `amazonaws.services.iot1clickprojects.AWSIoT1ClickProjectsClient` | `software.amazon.awssdk.services.iot1clickprojects.Iot1ClickProjectsClient` | 672| `amazonaws.services.iotanalytics.AWSIoTAnalyticsAsyncClient` | `software.amazon.awssdk.services.iotanalytics.IotAnalyticsAsyncClient` | 673| `amazonaws.services.iotanalytics.AWSIoTAnalyticsClient` | `software.amazon.awssdk.services.iotanalytics.IotAnalyticsClient` | 674| `amazonaws.services.iotdata.AWSIotDataAsyncClient` | `software.amazon.awssdk.services.iotdata.IotDataAsyncClient` | 675| `amazonaws.services.iotdata.AWSIotDataClient` | `software.amazon.awssdk.services.iotdata.IotDataClient` | 676| `amazonaws.services.iotjobsdataplane.AWSIoTJobsDataPlaneAsyncClient` | `software.amazon.awssdk.services.iotdataplane.IotDataPlaneAsyncClient` | 677| `amazonaws.services.iotjobsdataplane.AWSIoTJobsDataPlaneClient` | `software.amazon.awssdk.services.iotdataplane.IotDataPlaneClient` | 678| `amazonaws.services.kinesis.AmazonKinesisAsyncClient` | `software.amazon.awssdk.services.kinesis.KinesisAsyncClient` | 679| `amazonaws.services.kinesis.AmazonKinesisClient` | `software.amazon.awssdk.services.kinesis.KinesisClient` | 680| `amazonaws.services.kinesisanalytics.AmazonKinesisAnalyticsAsyncClient` | `software.amazon.awssdk.services.kinesisanalytics.KinesisAnalyticsAsyncClient` | 681| `amazonaws.services.kinesisanalytics.AmazonKinesisAnalyticsClient` | `software.amazon.awssdk.services.kinesisanalytics.KinesisAnalyticsClient` | 682| `amazonaws.services.kinesisfirehose.AmazonKinesisFirehoseAsyncClient` | `software.amazon.awssdk.services.firehose.FirehoseAsyncClient` | 683| `amazonaws.services.kinesisfirehose.AmazonKinesisFirehoseClient` | `software.amazon.awssdk.services.firehose.FirehoseClient` | 684| `amazonaws.services.kinesisvideo.AmazonKinesisVideoArchivedMediaAsyncClient` | `software.amazon.awssdk.services.kinesisvideoarchivedmedia.KinesisVideoArchivedMediaAsyncClient` | 685| `amazonaws.services.kinesisvideo.AmazonKinesisVideoArchivedMediaClient` | `software.amazon.awssdk.services.kinesisvideoarchivedmedia.KinesisVideoArchivedMediaClient` | 686| `amazonaws.services.kinesisvideo.AmazonKinesisVideoAsyncClient` | `software.amazon.awssdk.services.kinesisvideo.KinesisVideoAsyncClient` | 687| `amazonaws.services.kinesisvideo.AmazonKinesisVideoClient` | `software.amazon.awssdk.services.kinesisvideo.KinesisVideoClient` | 688| `amazonaws.services.kinesisvideo.AmazonKinesisVideoMediaAsyncClient` | `software.amazon.awssdk.services.kinesisvideomedia.KinesisVideoMediaAsyncClient` | 689| `amazonaws.services.kinesisvideo.AmazonKinesisVideoMediaClient` | `software.amazon.awssdk.services.kinesisvideomedia.KinesisVideoMediaClient` | 690| `amazonaws.services.kinesisvideo.AmazonKinesisVideoPutMediaClient` | Not Supported ([Request Feature](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 691| `amazonaws.services.kms.AWSKMSAsyncClient` | `software.amazon.awssdk.services.kms.KmsAsyncClient` | 692| `amazonaws.services.kms.AWSKMSClient` | `software.amazon.awssdk.services.kms.KmsClient` | 693| `amazonaws.services.lambda.AWSLambdaAsyncClient` | `software.amazon.awssdk.services.lambda.LambdaAsyncClient` | 694| `amazonaws.services.lambda.AWSLambdaClient` | `software.amazon.awssdk.services.lambda.LambdaClient` | 695| `amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingAsyncClient` | `software.amazon.awssdk.services.lexmodelbuilding.LexModelBuildingAsyncClient` | 696| `amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClient` | `software.amazon.awssdk.services.lexmodelbuilding.LexModelBuildingClient` | 697| `amazonaws.services.lexruntime.AmazonLexRuntimeAsyncClient` | `software.amazon.awssdk.services.lexruntime.LexRuntimeAsyncClient` | 698| `amazonaws.services.lexruntime.AmazonLexRuntimeClient` | `software.amazon.awssdk.services.lexruntime.LexRuntimeClient` | 699| `amazonaws.services.lightsail.AmazonLightsailAsyncClient` | `software.amazon.awssdk.services.lightsail.LightsailAsyncClient` | 700| `amazonaws.services.lightsail.AmazonLightsailClient` | `software.amazon.awssdk.services.lightsail.LightsailClient` | 701| `amazonaws.services.logs.AWSLogsAsyncClient` | `software.amazon.awssdk.services.logs.LogsAsyncClient` | 702| `amazonaws.services.logs.AWSLogsClient` | `software.amazon.awssdk.services.logs.LogsClient` | 703| `amazonaws.services.machinelearning.AmazonMachineLearningAsyncClient` | `software.amazon.awssdk.services.machinelearning.MachineLearningAsyncClient` | 704| `amazonaws.services.machinelearning.AmazonMachineLearningClient` | `software.amazon.awssdk.services.machinelearning.MachineLearningClient` | 705| `amazonaws.services.macie.AmazonMacieAsyncClient` | `software.amazon.awssdk.services.macie.MacieAsyncClient` | 706| `amazonaws.services.macie.AmazonMacieClient` | `software.amazon.awssdk.services.macie.MacieClient` | 707| `amazonaws.services.marketplacecommerceanalytics.AWSMarketplaceCommerceAnalyticsAsyncClient` | `software.amazon.awssdk.services.marketplacecommerceanalytics.MarketplaceCommerceAnalyticsAsyncClient` | 708| `amazonaws.services.marketplacecommerceanalytics.AWSMarketplaceCommerceAnalyticsClient` | `software.amazon.awssdk.services.marketplacecommerceanalytics.MarketplaceCommerceAnalyticsClient` | 709| `amazonaws.services.marketplaceentitlement.AWSMarketplaceEntitlementAsyncClient` | `software.amazon.awssdk.services.marketplaceentitlement.MarketplaceEntitlementAsyncClient` | 710| `amazonaws.services.marketplaceentitlement.AWSMarketplaceEntitlementClient` | `software.amazon.awssdk.services.marketplaceentitlement.MarketplaceEntitlementClient` | 711| `amazonaws.services.marketplacemetering.AWSMarketplaceMeteringAsyncClient` | `software.amazon.awssdk.services.marketplacemetering.MarketplaceMeteringAsyncClient` | 712| `amazonaws.services.marketplacemetering.AWSMarketplaceMeteringClient` | `software.amazon.awssdk.services.marketplacemetering.MarketplaceMeteringClient` | 713| `amazonaws.services.mediaconvert.AWSMediaConvertAsyncClient` | `software.amazon.awssdk.services.mediaconvert.MediaConvertAsyncClient` | 714| `amazonaws.services.mediaconvert.AWSMediaConvertClient` | `software.amazon.awssdk.services.mediaconvert.MediaConvertClient` | 715| `amazonaws.services.medialive.AWSMediaLiveAsyncClient` | `software.amazon.awssdk.services.medialive.MediaLiveAsyncClient` | 716| `amazonaws.services.medialive.AWSMediaLiveClient` | `software.amazon.awssdk.services.medialive.MediaLiveClient` | 717| `amazonaws.services.mediapackage.AWSMediaPackageAsyncClient` | `software.amazon.awssdk.services.mediapackage.MediaPackageAsyncClient` | 718| `amazonaws.services.mediapackage.AWSMediaPackageClient` | `software.amazon.awssdk.services.mediapackage.MediaPackageClient` | 719| `amazonaws.services.mediastore.AWSMediaStoreAsyncClient` | `software.amazon.awssdk.services.mediastore.MediaStoreAsyncClient` | 720| `amazonaws.services.mediastore.AWSMediaStoreClient` | `software.amazon.awssdk.services.mediastore.MediaStoreClient` | 721| `amazonaws.services.mediastoredata.AWSMediaStoreDataAsyncClient` | `software.amazon.awssdk.services.mediastoredata.MediaStoreDataAsyncClient` | 722| `amazonaws.services.mediastoredata.AWSMediaStoreDataClient` | `software.amazon.awssdk.services.mediastoredata.MediaStoreDataClient` | 723| `amazonaws.services.mediatailor.AWSMediaTailorAsyncClient` | `software.amazon.awssdk.services.mediatailor.MediaTailorAsyncClient` | 724| `amazonaws.services.mediatailor.AWSMediaTailorClient` | `software.amazon.awssdk.services.mediatailor.MediaTailorClient` | 725| `amazonaws.services.migrationhub.AWSMigrationHubAsyncClient` | `software.amazon.awssdk.services.migrationhub.MigrationHubAsyncClient` | 726| `amazonaws.services.migrationhub.AWSMigrationHubClient` | `software.amazon.awssdk.services.migrationhub.MigrationHubClient` | 727| `amazonaws.services.mobile.AWSMobileAsyncClient` | `software.amazon.awssdk.services.mobile.MobileAsyncClient` | 728| `amazonaws.services.mobile.AWSMobileClient` | `software.amazon.awssdk.services.mobile.MobileClient` | 729| `amazonaws.services.mq.AmazonMQAsyncClient` | `software.amazon.awssdk.services.mq.MqAsyncClient` | 730| `amazonaws.services.mq.AmazonMQClient` | `software.amazon.awssdk.services.mq.MqClient` | 731| `amazonaws.services.mturk.AmazonMTurkAsyncClient` | `software.amazon.awssdk.services.mturk.MTurkAsyncClient` | 732| `amazonaws.services.mturk.AmazonMTurkClient` | `software.amazon.awssdk.services.mturk.MTurkClient` | 733| `amazonaws.services.neptune.AmazonNeptuneAsyncClient` | `software.amazon.awssdk.services.neptune.NeptuneAsyncClient` | 734| `amazonaws.services.neptune.AmazonNeptuneClient` | `software.amazon.awssdk.services.neptune.NeptuneClient` | 735| `amazonaws.services.opsworks.AWSOpsWorksAsyncClient` | `software.amazon.awssdk.services.opsworks.OpsWorksAsyncClient` | 736| `amazonaws.services.opsworks.AWSOpsWorksClient` | `software.amazon.awssdk.services.opsworks.OpsWorksClient` | 737| `amazonaws.services.opsworkscm.AWSOpsWorksCMAsyncClient` | `software.amazon.awssdk.services.opsworkscm.OpsWorksCmAsyncClient` | 738| `amazonaws.services.opsworkscm.AWSOpsWorksCMClient` | `software.amazon.awssdk.services.opsworkscm.OpsWorksCmClient` | 739| `amazonaws.services.organizations.AWSOrganizationsAsyncClient` | `software.amazon.awssdk.services.organizations.OrganizationsAsyncClient` | 740| `amazonaws.services.organizations.AWSOrganizationsClient` | `software.amazon.awssdk.services.organizations.OrganizationsClient` | 741| `amazonaws.services.pi.AWSPIAsyncClient` | `software.amazon.awssdk.services.pi.PiAsyncClient` | 742| `amazonaws.services.pi.AWSPIClient` | `software.amazon.awssdk.services.pi.PiClient` | 743| `amazonaws.services.pinpoint.AmazonPinpointAsyncClient` | `software.amazon.awssdk.services.pinpoint.PinpointAsyncClient` | 744| `amazonaws.services.pinpoint.AmazonPinpointClient` | `software.amazon.awssdk.services.pinpoint.PinpointClient` | 745| `amazonaws.services.polly.AmazonPollyAsyncClient` | `software.amazon.awssdk.services.polly.PollyAsyncClient` | 746| `amazonaws.services.polly.AmazonPollyClient` | `software.amazon.awssdk.services.polly.PollyClient` | 747| `amazonaws.services.pricing.AWSPricingAsyncClient` | `software.amazon.awssdk.services.pricing.PricingAsyncClient` | 748| `amazonaws.services.pricing.AWSPricingClient` | `software.amazon.awssdk.services.pricing.PricingClient` | 749| `amazonaws.services.rds.AmazonRDSAsyncClient` | `software.amazon.awssdk.services.rds.RdsAsyncClient` | 750| `amazonaws.services.rds.AmazonRDSClient` | `software.amazon.awssdk.services.rds.RdsClient` | 751| `amazonaws.services.redshift.AmazonRedshiftAsyncClient` | `software.amazon.awssdk.services.redshift.RedshiftAsyncClient` | 752| `amazonaws.services.redshift.AmazonRedshiftClient` | `software.amazon.awssdk.services.redshift.RedshiftClient` | 753| `amazonaws.services.rekognition.AmazonRekognitionAsyncClient` | `software.amazon.awssdk.services.rekognition.RekognitionAsyncClient` | 754| `amazonaws.services.rekognition.AmazonRekognitionClient` | `software.amazon.awssdk.services.rekognition.RekognitionClient` | 755| `amazonaws.services.resourcegroups.AWSResourceGroupsAsyncClient` | `software.amazon.awssdk.services.resourcegroups.ResourceGroupsAsyncClient` | 756| `amazonaws.services.resourcegroups.AWSResourceGroupsClient` | `software.amazon.awssdk.services.resourcegroups.ResourceGroupsClient` | 757| `amazonaws.services.resourcegroupstaggingapi.AWSResourceGroupsTaggingAPIAsyncClient` | `software.amazon.awssdk.services.resourcegroupstaggingapi.ResourceGroupsTaggingApiAsyncClient` | 758| `amazonaws.services.resourcegroupstaggingapi.AWSResourceGroupsTaggingAPIClient` | `software.amazon.awssdk.services.resourcegroupstaggingapi.ResourceGroupsTaggingApiClient` | 759| `amazonaws.services.route53.AmazonRoute53AsyncClient` | `software.amazon.awssdk.services.route53.Route53AsyncClient` | 760| `amazonaws.services.route53.AmazonRoute53Client` | `software.amazon.awssdk.services.route53.Route53Client` | 761| `amazonaws.services.route53domains.AmazonRoute53DomainsAsyncClient` | `software.amazon.awssdk.services.route53domains.Route53DomainsAsyncClient` | 762| `amazonaws.services.route53domains.AmazonRoute53DomainsClient` | `software.amazon.awssdk.services.route53domains.Route53DomainsClient` | 763| `amazonaws.services.s3.AmazonS3Client` | `software.amazon.awssdk.services.s3.S3Client` | 764| `amazonaws.services.sagemaker.AmazonSageMakerAsyncClient` | `software.amazon.awssdk.services.sagemaker.SageMakerAsyncClient` | 765| `amazonaws.services.sagemaker.AmazonSageMakerClient` | `software.amazon.awssdk.services.sagemaker.SageMakerClient` | 766| `amazonaws.services.sagemakerruntime.AmazonSageMakerRuntimeAsyncClient` | `software.amazon.awssdk.services.sagemakerruntime.SageMakerRuntimeAsyncClient` | 767| `amazonaws.services.sagemakerruntime.AmazonSageMakerRuntimeClient` | `software.amazon.awssdk.services.sagemakerruntime.SageMakerRuntimeClient` | 768| `amazonaws.services.secretsmanager.AWSSecretsManagerAsyncClient` | `software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClient` | 769| `amazonaws.services.secretsmanager.AWSSecretsManagerClient` | `software.amazon.awssdk.services.secretsmanager.SecretsManagerClient` | 770| `amazonaws.services.securitytoken.AWSSecurityTokenServiceAsyncClient` | `software.amazon.awssdk.services.sts.StsAsyncClient` | 771| `amazonaws.services.securitytoken.AWSSecurityTokenServiceClient` | `software.amazon.awssdk.services.sts.StsClient` | 772| `amazonaws.services.serverlessapplicationrepository.AWSServerlessApplicationRepositoryAsyncClient` | `software.amazon.awssdk.services.serverlessapplicationrepository.ServerlessApplicationRepositoryAsyncClient` | 773| `amazonaws.services.serverlessapplicationrepository.AWSServerlessApplicationRepositoryClient` | `software.amazon.awssdk.services.serverlessapplicationrepository.ServerlessApplicationRepositoryClient` | 774| `amazonaws.services.servermigration.AWSServerMigrationAsyncClient` | `software.amazon.awssdk.services.sms.SmsAsyncClient` | 775| `amazonaws.services.servermigration.AWSServerMigrationClient` | `software.amazon.awssdk.services.sms.SmsClient` | 776| `amazonaws.services.servicecatalog.AWSServiceCatalogAsyncClient` | `software.amazon.awssdk.services.servicecatalog.ServiceCatalogAsyncClient` | 777| `amazonaws.services.servicecatalog.AWSServiceCatalogClient` | `software.amazon.awssdk.services.servicecatalog.ServiceCatalogClient` | 778| `amazonaws.services.servicediscovery.AWSServiceDiscoveryAsyncClient` | `software.amazon.awssdk.services.servicediscovery.ServiceDiscoveryAsyncClient` | 779| `amazonaws.services.servicediscovery.AWSServiceDiscoveryClient` | `software.amazon.awssdk.services.servicediscovery.ServiceDiscoveryClient` | 780| `amazonaws.services.shield.AWSShieldAsyncClient` | `software.amazon.awssdk.services.shield.ShieldAsyncClient` | 781| `amazonaws.services.shield.AWSShieldClient` | `software.amazon.awssdk.services.shield.ShieldClient` | 782| `amazonaws.services.simpledb.AmazonSimpleDBAsyncClient` | `software.amazon.awssdk.services.simpledb.SimpleDbAsyncClient` | 783| `amazonaws.services.simpledb.AmazonSimpleDBClient` | `software.amazon.awssdk.services.simpledb.SimpleDbClient` | 784| `amazonaws.services.simpleemail.AmazonSimpleEmailServiceAsyncClient` | `software.amazon.awssdk.services.ses.SesAsyncClient` | 785| `amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient` | `software.amazon.awssdk.services.ses.SesClient` | 786| `amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementAsyncClient` | `software.amazon.awssdk.services.ssm.SsmAsyncClient` | 787| `amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClient` | `software.amazon.awssdk.services.ssm.SsmClient` | 788| `amazonaws.services.simpleworkflow.AmazonSimpleWorkflowAsyncClient` | `software.amazon.awssdk.services.swf.SwfAsyncClient` | 789| `amazonaws.services.simpleworkflow.AmazonSimpleWorkflowClient` | `software.amazon.awssdk.services.swf.SwfClient` | 790| `amazonaws.services.snowball.AmazonSnowballAsyncClient` | `software.amazon.awssdk.services.snowball.SnowballAsyncClient` | 791| `amazonaws.services.snowball.AmazonSnowballClient` | `software.amazon.awssdk.services.snowball.SnowballClient` | 792| `amazonaws.services.sns.AmazonSNSAsyncClient` | `software.amazon.awssdk.services.sns.SnsAsyncClient` | 793| `amazonaws.services.sns.AmazonSNSClient` | `software.amazon.awssdk.services.sns.SnsClient` | 794| `amazonaws.services.sqs.AmazonSQSAsyncClient` | `software.amazon.awssdk.services.sqs.SqsAsyncClient` | 795| `amazonaws.services.sqs.AmazonSQSClient` | `software.amazon.awssdk.services.sqs.SqsClient` | 796| `amazonaws.services.stepfunctions.AWSStepFunctionsAsyncClient` | `software.amazon.awssdk.services.sfn.SfnAsyncClient` | 797| `amazonaws.services.stepfunctions.AWSStepFunctionsClient` | `software.amazon.awssdk.services.sfn.SfnClient` | 798| `amazonaws.services.storagegateway.AWSStorageGatewayAsyncClient` | `software.amazon.awssdk.services.storagegateway.StorageGatewayAsyncClient` | 799| `amazonaws.services.storagegateway.AWSStorageGatewayClient` | `software.amazon.awssdk.services.storagegateway.StorageGatewayClient` | 800| `amazonaws.services.support.AWSSupportAsyncClient` | `software.amazon.awssdk.services.support.SupportAsyncClient` | 801| `amazonaws.services.support.AWSSupportClient` | `software.amazon.awssdk.services.support.SupportClient` | 802| `amazonaws.services.transcribe.AmazonTranscribeAsyncClient` | `software.amazon.awssdk.services.transcribe.TranscribeAsyncClient` | 803| `amazonaws.services.transcribe.AmazonTranscribeClient` | `software.amazon.awssdk.services.transcribe.TranscribeClient` | 804| `amazonaws.services.translate.AmazonTranslateAsyncClient` | `software.amazon.awssdk.services.translate.TranslateAsyncClient` | 805| `amazonaws.services.translate.AmazonTranslateClient` | `software.amazon.awssdk.services.translate.TranslateClient` | 806| `amazonaws.services.waf.AWSWAFAsyncClient` | `software.amazon.awssdk.services.waf.WafAsyncClient` | 807| `amazonaws.services.waf.AWSWAFClient` | `software.amazon.awssdk.services.waf.WafClient` | 808| `amazonaws.services.waf.AWSWAFRegionalAsyncClient` | `software.amazon.awssdk.services.waf.regional.WafRegionalAsyncClient` | 809| `amazonaws.services.waf.AWSWAFRegionalClient` | `software.amazon.awssdk.services.waf.regional.WafRegionalClient` | 810| `amazonaws.services.workdocs.AmazonWorkDocsAsyncClient` | `software.amazon.awssdk.services.workdocs.WorkDocsAsyncClient` | 811| `amazonaws.services.workdocs.AmazonWorkDocsClient` | `software.amazon.awssdk.services.workdocs.WorkDocsClient` | 812| `amazonaws.services.workmail.AmazonWorkMailAsyncClient` | `software.amazon.awssdk.services.workmail.WorkMailAsyncClient` | 813| `amazonaws.services.workmail.AmazonWorkMailClient` | `software.amazon.awssdk.services.workmail.WorkMailClient` | 814| `amazonaws.services.workspaces.AmazonWorkspacesAsyncClient` | `software.amazon.awssdk.services.workspaces.WorkSpacesAsyncClient` | 815| `amazonaws.services.workspaces.AmazonWorkspacesClient` | `software.amazon.awssdk.services.workspaces.WorkSpacesClient` | 816| `amazonaws.services.xray.AWSXRayAsyncClient` | `software.amazon.awssdk.services.xray.XRayAsyncClient` | 817| `amazonaws.services.xray.AWSXRayClient` | `software.amazon.awssdk.services.xray.XRayClient` | 818 819# 7. High-Level Libraries 820 821All high-level libraries will be re-designed to match the 2.0 programming model and re-introduced over time. 822The following libraries are available in 2.0: 823 824| 1.x | 2.0 | Since version | 825|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------| 826| DynamoDBMapper | [DynamoDbEnhancedClient](https://github.com/aws/aws-sdk-java-v2/blob/464be97535cc82a4adb2e5b9fdadd9d4ac739ef8/services-custom/dynamodb-enhanced/README.md) | 2.12.0 | 827| Waiters | [Waiters](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/waiters.html) | 2.15.0 | 828| CloudFrontUrlSigner, CloudFrontCookieSigner | [CloudFrontUtilities](https://aws.amazon.com/blogs/developer/amazon-cloudfront-signed-urls-and-cookies-are-now-supported-in-aws-sdk-for-java-2-x/) | 2.18.33 | 829| TransferManager | [S3TransferManager](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html) | 2.19.0 | 830| IAM Policy Builder | [IAM Policy Builder](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/feature-iam-policy-builder.html) | 2.20.126 | 831