This is an automated email from the ASF dual-hosted git repository.

pvillard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 716b53b5fd NIFI-14689 Upgraded AWS Secrets Manager Parameter Providers 
to use AWS 2.x libraries
716b53b5fd is described below

commit 716b53b5fd67377759f7eb56f40dee48e925a189
Author: Peter Turcsanyi <[email protected]>
AuthorDate: Thu Jun 26 10:20:59 2025 +0200

    NIFI-14689 Upgraded AWS Secrets Manager Parameter Providers to use AWS 2.x 
libraries
    
    Also removed v1 leftovers from already upgraded or removed components 
(CloudWatch, Lambda, Kinesis, ML, ApiGateway)
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #10050.
---
 .../aws/wag/client/GenericApiGatewayClient.java    | 132 -------------------
 .../wag/client/GenericApiGatewayClientBuilder.java |  76 -----------
 .../aws/wag/client/GenericApiGatewayException.java |  13 --
 .../aws/wag/client/GenericApiGatewayRequest.java   |  45 -------
 .../client/GenericApiGatewayRequestBuilder.java    |  49 -------
 .../aws/wag/client/GenericApiGatewayResponse.java  |  27 ----
 .../nifi/processors/aws/wag/client/Validate.java   |  17 ---
 .../nifi-aws-parameter-providers/pom.xml           |  12 +-
 .../aws/AwsSecretsManagerParameterProvider.java    | 146 +++++++++++++--------
 .../TestAwsSecretsManagerParameterProvider.java    |  70 +++++-----
 .../nifi-aws-parameter-value-providers/pom.xml     |   8 +-
 .../AwsSecretsManagerParameterValueProvider.java   |  47 +++----
 .../TestSecretsManagerParameterValueProvider.java  |  21 +--
 .../aws/cloudwatch/PutCloudWatchMetric.java        |   3 +-
 .../nifi/processors/aws/lambda/PutLambda.java      |   4 +-
 .../aws/ml/AwsResponseMetadataDeserializer.java    |  36 -----
 .../aws/ml/SdkHttpMetadataDeserializer.java        |  36 -----
 .../aws/cloudwatch/MockPutCloudWatchMetric.java    |   8 +-
 .../aws/kinesis/stream/ITConsumeKinesisStream.java |   2 -
 .../kinesis/stream/TestConsumeKinesisStream.java   |   3 +-
 .../nifi/processors/aws/lambda/TestPutLambda.java  |   7 +-
 21 files changed, 176 insertions(+), 586 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayClient.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayClient.java
