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