Skip to content

Commit 1203086

Browse files
committed
Add SdkAnnotation to service module
1 parent ef85734 commit 1203086

File tree

90 files changed

+208
-31
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+208
-31
lines changed

build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,6 @@
3131
<suppress checks="MissingSdkAnnotationCheck"
3232
files=".(codegen|test)[\\/].+\.java$"/>
3333

34-
<!-- TODO: Remove this once we add the annotations on the services-->
35-
<suppress checks="MissingSdkAnnotationCheck"
36-
files=".(services)[\\/].+\.java$"/>
37-
3834
<!-- TODO want to contribute this back to Netty -->
3935
<suppress checks=".*"
4036
files=".*BetterFixedChannelPool\.java$"/>

core/aws-core/src/main/java/software/amazon/awssdk/awscore/interceptor/GlobalServiceExecutionInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
* doesn't support non-global regions.
2929
*/
3030
@SdkProtectedApi
31-
public class GlobalServiceExecutionInterceptor implements ExecutionInterceptor {
31+
public final class GlobalServiceExecutionInterceptor implements ExecutionInterceptor {
3232
@Override
3333
public void onExecutionFailure(Context.FailedExecution context, ExecutionAttributes executionAttributes) {
3434
if (hasCause(context.exception(), UnknownHostException.class) &&

services/apigateway/src/main/java/software/amazon/awssdk/services/apigateway/internal/AcceptJsonInterceptor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@
1515

1616
package software.amazon.awssdk.services.apigateway.internal;
1717

18+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1819
import software.amazon.awssdk.core.interceptor.Context;
1920
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2021
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
2122
import software.amazon.awssdk.http.SdkHttpFullRequest;
2223

24+
@SdkProtectedApi
2325
public final class AcceptJsonInterceptor implements ExecutionInterceptor {
2426
@Override
2527
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {

services/cloudsearchdomain/src/main/java/software/amazon/awssdk/services/cloudsearchdomain/SwitchToPostInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package software.amazon.awssdk.services.cloudsearchdomain;
1717

18+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1819
import software.amazon.awssdk.core.interceptor.Context;
1920
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2021
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
@@ -26,7 +27,8 @@
2627
/**
2728
* Ensures that all SearchRequests use <code>POST</code> instead of <code>GET</code>, moving the query parameters to be form data.
2829
*/
29-
public class SwitchToPostInterceptor implements ExecutionInterceptor {
30+
@SdkProtectedApi
31+
public final class SwitchToPostInterceptor implements ExecutionInterceptor {
3032
@Override
3133
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {
3234
SdkHttpFullRequest request = context.httpRequest();

services/ec2/src/main/java/software/amazon/awssdk/services/ec2/transform/EC2Interceptor.java renamed to services/ec2/src/main/java/software/amazon/awssdk/services/ec2/transform/Ec2Interceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.List;
2222
import java.util.UUID;
2323
import java.util.stream.Collectors;
24+
import software.amazon.awssdk.annotations.SdkProtectedApi;
2425
import software.amazon.awssdk.core.SdkRequest;
2526
import software.amazon.awssdk.core.SdkResponse;
2627
import software.amazon.awssdk.core.interceptor.Context;
@@ -41,7 +42,8 @@
4142
import software.amazon.awssdk.services.ec2.model.SpotInstanceRequest;
4243
import software.amazon.awssdk.utils.BinaryUtils;
4344

44-
public class EC2Interceptor implements ExecutionInterceptor {
45+
@SdkProtectedApi
46+
public final class Ec2Interceptor implements ExecutionInterceptor {
4547
@Override
4648
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {
4749
SdkHttpFullRequest request = context.httpRequest();

services/ec2/src/main/java/software/amazon/awssdk/services/ec2/transform/GeneratePreSignUrlInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import static software.amazon.awssdk.auth.signer.internal.AwsSignerExecutionAttribute.AWS_CREDENTIALS;
1919

2020
import java.net.URI;
21+
import software.amazon.awssdk.annotations.SdkProtectedApi;
2122
import software.amazon.awssdk.auth.signer.Aws4Signer;
2223
import software.amazon.awssdk.auth.signer.params.Aws4PresignerParams;
2324
import software.amazon.awssdk.awscore.util.AwsHostNameUtils;
@@ -37,7 +38,8 @@
3738
* ExecutionInterceptor that generates a pre-signed URL for copying encrypted snapshots
3839
* TODO: Is this actually right? What if a different interceptor modifies the message? Should this be treated as a signer?
3940
*/
40-
public class GeneratePreSignUrlInterceptor implements ExecutionInterceptor {
41+
@SdkProtectedApi
42+
public final class GeneratePreSignUrlInterceptor implements ExecutionInterceptor {
4143

4244
@Override
4345
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {

services/ec2/src/main/java/software/amazon/awssdk/services/ec2/transform/TimestampFormatInterceptor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.List;
1919
import java.util.Map;
2020
import java.util.regex.Pattern;
21+
import software.amazon.awssdk.annotations.SdkProtectedApi;
2122
import software.amazon.awssdk.core.interceptor.Context;
2223
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2324
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
@@ -30,6 +31,7 @@
3031
* RequestSpotFleet and DescribeSpotFleetRequestHistory, which don't expect
3132
* timestamps to be so precise.
3233
*/
34+
@SdkProtectedApi
3335
public final class TimestampFormatInterceptor implements ExecutionInterceptor {
3436

3537
private static final Pattern PATTERN = Pattern.compile("\\.\\d\\d\\dZ");
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
software.amazon.awssdk.services.ec2.transform.GeneratePreSignUrlInterceptor
22
software.amazon.awssdk.services.ec2.transform.TimestampFormatInterceptor
3-
software.amazon.awssdk.services.ec2.transform.EC2Interceptor
3+
software.amazon.awssdk.services.ec2.transform.Ec2Interceptor

services/glacier/src/main/java/software/amazon/awssdk/services/glacier/internal/AcceptJsonInterceptor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@
1515

1616
package software.amazon.awssdk.services.glacier.internal;
1717

18+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1819
import software.amazon.awssdk.core.interceptor.Context;
1920
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2021
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
2122
import software.amazon.awssdk.http.SdkHttpFullRequest;
2223

24+
@SdkProtectedApi
2325
public final class AcceptJsonInterceptor implements ExecutionInterceptor {
2426
@Override
2527
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {

services/glacier/src/main/java/software/amazon/awssdk/services/glacier/internal/GlacierExecutionInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package software.amazon.awssdk.services.glacier.internal;
1717

18+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1819
import software.amazon.awssdk.core.interceptor.Context;
1920
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2021
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
@@ -23,7 +24,8 @@
2324
import software.amazon.awssdk.services.glacier.model.GetJobOutputRequest;
2425
import software.amazon.awssdk.services.glacier.model.UploadMultipartPartRequest;
2526

26-
public class GlacierExecutionInterceptor implements ExecutionInterceptor {
27+
@SdkProtectedApi
28+
public final class GlacierExecutionInterceptor implements ExecutionInterceptor {
2729

2830
@Override
2931
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {

services/glacier/src/main/java/software/amazon/awssdk/services/glacier/transform/DefaultAccountIdSupplier.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
package software.amazon.awssdk.services.glacier.transform;
1717

1818
import java.util.function.Supplier;
19+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1920

21+
@SdkProtectedApi
2022
public final class DefaultAccountIdSupplier {
2123

2224
/**

services/machinelearning/src/main/java/software/amazon/awssdk/services/machinelearning/internal/PredictEndpointInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.net.URI;
1919
import java.net.URISyntaxException;
20+
import software.amazon.awssdk.annotations.SdkProtectedApi;
2021
import software.amazon.awssdk.core.exception.SdkClientException;
2122
import software.amazon.awssdk.core.interceptor.Context;
2223
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
@@ -30,7 +31,8 @@
3031
* extracts the PredictRequest's PredictEndpoint "parameter" and swaps it in as
3132
* the endpoint to send the request to.
3233
*/
33-
public class PredictEndpointInterceptor implements ExecutionInterceptor {
34+
@SdkProtectedApi
35+
public final class PredictEndpointInterceptor implements ExecutionInterceptor {
3436

3537
@Override
3638
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {

services/machinelearning/src/main/java/software/amazon/awssdk/services/machinelearning/internal/RandomIdInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.util.UUID;
1919
import software.amazon.awssdk.annotations.ReviewBeforeRelease;
20+
import software.amazon.awssdk.annotations.SdkProtectedApi;
2021
import software.amazon.awssdk.core.SdkRequest;
2122
import software.amazon.awssdk.core.interceptor.Context;
2223
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
@@ -32,8 +33,9 @@
3233
* CreateXxx API calls require a unique (for all time!) ID parameter for
3334
* idempotency. If the user doesn't specify one, fill in a GUID.
3435
*/
36+
@SdkProtectedApi
3537
@ReviewBeforeRelease("They should be using the idempotency trait")
36-
public class RandomIdInterceptor implements ExecutionInterceptor {
38+
public final class RandomIdInterceptor implements ExecutionInterceptor {
3739

3840
@Override
3941
public SdkRequest modifyRequest(Context.ModifyRequest context, ExecutionAttributes executionAttributes) {

services/rds/src/main/java/software/amazon/awssdk/services/rds/CopyDbSnapshotPresignInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package software.amazon.awssdk.services.rds;
1717

1818
import java.time.Clock;
19+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1920
import software.amazon.awssdk.annotations.SdkTestInternalApi;
2021
import software.amazon.awssdk.core.Request;
2122
import software.amazon.awssdk.services.rds.model.CopyDbSnapshotRequest;
@@ -24,7 +25,8 @@
2425
/**
2526
* Handler for pre-signing {@link CopyDbSnapshotRequest}.
2627
*/
27-
public class CopyDbSnapshotPresignInterceptor extends RdsPresignInterceptor<CopyDbSnapshotRequest> {
28+
@SdkProtectedApi
29+
public final class CopyDbSnapshotPresignInterceptor extends RdsPresignInterceptor<CopyDbSnapshotRequest> {
2830

2931
public CopyDbSnapshotPresignInterceptor() {
3032
super(CopyDbSnapshotRequest.class);

services/rds/src/main/java/software/amazon/awssdk/services/rds/CreateDbInstanceReadReplicaPresignInterceptor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,17 @@
1515

1616
package software.amazon.awssdk.services.rds;
1717

18+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1819
import software.amazon.awssdk.core.Request;
1920
import software.amazon.awssdk.services.rds.model.CreateDbInstanceReadReplicaRequest;
2021
import software.amazon.awssdk.services.rds.transform.CreateDbInstanceReadReplicaRequestMarshaller;
2122

2223
/**
2324
* Handler for pre-signing {@link CreateDbInstanceReadReplicaRequest}.
2425
*/
25-
public class CreateDbInstanceReadReplicaPresignInterceptor extends RdsPresignInterceptor<CreateDbInstanceReadReplicaRequest> {
26+
@SdkProtectedApi
27+
public final class CreateDbInstanceReadReplicaPresignInterceptor extends
28+
RdsPresignInterceptor<CreateDbInstanceReadReplicaRequest> {
2629
public CreateDbInstanceReadReplicaPresignInterceptor() {
2730
super(CreateDbInstanceReadReplicaRequest.class);
2831
}

services/rds/src/main/java/software/amazon/awssdk/services/rds/RdsPresignInterceptor.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.net.URI;
2121
import java.time.Clock;
22+
import software.amazon.awssdk.annotations.SdkPublicApi;
2223
import software.amazon.awssdk.auth.signer.Aws4Signer;
2324
import software.amazon.awssdk.auth.signer.params.Aws4PresignerParams;
2425
import software.amazon.awssdk.awscore.endpoint.DefaultServiceEndpointBuilder;
@@ -43,13 +44,14 @@
4344
*
4445
* @param <T> The request type.
4546
*/
46-
abstract class RdsPresignInterceptor<T extends RdsRequest> implements ExecutionInterceptor {
47+
@SdkPublicApi
48+
public abstract class RdsPresignInterceptor<T extends RdsRequest> implements ExecutionInterceptor {
4749
private static final String SERVICE_NAME = "rds";
4850
private static final String PARAM_SOURCE_REGION = "SourceRegion";
4951
private static final String PARAM_DESTINATION_REGION = "DestinationRegion";
5052
private static final String PARAM_PRESIGNED_URL = "PreSignedUrl";
5153

52-
protected interface PresignableRequest {
54+
public interface PresignableRequest {
5355
String getSourceRegion();
5456

5557
Request<?> marshall();
@@ -59,17 +61,18 @@ protected interface PresignableRequest {
5961

6062
private final Clock signingOverrideClock;
6163

62-
RdsPresignInterceptor(Class<T> requestClassToPreSign) {
64+
public RdsPresignInterceptor(Class<T> requestClassToPreSign) {
6365
this(requestClassToPreSign, null);
6466
}
6567

66-
RdsPresignInterceptor(Class<T> requestClassToPreSign, Clock signingOverrideClock) {
68+
public RdsPresignInterceptor(Class<T> requestClassToPreSign, Clock signingOverrideClock) {
6769
this.requestClassToPreSign = requestClassToPreSign;
6870
this.signingOverrideClock = signingOverrideClock;
6971
}
7072

7173
@Override
72-
public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) {
74+
public final SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context,
75+
ExecutionAttributes executionAttributes) {
7376
SdkHttpFullRequest request = context.httpRequest();
7477
SdkRequest originalRequest = context.request();
7578
if (!requestClassToPreSign.isInstance(originalRequest)) {
@@ -115,6 +118,12 @@ public SdkHttpFullRequest modifyHttpRequest(Context.ModifyHttpRequest context, E
115118
.build();
116119
}
117120

121+
/**
122+
* Adapts the request to the {@link PresignableRequest}.
123+
*
124+
* @param originalRequest the original request
125+
* @return a PresignableRequest
126+
*/
118127
protected abstract PresignableRequest adaptRequest(T originalRequest);
119128

120129
private SdkHttpFullRequest presignRequest(SdkHttpFullRequest request,

services/route53/src/main/java/software/amazon/awssdk/services/route53/internal/Route53IdInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package software.amazon.awssdk.services.route53.internal;
1717

1818
import java.util.stream.Collectors;
19+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1920
import software.amazon.awssdk.core.SdkResponse;
2021
import software.amazon.awssdk.core.interceptor.Context;
2122
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
@@ -46,7 +47,8 @@
4647
* cannot be included, otherwise requests fail. This handler removes those
4748
* partial resource path elements from IDs returned by Route 53.
4849
*/
49-
public class Route53IdInterceptor implements ExecutionInterceptor {
50+
@SdkProtectedApi
51+
public final class Route53IdInterceptor implements ExecutionInterceptor {
5052
@Override
5153
public SdkResponse modifyResponse(Context.ModifyResponse context, ExecutionAttributes executionAttributes) {
5254
SdkResponse response = context.response();

services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Configuration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717

1818
import software.amazon.awssdk.annotations.Immutable;
1919
import software.amazon.awssdk.annotations.NotThreadSafe;
20+
import software.amazon.awssdk.annotations.SdkPublicApi;
2021
import software.amazon.awssdk.annotations.ThreadSafe;
2122
import software.amazon.awssdk.core.ServiceConfiguration;
2223
import software.amazon.awssdk.services.s3.model.PutBucketAccelerateConfigurationRequest;
2324
import software.amazon.awssdk.utils.builder.CopyableBuilder;
2425
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
2526

27+
@SdkPublicApi
2628
@Immutable
2729
@ThreadSafe
2830
public final class S3Configuration implements ServiceConfiguration, ToCopyableBuilder<S3Configuration.Builder, S3Configuration> {

services/s3/src/main/java/software/amazon/awssdk/services/s3/TaggingAdapter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@
1515

1616
package software.amazon.awssdk.services.s3;
1717

18+
import software.amazon.awssdk.annotations.SdkPublicApi;
1819
import software.amazon.awssdk.core.adapter.TypeAdapter;
1920
import software.amazon.awssdk.services.s3.model.Tag;
2021
import software.amazon.awssdk.services.s3.model.Tagging;
2122
import software.amazon.awssdk.utils.http.SdkHttpUtils;
2223

23-
public class TaggingAdapter implements TypeAdapter<Tagging, String> {
24+
@SdkPublicApi
25+
public final class TaggingAdapter implements TypeAdapter<Tagging, String> {
2426

2527
@Override
2628
public String adapt(Tagging tagging) {

services/s3/src/main/java/software/amazon/awssdk/services/s3/handlers/CreateBucketInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package software.amazon.awssdk.services.s3.handlers;
1717

18+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1819
import software.amazon.awssdk.awscore.AwsExecutionAttribute;
1920
import software.amazon.awssdk.core.SdkRequest;
2021
import software.amazon.awssdk.core.interceptor.Context;
@@ -25,7 +26,8 @@
2526
import software.amazon.awssdk.services.s3.model.CreateBucketConfiguration;
2627
import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
2728

28-
public class CreateBucketInterceptor implements ExecutionInterceptor {
29+
@SdkProtectedApi
30+
public final class CreateBucketInterceptor implements ExecutionInterceptor {
2931

3032
@Override
3133
public SdkRequest modifyRequest(Context.ModifyRequest context, ExecutionAttributes executionAttributes) {

services/s3/src/main/java/software/amazon/awssdk/services/s3/handlers/DecodeUrlEncodedResponseInterceptor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@
2222
//import software.amazon.awssdk.Response;
2323

2424
import software.amazon.awssdk.annotations.ReviewBeforeRelease;
25+
import software.amazon.awssdk.annotations.SdkProtectedApi;
2526
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
2627
//import software.amazon.awssdk.services.s3.model.ListObjectVersionsResponse;
2728
//import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
2829
//import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
2930

31+
@SdkProtectedApi
3032
@ReviewBeforeRelease("Finish this and hook it up")
3133
public class DecodeUrlEncodedResponseInterceptor implements ExecutionInterceptor {
3234

services/s3/src/main/java/software/amazon/awssdk/services/s3/handlers/DisableDoubleUrlEncodingInterceptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package software.amazon.awssdk.services.s3.handlers;
1717

18+
import software.amazon.awssdk.annotations.SdkProtectedApi;
1819
import software.amazon.awssdk.auth.signer.internal.AwsSignerExecutionAttribute;
1920
import software.amazon.awssdk.core.interceptor.Context;
2021
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
@@ -24,7 +25,8 @@
2425
* Don't double-url-encode path elements for S3. S3 expects path elements to be encoded only once in
2526
* the canonical URI.
2627
*/
27-
public class DisableDoubleUrlEncodingInterceptor implements ExecutionInterceptor {
28+
@SdkProtectedApi
29+
public final class DisableDoubleUrlEncodingInterceptor implements ExecutionInterceptor {
2830

2931
@Override
3032
public void beforeExecution(Context.BeforeExecution context, ExecutionAttributes executionAttributes) {

0 commit comments

Comments
 (0)