deleted file mode 100644
index 055547f487..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayClient.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.apache.nifi.processors.aws.wag.client;
-
-import com.amazonaws.AmazonServiceException;
-import com.amazonaws.AmazonWebServiceClient;
-import com.amazonaws.AmazonWebServiceResponse;
-import com.amazonaws.ClientConfiguration;
-import com.amazonaws.DefaultRequest;
-import com.amazonaws.Response;
-import com.amazonaws.auth.AWS4Signer;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.http.AmazonHttpClient;
-import com.amazonaws.http.ExecutionContext;
-import com.amazonaws.http.HttpMethodName;
-import com.amazonaws.http.HttpResponseHandler;
-import com.amazonaws.http.JsonResponseHandler;
-import com.amazonaws.internal.auth.DefaultSignerProvider;
-import com.amazonaws.protocol.json.JsonErrorResponseMetadata;
-import com.amazonaws.protocol.json.JsonOperationMetadata;
-import com.amazonaws.protocol.json.SdkStructuredPlainJsonFactory;
-import com.amazonaws.regions.Region;
-import com.amazonaws.transform.JsonErrorUnmarshaller;
-import com.amazonaws.transform.JsonUnmarshallerContext;
-import com.amazonaws.transform.Unmarshaller;
-import com.fasterxml.jackson.databind.JsonNode;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class GenericApiGatewayClient extends AmazonWebServiceClient {
-    private static final String API_GATEWAY_SERVICE_NAME = "execute-api";
-    private static final String API_KEY_HEADER = "x-api-key";
-
-    private final JsonResponseHandler<GenericApiGatewayResponse> 
responseHandler;
-    private final HttpResponseHandler<AmazonServiceException> 
errorResponseHandler;
-    private final AWSCredentialsProvider credentials;
-    private final String apiKey;
-    private final AWS4Signer signer;
-    private final URI endpoint;
-    private final String region;
-
-    GenericApiGatewayClient(ClientConfiguration clientConfiguration, String 
endpoint, Region region,
-                            AWSCredentialsProvider credentials, String apiKey, 
AmazonHttpClient httpClient) {
-        super(clientConfiguration);
-        this.endpoint = URI.create(endpoint);
-        this.region = region.getName();
-        this.credentials = credentials;
-        this.apiKey = apiKey;
-        this.signer = new AWS4Signer();
-        this.signer.setServiceName(API_GATEWAY_SERVICE_NAME);
-        this.signer.setRegionName(region.getName());
-
-        final JsonOperationMetadata metadata = new 
JsonOperationMetadata().withHasStreamingSuccessResponse(false).withPayloadJson(false);
-        final Unmarshaller<GenericApiGatewayResponse, JsonUnmarshallerContext> 
responseUnmarshaller = in -> new 
GenericApiGatewayResponse(in.getHttpResponse());
-        this.responseHandler = 
SdkStructuredPlainJsonFactory.SDK_JSON_FACTORY.createResponseHandler(metadata, 
responseUnmarshaller);
-
-        final JsonErrorResponseMetadata errorResponseMetadata = new 
JsonErrorResponseMetadata();
-        final JsonErrorUnmarshaller defaultErrorUnmarshaller = new 
JsonErrorUnmarshaller(GenericApiGatewayException.class, null) {
-            @Override
-            public AmazonServiceException unmarshall(final JsonNode 
jsonContent) {
-                return new GenericApiGatewayException(jsonContent.toString());
-            }
-        };
-
-        this.errorResponseHandler = 
SdkStructuredPlainJsonFactory.SDK_JSON_FACTORY.createErrorResponseHandler(errorResponseMetadata,
 List.of(defaultErrorUnmarshaller));
-
-        if (httpClient != null) {
-            super.client = httpClient;
-        }
-    }
-
-    public GenericApiGatewayResponse execute(GenericApiGatewayRequest request) 
{
-        return execute(request.getHttpMethod(), request.getResourcePath(), 
request.getHeaders(), request.getParameters(), request.getBody());
-    }
-
-    private GenericApiGatewayResponse execute(HttpMethodName method, String 
resourcePath, Map<String, String> headers, Map<String, List<String>> 
parameters, InputStream content) {
-        final ExecutionContext executionContext = buildExecutionContext();
-
-        DefaultRequest<?> request = new 
DefaultRequest<>(API_GATEWAY_SERVICE_NAME);
-        request.setHttpMethod(method);
-        request.setContent(content);
-        request.setEndpoint(this.endpoint);
-        request.setResourcePath(resourcePath);
-        request.setHeaders(buildRequestHeaders(headers, apiKey));
-        if (parameters != null) {
-            request.setParameters(parameters);
-        }
-
-        final Response<AmazonWebServiceResponse<GenericApiGatewayResponse>> 
response = client.requestExecutionBuilder()
-                .request(request)
-                .errorResponseHandler(errorResponseHandler)
-                .executionContext(executionContext)
-                .execute(responseHandler);
-
-        return response.getAwsResponse().getResult();
-    }
-
-    private ExecutionContext buildExecutionContext() {
-        final ExecutionContext executionContext = ExecutionContext.builder()
-                .withSignerProvider(new DefaultSignerProvider(this, signer))
-                .build();
-        executionContext.setCredentialsProvider(credentials);
-        return executionContext;
-    }
-
-    private Map<String, String> buildRequestHeaders(Map<String, String> 
headers, final String apiKey) {
-        if (headers == null) {
-            headers = new HashMap<>();
-        }
-        if (apiKey != null) {
-            headers.put(API_KEY_HEADER, apiKey);
-        }
-        return headers;
-    }
-
-    public URI getEndpoint() {
-        return this.endpoint;
-    }
-
-    public String getRegion() {
-        return region;
-    }
-
-    @Override
-    protected String getServiceNameIntern() {
-        return API_GATEWAY_SERVICE_NAME;
-    }
-}
-
-
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayClientBuilder.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayClientBuilder.java
deleted file mode 100644
index 990f369a46..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayClientBuilder.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.apache.nifi.processors.aws.wag.client;
-
-import com.amazonaws.ClientConfiguration;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.http.AmazonHttpClient;
-import com.amazonaws.regions.Region;
-
-public class GenericApiGatewayClientBuilder {
-    private String endpoint;
-    private Region region;
-    private AWSCredentialsProvider credentials;
-    private ClientConfiguration clientConfiguration;
-    private String apiKey;
-    private AmazonHttpClient httpClient;
-
-    public GenericApiGatewayClientBuilder withEndpoint(String endpoint) {
-        this.endpoint = endpoint;
-        return this;
-    }
-
-    public GenericApiGatewayClientBuilder withRegion(Region region) {
-        this.region = region;
-        return this;
-    }
-
-    public GenericApiGatewayClientBuilder 
withClientConfiguration(ClientConfiguration clientConfiguration) {
-        this.clientConfiguration = clientConfiguration;
-        return this;
-    }
-
-    public GenericApiGatewayClientBuilder 
withCredentials(AWSCredentialsProvider credentials) {
-        this.credentials = credentials;
-        return this;
-    }
-
-    public GenericApiGatewayClientBuilder withApiKey(String apiKey) {
-        this.apiKey = apiKey;
-        return this;
-    }
-
-    public GenericApiGatewayClientBuilder withHttpClient(AmazonHttpClient 
client) {
-        this.httpClient = client;
-        return this;
-    }
-
-    public AWSCredentialsProvider getCredentials() {
-        return credentials;
-    }
-
-    public String getApiKey() {
-        return apiKey;
-    }
-
-    public AmazonHttpClient getHttpClient() {
-        return httpClient;
-    }
-
-    public String getEndpoint() {
-        return endpoint;
-    }
-
-    public Region getRegion() {
-        return region;
-    }
-
-    public ClientConfiguration getClientConfiguration() {
-        return clientConfiguration;
-    }
-
-    public GenericApiGatewayClient build() {
-        Validate.notEmpty(endpoint, "Endpoint");
-        Validate.notNull(region, "Region");
-        return new GenericApiGatewayClient(clientConfiguration, endpoint, 
region, credentials, apiKey, httpClient);
-    }
-
-}
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayException.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayException.java
deleted file mode 100644
index 606143d26c..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.nifi.processors.aws.wag.client;
-
-import com.amazonaws.AmazonServiceException;
-
-public class GenericApiGatewayException extends AmazonServiceException {
-    public GenericApiGatewayException(String errorMessage) {
-        super(errorMessage);
-    }
-
-    public GenericApiGatewayException(String errorMessage, Exception cause) {
-        super(errorMessage, cause);
-    }
-}
\ No newline at end of file
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayRequest.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayRequest.java
deleted file mode 100644
index f0649cdca9..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayRequest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.apache.nifi.processors.aws.wag.client;
-
-import com.amazonaws.http.HttpMethodName;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Map;
-
-public class GenericApiGatewayRequest {
-
-    private final HttpMethodName httpMethod;
-    private final String resourcePath;
-    private final InputStream body;
-    private final Map<String, String> headers;
-    private final Map<String, List<String>> parameters;
-
-    public GenericApiGatewayRequest(HttpMethodName httpMethod, String 
resourcePath,
-                                    InputStream body, Map<String, String> 
headers,
-                                    Map<String, List<String>> parameters) {
-        this.httpMethod = httpMethod;
-        this.resourcePath = resourcePath;
-        this.body = body;
-        this.headers = headers;
-        this.parameters = parameters;
-    }
-
-    public HttpMethodName getHttpMethod() {
-        return httpMethod;
-    }
-
-    public String getResourcePath() {
-        return resourcePath;
-    }
-
-    public InputStream getBody() {
-        return body;
-    }
-
-    public Map<String, String> getHeaders() {
-        return headers;
-    }
-
-    public Map<String, List<String>> getParameters() {
-        return parameters;
-    }
-}
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayRequestBuilder.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayRequestBuilder.java
deleted file mode 100644
index 14d13ccfc8..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayRequestBuilder.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.apache.nifi.processors.aws.wag.client;
-
-import com.amazonaws.http.HttpMethodName;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Map;
-
-public class GenericApiGatewayRequestBuilder {
-    private HttpMethodName httpMethod;
-    private String resourcePath;
-    private InputStream body;
-    private Map<String, String> headers;
-    private Map<String, List<String>> parameters;
-
-    public GenericApiGatewayRequestBuilder withHttpMethod(HttpMethodName name) 
{
-        httpMethod = name;
-        return this;
-    }
-
-    public GenericApiGatewayRequestBuilder withResourcePath(String path) {
-        resourcePath = path;
-        return this;
-    }
-
-    public GenericApiGatewayRequestBuilder withBody(InputStream content) {
-        this.body = content;
-        return this;
-    }
-
-    public GenericApiGatewayRequestBuilder withHeaders(Map<String, String> 
headers) {
-        this.headers = headers;
-        return this;
-    }
-
-    public GenericApiGatewayRequestBuilder withParameters(Map<String, 
List<String>> parameters) {
-        this.parameters = parameters;
-        return this;
-    }
-
-    public boolean hasBody() {
-        return this.body != null;
-    }
-
-    public GenericApiGatewayRequest build() {
-        Validate.notNull(httpMethod, "HTTP method");
-        Validate.notEmpty(resourcePath, "Resource path");
-        return new GenericApiGatewayRequest(httpMethod, resourcePath, body, 
headers, parameters);
-    }
-}
\ No newline at end of file
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayResponse.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayResponse.java
deleted file mode 100644
index 2e220b15f3..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/GenericApiGatewayResponse.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.nifi.processors.aws.wag.client;
-
-import com.amazonaws.http.HttpResponse;
-import com.amazonaws.util.IOUtils;
-import java.io.IOException;
-
-public class GenericApiGatewayResponse {
-    private final HttpResponse httpResponse;
-    private final String body;
-
-    public GenericApiGatewayResponse(HttpResponse httpResponse) throws 
IOException {
-        this.httpResponse = httpResponse;
-        if (httpResponse.getContent() != null) {
-            this.body = IOUtils.toString(httpResponse.getContent());
-        } else {
-            this.body = null;
-        }
-    }
-
-    public HttpResponse getHttpResponse() {
-        return httpResponse;
-    }
-
-    public String getBody() {
-        return body;
-    }
-}
\ No newline at end of file
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/Validate.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/Validate.java
deleted file mode 100644
index a85197b945..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/client/Validate.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.apache.nifi.processors.aws.wag.client;
-
-import com.amazonaws.util.StringUtils;
-
-public class Validate {
-    public static void notEmpty(String in, String fieldName) {
-        if (StringUtils.isNullOrEmpty(in)) {
-            throw new IllegalArgumentException(String.format("%s cannot be 
empty", fieldName));
-        }
-    }
-
-    public static void notNull(Object in, String fieldName) {
-        if (in == null) {
-            throw new IllegalArgumentException(String.format("%s cannot be 
null", fieldName));
-        }
-    }
-}
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/pom.xml 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/pom.xml
index 3c9c68bb94..3aaed788e2 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/pom.xml
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/pom.xml
@@ -44,16 +44,16 @@
             <artifactId>jackson-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-secretsmanager</artifactId>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>secretsmanager</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-core</artifactId>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>sdk-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient</artifactId>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>apache-client</artifactId>
         </dependency>
     </dependencies>
 </project>
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/main/java/org/apache/nifi/parameter/aws/AwsSecretsManagerParameterProvider.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/main/java/org/apache/nifi/parameter/aws/AwsSecretsManagerParameterProvider.java
index 59b90f59e4..a3232cb09a 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/main/java/org/apache/nifi/parameter/aws/AwsSecretsManagerParameterProvider.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/main/java/org/apache/nifi/parameter/aws/AwsSecretsManagerParameterProvider.java
@@ -16,25 +16,10 @@
  */
 package org.apache.nifi.parameter.aws;
 
-import com.amazonaws.ClientConfiguration;
-import com.amazonaws.Protocol;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.http.conn.ssl.SdkTLSSocketFactory;
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.secretsmanager.AWSSecretsManager;
-import com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder;
-import com.amazonaws.services.secretsmanager.model.AWSSecretsManagerException;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueRequest;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueResult;
-import com.amazonaws.services.secretsmanager.model.ListSecretsRequest;
-import com.amazonaws.services.secretsmanager.model.ListSecretsResult;
-import com.amazonaws.services.secretsmanager.model.ResourceNotFoundException;
-import com.amazonaws.services.secretsmanager.model.SecretListEntry;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.apache.http.conn.ssl.DefaultHostnameVerifier;
 import org.apache.nifi.annotation.documentation.CapabilityDescription;
 import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.components.AllowableValue;
@@ -50,16 +35,38 @@ import 
org.apache.nifi.parameter.VerifiableParameterProvider;
 import org.apache.nifi.processor.util.StandardValidators;
 import 
org.apache.nifi.processors.aws.credentials.provider.service.AWSCredentialsProviderService;
 import org.apache.nifi.ssl.SSLContextProvider;
-
-import javax.net.ssl.SSLContext;
+import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
+import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
+import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
+import software.amazon.awssdk.http.SdkHttpClient;
+import software.amazon.awssdk.http.TlsKeyManagersProvider;
+import software.amazon.awssdk.http.TlsTrustManagersProvider;
+import software.amazon.awssdk.http.apache.ApacheHttpClient;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.retries.DefaultRetryStrategy;
+import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
+import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest;
+import 
software.amazon.awssdk.services.secretsmanager.model.ListSecretsResponse;
+import 
software.amazon.awssdk.services.secretsmanager.model.ResourceNotFoundException;
+import software.amazon.awssdk.services.secretsmanager.model.SecretListEntry;
+import 
software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException;
+
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509ExtendedKeyManager;
+import javax.net.ssl.X509TrustManager;
+import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 import java.util.regex.Pattern;
 
 /**
@@ -67,7 +74,7 @@ import java.util.regex.Pattern;
  * <code>aws secretsmanager create-secret --name "[Context]" --secret-string 
'{ "[Param]": "[secretValue]", "[Param2]": "[secretValue2]" }'</code> <br/><br/>
  */
 @Tags({"aws", "secretsmanager", "secrets", "manager"})
-@CapabilityDescription("Fetches parameters from AWS SecretsManager.  Each 
secret becomes a Parameter group, which can map to a Parameter Context, with " +
+@CapabilityDescription("Fetches parameters from AWS SecretsManager. Each 
secret becomes a Parameter group, which can map to a Parameter Context, with " +
         "key/value pairs in the secret mapping to Parameters in the group.")
 public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvider implements VerifiableParameterProvider {
     enum ListingStrategy implements DescribedValue {
@@ -144,7 +151,7 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
             .displayName("Region")
             .required(true)
             .allowableValues(getAvailableRegions())
-            
.defaultValue(createAllowableValue(Regions.DEFAULT_REGION).getValue())
+            .defaultValue(createAllowableValue(Region.US_WEST_2).getValue())
             .build();
 
     public static final PropertyDescriptor TIMEOUT = new 
PropertyDescriptor.Builder()
@@ -164,7 +171,7 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
             .build();
 
     private static final String DEFAULT_USER_AGENT = "NiFi";
-    private static final Protocol DEFAULT_PROTOCOL = Protocol.HTTPS;
+
     private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS = 
List.of(
             SECRET_LISTING_STRATEGY,
             SECRET_NAME_PATTERN,
@@ -184,7 +191,7 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
 
     @Override
     public List<ParameterGroup> fetchParameters(final ConfigurationContext 
context) {
-        AWSSecretsManager secretsManager = this.configureClient(context);
+        SecretsManagerClient secretsManager = this.configureClient(context);
 
         final List<ParameterGroup> groups = new ArrayList<>();
 
@@ -196,24 +203,24 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
             fetchSecretNames.addAll(Arrays.asList(secretNames.split(",")));
         } else {
             final Pattern secretNamePattern = 
Pattern.compile(context.getProperty(SECRET_NAME_PATTERN).getValue());
-            final ListSecretsRequest listSecretsRequest = new 
ListSecretsRequest();
 
-            ListSecretsResult listSecretsResult = 
secretsManager.listSecrets(listSecretsRequest);
-            while (!listSecretsResult.getSecretList().isEmpty()) {
-                for (final SecretListEntry entry : 
listSecretsResult.getSecretList()) {
-                    final String secretName = entry.getName();
+            ListSecretsRequest listSecretsRequest = 
ListSecretsRequest.builder().build();
+            ListSecretsResponse listSecretsResponse = 
secretsManager.listSecrets(listSecretsRequest);
+            while (!listSecretsResponse.secretList().isEmpty()) {
+                for (final SecretListEntry entry : 
listSecretsResponse.secretList()) {
+                    final String secretName = entry.name();
                     if (!secretNamePattern.matcher(secretName).matches()) {
                         getLogger().debug("Secret [{}] does not match the 
secret name pattern {}", secretName, secretNamePattern);
                         continue;
                     }
                     fetchSecretNames.add(secretName);
                 }
-                final String nextToken = listSecretsResult.getNextToken();
+                final String nextToken = listSecretsResponse.nextToken();
                 if (nextToken == null) {
                     break;
                 }
-                listSecretsRequest.setNextToken(nextToken);
-                listSecretsResult = 
secretsManager.listSecrets(listSecretsRequest);
+                listSecretsRequest = 
ListSecretsRequest.builder().nextToken(nextToken).build();
+                listSecretsResponse = 
secretsManager.listSecrets(listSecretsRequest);
             }
         }
 
@@ -251,22 +258,24 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
         return results;
     }
 
-    private List<ParameterGroup> fetchSecret(final AWSSecretsManager 
secretsManager, final String secretName) {
+    private List<ParameterGroup> fetchSecret(final SecretsManagerClient 
secretsManager, final String secretName) {
         final List<ParameterGroup> groups = new ArrayList<>();
 
         final List<Parameter> parameters = new ArrayList<>();
 
-        final GetSecretValueRequest getSecretValueRequest = new 
GetSecretValueRequest().withSecretId(secretName);
+        final GetSecretValueRequest getSecretValueRequest = 
GetSecretValueRequest.builder()
+                .secretId(secretName)
+                .build();
 
         try {
-            final GetSecretValueResult getSecretValueResult = 
secretsManager.getSecretValue(getSecretValueRequest);
+            final GetSecretValueResponse getSecretValueResponse = 
secretsManager.getSecretValue(getSecretValueRequest);
 
-            if (getSecretValueResult.getSecretString() == null) {
+            if (getSecretValueResponse.secretString() == null) {
                 getLogger().debug("Secret [{}] is not configured", secretName);
                 return groups;
             }
 
-            final ObjectNode secretObject = 
parseSecret(getSecretValueResult.getSecretString());
+            final ObjectNode secretObject = 
parseSecret(getSecretValueResponse.secretString());
             if (secretObject == null) {
                 getLogger().debug("Secret [{}] is not in the expected JSON 
key/value format", secretName);
                 return groups;
@@ -289,7 +298,7 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
             return groups;
         } catch (final ResourceNotFoundException e) {
             throw new IllegalStateException(String.format("Secret %s not 
found", secretName), e);
-        } catch (final AWSSecretsManagerException e) {
+        } catch (final SecretsManagerException e) {
             throw new IllegalStateException("Error retrieving secret " + 
secretName, e);
         }
     }
@@ -302,23 +311,41 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
                 .build();
     }
 
-    protected ClientConfiguration createConfiguration(final 
ConfigurationContext context) {
-        final ClientConfiguration config = new ClientConfiguration();
-        config.setMaxErrorRetry(0);
-        config.setUserAgentPrefix(DEFAULT_USER_AGENT);
-        config.setProtocol(DEFAULT_PROTOCOL);
-        final int commsTimeout = 
context.getProperty(TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue();
-        config.setConnectionTimeout(commsTimeout);
-        config.setSocketTimeout(commsTimeout);
+    private ClientOverrideConfiguration createConfiguration() {
+        return ClientOverrideConfiguration.builder()
+                .retryStrategy(DefaultRetryStrategy.doNotRetry())
+                .putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_PREFIX, 
DEFAULT_USER_AGENT)
+                .build();
+    }
+
+    private SdkHttpClient createHttpClient(final ConfigurationContext context) 
{
+        final ApacheHttpClient.Builder builder = ApacheHttpClient.builder();
+
+        final Duration commsTimeout = 
context.getProperty(TIMEOUT).asDuration();
+        builder.connectionTimeout(commsTimeout);
+        builder.socketTimeout(commsTimeout);
 
         final SSLContextProvider sslContextProvider = 
context.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextProvider.class);
         if (sslContextProvider != null) {
-            final SSLContext sslContext = sslContextProvider.createContext();
-            SdkTLSSocketFactory sdkTLSSocketFactory = new 
SdkTLSSocketFactory(sslContext, new DefaultHostnameVerifier());
-            
config.getApacheHttpClientConfig().setSslSocketFactory(sdkTLSSocketFactory);
+            final X509TrustManager trustManager = 
sslContextProvider.createTrustManager();
+            final TrustManager[] trustManagers = new 
TrustManager[]{trustManager};
+            final TlsTrustManagersProvider trustManagersProvider = () -> 
trustManagers;
+
+            final TlsKeyManagersProvider keyManagersProvider;
+            final Optional<X509ExtendedKeyManager> keyManagerFound = 
sslContextProvider.createKeyManager();
+            if (keyManagerFound.isPresent()) {
+                final X509ExtendedKeyManager keyManager = 
keyManagerFound.get();
+                final KeyManager[] keyManagers = new KeyManager[]{keyManager};
+                keyManagersProvider = () -> keyManagers;
+            } else {
+                keyManagersProvider = null;
+            }
+
+            builder.tlsTrustManagersProvider(trustManagersProvider);
+            builder.tlsKeyManagersProvider(keyManagersProvider);
         }
 
-        return config;
+        return builder.build();
     }
 
     private ObjectNode parseSecret(final String secretString) {
@@ -334,11 +361,12 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
         }
     }
 
-    AWSSecretsManager configureClient(final ConfigurationContext context) {
-        return AWSSecretsManagerClientBuilder.standard()
-                .withRegion(context.getProperty(REGION).getValue())
-                .withClientConfiguration(createConfiguration(context))
-                .withCredentials(getCredentialsProvider(context))
+    SecretsManagerClient configureClient(final ConfigurationContext context) {
+        return SecretsManagerClient.builder()
+                .region(Region.of(context.getProperty(REGION).getValue()))
+                .overrideConfiguration(createConfiguration())
+                .httpClient(createHttpClient(context))
+                .credentialsProvider(getCredentialsProvider(context))
                 .build();
     }
 
@@ -348,24 +376,26 @@ public class AwsSecretsManagerParameterProvider extends 
AbstractParameterProvide
      * @return AWSCredentialsProvider the credential provider
      * @see  <a 
href="http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html";>AWSCredentialsProvider</a>
      */
-    protected AWSCredentialsProvider getCredentialsProvider(final 
ConfigurationContext context) {
+    protected AwsCredentialsProvider getCredentialsProvider(final 
ConfigurationContext context) {
 
         final AWSCredentialsProviderService awsCredentialsProviderService =
                 
context.getProperty(AWS_CREDENTIALS_PROVIDER_SERVICE).asControllerService(AWSCredentialsProviderService.class);
 
-        return awsCredentialsProviderService.getCredentialsProvider();
+        return awsCredentialsProviderService.getAwsCredentialsProvider();
 
     }
 
-    private static AllowableValue createAllowableValue(final Regions region) {
-        return new AllowableValue(region.getName(), region.getDescription(), 
"AWS Region Code : " + region.getName());
+    private static AllowableValue createAllowableValue(final Region region) {
+        final String description = region.metadata() != null ? 
region.metadata().description() : region.id();
+        return new AllowableValue(region.id(), description, "AWS Region Code : 
" + region.id());
     }
 
     private static AllowableValue[] getAvailableRegions() {
         final List<AllowableValue> values = new ArrayList<>();
-        for (final Regions region : Regions.values()) {
+        for (final Region region : Region.regions()) {
             values.add(createAllowableValue(region));
         }
+        values.sort(Comparator.comparing(AllowableValue::getDisplayName));
         return values.toArray(new AllowableValue[0]);
     }
 }
\ No newline at end of file
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/test/java/org/apache/nifi/parameter/aws/TestAwsSecretsManagerParameterProvider.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/test/java/org/apache/nifi/parameter/aws/TestAwsSecretsManagerParameterProvider.java
index d4ee739ce4..a71549dff1 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/test/java/org/apache/nifi/parameter/aws/TestAwsSecretsManagerParameterProvider.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-providers/src/test/java/org/apache/nifi/parameter/aws/TestAwsSecretsManagerParameterProvider.java
@@ -16,14 +16,6 @@
  */
 package org.apache.nifi.parameter.aws;
 
-import com.amazonaws.services.secretsmanager.AWSSecretsManager;
-import com.amazonaws.services.secretsmanager.model.AWSSecretsManagerException;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueRequest;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueResult;
-import com.amazonaws.services.secretsmanager.model.ListSecretsRequest;
-import com.amazonaws.services.secretsmanager.model.ListSecretsResult;
-import com.amazonaws.services.secretsmanager.model.ResourceNotFoundException;
-import com.amazonaws.services.secretsmanager.model.SecretListEntry;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.nifi.components.ConfigVerificationResult;
@@ -40,6 +32,14 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
+import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
+import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest;
+import 
software.amazon.awssdk.services.secretsmanager.model.ListSecretsResponse;
+import 
software.amazon.awssdk.services.secretsmanager.model.ResourceNotFoundException;
+import software.amazon.awssdk.services.secretsmanager.model.SecretListEntry;
+import 
software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -63,10 +63,10 @@ import static org.mockito.Mockito.when;
 public class TestAwsSecretsManagerParameterProvider {
 
     @Mock
-    private AWSSecretsManager defaultSecretsManager;
+    private SecretsManagerClient defaultSecretsManager;
 
     @Mock
-    private ListSecretsResult emptyListSecretsResult;
+    private ListSecretsResponse emptyListSecretsResponse;
 
     final ObjectMapper objectMapper = new ObjectMapper();
 
@@ -110,23 +110,23 @@ public class TestAwsSecretsManagerParameterProvider {
 
     @Test
     public void testFetchNonExistentSecret() throws InitializationException {
-        
when(defaultSecretsManager.getSecretValue(argThat(matchesGetSecretValueRequest("MySecretDoesNotExist")))).thenThrow(new
 ResourceNotFoundException("Fake exception"));
+        
when(defaultSecretsManager.getSecretValue(argThat(matchesGetSecretValueRequest("MySecretDoesNotExist")))).thenThrow(ResourceNotFoundException.builder().message("Fake
 exception").build());
         runProviderTest(defaultSecretsManager, 0, 
ConfigVerificationResult.Outcome.FAILED, "ENUMERATION", "BadSecret");
     }
 
     @Test
     public void testFetchParametersListFailure() throws 
InitializationException {
-        when(defaultSecretsManager.listSecrets(any())).thenThrow(new 
AWSSecretsManagerException("Fake exception"));
+        
when(defaultSecretsManager.listSecrets(any(ListSecretsRequest.class))).thenThrow(SecretsManagerException.builder().message("Fake
 exception").build());
         runProviderTest(defaultSecretsManager, 0, 
ConfigVerificationResult.Outcome.FAILED, "PATTERN", null);
     }
 
     @Test
     public void testFetchParametersGetSecretFailure() throws 
InitializationException {
-        final List<SecretListEntry> secretList = Collections.singletonList(new 
SecretListEntry().withName("MySecret"));
-        final ListSecretsResult listSecretsResult = 
mock(ListSecretsResult.class);
-        when(listSecretsResult.getSecretList()).thenReturn(secretList);
-        
when(defaultSecretsManager.listSecrets(argThat(ListSecretsRequestMatcher.hasToken(null)))).thenReturn(listSecretsResult);
-        
when(defaultSecretsManager.getSecretValue(argThat(matchesGetSecretValueRequest("MySecret")))).thenThrow(new
 AWSSecretsManagerException("Fake exception"));
+        final List<SecretListEntry> secretList = 
Collections.singletonList(SecretListEntry.builder().name("MySecret").build());
+        final ListSecretsResponse listSecretsResponse = 
mock(ListSecretsResponse.class);
+        when(listSecretsResponse.secretList()).thenReturn(secretList);
+        
when(defaultSecretsManager.listSecrets(argThat(ListSecretsRequestMatcher.hasToken(null)))).thenReturn(listSecretsResponse);
+        
when(defaultSecretsManager.getSecretValue(argThat(matchesGetSecretValueRequest("MySecret")))).thenThrow(SecretsManagerException.builder().message("Fake
 exception").build());
         runProviderTest(defaultSecretsManager, 0, 
ConfigVerificationResult.Outcome.FAILED, "PATTERN", null);
     }
 
@@ -134,8 +134,8 @@ public class TestAwsSecretsManagerParameterProvider {
         return spy(new AwsSecretsManagerParameterProvider());
     }
 
-    private AWSSecretsManager mockSecretsManagerNoList(final 
List<ParameterGroup> mockParameterGroups, final String secretNames) {
-        final AWSSecretsManager secretsManager = mock(AWSSecretsManager.class);
+    private SecretsManagerClient mockSecretsManagerNoList(final 
List<ParameterGroup> mockParameterGroups, final String secretNames) {
+        final SecretsManagerClient secretsManager = 
mock(SecretsManagerClient.class);
 
         mockParameterGroups.forEach(group -> {
             final String groupName = group.getGroupName();
@@ -147,9 +147,9 @@ public class TestAwsSecretsManagerParameterProvider {
                     final String secretString;
                     try {
                         secretString = 
objectMapper.writeValueAsString(keyValues);
-                        final GetSecretValueResult result = new 
GetSecretValueResult().withName(groupName).withSecretString(secretString);
+                        final GetSecretValueResponse response = 
GetSecretValueResponse.builder().name(groupName).secretString(secretString).build();
                         
when(secretsManager.getSecretValue(argThat(matchesGetSecretValueRequest(groupName))))
-                                .thenReturn(result);
+                                .thenReturn(response);
                     } catch (final JsonProcessingException e) {
                         throw new IllegalStateException(e);
                     }
@@ -158,22 +158,22 @@ public class TestAwsSecretsManagerParameterProvider {
         });
         return secretsManager;
     }
-    private AWSSecretsManager mockSecretsManager(final List<ParameterGroup> 
mockParameterGroups) {
-        final AWSSecretsManager secretsManager = mock(AWSSecretsManager.class);
-        
when(emptyListSecretsResult.getSecretList()).thenReturn(Collections.emptyList());
+    private SecretsManagerClient mockSecretsManager(final List<ParameterGroup> 
mockParameterGroups) {
+        final SecretsManagerClient secretsManager = 
mock(SecretsManagerClient.class);
+        
when(emptyListSecretsResponse.secretList()).thenReturn(Collections.emptyList());
 
         String currentToken = null;
         for (int i = 0; i < mockParameterGroups.size(); i++) {
             final ParameterGroup group = mockParameterGroups.get(i);
-            final List<SecretListEntry> secretList = 
Collections.singletonList(new SecretListEntry().withName(group.getGroupName()));
-            final ListSecretsResult listSecretsResult = 
mock(ListSecretsResult.class);
-            when(listSecretsResult.getSecretList()).thenReturn(secretList);
-            
when(secretsManager.listSecrets(argThat(ListSecretsRequestMatcher.hasToken(currentToken)))).thenReturn(listSecretsResult);
+            final List<SecretListEntry> secretList = 
Collections.singletonList(SecretListEntry.builder().name(group.getGroupName()).build());
+            final ListSecretsResponse listSecretsResponse = 
mock(ListSecretsResponse.class);
+            when(listSecretsResponse.secretList()).thenReturn(secretList);
+            
when(secretsManager.listSecrets(argThat(ListSecretsRequestMatcher.hasToken(currentToken)))).thenReturn(listSecretsResponse);
 
             currentToken = "token-" + i;
-            when(listSecretsResult.getNextToken()).thenReturn(currentToken);
+            when(listSecretsResponse.nextToken()).thenReturn(currentToken);
         }
-        
when(secretsManager.listSecrets(argThat(ListSecretsRequestMatcher.hasToken(currentToken)))).thenReturn(emptyListSecretsResult);
+        
when(secretsManager.listSecrets(argThat(ListSecretsRequestMatcher.hasToken(currentToken)))).thenReturn(emptyListSecretsResponse);
 
         mockParameterGroups.forEach(group -> {
             final String groupName = group.getGroupName();
@@ -183,9 +183,9 @@ public class TestAwsSecretsManagerParameterProvider {
             final String secretString;
             try {
                 secretString = objectMapper.writeValueAsString(keyValues);
-                final GetSecretValueResult result = new 
GetSecretValueResult().withName(groupName).withSecretString(secretString);
+                final GetSecretValueResponse response = 
GetSecretValueResponse.builder().name(groupName).secretString(secretString).build();
                 
when(secretsManager.getSecretValue(argThat(matchesGetSecretValueRequest(groupName))))
-                        .thenReturn(result);
+                        .thenReturn(response);
             } catch (final JsonProcessingException e) {
                 throw new IllegalStateException(e);
             }
@@ -193,7 +193,7 @@ public class TestAwsSecretsManagerParameterProvider {
         return secretsManager;
     }
 
-    private List<ParameterGroup> runProviderTest(final AWSSecretsManager 
secretsManager,
+    private List<ParameterGroup> runProviderTest(final SecretsManagerClient 
secretsManager,
                                                  final int expectedCount,
                                                  final 
ConfigVerificationResult.Outcome expectedOutcome,
                                                  final String listingStrategy,
@@ -255,7 +255,7 @@ public class TestAwsSecretsManagerParameterProvider {
 
         @Override
         public boolean matches(final GetSecretValueRequest argument) {
-            return argument != null && argument.getSecretId().equals(secretId);
+            return argument != null && argument.secretId().equals(secretId);
         }
     }
 
@@ -273,7 +273,7 @@ public class TestAwsSecretsManagerParameterProvider {
 
         @Override
         public boolean matches(final ListSecretsRequest argument) {
-            return argument != null && Objects.equals(argument.getNextToken(), 
token);
+            return argument != null && Objects.equals(argument.nextToken(), 
token);
         }
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/pom.xml
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/pom.xml
index 5a7b0deec7..dcf8ca7e0d 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/pom.xml
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/pom.xml
@@ -45,12 +45,12 @@
             <artifactId>jackson-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-secretsmanager</artifactId>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>secretsmanager</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-core</artifactId>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>sdk-core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/main/java/org/apache/nifi/stateless/parameter/AwsSecretsManagerParameterValueProvider.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/main/java/org/apache/nifi/stateless/parameter/AwsSecretsManagerParameterValueProvider.java
index 8e80dd7ec1..6701418a5c 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/main/java/org/apache/nifi/stateless/parameter/AwsSecretsManagerParameterValueProvider.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/main/java/org/apache/nifi/stateless/parameter/AwsSecretsManagerParameterValueProvider.java
@@ -16,15 +16,6 @@
  */
 package org.apache.nifi.stateless.parameter;
 
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
-import com.amazonaws.services.secretsmanager.AWSSecretsManager;
-import com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder;
-import com.amazonaws.services.secretsmanager.model.AWSSecretsManagerException;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueRequest;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueResult;
-import com.amazonaws.services.secretsmanager.model.ResourceNotFoundException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -32,6 +23,15 @@ import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
+import 
software.amazon.awssdk.services.secretsmanager.model.ResourceNotFoundException;
+import 
software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException;
 
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -70,7 +70,7 @@ public class AwsSecretsManagerParameterValueProvider extends 
AbstractSecretBased
 
     private final ObjectMapper objectMapper = new ObjectMapper();
 
-    private AWSSecretsManager secretsManager;
+    private SecretsManagerClient secretsManager;
 
     @Override
     protected List<PropertyDescriptor> 
getAdditionalSupportedPropertyDescriptors() {
@@ -89,21 +89,22 @@ public class AwsSecretsManagerParameterValueProvider 
extends AbstractSecretBased
 
     @Override
     protected String getSecretValue(final String secretName, final String 
keyName) {
-        final GetSecretValueRequest getSecretValueRequest = new 
GetSecretValueRequest()
-                .withSecretId(secretName);
+        final GetSecretValueRequest getSecretValueRequest = 
GetSecretValueRequest.builder()
+                .secretId(secretName)
+                .build();
         try {
-            final GetSecretValueResult getSecretValueResult = 
secretsManager.getSecretValue(getSecretValueRequest);
+            final GetSecretValueResponse getSecretValueResponse = 
secretsManager.getSecretValue(getSecretValueRequest);
 
-            if (getSecretValueResult.getSecretString() == null) {
+            if (getSecretValueResponse.secretString() == null) {
                 logger.debug("Secret [{}] not configured", secretName);
                 return null;
             }
 
-            return parseParameterValue(getSecretValueResult.getSecretString(), 
keyName);
+            return parseParameterValue(getSecretValueResponse.secretString(), 
keyName);
         } catch (final ResourceNotFoundException e) {
             logger.debug("Secret [{}] not found", secretName);
             return null;
-        } catch (final AWSSecretsManagerException e) {
+        } catch (final SecretsManagerException e) {
             logger.debug("Error retrieving secret [{}]", secretName);
             return null;
         }
@@ -133,7 +134,7 @@ public class AwsSecretsManagerParameterValueProvider 
extends AbstractSecretBased
         }
     }
 
-    AWSSecretsManager configureClient(final String awsCredentialsFilename) 
throws IOException {
+    SecretsManagerClient configureClient(final String awsCredentialsFilename) 
throws IOException {
         if (awsCredentialsFilename == null) {
             return getDefaultClient();
         }
@@ -143,18 +144,18 @@ public class AwsSecretsManagerParameterValueProvider 
extends AbstractSecretBased
         final String region = properties.getProperty(REGION_KEY_PROPS_NAME);
 
         if (isNotBlank(accessKey) && isNotBlank(secretKey) && 
isNotBlank(region)) {
-            return AWSSecretsManagerClientBuilder.standard()
-                    .withRegion(region)
-                    .withCredentials(new AWSStaticCredentialsProvider(new 
BasicAWSCredentials(accessKey, secretKey)))
+            return SecretsManagerClient.builder()
+                    .region(Region.of(region))
+                    
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey,
 secretKey)))
                     .build();
         } else {
             return getDefaultClient();
         }
     }
 
-    private AWSSecretsManager getDefaultClient() {
-        return AWSSecretsManagerClientBuilder.standard()
-                
.withCredentials(DefaultAWSCredentialsProviderChain.getInstance())
+    private SecretsManagerClient getDefaultClient() {
+        return SecretsManagerClient.builder()
+                
.credentialsProvider(DefaultCredentialsProvider.builder().build())
                 .build();
     }
 
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/test/java/org/apache/nifi/stateless/parameter/TestSecretsManagerParameterValueProvider.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/test/java/org/apache/nifi/stateless/parameter/TestSecretsManagerParameterValueProvider.java
index 51521b45d5..25489bc563 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/test/java/org/apache/nifi/stateless/parameter/TestSecretsManagerParameterValueProvider.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-parameter-value-providers/src/test/java/org/apache/nifi/stateless/parameter/TestSecretsManagerParameterValueProvider.java
@@ -16,10 +16,6 @@
  */
 package org.apache.nifi.stateless.parameter;
 
-import com.amazonaws.services.secretsmanager.AWSSecretsManager;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueRequest;
-import com.amazonaws.services.secretsmanager.model.GetSecretValueResult;
-import com.amazonaws.services.secretsmanager.model.ResourceNotFoundException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -33,6 +29,10 @@ import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.Spy;
 import org.mockito.junit.jupiter.MockitoExtension;
+import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
+import 
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
+import 
software.amazon.awssdk.services.secretsmanager.model.ResourceNotFoundException;
 
 import java.io.IOException;
 import java.util.Collections;
@@ -63,7 +63,7 @@ public class TestSecretsManagerParameterValueProvider {
     private AwsSecretsManagerParameterValueProvider provider;
 
     @Mock
-    private AWSSecretsManager secretsManager;
+    private SecretsManagerClient secretsManager;
 
     @BeforeEach
     public void init() throws IOException {
@@ -144,13 +144,14 @@ public class TestSecretsManagerParameterValueProvider {
     private void mockGetSecretValue(final String context, final String 
parameterName, final String secretValue, final boolean hasSecretString, final 
boolean resourceNotFound)
             throws JsonProcessingException {
         if (resourceNotFound) {
-            
when(secretsManager.getSecretValue(argThat(matchesGetSecretValueRequest(context)))).thenThrow(new
 ResourceNotFoundException("Not found"));
+            
when(secretsManager.getSecretValue(argThat(matchesGetSecretValueRequest(context)))).thenThrow(ResourceNotFoundException.builder().message("Not
 found").build());
         } else {
-            GetSecretValueResult result = new GetSecretValueResult();
+            GetSecretValueResponse.Builder builder = 
GetSecretValueResponse.builder();
             if (hasSecretString) {
-                result = 
result.withSecretString(getSecretString(parameterName, secretValue));
+                builder.secretString(getSecretString(parameterName, 
secretValue));
             }
-            
when(secretsManager.getSecretValue(argThat(matchesGetSecretValueRequest(context)))).thenReturn(result);
+            GetSecretValueResponse response = builder.build();
+            
when(secretsManager.getSecretValue(argThat(matchesGetSecretValueRequest(context)))).thenReturn(response);
         }
     }
 
@@ -217,7 +218,7 @@ public class TestSecretsManagerParameterValueProvider {
 
         @Override
         public boolean matches(final GetSecretValueRequest argument) {
-            return argument != null && argument.getSecretId().equals(secretId);
+            return argument != null && argument.secretId().equals(secretId);
         }
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/cloudwatch/PutCloudWatchMetric.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/cloudwatch/PutCloudWatchMetric.java
index b30ca9c44d..99cd2002b6 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/cloudwatch/PutCloudWatchMetric.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/cloudwatch/PutCloudWatchMetric.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.processors.aws.cloudwatch;
 
-import com.amazonaws.AmazonClientException;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.nifi.annotation.behavior.DynamicProperty;
 import org.apache.nifi.annotation.behavior.InputRequirement;
@@ -341,7 +340,7 @@ public class PutCloudWatchMetric extends 
AbstractAwsSyncProcessor<CloudWatchClie
 
     }
 
-    protected PutMetricDataResponse putMetricData(final ProcessContext 
context, final PutMetricDataRequest metricDataRequest) throws 
AmazonClientException {
+    protected PutMetricDataResponse putMetricData(final ProcessContext 
context, final PutMetricDataRequest metricDataRequest) {
         final CloudWatchClient client = getClient(context);
         final PutMetricDataResponse result = 
client.putMetricData(metricDataRequest);
         return result;
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/lambda/PutLambda.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/lambda/PutLambda.java
index 01245dde40..3cf2f09d56 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/lambda/PutLambda.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/lambda/PutLambda.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.processors.aws.lambda;
 
-import com.amazonaws.util.Base64;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.nifi.annotation.behavior.InputRequirement;
 import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
@@ -47,6 +46,7 @@ import 
software.amazon.awssdk.services.lambda.model.TooManyRequestsException;
 import 
software.amazon.awssdk.services.lambda.model.UnsupportedMediaTypeException;
 
 import java.nio.charset.Charset;
+import java.util.Base64;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -150,7 +150,7 @@ public class PutLambda extends 
AbstractAwsSyncProcessor<LambdaClient, LambdaClie
 
             final String logResult = response.logResult();
             if (StringUtils.isNotBlank(logResult)) {
-                flowFile = session.putAttribute(flowFile, 
AWS_LAMBDA_RESULT_LOG, new String(Base64.decode(logResult), DEFAULT_CHARSET));
+                flowFile = session.putAttribute(flowFile, 
AWS_LAMBDA_RESULT_LOG, new String(Base64.getDecoder().decode(logResult), 
DEFAULT_CHARSET));
             }
 
             if (response.payload() != null) {
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/ml/AwsResponseMetadataDeserializer.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/ml/AwsResponseMetadataDeserializer.java
deleted file mode 100644
index ec3ad96282..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/ml/AwsResponseMetadataDeserializer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *      http://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 org.apache.nifi.processors.aws.ml;
-
-import com.amazonaws.ResponseMetadata;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.deser.std.StdNodeBasedDeserializer;
-import java.io.IOException;
-import java.util.Map;
-
-public class AwsResponseMetadataDeserializer extends 
StdNodeBasedDeserializer<ResponseMetadata> {
-    protected AwsResponseMetadataDeserializer() {
-        super(ResponseMetadata.class);
-    }
-
-    @Override
-    public ResponseMetadata convert(JsonNode root, DeserializationContext 
ctxt) throws IOException {
-        return new ResponseMetadata((Map<String, String>) null);
-    }
-}
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/ml/SdkHttpMetadataDeserializer.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/ml/SdkHttpMetadataDeserializer.java
deleted file mode 100644
index a8d027d8d3..0000000000
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/ml/SdkHttpMetadataDeserializer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *      http://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 org.apache.nifi.processors.aws.ml;
-
-import com.amazonaws.http.SdkHttpMetadata;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.deser.std.StdNodeBasedDeserializer;
-import java.io.IOException;
-
-public class SdkHttpMetadataDeserializer extends 
StdNodeBasedDeserializer<SdkHttpMetadata> {
-
-    protected SdkHttpMetadataDeserializer() {
-        super(SdkHttpMetadata.class);
-    }
-
-    @Override
-    public SdkHttpMetadata convert(JsonNode root, DeserializationContext ctxt) 
throws IOException {
-        return null;
-    }
-}
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/cloudwatch/MockPutCloudWatchMetric.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/cloudwatch/MockPutCloudWatchMetric.java
index b5aae1f10c..a19153cde5 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/cloudwatch/MockPutCloudWatchMetric.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/cloudwatch/MockPutCloudWatchMetric.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.processors.aws.cloudwatch;
 
-import com.amazonaws.AmazonClientException;
 import org.apache.nifi.processor.ProcessContext;
 import software.amazon.awssdk.services.cloudwatch.model.MetricDatum;
 import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataRequest;
@@ -32,20 +31,15 @@ public class MockPutCloudWatchMetric extends 
PutCloudWatchMetric {
 
     protected String actualNamespace;
     protected List<MetricDatum> actualMetricData;
-    protected AmazonClientException throwException;
     protected PutMetricDataResponse result = 
PutMetricDataResponse.builder().build();
     protected int putMetricDataCallCount = 0;
 
 
-    protected PutMetricDataResponse putMetricData(final ProcessContext 
context, final PutMetricDataRequest metricDataRequest) throws 
AmazonClientException {
+    protected PutMetricDataResponse putMetricData(final ProcessContext 
context, final PutMetricDataRequest metricDataRequest) {
         putMetricDataCallCount++;
         actualNamespace = metricDataRequest.namespace();
         actualMetricData = metricDataRequest.metricData();
 
-        if (throwException != null) {
-            throw throwException;
-        }
-
         return result;
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/ITConsumeKinesisStream.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/ITConsumeKinesisStream.java
index 8f390c3195..f483815bc0 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/ITConsumeKinesisStream.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/ITConsumeKinesisStream.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.processors.aws.kinesis.stream;
 
-import com.amazonaws.regions.Regions;
 import 
org.apache.nifi.processors.aws.kinesis.stream.record.AbstractKinesisRecordProcessor;
 import org.apache.nifi.util.MockFlowFile;
 import org.apache.nifi.util.TestRunner;
@@ -44,7 +43,6 @@ public abstract class ITConsumeKinesisStream {
 
     static final String KINESIS_STREAM_NAME = "test-stream";
     static final String APPLICATION_NAME = "test-application";
-    static final String REGION = System.getProperty("AWS_DEFAULT_REGION", 
Regions.US_EAST_1.getName());
 
     protected TestRunner runner;
 
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/TestConsumeKinesisStream.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/TestConsumeKinesisStream.java
index 4d004fbc69..12fa87da2a 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/TestConsumeKinesisStream.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/kinesis/stream/TestConsumeKinesisStream.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.processors.aws.kinesis.stream;
 
-import com.amazonaws.regions.Regions;
 import org.apache.nifi.controller.ControllerService;
 import org.apache.nifi.json.JsonRecordSetWriter;
 import org.apache.nifi.json.JsonTreeReader;
@@ -267,7 +266,7 @@ public class TestConsumeKinesisStream {
         
mockConsumeKinesisStreamRunner.setProperty(ConsumeKinesisStream.GRACEFUL_SHUTDOWN_TIMEOUT,
 "50 millis");
         
mockConsumeKinesisStreamRunner.setProperty(ConsumeKinesisStream.KINESIS_STREAM_NAME,
 "test-stream");
         
mockConsumeKinesisStreamRunner.setProperty(ConsumeKinesisStream.APPLICATION_NAME,
 "test-application");
-        
mockConsumeKinesisStreamRunner.setProperty(ConsumeKinesisStream.REGION, 
Regions.EU_WEST_2.getName());
+        
mockConsumeKinesisStreamRunner.setProperty(ConsumeKinesisStream.REGION, 
Region.EU_WEST_2.id());
         
mockConsumeKinesisStreamRunner.setProperty(ConsumeKinesisStream.TIMEOUT, "5 
secs");
         
mockConsumeKinesisStreamRunner.setProperty(ConsumeKinesisStream.INITIAL_STREAM_POSITION,
 "TRIM_HORIZON");
 
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/lambda/TestPutLambda.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/lambda/TestPutLambda.java
index e864cfe65c..6e72ecde05 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/lambda/TestPutLambda.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/lambda/TestPutLambda.java
@@ -16,8 +16,6 @@
  */
 package org.apache.nifi.processors.aws.lambda;
 
-import com.amazonaws.AmazonServiceException;
-import com.amazonaws.util.Base64;
 import org.apache.nifi.processor.ProcessContext;
 import org.apache.nifi.processors.aws.testutil.AuthUtils;
 import org.apache.nifi.util.MockFlowFile;
@@ -36,6 +34,7 @@ import 
software.amazon.awssdk.services.lambda.model.InvokeResponse;
 import software.amazon.awssdk.services.lambda.model.TooManyRequestsException;
 
 import java.nio.charset.Charset;
+import java.util.Base64;
 import java.util.List;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -81,7 +80,7 @@ public class TestPutLambda {
 
         final InvokeResponse invokeResult = InvokeResponse.builder()
                 .statusCode(200)
-                .logResult(Base64.encodeAsString("test-log-result".getBytes()))
+                
.logResult(Base64.getEncoder().encodeToString("test-log-result".getBytes()))
                 .payload(SdkBytes.fromString("test-payload", 
Charset.defaultCharset()))
                 .build();
         
when(mockLambdaClient.invoke(any(InvokeRequest.class))).thenReturn(invokeResult);
@@ -139,7 +138,7 @@ public class TestPutLambda {
     public void testPutLambdaAmazonException() {
         runner.setProperty(PutLambda.AWS_LAMBDA_FUNCTION_NAME, 
"test-function");
         runner.enqueue("TestContent");
-        when(mockLambdaClient.invoke(any(InvokeRequest.class))).thenThrow(new 
AmazonServiceException("TestFail"));
+        when(mockLambdaClient.invoke(any(InvokeRequest.class))).thenThrow(new 
RuntimeException("TestFail"));
 
         runner.assertValid();
         runner.run(1);

Reply via email to