diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/AwsParameterStoreClientCustomizer.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/AwsParameterStoreClientCustomizer.java
deleted file mode 100644
index aaf454e52..000000000
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/AwsParameterStoreClientCustomizer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2013-2022 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.awspring.cloud.autoconfigure.config.parameterstore;
-
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
-import software.amazon.awssdk.services.ssm.SsmClientBuilder;
-
-/**
- * @deprecated use {@link SsmClientCustomizer}
- * @author Matej Nedic
- * @since 3.0.0
- */
-@Deprecated(since = "3.3.0", forRemoval = true)
-public interface AwsParameterStoreClientCustomizer extends AwsClientCustomizer<SsmClientBuilder> {
-}
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreAutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreAutoConfiguration.java
index 02c044489..73dc41bcf 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreAutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreAutoConfiguration.java
@@ -18,7 +18,6 @@
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
@@ -31,7 +30,6 @@
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import software.amazon.awssdk.services.ssm.SsmClient;
-import software.amazon.awssdk.services.ssm.SsmClientBuilder;
 
 /**
  * {@link AutoConfiguration Auto-Configuration} for AWS Parameter Store integration.
@@ -51,13 +49,13 @@ public class ParameterStoreAutoConfiguration {
 	@ConditionalOnMissingBean
 	public SsmClient ssmClient(ParameterStoreProperties properties,
 			AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-			ObjectProvider<AwsClientCustomizer<SsmClientBuilder>> customizers,
 			ObjectProvider<SsmClientCustomizer> ssmClientCustomizers,
 			ObjectProvider<AwsSyncClientCustomizer> awsSyncClientCustomizers,
 			ObjectProvider<AwsConnectionDetails> connectionDetails) {
-		return awsClientBuilderConfigurer.configureSyncClient(SsmClient.builder(), properties,
-				connectionDetails.getIfAvailable(), customizers.getIfAvailable(), ssmClientCustomizers.orderedStream(),
-				awsSyncClientCustomizers.orderedStream()).build();
+		return awsClientBuilderConfigurer
+				.configureSyncClient(SsmClient.builder(), properties, connectionDetails.getIfAvailable(),
+						ssmClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream())
+				.build();
 	}
 
 }
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLocationResolver.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLocationResolver.java
index 78b3bd3fd..a6620b447 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLocationResolver.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLocationResolver.java
@@ -17,7 +17,6 @@
 
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.config.AbstractAwsConfigDataLocationResolver;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsProperties;
 import io.awspring.cloud.autoconfigure.core.CredentialsProperties;
 import io.awspring.cloud.autoconfigure.core.RegionProperties;
@@ -96,15 +95,6 @@ public List<ParameterStoreConfigDataResource> resolveProfileSpecific(
 
 	protected SsmClient createSimpleSystemManagementClient(BootstrapContext context) {
 		SsmClientBuilder builder = configure(SsmClient.builder(), context.get(ParameterStoreProperties.class), context);
-		try {
-			AwsParameterStoreClientCustomizer configurer = context.get(AwsParameterStoreClientCustomizer.class);
-			if (configurer != null) {
-				AwsClientCustomizer.apply(configurer, builder);
-			}
-		}
-		catch (IllegalStateException e) {
-			log.debug("Bean of type AwsParameterStoreClientCustomizer is not registered: " + e.getMessage());
-		}
 
 		try {
 			AwsSyncClientCustomizer awsSyncClientCustomizer = context.get(AwsSyncClientCustomizer.class);
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/AwsSecretsManagerClientCustomizer.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/AwsSecretsManagerClientCustomizer.java
deleted file mode 100644
index 01a5a5464..000000000
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/AwsSecretsManagerClientCustomizer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2013-2022 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.awspring.cloud.autoconfigure.config.secretsmanager;
-
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
-import software.amazon.awssdk.services.secretsmanager.SecretsManagerClientBuilder;
-
-/**
- * @deprecated use {@link SecretsManagerClientCustomizer}
- * @author Matej Nedic
- * @since 3.0.0
- */
-@Deprecated(since = "3.3.0", forRemoval = true)
-public interface AwsSecretsManagerClientCustomizer extends AwsClientCustomizer<SecretsManagerClientBuilder> {
-}
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerAutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerAutoConfiguration.java
index f79518234..347060763 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerAutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerAutoConfiguration.java
@@ -18,7 +18,6 @@
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import org.springframework.beans.factory.ObjectProvider;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -29,7 +28,6 @@
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
-import software.amazon.awssdk.services.secretsmanager.SecretsManagerClientBuilder;
 
 /**
  * {@link AutoConfiguration Auto-Configuration} for Secrets Manager integration.
@@ -48,12 +46,12 @@ public class SecretsManagerAutoConfiguration {
 	@Bean
 	public SecretsManagerClient secretsManagerClient(SecretsManagerProperties properties,
 			AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-			ObjectProvider<AwsClientCustomizer<SecretsManagerClientBuilder>> customizer,
 			ObjectProvider<AwsConnectionDetails> connectionDetails,
 			ObjectProvider<SecretsManagerClientCustomizer> secretsManagerClientCustomizers,
 			ObjectProvider<AwsSyncClientCustomizer> awsSyncClientCustomizers) {
-		return awsClientBuilderConfigurer.configureSyncClient(SecretsManagerClient.builder(), properties,
-				connectionDetails.getIfAvailable(), customizer.getIfAvailable(),
-				secretsManagerClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream()).build();
+		return awsClientBuilderConfigurer
+				.configureSyncClient(SecretsManagerClient.builder(), properties, connectionDetails.getIfAvailable(),
+						secretsManagerClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream())
+				.build();
 	}
 }
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLocationResolver.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLocationResolver.java
index 3005d74d3..05e6c2ddb 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLocationResolver.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLocationResolver.java
@@ -17,7 +17,6 @@
 
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.config.AbstractAwsConfigDataLocationResolver;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsProperties;
 import io.awspring.cloud.autoconfigure.core.CredentialsProperties;
 import io.awspring.cloud.autoconfigure.core.RegionProperties;
@@ -100,15 +99,6 @@ public List<SecretsManagerConfigDataResource> resolve(ConfigDataLocationResolver
 	protected SecretsManagerClient createAwsSecretsManagerClient(BootstrapContext context) {
 		SecretsManagerClientBuilder builder = configure(SecretsManagerClient.builder(),
 				context.get(SecretsManagerProperties.class), context);
-		try {
-			AwsSecretsManagerClientCustomizer configurer = context.get(AwsSecretsManagerClientCustomizer.class);
-			if (configurer != null) {
-				AwsClientCustomizer.apply(configurer, builder);
-			}
-		}
-		catch (IllegalStateException e) {
-			log.debug("Bean of type AwsParameterStoreClientCustomizer is not registered: " + e.getMessage());
-		}
 
 		try {
 			AwsSyncClientCustomizer awsSyncClientCustomizer = context.get(AwsSyncClientCustomizer.class);
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/core/AwsClientBuilderConfigurer.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/core/AwsClientBuilderConfigurer.java
index 6c2c1338c..fd09b0b1a 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/core/AwsClientBuilderConfigurer.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/core/AwsClientBuilderConfigurer.java
@@ -54,33 +54,11 @@ public AwsClientBuilderConfigurer(AwsCredentialsProvider credentialsProvider, Aw
 	}
 
 	public <T extends AwsClientBuilder<T, ?>> T configure(T builder) {
-		return configure(builder, null, null, null);
+		return configure(builder, null, null);
 	}
 
-	/**
-	 * @deprecated use
-	 * {@link #configureSyncClient(AwsClientBuilder, AwsClientProperties, AwsConnectionDetails, Stream, Stream)} for
-	 * sync client or
-	 * {@link #configureAsyncClient(AwsClientBuilder, AwsClientProperties, AwsConnectionDetails, Stream, Stream)} for
-	 * async client.
-	 */
-	@Deprecated
 	public <T extends AwsClientBuilder<T, ?>> T configure(T builder, @Nullable AwsClientProperties clientProperties,
-			@Nullable io.awspring.cloud.autoconfigure.core.AwsClientCustomizer<T> customizer) {
-		return configure(builder, clientProperties, null, customizer);
-	}
-
-	/**
-	 * @deprecated use
-	 * {@link #configureSyncClient(AwsClientBuilder, AwsClientProperties, AwsConnectionDetails, Stream, Stream)} for
-	 * sync client or
-	 * {@link #configureAsyncClient(AwsClientBuilder, AwsClientProperties, AwsConnectionDetails, Stream, Stream)} for
-	 * async client.
-	 */
-	@Deprecated
-	public <T extends AwsClientBuilder<T, ?>> T configure(T builder, @Nullable AwsClientProperties clientProperties,
-			@Nullable AwsConnectionDetails connectionDetails,
-			@Nullable io.awspring.cloud.autoconfigure.core.AwsClientCustomizer<T> customizer) {
+			@Nullable AwsConnectionDetails connectionDetails) {
 		Assert.notNull(builder, "builder is required");
 
 		builder.credentialsProvider(this.credentialsProvider).region(resolveRegion(clientProperties, connectionDetails))
@@ -97,47 +75,14 @@ public AwsClientBuilderConfigurer(AwsCredentialsProvider credentialsProvider, Aw
 		Optional.ofNullable(clientProperties).flatMap(it -> Optional.ofNullable(clientProperties.getDualstackEnabled()))
 				.ifPresent(builder::dualstackEnabled);
 
-		if (customizer != null) {
-			io.awspring.cloud.autoconfigure.core.AwsClientCustomizer.apply(customizer, builder);
-		}
 		return builder;
 	}
 
 	public <T extends AwsClientBuilder<T, ?>> T configureSyncClient(T builder,
 			@Nullable AwsClientProperties clientProperties, @Nullable AwsConnectionDetails connectionDetails,
 			@Nullable Stream<? extends AwsClientCustomizer<T>> clientBuilderCustomizer,
-			@Nullable Stream<? extends AwsSyncClientCustomizer> commonCustomizers) {
-		return configureSyncClient(builder, clientProperties, connectionDetails, null, clientBuilderCustomizer,
-				commonCustomizers);
-	}
-
-	public <T extends AwsClientBuilder<T, ?>> T configureAsyncClient(T builder,
-			@Nullable AwsClientProperties clientProperties, @Nullable AwsConnectionDetails connectionDetails,
-			@Nullable Stream<? extends AwsClientCustomizer<T>> clientBuilderCustomizer,
-			@Nullable Stream<? extends AwsAsyncClientCustomizer> commonCustomizers) {
-		return configureAsyncClient(builder, clientProperties, connectionDetails, null, clientBuilderCustomizer,
-				commonCustomizers);
-	}
-
-	@Deprecated
-	public <T extends AwsClientBuilder<T, ?>> T configure(T builder, @Nullable AwsClientProperties clientProperties,
-			@Nullable AwsConnectionDetails connectionDetails,
-			@Nullable io.awspring.cloud.autoconfigure.core.AwsClientCustomizer<T> customizer,
-			@Nullable Stream<? extends AwsClientCustomizer<T>> clientBuilderCustomizer) {
-		return configure(builder, clientProperties, connectionDetails, null, clientBuilderCustomizer);
-	}
-
-	/**
-	 * @deprecated use
-	 * {@link #configureSyncClient(AwsClientBuilder, AwsClientProperties, AwsConnectionDetails, Stream, Stream)}.
-	 */
-	@Deprecated
-	public <T extends AwsClientBuilder<T, ?>> T configureSyncClient(T builder,
-			@Nullable AwsClientProperties clientProperties, @Nullable AwsConnectionDetails connectionDetails,
-			@Nullable io.awspring.cloud.autoconfigure.core.AwsClientCustomizer<T> customizer,
-			@Nullable Stream<? extends AwsClientCustomizer<T>> clientBuilderCustomizer,
 			@Nullable Stream<? extends AwsSyncClientCustomizer> commonBuilderCustomizer) {
-		T result = configure(builder, clientProperties, connectionDetails, customizer);
+		T result = configure(builder, clientProperties, connectionDetails);
 		if (commonBuilderCustomizer != null && builder instanceof AwsSyncClientBuilder<?, ?>) {
 			commonBuilderCustomizer.forEach(it -> it.customize((AwsSyncClientBuilder<?, ?>) result));
 		}
@@ -147,13 +92,11 @@ public AwsClientBuilderConfigurer(AwsCredentialsProvider credentialsProvider, Aw
 		return result;
 	}
 
-	@Deprecated
 	public <T extends AwsClientBuilder<T, ?>> T configureAsyncClient(T builder,
 			@Nullable AwsClientProperties clientProperties, @Nullable AwsConnectionDetails connectionDetails,
-			@Nullable io.awspring.cloud.autoconfigure.core.AwsClientCustomizer<T> customizer,
 			@Nullable Stream<? extends AwsClientCustomizer<T>> clientBuilderCustomizer,
 			@Nullable Stream<? extends AwsAsyncClientCustomizer> commonBuilderCustomizer) {
-		T result = configure(builder, clientProperties, connectionDetails, customizer);
+		T result = configure(builder, clientProperties, connectionDetails);
 		if (commonBuilderCustomizer != null && builder instanceof AwsAsyncClientBuilder<?, ?>) {
 			commonBuilderCustomizer.forEach(it -> it.customize((AwsAsyncClientBuilder<?, ?>) result));
 		}
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/core/AwsClientCustomizer.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/core/AwsClientCustomizer.java
deleted file mode 100644
index a67990546..000000000
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/core/AwsClientCustomizer.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2013-2022 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.awspring.cloud.autoconfigure.core;
-
-import org.springframework.lang.Nullable;
-import software.amazon.awssdk.awscore.client.builder.AwsAsyncClientBuilder;
-import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
-import software.amazon.awssdk.awscore.client.builder.AwsSyncClientBuilder;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
-
-/**
- * @author Matej Nedić
- * @since 3.0.0
- */
-@Deprecated(since = "3.3.0", forRemoval = true)
-public interface AwsClientCustomizer<T> {
-
-	@Nullable
-	default ClientOverrideConfiguration overrideConfiguration() {
-		return null;
-	}
-
-	@Nullable
-	default SdkHttpClient httpClient() {
-		return null;
-	}
-
-	@Nullable
-	default SdkHttpClient.Builder<?> httpClientBuilder() {
-		return null;
-	}
-
-	@Nullable
-	default SdkAsyncHttpClient asyncHttpClient() {
-		return null;
-	}
-
-	@Nullable
-	default SdkAsyncHttpClient.Builder<?> asyncHttpClientBuilder() {
-		return null;
-	}
-
-	static <V extends AwsClientBuilder<?, ?>> void apply(AwsClientCustomizer<V> configurer, V builder) {
-		if (configurer.overrideConfiguration() != null) {
-			builder.overrideConfiguration(configurer.overrideConfiguration());
-		}
-
-		if (builder instanceof AwsSyncClientBuilder) {
-			AwsSyncClientBuilder syncClientBuilder = (AwsSyncClientBuilder) builder;
-			if (configurer.httpClient() != null) {
-				syncClientBuilder.httpClient(configurer.httpClient());
-			}
-			if (configurer.httpClientBuilder() != null) {
-				syncClientBuilder.httpClientBuilder(configurer.httpClientBuilder());
-			}
-		}
-		else if (builder instanceof AwsAsyncClientBuilder) {
-			AwsAsyncClientBuilder asyncClientBuilder = (AwsAsyncClientBuilder) builder;
-			if (configurer.asyncHttpClient() != null) {
-				asyncClientBuilder.httpClient(configurer.asyncHttpClient());
-			}
-			if (configurer.asyncHttpClientBuilder() != null) {
-				asyncClientBuilder.httpClientBuilder(configurer.asyncHttpClientBuilder());
-			}
-		}
-	}
-}
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfiguration.java
index 5c575a691..68792069c 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfiguration.java
@@ -17,7 +17,6 @@
 
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
@@ -47,7 +46,6 @@
 import software.amazon.awssdk.enhanced.dynamodb.TableSchema;
 import software.amazon.awssdk.regions.providers.AwsRegionProvider;
 import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
-import software.amazon.awssdk.services.dynamodb.DynamoDbClientBuilder;
 import software.amazon.dax.ClusterDaxClient;
 
 /**
@@ -114,13 +112,13 @@ static class StandardDynamoDbClient {
 		@ConditionalOnMissingBean
 		@Bean
 		public DynamoDbClient dynamoDbClient(AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-				ObjectProvider<AwsClientCustomizer<DynamoDbClientBuilder>> configurer,
 				ObjectProvider<AwsConnectionDetails> connectionDetails, DynamoDbProperties properties,
 				ObjectProvider<DynamoDbClientCustomizer> dynamoDbClientCustomizers,
 				ObjectProvider<AwsSyncClientCustomizer> awsSyncClientCustomizers) {
-			return awsClientBuilderConfigurer.configureSyncClient(DynamoDbClient.builder(), properties,
-					connectionDetails.getIfAvailable(), configurer.getIfAvailable(),
-					dynamoDbClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream()).build();
+			return awsClientBuilderConfigurer
+					.configureSyncClient(DynamoDbClient.builder(), properties, connectionDetails.getIfAvailable(),
+							dynamoDbClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream())
+					.build();
 		}
 
 	}
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfiguration.java
index aca3bdc75..f3315d70d 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfiguration.java
@@ -17,7 +17,6 @@
 
 import io.awspring.cloud.autoconfigure.AwsAsyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
@@ -38,7 +37,6 @@
 import org.springframework.context.annotation.Bean;
 import software.amazon.awssdk.regions.providers.AwsRegionProvider;
 import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient;
-import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClientBuilder;
 
 /**
  * Configuration for exporting metrics to CloudWatch.
@@ -69,13 +67,13 @@ public CloudWatchMeterRegistry cloudWatchMeterRegistry(CloudWatchConfig config,
 	@ConditionalOnMissingBean
 	public CloudWatchAsyncClient cloudWatchAsyncClient(CloudWatchProperties properties,
 			AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-			ObjectProvider<AwsClientCustomizer<CloudWatchAsyncClientBuilder>> configurer,
 			ObjectProvider<AwsConnectionDetails> connectionDetails,
 			ObjectProvider<CloudWatchAsyncClientCustomizer> cloudWatchAsyncClientCustomizers,
 			ObjectProvider<AwsAsyncClientCustomizer> awsAsyncClientCustomizers) {
-		return awsClientBuilderConfigurer.configureAsyncClient(CloudWatchAsyncClient.builder(), properties,
-				connectionDetails.getIfAvailable(), configurer.getIfAvailable(),
-				cloudWatchAsyncClientCustomizers.orderedStream(), awsAsyncClientCustomizers.orderedStream()).build();
+		return awsClientBuilderConfigurer
+				.configureAsyncClient(CloudWatchAsyncClient.builder(), properties, connectionDetails.getIfAvailable(),
+						cloudWatchAsyncClientCustomizers.orderedStream(), awsAsyncClientCustomizers.orderedStream())
+				.build();
 	}
 
 	@Bean
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfiguration.java
index c72d2727f..2d43ebdbe 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfiguration.java
@@ -18,7 +18,6 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import io.awspring.cloud.autoconfigure.core.AwsProperties;
 import io.awspring.cloud.autoconfigure.s3.properties.S3Properties;
@@ -73,12 +72,11 @@ public S3AutoConfiguration(S3Properties properties) {
 	@Bean
 	@ConditionalOnMissingBean
 	S3ClientBuilder s3ClientBuilder(AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-			ObjectProvider<AwsClientCustomizer<S3ClientBuilder>> configurer,
 			ObjectProvider<AwsConnectionDetails> connectionDetails,
 			ObjectProvider<S3ClientCustomizer> s3ClientCustomizers,
 			ObjectProvider<AwsSyncClientCustomizer> awsSyncClientCustomizers) {
 		S3ClientBuilder builder = awsClientBuilderConfigurer.configureSyncClient(S3Client.builder(), this.properties,
-				connectionDetails.getIfAvailable(), configurer.getIfAvailable(), s3ClientCustomizers.orderedStream(),
+				connectionDetails.getIfAvailable(), s3ClientCustomizers.orderedStream(),
 				awsSyncClientCustomizers.orderedStream());
 
 		if (ClassUtils.isPresent("software.amazon.awssdk.s3accessgrants.plugin.S3AccessGrantsPlugin", null)) {
@@ -142,15 +140,13 @@ S3Client s3EncryptionClient(S3EncryptionClient.Builder s3EncryptionBuilder, S3Cl
 		@ConditionalOnMissingBean
 		S3EncryptionClient.Builder s3EncrpytionClientBuilder(S3Properties properties,
 				AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-				ObjectProvider<AwsClientCustomizer<S3EncryptionClient.Builder>> configurer,
 				ObjectProvider<AwsConnectionDetails> connectionDetails,
 				ObjectProvider<S3EncryptionClientCustomizer> s3ClientCustomizers,
 				ObjectProvider<AwsSyncClientCustomizer> awsSyncClientCustomizers,
 				ObjectProvider<S3RsaProvider> rsaProvider, ObjectProvider<S3AesProvider> aesProvider) {
 			S3EncryptionClient.Builder builder = awsClientBuilderConfigurer.configureSyncClient(
 					S3EncryptionClient.builder(), properties, connectionDetails.getIfAvailable(),
-					configurer.getIfAvailable(), s3ClientCustomizers.orderedStream(),
-					awsSyncClientCustomizers.orderedStream());
+					s3ClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream());
 
 			Optional.ofNullable(properties.getCrossRegionEnabled()).ifPresent(builder::crossRegionAccessEnabled);
 			builder.serviceConfiguration(properties.toS3Configuration());
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfiguration.java
index 91b7e070f..80bec2e5f 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfiguration.java
@@ -17,7 +17,6 @@
 
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
@@ -36,7 +35,6 @@
 import org.springframework.mail.MailSender;
 import org.springframework.mail.javamail.JavaMailSender;
 import software.amazon.awssdk.services.ses.SesClient;
-import software.amazon.awssdk.services.ses.SesClientBuilder;
 
 /**
  * {@link EnableAutoConfiguration} for {@link SimpleEmailServiceMailSender} and
@@ -56,13 +54,13 @@ public class SesAutoConfiguration {
 	@Bean
 	@ConditionalOnMissingBean
 	public SesClient sesClient(SesProperties properties, AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-			ObjectProvider<AwsClientCustomizer<SesClientBuilder>> configurer,
 			ObjectProvider<AwsConnectionDetails> connectionDetails,
 			ObjectProvider<SesClientCustomizer> sesClientCustomizers,
 			ObjectProvider<AwsSyncClientCustomizer> awsSyncClientCustomizers) {
-		return awsClientBuilderConfigurer.configureSyncClient(SesClient.builder(), properties,
-				connectionDetails.getIfAvailable(), configurer.getIfAvailable(), sesClientCustomizers.orderedStream(),
-				awsSyncClientCustomizers.orderedStream()).build();
+		return awsClientBuilderConfigurer
+				.configureSyncClient(SesClient.builder(), properties, connectionDetails.getIfAvailable(),
+						sesClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream())
+				.build();
 	}
 
 	@Bean
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfiguration.java
index 882a4b0ea..8b2c3b4a1 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfiguration.java
@@ -20,7 +20,6 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.awspring.cloud.autoconfigure.AwsSyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
@@ -46,7 +45,6 @@
 import org.springframework.web.method.support.HandlerMethodArgumentResolver;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 import software.amazon.awssdk.services.sns.SnsClient;
-import software.amazon.awssdk.services.sns.SnsClientBuilder;
 
 /**
  * {@link EnableAutoConfiguration Auto-configuration} for SNS integration.
@@ -69,13 +67,13 @@ public class SnsAutoConfiguration {
 	@ConditionalOnMissingBean
 	@Bean
 	public SnsClient snsClient(SnsProperties properties, AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-			ObjectProvider<AwsClientCustomizer<SnsClientBuilder>> configurer,
 			ObjectProvider<AwsConnectionDetails> connectionDetails,
 			ObjectProvider<SnsClientCustomizer> snsClientCustomizers,
 			ObjectProvider<AwsSyncClientCustomizer> awsSyncClientCustomizers) {
-		return awsClientBuilderConfigurer.configureSyncClient(SnsClient.builder(), properties,
-				connectionDetails.getIfAvailable(), configurer.getIfAvailable(), snsClientCustomizers.orderedStream(),
-				awsSyncClientCustomizers.orderedStream()).build();
+		return awsClientBuilderConfigurer
+				.configureSyncClient(SnsClient.builder(), properties, connectionDetails.getIfAvailable(),
+						snsClientCustomizers.orderedStream(), awsSyncClientCustomizers.orderedStream())
+				.build();
 	}
 
 	@ConditionalOnMissingBean(SnsOperations.class)
diff --git a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfiguration.java b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfiguration.java
index 4eb085678..a5ab51921 100644
--- a/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfiguration.java
+++ b/spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfiguration.java
@@ -18,7 +18,6 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.awspring.cloud.autoconfigure.AwsAsyncClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.AwsConnectionDetails;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
@@ -49,7 +48,6 @@
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Import;
 import software.amazon.awssdk.services.sqs.SqsAsyncClient;
-import software.amazon.awssdk.services.sqs.SqsAsyncClientBuilder;
 import software.amazon.awssdk.services.sqs.model.Message;
 
 /**
@@ -78,13 +76,13 @@ public SqsAutoConfiguration(SqsProperties sqsProperties) {
 	@ConditionalOnMissingBean
 	@Bean
 	public SqsAsyncClient sqsAsyncClient(AwsClientBuilderConfigurer awsClientBuilderConfigurer,
-			ObjectProvider<AwsClientCustomizer<SqsAsyncClientBuilder>> configurer,
 			ObjectProvider<AwsConnectionDetails> connectionDetails,
 			ObjectProvider<SqsAsyncClientCustomizer> sqsAsyncClientCustomizers,
 			ObjectProvider<AwsAsyncClientCustomizer> awsAsyncClientCustomizers) {
-		return awsClientBuilderConfigurer.configureAsyncClient(SqsAsyncClient.builder(), this.sqsProperties,
-				connectionDetails.getIfAvailable(), configurer.getIfAvailable(),
-				sqsAsyncClientCustomizers.orderedStream(), awsAsyncClientCustomizers.orderedStream()).build();
+		return awsClientBuilderConfigurer
+				.configureAsyncClient(SqsAsyncClient.builder(), this.sqsProperties, connectionDetails.getIfAvailable(),
+						sqsAsyncClientCustomizers.orderedStream(), awsAsyncClientCustomizers.orderedStream())
+				.build();
 	}
 
 	@ConditionalOnMissingBean
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLoaderIntegrationTests.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLoaderIntegrationTests.java
index fc742b5f1..373cf997b 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLoaderIntegrationTests.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLoaderIntegrationTests.java
@@ -47,8 +47,6 @@
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.http.SdkHttpClient;
 import software.amazon.awssdk.http.apache.ApacheHttpClient;
 import software.amazon.awssdk.services.ssm.SsmClient;
 import software.amazon.awssdk.services.ssm.model.GetParametersByPathRequest;
@@ -125,20 +123,6 @@ void resolvesPropertiesWithPrefixes() {
 		}
 	}
 
-	@Test
-	void clientIsConfiguredWithConfigurerProvidedToBootstrapRegistry() {
-		SpringApplication application = new SpringApplication(App.class);
-		application.setWebApplicationType(WebApplicationType.NONE);
-		application.addBootstrapRegistryInitializer(new AwsConfigurerClientConfiguration());
-
-		try (ConfigurableApplicationContext context = runApplication(application,
-				"aws-parameterstore:/config/spring/")) {
-			ConfiguredAwsClient ssmClient = new ConfiguredAwsClient(context.getBean(SsmClient.class));
-			assertThat(ssmClient.getApiCallTimeout()).isEqualTo(Duration.ofMillis(2828));
-			assertThat(ssmClient.getSyncHttpClient()).isNotNull();
-		}
-	}
-
 	@Test
 	void clientIsConfiguredWithCustomizerProvidedToBootstrapRegistry() {
 		SpringApplication application = new SpringApplication(App.class);
@@ -445,27 +429,6 @@ static class App {
 
 	}
 
-	static class AwsConfigurerClientConfiguration implements BootstrapRegistryInitializer {
-
-		@Override
-		public void initialize(BootstrapRegistry registry) {
-			registry.register(AwsParameterStoreClientCustomizer.class,
-					context -> new AwsParameterStoreClientCustomizer() {
-
-						@Override
-						public ClientOverrideConfiguration overrideConfiguration() {
-							return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(2828))
-									.build();
-						}
-
-						@Override
-						public SdkHttpClient httpClient() {
-							return ApacheHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-						}
-					});
-		}
-	}
-
 	static class CustomizerConfiguration implements BootstrapRegistryInitializer {
 
 		@Override
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLoaderIntegrationTests.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLoaderIntegrationTests.java
index c7cadd1d8..b85829c0b 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLoaderIntegrationTests.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLoaderIntegrationTests.java
@@ -53,8 +53,6 @@
 import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
 import software.amazon.awssdk.core.SdkBytes;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.http.SdkHttpClient;
 import software.amazon.awssdk.http.apache.ApacheHttpClient;
 import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
 import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
@@ -180,20 +178,6 @@ void respectsImportOrder() {
 		}
 	}
 
-	@Test
-	void clientIsConfiguredWithConfigurerProvidedToBootstrapRegistry() {
-		SpringApplication application = new SpringApplication(App.class);
-		application.setWebApplicationType(WebApplicationType.NONE);
-		application.addBootstrapRegistryInitializer(new AwsConfigurerClientConfiguration());
-
-		try (ConfigurableApplicationContext context = runApplication(application,
-				"aws-secretsmanager:/config/spring;/config/second")) {
-			ConfiguredAwsClient ssmClient = new ConfiguredAwsClient(context.getBean(SecretsManagerClient.class));
-			assertThat(ssmClient.getApiCallTimeout()).isEqualTo(Duration.ofMillis(2828));
-			assertThat(ssmClient.getSyncHttpClient()).isNotNull();
-		}
-	}
-
 	@Test
 	void clientIsConfiguredWithCustomizerProvidedToBootstrapRegistry() {
 		SpringApplication application = new SpringApplication(App.class);
@@ -495,27 +479,6 @@ private static void putSecretValue(LocalStackContainer localstack, String secret
 	static class App {
 	}
 
-	static class AwsConfigurerClientConfiguration implements BootstrapRegistryInitializer {
-
-		@Override
-		public void initialize(BootstrapRegistry registry) {
-			registry.register(AwsSecretsManagerClientCustomizer.class,
-					context -> new AwsSecretsManagerClientCustomizer() {
-
-						@Override
-						public ClientOverrideConfiguration overrideConfiguration() {
-							return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(2828))
-									.build();
-						}
-
-						@Override
-						public SdkHttpClient httpClient() {
-							return ApacheHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-						}
-					});
-		}
-	}
-
 	static class CustomizerConfiguration implements BootstrapRegistryInitializer {
 
 		@Override
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/core/AwsClientCustomizerTests.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/core/AwsClientCustomizerTests.java
deleted file mode 100644
index ccdc75258..000000000
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/core/AwsClientCustomizerTests.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright 2013-2023 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.awspring.cloud.autoconfigure.core;
-
-import static org.junit.jupiter.api.Assertions.assertAll;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.withSettings;
-
-import org.junit.jupiter.api.Test;
-import software.amazon.awssdk.awscore.client.builder.AwsAsyncClientBuilder;
-import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
-import software.amazon.awssdk.awscore.client.builder.AwsSyncClientBuilder;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
-
-class AwsClientCustomizerTests {
-	AwsClientBuilder<?, ?> syncClientBuilder = mock(AwsClientBuilder.class,
-			withSettings().extraInterfaces(AwsSyncClientBuilder.class));
-	AwsClientBuilder<?, ?> asyncClientBuilder = mock(AwsClientBuilder.class,
-			withSettings().extraInterfaces(AwsAsyncClientBuilder.class));
-
-	@Test
-	void applyOverrideConfigurationCustomizer() {
-		var customizer = new AwsClientCustomizer<AwsClientBuilder<?, ?>>() {
-			@Override
-			public ClientOverrideConfiguration overrideConfiguration() {
-				return ClientOverrideConfiguration.builder().build();
-			}
-		};
-
-		AwsClientCustomizer.apply(customizer, syncClientBuilder);
-		assertAll(() -> verify(syncClientBuilder).overrideConfiguration(any(ClientOverrideConfiguration.class)),
-				() -> verify((AwsSyncClientBuilder<?, ?>) syncClientBuilder, never())
-						.httpClient(any(SdkHttpClient.class)),
-				() -> verify((AwsSyncClientBuilder<?, ?>) syncClientBuilder, never())
-						.httpClientBuilder(any(SdkHttpClient.Builder.class)));
-	}
-
-	@Test
-	void applySyncClientCustomizer() {
-		var customizer = new AwsClientCustomizer<AwsClientBuilder<?, ?>>() {
-			@Override
-			public SdkHttpClient httpClient() {
-				return mock(SdkHttpClient.class);
-			}
-
-			@Override
-			public SdkHttpClient.Builder<?> httpClientBuilder() {
-				return mock(SdkHttpClient.Builder.class);
-			}
-		};
-
-		AwsClientCustomizer.apply(customizer, syncClientBuilder);
-		assertAll(
-				() -> verify(syncClientBuilder, never()).overrideConfiguration(any(ClientOverrideConfiguration.class)),
-				() -> verify((AwsSyncClientBuilder<?, ?>) syncClientBuilder).httpClient(any(SdkHttpClient.class)),
-				() -> verify((AwsSyncClientBuilder<?, ?>) syncClientBuilder)
-						.httpClientBuilder(any(SdkHttpClient.Builder.class)));
-	}
-
-	@Test
-	void applyAsyncClientBuilderCustomizer() {
-		var customizer = new AwsClientCustomizer<AwsClientBuilder<?, ?>>() {
-			@Override
-			public SdkAsyncHttpClient asyncHttpClient() {
-				return mock(SdkAsyncHttpClient.class);
-			}
-
-			@Override
-			public SdkAsyncHttpClient.Builder<?> asyncHttpClientBuilder() {
-				return mock(SdkAsyncHttpClient.Builder.class);
-			}
-		};
-
-		AwsClientCustomizer.apply(customizer, asyncClientBuilder);
-		assertAll(
-				() -> verify(asyncClientBuilder, never()).overrideConfiguration(any(ClientOverrideConfiguration.class)),
-				() -> verify((AwsAsyncClientBuilder<?, ?>) asyncClientBuilder)
-						.httpClient(any(SdkAsyncHttpClient.class)),
-				() -> verify((AwsAsyncClientBuilder<?, ?>) asyncClientBuilder)
-						.httpClientBuilder(any(SdkAsyncHttpClient.Builder.class)));
-	}
-
-	@Test
-	void applyEmptyCustomizer() {
-		var customizer = new AwsClientCustomizer<AwsClientBuilder<?, ?>>() {
-		};
-		AwsClientCustomizer.apply(customizer, asyncClientBuilder);
-		assertAll(
-				() -> verify(asyncClientBuilder, never()).overrideConfiguration(any(ClientOverrideConfiguration.class)),
-				() -> verify((AwsAsyncClientBuilder<?, ?>) asyncClientBuilder, never())
-						.httpClient(any(SdkAsyncHttpClient.class)),
-				() -> verify((AwsAsyncClientBuilder<?, ?>) asyncClientBuilder, never())
-						.httpClientBuilder(any(SdkAsyncHttpClient.Builder.class)));
-	}
-}
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfigurationTest.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfigurationTest.java
index 23956ea4b..bf450922f 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfigurationTest.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/dynamodb/DynamoDbAutoConfigurationTest.java
@@ -19,7 +19,6 @@
 
 import io.awspring.cloud.autoconfigure.ConfiguredAwsClient;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
 import io.awspring.cloud.dynamodb.DefaultDynamoDbTableSchemaResolver;
@@ -27,7 +26,6 @@
 import io.awspring.cloud.dynamodb.DynamoDbTableSchemaResolver;
 import io.awspring.cloud.dynamodb.DynamoDbTemplate;
 import java.net.URI;
-import java.time.Duration;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -35,15 +33,10 @@
 import org.springframework.boot.test.context.runner.ApplicationContextRunner;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.lang.Nullable;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
 import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient;
 import software.amazon.awssdk.enhanced.dynamodb.TableSchema;
 import software.amazon.awssdk.enhanced.dynamodb.mapper.StaticTableSchema;
-import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.apache.ApacheHttpClient;
 import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
-import software.amazon.awssdk.services.dynamodb.DynamoDbClientBuilder;
 import software.amazon.dax.ClusterDaxClient;
 
 /**
@@ -118,17 +111,6 @@ void dynamoDbClientConfiguredSinceNoUrl() {
 			});
 		}
 
-		@Test
-		void customDynamoDbClientConfigurer() {
-			contextRunner.withUserConfiguration(DynamoDbAutoConfigurationTest.CustomAwsClientConfig.class)
-					.run(context -> {
-						ConfiguredAwsClient dynamoDbClient = new ConfiguredAwsClient(
-								context.getBean(DynamoDbClient.class));
-						assertThat(dynamoDbClient.getApiCallTimeout()).isEqualTo(Duration.ofMillis(1999));
-						assertThat(dynamoDbClient.getSyncHttpClient()).isNotNull();
-					});
-		}
-
 		@Test
 		void tableSchemaBeansRegistered() {
 			contextRunner.withUserConfiguration(DynamoDbAutoConfigurationTest.TableSchemaConfiguration.class)
@@ -288,30 +270,6 @@ public String resolve(Class clazz) {
 		}
 	}
 
-	@Configuration(proxyBeanMethods = false)
-	static class CustomAwsClientConfig {
-
-		@Bean
-		AwsClientCustomizer<DynamoDbClientBuilder> dynamoDbClientBuilderAwsClientConfigurer() {
-			return new DynamoDbAutoConfigurationTest.CustomAwsClientConfig.DynamoDbClientCustomizer();
-		}
-
-		static class DynamoDbClientCustomizer implements AwsClientCustomizer<DynamoDbClientBuilder> {
-			@Override
-			@Nullable
-			public ClientOverrideConfiguration overrideConfiguration() {
-				return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(1999)).build();
-			}
-
-			@Override
-			@Nullable
-			public SdkHttpClient httpClient() {
-				return ApacheHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-			}
-		}
-
-	}
-
 	@Configuration(proxyBeanMethods = false)
 	static class TableSchemaConfiguration {
 
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfigurationTest.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfigurationTest.java
index e57cb919c..032a194a4 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfigurationTest.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/metrics/CloudWatchExportAutoConfigurationTest.java
@@ -19,26 +19,17 @@
 
 import io.awspring.cloud.autoconfigure.ConfiguredAwsClient;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
 import io.micrometer.cloudwatch2.CloudWatchConfig;
 import io.micrometer.cloudwatch2.CloudWatchMeterRegistry;
 import io.micrometer.core.instrument.Clock;
 import java.net.URI;
-import java.time.Duration;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
 import org.springframework.boot.test.context.runner.ApplicationContextRunner;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.lang.Nullable;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
-import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
 import software.amazon.awssdk.regions.Region;
 import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient;
-import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClientBuilder;
 
 /**
  * Test for the {@link CloudWatchExportAutoConfiguration}.
@@ -124,39 +115,4 @@ void withCustomGlobalEndpointAndCloudWatchEndpoint() {
 				});
 	}
 
-	@Test
-	void useAwsConfigurerClient() {
-		this.contextRunner.withPropertyValues("management.cloudwatch.metrics.export.namespace:test")
-				.withUserConfiguration(CustomAwsConfigurerClient.class).run(context -> {
-					ConfiguredAwsClient client = new ConfiguredAwsClient(context.getBean(CloudWatchAsyncClient.class));
-					assertThat(client.getApiCallTimeout()).isEqualTo(Duration.ofMillis(1542));
-					assertThat(client.getAsyncHttpClient()).isNotNull();
-				});
-	}
-
-	@Configuration(proxyBeanMethods = false)
-	static class CustomAwsConfigurerClient {
-
-		@Bean
-		AwsClientCustomizer<CloudWatchAsyncClientBuilder> cloudWatchClientBuilderAwsClientConfigurer() {
-			return new CloudWatchAwsAsyncClientClientConfigurer();
-		}
-
-		static class CloudWatchAwsAsyncClientClientConfigurer
-				implements AwsClientCustomizer<CloudWatchAsyncClientBuilder> {
-			@Override
-			@Nullable
-			public ClientOverrideConfiguration overrideConfiguration() {
-				return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(1542)).build();
-			}
-
-			@Override
-			@Nullable
-			public SdkAsyncHttpClient asyncHttpClient() {
-				return NettyNioAsyncHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-			}
-		}
-
-	}
-
 }
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfigurationTests.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfigurationTests.java
index 2d3b060e3..33ad29c65 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfigurationTests.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfigurationTests.java
@@ -22,7 +22,6 @@
 import io.awspring.cloud.autoconfigure.ConfiguredAwsClient;
 import io.awspring.cloud.autoconfigure.ConfiguredAwsPresigner;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.s3.properties.S3Properties;
@@ -36,7 +35,6 @@
 import io.awspring.cloud.s3.S3Template;
 import java.io.IOException;
 import java.net.URI;
-import java.time.Duration;
 import java.util.Objects;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -48,10 +46,6 @@
 import org.springframework.lang.Nullable;
 import org.springframework.test.util.ReflectionTestUtils;
 import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.core.client.config.SdkClientOption;
-import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.apache.ApacheHttpClient;
 import software.amazon.awssdk.regions.Region;
 import software.amazon.awssdk.s3accessgrants.plugin.S3AccessGrantsIdentityProvider;
 import software.amazon.awssdk.s3accessgrants.plugin.S3AccessGrantsPlugin;
@@ -259,16 +253,6 @@ void usesCustomObjectMapperBean() {
 			});
 		}
 
-		@Test
-		void useAwsConfigurerClient() {
-			contextRunner.withUserConfiguration(CustomAwsConfigurerClient.class).run(context -> {
-				S3ClientBuilder s3ClientBuilder = context.getBean(S3ClientBuilder.class);
-				assertThat(s3ClientBuilder.overrideConfiguration().apiCallTimeout()).contains(Duration.ofMillis(1542));
-				AttributeMap.Builder attributeMap = resolveAttributeMap(s3ClientBuilder);
-				assertThat(attributeMap.get(SdkClientOption.CONFIGURED_SYNC_HTTP_CLIENT)).isNotNull();
-			});
-		}
-
 		@Test
 		void usesCustomS3ObjectConverter() {
 			contextRunner
@@ -403,30 +387,6 @@ S3AesProvider aesProvider() {
 		}
 	}
 
-	@Configuration(proxyBeanMethods = false)
-	static class CustomAwsConfigurerClient {
-
-		@Bean
-		AwsClientCustomizer<S3ClientBuilder> s3ClientBuilderAwsClientConfigurer() {
-			return new S3AwsClientClientConfigurer();
-		}
-
-		static class S3AwsClientClientConfigurer implements AwsClientCustomizer<S3ClientBuilder> {
-			@Override
-			@Nullable
-			public ClientOverrideConfiguration overrideConfiguration() {
-				return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(1542)).build();
-			}
-
-			@Override
-			@Nullable
-			public SdkHttpClient httpClient() {
-				return ApacheHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-			}
-		}
-
-	}
-
 	static class CustomS3OutputStreamProvider implements S3OutputStreamProvider {
 
 		@Override
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfigurationTest.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfigurationTest.java
index e8c437e98..14c7f0d9e 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfigurationTest.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/ses/SesAutoConfigurationTest.java
@@ -19,24 +19,16 @@
 
 import io.awspring.cloud.autoconfigure.ConfiguredAwsClient;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
 import java.net.URI;
-import java.time.Duration;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
 import org.springframework.boot.test.context.FilteredClassLoader;
 import org.springframework.boot.test.context.runner.ApplicationContextRunner;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.mail.MailSender;
 import org.springframework.mail.javamail.JavaMailSender;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.apache.ApacheHttpClient;
 import software.amazon.awssdk.services.ses.SesClient;
-import software.amazon.awssdk.services.ses.SesClientBuilder;
 
 /**
  * Tests for class {@link SesAutoConfiguration}.
@@ -114,35 +106,4 @@ void withCustomGlobalEndpointAndSesEndpoint() {
 				});
 	}
 
-	@Test
-	void customSesClientConfigurer() {
-		this.contextRunner.withUserConfiguration(CustomAwsClientConfig.class).run(context -> {
-			ConfiguredAwsClient sesClient = new ConfiguredAwsClient(context.getBean(SesClient.class));
-			assertThat(sesClient.getApiCallTimeout()).isEqualTo(Duration.ofMillis(2000));
-			assertThat(sesClient.getSyncHttpClient()).isNotNull();
-		});
-	}
-
-	@Configuration(proxyBeanMethods = false)
-	static class CustomAwsClientConfig {
-
-		@Bean
-		AwsClientCustomizer<SesClientBuilder> snsClientBuilderAwsClientConfigurer() {
-			return new CustomAwsClientConfig.SesAwsClientConfigurer();
-		}
-
-		static class SesAwsClientConfigurer implements AwsClientCustomizer<SesClientBuilder> {
-			@Override
-			public ClientOverrideConfiguration overrideConfiguration() {
-				return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(2000)).build();
-			}
-
-			@Override
-			public SdkHttpClient httpClient() {
-				return ApacheHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-			}
-		}
-
-	}
-
 }
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfigurationTest.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfigurationTest.java
index d0d8caf8e..0ea9cf7c5 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfigurationTest.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sns/SnsAutoConfigurationTest.java
@@ -20,7 +20,6 @@
 
 import io.awspring.cloud.autoconfigure.ConfiguredAwsClient;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
 import io.awspring.cloud.sns.core.SnsOperations;
@@ -29,8 +28,6 @@
 import io.awspring.cloud.sns.sms.SnsSmsOperations;
 import io.awspring.cloud.sns.sms.SnsSmsTemplate;
 import java.net.URI;
-import java.time.Duration;
-import java.util.Map;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -38,17 +35,10 @@
 import org.springframework.boot.test.context.runner.ApplicationContextRunner;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.lang.Nullable;
 import org.springframework.messaging.support.ChannelInterceptor;
-import org.springframework.test.util.ReflectionTestUtils;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 import software.amazon.awssdk.arns.Arn;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.core.client.config.SdkClientOption;
-import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.apache.ApacheHttpClient;
 import software.amazon.awssdk.services.sns.SnsClient;
-import software.amazon.awssdk.services.sns.SnsClientBuilder;
 
 /**
  * Tests for class {@link io.awspring.cloud.autoconfigure.sns.SnsAutoConfiguration}.
@@ -102,18 +92,6 @@ void customTopicArnResolverCanBeConfigured() {
 				.run(context -> assertThat(context).hasSingleBean(CustomTopicArnResolver.class));
 	}
 
-	@Test
-	void customSnsClientConfigurer() {
-		this.contextRunner.withUserConfiguration(CustomAwsClientConfig.class).run(context -> {
-			SnsClient snsClient = context.getBean(SnsClient.class);
-
-			Map attributeMap = (Map) ReflectionTestUtils.getField(ReflectionTestUtils.getField(
-					ReflectionTestUtils.getField(snsClient, "clientConfiguration"), "attributes"), "attributes");
-			assertThat(attributeMap.get(SdkClientOption.API_CALL_TIMEOUT).toString()).isEqualTo("Value(PT1.999S)");
-			assertThat(attributeMap.get(SdkClientOption.SYNC_HTTP_CLIENT)).isNotNull();
-		});
-	}
-
 	@Test
 	void doesNotConfigureArgumentResolversWhenSpringWebNotOnTheClasspath() {
 		this.contextRunner.withClassLoader(new FilteredClassLoader(WebMvcConfigurer.class)).run(context -> {
@@ -163,29 +141,6 @@ public Arn resolveTopicArn(String topicName) {
 		}
 	}
 
-	@Configuration(proxyBeanMethods = false)
-	static class CustomAwsClientConfig {
-
-		@Bean
-		AwsClientCustomizer<SnsClientBuilder> snsClientBuilderAwsClientConfigurer() {
-			return new CustomAwsClientConfig.SnsAwsClientConfigurer();
-		}
-
-		static class SnsAwsClientConfigurer implements AwsClientCustomizer<SnsClientBuilder> {
-			@Override
-			@Nullable
-			public ClientOverrideConfiguration overrideConfiguration() {
-				return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(1999)).build();
-			}
-
-			@Override
-			@Nullable
-			public SdkHttpClient httpClient() {
-				return ApacheHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-			}
-		}
-	}
-
 	@Configuration(proxyBeanMethods = false)
 	static class CustomSmsOperations {
 
diff --git a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfigurationTest.java b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfigurationTest.java
index 83fb77bb0..4c550dea4 100644
--- a/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfigurationTest.java
+++ b/spring-cloud-aws-autoconfigure/src/test/java/io/awspring/cloud/autoconfigure/sqs/SqsAutoConfigurationTest.java
@@ -16,14 +16,12 @@
 package io.awspring.cloud.autoconfigure.sqs;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.InstanceOfAssertFactories.map;
 import static org.assertj.core.api.InstanceOfAssertFactories.type;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import io.awspring.cloud.autoconfigure.ConfiguredAwsClient;
 import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration;
-import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
 import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
 import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
 import io.awspring.cloud.sqs.annotation.SqsListenerAnnotationBeanPostProcessor;
@@ -46,22 +44,15 @@
 import java.net.URI;
 import java.time.Duration;
 import java.util.List;
-import java.util.Map;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
 import org.springframework.boot.test.context.FilteredClassLoader;
 import org.springframework.boot.test.context.runner.ApplicationContextRunner;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.lang.Nullable;
 import org.springframework.messaging.converter.CompositeMessageConverter;
 import org.springframework.messaging.converter.MappingJackson2MessageConverter;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.core.client.config.SdkClientOption;
-import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
-import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
 import software.amazon.awssdk.services.sqs.SqsAsyncClient;
-import software.amazon.awssdk.services.sqs.SqsAsyncClientBuilder;
 import software.amazon.awssdk.services.sqs.model.Message;
 
 /**
@@ -211,25 +202,6 @@ void withObservationDisabled() {
 		});
 	}
 
-	// @formatter:off
-	@Test
-	void customSqsClientConfigurer() {
-		this.contextRunner.withUserConfiguration(CustomAwsAsyncClientConfig.class).run(context -> {
-			SqsAsyncClient sqsAsyncClient = context.getBean(SqsAsyncClient.class);
-			assertThat(sqsAsyncClient)
-				.extracting("clientConfiguration")
-				.extracting("attributes")
-				.extracting("attributes")
-				.asInstanceOf(map(Object.class, Object.class))
-				.isInstanceOfSatisfying(Map.class, attributes -> {
-					assertThat(attributes.get(SdkClientOption.API_CALL_TIMEOUT).toString())
-						.isEqualTo("Value(PT1.999S)");
-					assertThat(attributes.get(SdkClientOption.ASYNC_HTTP_CLIENT))
-						.isNotNull();
-				});
-		});
-	}
-
 	@Test
 	void configuresFactoryComponentsAndOptions() {
 		this.contextRunner
@@ -238,33 +210,29 @@ void configuresFactoryComponentsAndOptions() {
 						"spring.cloud.aws.sqs.listener.max-messages-per-poll:8",
 						"spring.cloud.aws.sqs.listener.poll-timeout:6s",
 						"spring.cloud.aws.sqs.listener.max-delay-between-polls:15s")
-				.withUserConfiguration(CustomComponentsConfiguration.class, ObjectMapperConfiguration.class).run(context -> {
+				.withUserConfiguration(CustomComponentsConfiguration.class, ObjectMapperConfiguration.class)
+				.run(context -> {
 					assertThat(context).hasSingleBean(SqsMessageListenerContainerFactory.class);
 					SqsMessageListenerContainerFactory<?> factory = context
 							.getBean(SqsMessageListenerContainerFactory.class);
-				assertThat(factory)
-					.hasFieldOrProperty("errorHandler")
-					.extracting("asyncMessageInterceptors").asList().isNotEmpty();
-				assertThat(factory)
-					.extracting("containerOptionsBuilder")
-					.asInstanceOf(type(ContainerOptionsBuilder.class))
-					.extracting(ContainerOptionsBuilder::build)
-					.isInstanceOfSatisfying(ContainerOptions.class, options -> {
-						assertThat(options.getMaxConcurrentMessages()).isEqualTo(19);
-						assertThat(options.getMaxMessagesPerPoll()).isEqualTo(8);
-						assertThat(options.getPollTimeout()).isEqualTo(Duration.ofSeconds(6));
-						assertThat(options.getMaxDelayBetweenPolls()).isEqualTo(Duration.ofSeconds(15));
-					})
-					.extracting("messageConverter")
-					.asInstanceOf(type(SqsMessagingMessageConverter.class))
-					.extracting("payloadMessageConverter")
-					.asInstanceOf(type(CompositeMessageConverter.class))
-					.extracting(CompositeMessageConverter::getConverters)
-					.isInstanceOfSatisfying(List.class, converters ->
-						assertThat(converters.get(2)).isInstanceOfSatisfying(
-							MappingJackson2MessageConverter.class,
-							jackson2MessageConverter ->
-								assertThat(jackson2MessageConverter.getObjectMapper().getRegisteredModuleIds()).contains("jackson-datatype-jsr310")));
+					assertThat(factory).hasFieldOrProperty("errorHandler").extracting("asyncMessageInterceptors")
+							.asList().isNotEmpty();
+					assertThat(factory).extracting("containerOptionsBuilder")
+							.asInstanceOf(type(ContainerOptionsBuilder.class))
+							.extracting(ContainerOptionsBuilder::build)
+							.isInstanceOfSatisfying(ContainerOptions.class, options -> {
+								assertThat(options.getMaxConcurrentMessages()).isEqualTo(19);
+								assertThat(options.getMaxMessagesPerPoll()).isEqualTo(8);
+								assertThat(options.getPollTimeout()).isEqualTo(Duration.ofSeconds(6));
+								assertThat(options.getMaxDelayBetweenPolls()).isEqualTo(Duration.ofSeconds(15));
+							}).extracting("messageConverter").asInstanceOf(type(SqsMessagingMessageConverter.class))
+							.extracting("payloadMessageConverter").asInstanceOf(type(CompositeMessageConverter.class))
+							.extracting(CompositeMessageConverter::getConverters).isInstanceOfSatisfying(List.class,
+									converters -> assertThat(converters.get(2)).isInstanceOfSatisfying(
+											MappingJackson2MessageConverter.class,
+											jackson2MessageConverter -> assertThat(
+													jackson2MessageConverter.getObjectMapper().getRegisteredModuleIds())
+													.contains("jackson-datatype-jsr310")));
 				});
 	}
 
@@ -274,25 +242,22 @@ void configuresFactoryComponentsAndOptionsWithDefaults() {
 			assertThat(context).hasSingleBean(SqsMessageListenerContainerFactory.class);
 			var factory = context.getBean(SqsMessageListenerContainerFactory.class);
 			assertThat(factory).hasFieldOrProperty("errorHandler").extracting("asyncMessageInterceptors").asList()
-				.isEmpty();
+					.isEmpty();
 			assertThat(factory).extracting("containerOptionsBuilder").asInstanceOf(type(ContainerOptionsBuilder.class))
-				.extracting(ContainerOptionsBuilder::build)
-				.isInstanceOfSatisfying(ContainerOptions.class, options -> {
-					assertThat(options.getMaxConcurrentMessages()).isEqualTo(10);
-					assertThat(options.getMaxMessagesPerPoll()).isEqualTo(10);
-					assertThat(options.getPollTimeout()).isEqualTo(Duration.ofSeconds(10));
-					assertThat(options.getMaxDelayBetweenPolls()).isEqualTo(Duration.ofSeconds(10));
-				})
-				.extracting("messageConverter")
-				.asInstanceOf(type(SqsMessagingMessageConverter.class))
-				.extracting("payloadMessageConverter")
-				.asInstanceOf(type(CompositeMessageConverter.class))
-				.extracting(CompositeMessageConverter::getConverters)
-				.isInstanceOfSatisfying(List.class, converters ->
-					assertThat(converters.get(2)).isInstanceOfSatisfying(
-						MappingJackson2MessageConverter.class,
-						jackson2MessageConverter ->
-							assertThat(jackson2MessageConverter.getObjectMapper().getRegisteredModuleIds()).isEmpty()));
+					.extracting(ContainerOptionsBuilder::build)
+					.isInstanceOfSatisfying(ContainerOptions.class, options -> {
+						assertThat(options.getMaxConcurrentMessages()).isEqualTo(10);
+						assertThat(options.getMaxMessagesPerPoll()).isEqualTo(10);
+						assertThat(options.getPollTimeout()).isEqualTo(Duration.ofSeconds(10));
+						assertThat(options.getMaxDelayBetweenPolls()).isEqualTo(Duration.ofSeconds(10));
+					}).extracting("messageConverter").asInstanceOf(type(SqsMessagingMessageConverter.class))
+					.extracting("payloadMessageConverter").asInstanceOf(type(CompositeMessageConverter.class))
+					.extracting(CompositeMessageConverter::getConverters).isInstanceOfSatisfying(List.class,
+							converters -> assertThat(converters.get(2)).isInstanceOfSatisfying(
+									MappingJackson2MessageConverter.class,
+									jackson2MessageConverter -> assertThat(
+											jackson2MessageConverter.getObjectMapper().getRegisteredModuleIds())
+											.isEmpty()));
 		});
 	}
 	// @formatter:on
@@ -400,25 +365,4 @@ MessagingMessageConverter<Message> messageConverter() {
 
 	}
 
-	@Configuration(proxyBeanMethods = false)
-	static class CustomAwsAsyncClientConfig {
-
-		@Bean
-		AwsClientCustomizer<SqsAsyncClientBuilder> sqsClientBuilderAwsClientConfigurer() {
-			return new AwsClientCustomizer<>() {
-				@Override
-				@Nullable
-				public ClientOverrideConfiguration overrideConfiguration() {
-					return ClientOverrideConfiguration.builder().apiCallTimeout(Duration.ofMillis(1999)).build();
-				}
-
-				@Override
-				@Nullable
-				public SdkAsyncHttpClient asyncHttpClient() {
-					return NettyNioAsyncHttpClient.builder().connectionTimeout(Duration.ofMillis(1542)).build();
-				}
-			};
-		}
-	}
-
 }