diff --git a/.changes/2.5.12.json b/.changes/2.5.12.json
new file mode 100644
index 000000000000..38fc3214fc46
--- /dev/null
+++ b/.changes/2.5.12.json
@@ -0,0 +1,31 @@
+{
+ "date": "2019-03-19",
+ "version": "2.5.12",
+ "entries": [
+ {
+ "category": "Amazon S3",
+ "type": "feature",
+ "description": "Add support for getUrl operation. The API can be used to generate a URL that represents an object in Amazon S3. The url can only be used to download the object content if the object has public read permissions. Original issue: https://github.com/aws/aws-sdk-java-v2/issues/860"
+ },
+ {
+ "category": "Amazon Elastic Container Service for Kubernetes",
+ "type": "feature",
+ "description": "Added support to control private/public access to the Kubernetes API-server endpoint"
+ },
+ {
+ "category": "AWS SDK for Java v2",
+ "type": "feature",
+ "description": "Adds the Java vendor the user agent as well as using the updated user agent for all HTTP calls"
+ },
+ {
+ "category": "Amazon S3",
+ "type": "bugfix",
+ "description": "Only set content type of S3 `CreateMultipartUploadRequest` if `Content-Type` header is not present and honor the overridden content type."
+ },
+ {
+ "category": "AWS Config",
+ "type": "feature",
+ "description": "AWS Config adds a new API called SelectResourceConfig to run advanced queries based on resource configuration properties."
+ }
+ ]
+}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b89c8b8b0e5d..505ff96977cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,23 @@
+# __2.5.12__ __2019-03-19__
+## __AWS Config__
+ - ### Features
+ - AWS Config adds a new API called SelectResourceConfig to run advanced queries based on resource configuration properties.
+
+## __AWS SDK for Java v2__
+ - ### Features
+ - Adds the Java vendor the user agent as well as using the updated user agent for all HTTP calls
+
+## __Amazon Elastic Container Service for Kubernetes__
+ - ### Features
+ - Added support to control private/public access to the Kubernetes API-server endpoint
+
+## __Amazon S3__
+ - ### Features
+ - Add support for getUrl operation. The API can be used to generate a URL that represents an object in Amazon S3. The url can only be used to download the object content if the object has public read permissions. Original issue: https://github.com/aws/aws-sdk-java-v2/issues/860
+
+ - ### Bugfixes
+ - Only set content type of S3 `CreateMultipartUploadRequest` if `Content-Type` header is not present and honor the overridden content type.
+
# __2.5.11__ __2019-03-18__
## __AWS Database Migration Service__
- ### Features
diff --git a/README.md b/README.md
index da7b5ca0fdba..e9a035b38db2 100644
--- a/README.md
+++ b/README.md
@@ -44,7 +44,7 @@ You can import the whole SDK into your project (includes all services) as follow
software.amazon.awssdk
aws-sdk-java
- 2.5.11
+ 2.5.12
```
@@ -56,12 +56,12 @@ Alternatively you can add dependencies for the specific services you use only:
software.amazon.awssdk
ec2
- 2.5.11
+ 2.5.12
software.amazon.awssdk
s3
- 2.5.11
+ 2.5.12
```
@@ -75,7 +75,7 @@ To automatically manage module versions (currently all modules have the same ver
software.amazon.awssdk
bom
- 2.5.11
+ 2.5.12
pom
import
diff --git a/aws-sdk-java/pom.xml b/aws-sdk-java/pom.xml
index adac404b7b14..f74afa95165c 100644
--- a/aws-sdk-java/pom.xml
+++ b/aws-sdk-java/pom.xml
@@ -4,7 +4,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../pom.xml
aws-sdk-java
diff --git a/bom-internal/pom.xml b/bom-internal/pom.xml
index e2f8ecd94ab6..a0c328332a5b 100644
--- a/bom-internal/pom.xml
+++ b/bom-internal/pom.xml
@@ -5,7 +5,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/bom/pom.xml b/bom/pom.xml
index 2bead72d43f2..8c12b3adc77a 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -4,7 +4,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../pom.xml
bom
diff --git a/build-tools/pom.xml b/build-tools/pom.xml
index 0e7ab99cc532..58ebb2a6a409 100644
--- a/build-tools/pom.xml
+++ b/build-tools/pom.xml
@@ -66,7 +66,7 @@
com.puppycrawl.tools
checkstyle
- 8.7
+ 8.18
diff --git a/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/MissingSdkAnnotationCheck.java b/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/MissingSdkAnnotationCheck.java
index 4bc5693d161c..d5c530900ed7 100644
--- a/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/MissingSdkAnnotationCheck.java
+++ b/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/MissingSdkAnnotationCheck.java
@@ -18,8 +18,8 @@
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
-import com.puppycrawl.tools.checkstyle.utils.AnnotationUtility;
-import com.puppycrawl.tools.checkstyle.utils.ScopeUtils;
+import com.puppycrawl.tools.checkstyle.utils.AnnotationUtil;
+import com.puppycrawl.tools.checkstyle.utils.ScopeUtil;
import java.util.Arrays;
import java.util.List;
@@ -50,7 +50,7 @@ public int[] getRequiredTokens() {
@Override
public void visitToken(DetailAST ast) {
- if (!ScopeUtils.isOuterMostType(ast) || SDK_ANNOTATIONS.stream().anyMatch(a -> AnnotationUtility.containsAnnotation
+ if (!ScopeUtil.isOuterMostType(ast) || SDK_ANNOTATIONS.stream().anyMatch(a -> AnnotationUtil.containsAnnotation
(ast, a))) {
return;
}
diff --git a/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/SdkPublicMethodNameCheck.java b/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/SdkPublicMethodNameCheck.java
index edfb2f060e12..49d9ea14043b 100644
--- a/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/SdkPublicMethodNameCheck.java
+++ b/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/SdkPublicMethodNameCheck.java
@@ -18,7 +18,7 @@
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
import com.puppycrawl.tools.checkstyle.checks.naming.MethodNameCheck;
-import com.puppycrawl.tools.checkstyle.utils.AnnotationUtility;
+import com.puppycrawl.tools.checkstyle.utils.AnnotationUtil;
/**
* Sdk Method Name check to check only public methods in the classes with {@code @SdkPublicApi} annotation.
@@ -55,8 +55,8 @@ public void visitToken(DetailAST ast) {
DetailAST classDef = ast.getParent().getParent();
try {
- if (!AnnotationUtility.containsAnnotation(ast, OVERRIDE)
- && AnnotationUtility.containsAnnotation(classDef, SDK_PUBLIC_API)) {
+ if (!AnnotationUtil.containsAnnotation(ast, OVERRIDE)
+ && AnnotationUtil.containsAnnotation(classDef, SDK_PUBLIC_API)) {
super.visitToken(ast);
}
} catch (NullPointerException ex) {
diff --git a/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/UnnecessaryFinalOnLocalVariableCheck.java b/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/UnnecessaryFinalOnLocalVariableCheck.java
index 2ea0e39828eb..b4f6d95189b2 100644
--- a/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/UnnecessaryFinalOnLocalVariableCheck.java
+++ b/build-tools/src/main/java/software/amazon/awssdk/buildtools/checkstyle/UnnecessaryFinalOnLocalVariableCheck.java
@@ -18,7 +18,7 @@
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
-import com.puppycrawl.tools.checkstyle.utils.ScopeUtils;
+import com.puppycrawl.tools.checkstyle.utils.ScopeUtil;
/**
* A rule that disallows unnecessary 'final' on local variables
@@ -42,8 +42,8 @@ public int[] getRequiredTokens() {
@Override
public void visitToken(DetailAST ast) {
- if (ScopeUtils.isLocalVariableDef(ast) && ast.findFirstToken(TokenTypes.MODIFIERS)
- .findFirstToken(TokenTypes.FINAL) != null) {
+ if (ScopeUtil.isLocalVariableDef(ast) && ast.findFirstToken(TokenTypes.MODIFIERS)
+ .findFirstToken(TokenTypes.FINAL) != null) {
log(ast, "final should be removed from local variable");
}
}
diff --git a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml
index 397459c29c47..3f7b933aa0d6 100644
--- a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml
+++ b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml
@@ -43,12 +43,10 @@
default="checkstyle-suppressions.xml"/>
-
-
-
-
-
+
+
+
@@ -89,11 +87,6 @@
-
-
-
-
-
@@ -314,14 +307,6 @@
-
-
-
-
-
-
-
-
@@ -336,45 +321,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/bundle/pom.xml b/bundle/pom.xml
index f646e1addabf..397bdccb0b06 100644
--- a/bundle/pom.xml
+++ b/bundle/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
bundle
jar
diff --git a/codegen-lite-maven-plugin/pom.xml b/codegen-lite-maven-plugin/pom.xml
index 6aa310637904..47a1f296edb0 100644
--- a/codegen-lite-maven-plugin/pom.xml
+++ b/codegen-lite-maven-plugin/pom.xml
@@ -7,7 +7,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../pom.xml
codegen-lite-maven-plugin
diff --git a/codegen-lite/pom.xml b/codegen-lite/pom.xml
index 2198a65ff691..0bcb8d5d6d04 100644
--- a/codegen-lite/pom.xml
+++ b/codegen-lite/pom.xml
@@ -6,7 +6,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
codegen-lite
AWS Java SDK :: Code Generator Lite
diff --git a/codegen-maven-plugin/pom.xml b/codegen-maven-plugin/pom.xml
index fc9e16d4fc61..f3aa4d271e52 100644
--- a/codegen-maven-plugin/pom.xml
+++ b/codegen-maven-plugin/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../pom.xml
codegen-maven-plugin
diff --git a/codegen/pom.xml b/codegen/pom.xml
index 6f55b236b8b7..c231261ac390 100644
--- a/codegen/pom.xml
+++ b/codegen/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
codegen
AWS Java SDK :: Code Generator
diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java
index a1119a9173bd..cfa9a1b39fc2 100644
--- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java
+++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java
@@ -154,6 +154,11 @@ public class CustomizationConfig {
*/
private Map paginationCustomization;
+ /**
+ * Config to generate a utilities() in the low-level client
+ */
+ private UtilitiesMethod utilitiesMethod;
+
private CustomizationConfig() {
}
@@ -393,4 +398,12 @@ public Map getPaginationCustomization() {
public void setPaginationCustomization(Map paginationCustomization) {
this.paginationCustomization = paginationCustomization;
}
+
+ public UtilitiesMethod getUtilitiesMethod() {
+ return utilitiesMethod;
+ }
+
+ public void setUtilitiesMethod(UtilitiesMethod utilitiesMethod) {
+ this.utilitiesMethod = utilitiesMethod;
+ }
}
diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/UtilitiesMethod.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/UtilitiesMethod.java
new file mode 100644
index 000000000000..cc218f8e1b2f
--- /dev/null
+++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/UtilitiesMethod.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file 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 software.amazon.awssdk.codegen.model.config.customization;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Config required to generate the utilities method that returns an instance of
+ * hand-written Utilities class
+ */
+public class UtilitiesMethod {
+
+ public static final String METHOD_NAME = "utilities";
+
+ /** Fqcn of the return type of the operation */
+ private String returnType;
+
+ /**
+ * The utilities method will call a protected create() method in the hand-written Utilities class.
+ * These the ordered list of parameters that needs to be passed to the create method.
+ */
+ private List createMethodParams = new ArrayList<>();
+
+ public String getReturnType() {
+ return returnType;
+ }
+
+ public void setReturnType(String returnType) {
+ this.returnType = returnType;
+ }
+
+ public List getCreateMethodParams() {
+ return createMethodParams;
+ }
+
+ public void setCreateMethodParams(List createMethodParams) {
+ this.createMethodParams = createMethodParams;
+ }
+}
diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java
index 2ffe829f2d03..19ce5f4eb9b2 100644
--- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java
+++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java
@@ -44,6 +44,7 @@
import software.amazon.awssdk.awscore.client.handler.AwsClientHandlerUtils;
import software.amazon.awssdk.awscore.eventstream.EventStreamTaggedUnionJsonMarshaller;
import software.amazon.awssdk.codegen.emitters.GeneratorTaskParams;
+import software.amazon.awssdk.codegen.model.config.customization.UtilitiesMethod;
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
import software.amazon.awssdk.codegen.model.intermediate.MemberModel;
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
@@ -115,6 +116,10 @@ public TypeSpec poetSpec() {
classBuilder.addMethod(applySignerOverrideMethod(poetExtensions, model));
}
+ if (model.getCustomizationConfig().getUtilitiesMethod() != null) {
+ classBuilder.addMethod(utilitiesMethod());
+ }
+
model.getEndpointOperation().ifPresent(
o -> classBuilder.addField(EndpointDiscoveryRefreshCache.class, "endpointDiscoveryCache", PRIVATE));
@@ -282,4 +287,18 @@ private CodeBlock createEventStreamTaggedUnionJsonMarshaller(ShapeModel eventStr
private TypeName eventStreamType(ShapeModel shapeModel) {
return poetExtensions.getModelClass(shapeModel.getShapeName());
}
+
+ private MethodSpec utilitiesMethod() {
+ UtilitiesMethod config = model.getCustomizationConfig().getUtilitiesMethod();
+ ClassName returnType = PoetUtils.classNameFromFqcn(config.getReturnType());
+
+ return MethodSpec.methodBuilder(UtilitiesMethod.METHOD_NAME)
+ .returns(returnType)
+ .addModifiers(Modifier.PUBLIC)
+ .addAnnotation(Override.class)
+ .addStatement("return $T.create($L)",
+ returnType,
+ config.getCreateMethodParams().stream().collect(Collectors.joining(",")))
+ .build();
+ }
}
diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java
index 3363d7a86a26..40a9a0bebac4 100644
--- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java
+++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java
@@ -36,6 +36,7 @@
import software.amazon.awssdk.codegen.docs.ClientType;
import software.amazon.awssdk.codegen.docs.DocConfiguration;
import software.amazon.awssdk.codegen.docs.SimpleMethodOverload;
+import software.amazon.awssdk.codegen.model.config.customization.UtilitiesMethod;
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
import software.amazon.awssdk.codegen.poet.ClassSpec;
@@ -87,6 +88,10 @@ public TypeSpec poetSpec() {
result.addMethod(builder())
.addMethods(operationsAndSimpleMethods());
+ if (model.getCustomizationConfig().getUtilitiesMethod() != null) {
+ result.addMethod(utilitiesMethod());
+ }
+
return result.build();
}
@@ -423,4 +428,18 @@ private ParameterizedTypeName completableFutureType(TypeName typeName) {
private String consumerBuilderJavadoc(OperationModel opModel, SimpleMethodOverload overload) {
return opModel.getDocs(model, ClientType.ASYNC, overload, new DocConfiguration().isConsumerBuilder(true));
}
+
+ private MethodSpec utilitiesMethod() {
+ UtilitiesMethod config = model.getCustomizationConfig().getUtilitiesMethod();
+ ClassName returnType = PoetUtils.classNameFromFqcn(config.getReturnType());
+
+ return MethodSpec.methodBuilder(UtilitiesMethod.METHOD_NAME)
+ .returns(returnType)
+ .addModifiers(Modifier.PUBLIC)
+ .addModifiers(Modifier.DEFAULT)
+ .addStatement("throw new $T()", UnsupportedOperationException.class)
+ .addJavadoc("Creates an instance of {@link $T} object with the "
+ + "configuration set on this client.", returnType)
+ .build();
+ }
}
diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java
index c9b2576f1171..6ca4e729de59 100644
--- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java
+++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java
@@ -34,6 +34,7 @@
import software.amazon.awssdk.awscore.client.config.AwsClientOption;
import software.amazon.awssdk.codegen.docs.SimpleMethodOverload;
import software.amazon.awssdk.codegen.emitters.GeneratorTaskParams;
+import software.amazon.awssdk.codegen.model.config.customization.UtilitiesMethod;
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
import software.amazon.awssdk.codegen.model.intermediate.Protocol;
@@ -99,6 +100,10 @@ public TypeSpec poetSpec() {
classBuilder.addMethod(applySignerOverrideMethod(poetExtensions, model));
}
+ if (model.getCustomizationConfig().getUtilitiesMethod() != null) {
+ classBuilder.addMethod(utilitiesMethod());
+ }
+
model.getEndpointOperation().ifPresent(
o -> classBuilder.addField(EndpointDiscoveryRefreshCache.class, "endpointDiscoveryCache", PRIVATE));
@@ -219,6 +224,20 @@ private MethodSpec closeMethod() {
.build();
}
+ private MethodSpec utilitiesMethod() {
+ UtilitiesMethod config = model.getCustomizationConfig().getUtilitiesMethod();
+ ClassName returnType = PoetUtils.classNameFromFqcn(config.getReturnType());
+
+ return MethodSpec.methodBuilder(UtilitiesMethod.METHOD_NAME)
+ .returns(returnType)
+ .addModifiers(Modifier.PUBLIC)
+ .addAnnotation(Override.class)
+ .addStatement("return $T.create($L)",
+ returnType,
+ config.getCreateMethodParams().stream().collect(Collectors.joining(",")))
+ .build();
+ }
+
static ProtocolSpec getProtocolSpecs(PoetExtensions poetExtensions, IntermediateModel model) {
Protocol protocol = model.getMetadata().getProtocol();
switch (protocol) {
diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java
index a46f7486a59b..8014b4dc45c3 100644
--- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java
+++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java
@@ -36,6 +36,7 @@
import software.amazon.awssdk.codegen.docs.ClientType;
import software.amazon.awssdk.codegen.docs.DocConfiguration;
import software.amazon.awssdk.codegen.docs.SimpleMethodOverload;
+import software.amazon.awssdk.codegen.model.config.customization.UtilitiesMethod;
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
import software.amazon.awssdk.codegen.poet.ClassSpec;
@@ -85,9 +86,14 @@ public TypeSpec poetSpec() {
.addMethods(operations())
.addMethod(serviceMetadata());
+ if (model.getCustomizationConfig().getUtilitiesMethod() != null) {
+ result.addMethod(utilitiesMethod());
+ }
+
return result.build();
}
+
@Override
public ClassName className() {
return className;
@@ -436,4 +442,18 @@ private static List getExceptionClasses(IntermediateModel model, Oper
private String consumerBuilderJavadoc(OperationModel opModel, SimpleMethodOverload overload) {
return opModel.getDocs(model, ClientType.SYNC, overload, new DocConfiguration().isConsumerBuilder(true));
}
+
+ private MethodSpec utilitiesMethod() {
+ UtilitiesMethod config = model.getCustomizationConfig().getUtilitiesMethod();
+ ClassName returnType = PoetUtils.classNameFromFqcn(config.getReturnType());
+
+ return MethodSpec.methodBuilder(UtilitiesMethod.METHOD_NAME)
+ .returns(returnType)
+ .addModifiers(Modifier.PUBLIC)
+ .addModifiers(Modifier.DEFAULT)
+ .addStatement("throw new $T()", UnsupportedOperationException.class)
+ .addJavadoc("Creates an instance of {@link $T} object with the "
+ + "configuration set on this client.", returnType)
+ .build();
+ }
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/customization.config b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/customization.config
index 64ec7acfb3f6..33a8160445fc 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/customization.config
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/customization.config
@@ -8,5 +8,9 @@
"verifiedSimpleMethods" : ["paginatedOperationWithResultKey"],
"blacklistedSimpleMethods" : [
"eventStreamOperation"
- ]
+ ],
+ "utilitiesMethod": {
+ "returnType": "software.amazon.awssdk.services.json.JsonUtilities",
+ "createMethodParams": ["param1", "param2", "param3"]
+ }
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-async-client-class.java
index 3f0c2541059d..47704ff99907 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-async-client-class.java
@@ -847,6 +847,11 @@ private T applySignerOverride(T request, Signer signer)
return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build();
}
+ @Override
+ public JsonUtilities utilities() {
+ return JsonUtilities.create(param1, param2, param3);
+ }
+
private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory,
JsonOperationMetadata operationMetadata) {
return protocolFactory.createErrorResponseHandler(operationMetadata);
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java
index 7590b8f64eec..2d5442d722f9 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java
@@ -1291,4 +1291,11 @@ default CompletableFuture streamingOutputOpera
return streamingOutputOperation(StreamingOutputOperationRequest.builder().applyMutation(streamingOutputOperationRequest)
.build(), destinationPath);
}
+
+ /**
+ * Creates an instance of {@link JsonUtilities} object with the configuration set on this client.
+ */
+ default JsonUtilities utilities() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java
index ad84749e1a6d..2b4b1d426060 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java
@@ -623,4 +623,9 @@ private T applySignerOverride(T request, Signer signer)
.orElse((AwsRequestOverrideConfiguration.builder().applyMutation(signerOverride).build()));
return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build();
}
+
+ @Override
+ public JsonUtilities utilities() {
+ return JsonUtilities.create(param1, param2, param3);
+ }
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java
index 2dc7a3f64507..ce2d67987cce 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java
@@ -1287,4 +1287,11 @@ default ResponseBytes streamingOutputOperation
static ServiceMetadata serviceMetadata() {
return ServiceMetadata.of("json-service");
}
+
+ /**
+ * Creates an instance of {@link JsonUtilities} object with the configuration set on this client.
+ */
+ default JsonUtilities utilities() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/core/annotations/pom.xml b/core/annotations/pom.xml
index 10ee5336fdce..e15ace3bd393 100644
--- a/core/annotations/pom.xml
+++ b/core/annotations/pom.xml
@@ -5,7 +5,7 @@
core
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/auth/pom.xml b/core/auth/pom.xml
index 816b04fae41d..87fa8ff37e98 100644
--- a/core/auth/pom.xml
+++ b/core/auth/pom.xml
@@ -7,7 +7,7 @@
software.amazon.awssdk
core
- 2.5.11
+ 2.5.12
auth
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java
index d061d2793155..eccd9dd858d7 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java
@@ -16,6 +16,7 @@
package software.amazon.awssdk.auth.credentials;
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
@@ -30,6 +31,7 @@
import org.junit.ClassRule;
import org.junit.Test;
import software.amazon.awssdk.core.exception.SdkClientException;
+import software.amazon.awssdk.core.internal.util.UserAgentUtils;
import software.amazon.awssdk.regions.util.ResourcesEndpointProvider;
import software.amazon.awssdk.testutils.EnvironmentVariableHelper;
@@ -93,6 +95,7 @@ public void testGetCredentialsReturnsValidResponseFromEcsEndpoint() {
private void stubForSuccessResponse() {
stubFor(
get(urlPathEqualTo(CREDENTIALS_PATH))
+ .withHeader("User-Agent", equalTo(UserAgentUtils.getUserAgent()))
.willReturn(aResponse()
.withStatus(200)
.withHeader("Content-Type", "application/json")
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/HttpCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/HttpCredentialsProviderTest.java
index a5664b782d79..15d889eca9e2 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/HttpCredentialsProviderTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/HttpCredentialsProviderTest.java
@@ -16,6 +16,7 @@
package software.amazon.awssdk.auth.credentials;
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
@@ -34,6 +35,7 @@
import org.junit.ClassRule;
import org.junit.Test;
import software.amazon.awssdk.core.exception.SdkClientException;
+import software.amazon.awssdk.core.internal.util.UserAgentUtils;
import software.amazon.awssdk.regions.util.ResourcesEndpointProvider;
import software.amazon.awssdk.utils.DateUtils;
import software.amazon.awssdk.utils.IoUtils;
@@ -130,6 +132,7 @@ public void basicCachingFunctionalityWorks() {
private void stubForSuccessResponseWithCustomBody(String body) {
stubFor(
get(urlPathEqualTo(CREDENTIALS_PATH))
+ .withHeader("User-Agent", equalTo(UserAgentUtils.getUserAgent()))
.willReturn(aResponse()
.withStatus(200)
.withHeader("Content-Type", "application/json")
diff --git a/core/aws-core/pom.xml b/core/aws-core/pom.xml
index 78bb2ee3d81f..ac7a401208d9 100644
--- a/core/aws-core/pom.xml
+++ b/core/aws-core/pom.xml
@@ -7,7 +7,7 @@
software.amazon.awssdk
core
- 2.5.11
+ 2.5.12
aws-core
diff --git a/core/pom.xml b/core/pom.xml
index b809d5efce00..8ee0694194f0 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
core
diff --git a/core/profiles/pom.xml b/core/profiles/pom.xml
index 3da1e2dc7d1c..4cc4486fd34f 100644
--- a/core/profiles/pom.xml
+++ b/core/profiles/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.5.11
+ 2.5.12
profiles
diff --git a/core/protocols/aws-cbor-protocol/pom.xml b/core/protocols/aws-cbor-protocol/pom.xml
index 4031262bb2c9..3925536fafcc 100644
--- a/core/protocols/aws-cbor-protocol/pom.xml
+++ b/core/protocols/aws-cbor-protocol/pom.xml
@@ -5,7 +5,7 @@
protocols
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/protocols/aws-ion-protocol/pom.xml b/core/protocols/aws-ion-protocol/pom.xml
index 399cd29887e7..91ad87b175be 100644
--- a/core/protocols/aws-ion-protocol/pom.xml
+++ b/core/protocols/aws-ion-protocol/pom.xml
@@ -5,7 +5,7 @@
protocols
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/protocols/aws-json-protocol/pom.xml b/core/protocols/aws-json-protocol/pom.xml
index 90fe41ac12d7..a8e0dba681fd 100644
--- a/core/protocols/aws-json-protocol/pom.xml
+++ b/core/protocols/aws-json-protocol/pom.xml
@@ -5,7 +5,7 @@
protocols
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/protocols/aws-query-protocol/pom.xml b/core/protocols/aws-query-protocol/pom.xml
index 20d84a1692b3..97d3dd3e076f 100644
--- a/core/protocols/aws-query-protocol/pom.xml
+++ b/core/protocols/aws-query-protocol/pom.xml
@@ -5,7 +5,7 @@
protocols
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/protocols/aws-xml-protocol/pom.xml b/core/protocols/aws-xml-protocol/pom.xml
index 03ec74b6744a..7af1c83d8037 100644
--- a/core/protocols/aws-xml-protocol/pom.xml
+++ b/core/protocols/aws-xml-protocol/pom.xml
@@ -5,7 +5,7 @@
protocols
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/protocols/pom.xml b/core/protocols/pom.xml
index 363494b008e1..cbe58bb0427e 100644
--- a/core/protocols/pom.xml
+++ b/core/protocols/pom.xml
@@ -5,7 +5,7 @@
core
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/protocols/protocol-core/pom.xml b/core/protocols/protocol-core/pom.xml
index 2a7a48a3f26b..68914d8ea12e 100644
--- a/core/protocols/protocol-core/pom.xml
+++ b/core/protocols/protocol-core/pom.xml
@@ -5,7 +5,7 @@
protocols
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/core/regions/pom.xml b/core/regions/pom.xml
index f7f46a20a040..369138b9d10f 100644
--- a/core/regions/pom.xml
+++ b/core/regions/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.5.11
+ 2.5.12
regions
diff --git a/core/regions/src/main/java/software/amazon/awssdk/regions/util/ResourcesEndpointProvider.java b/core/regions/src/main/java/software/amazon/awssdk/regions/util/ResourcesEndpointProvider.java
index 97ed5774ec91..9c301e1e6e4e 100644
--- a/core/regions/src/main/java/software/amazon/awssdk/regions/util/ResourcesEndpointProvider.java
+++ b/core/regions/src/main/java/software/amazon/awssdk/regions/util/ResourcesEndpointProvider.java
@@ -20,7 +20,7 @@
import java.util.HashMap;
import java.util.Map;
import software.amazon.awssdk.annotations.SdkProtectedApi;
-import software.amazon.awssdk.core.util.VersionInfo;
+import software.amazon.awssdk.core.internal.util.UserAgentUtils;
/**
*
@@ -57,7 +57,7 @@ default ResourcesEndpointRetryPolicy retryPolicy() {
*/
default Map headers() {
Map requestHeaders = new HashMap<>();
- requestHeaders.put("User-Agent", String.format("aws-sdk-java/%s", VersionInfo.SDK_VERSION));
+ requestHeaders.put("User-Agent", UserAgentUtils.getUserAgent());
requestHeaders.put("Accept", "*/*");
requestHeaders.put("Connection", "keep-alive");
diff --git a/core/regions/src/test/java/software/amazon/awssdk/regions/util/HttpCredentialsUtilsTest.java b/core/regions/src/test/java/software/amazon/awssdk/regions/util/HttpCredentialsUtilsTest.java
index 6d858035006f..9f89cb24247e 100644
--- a/core/regions/src/test/java/software/amazon/awssdk/regions/util/HttpCredentialsUtilsTest.java
+++ b/core/regions/src/test/java/software/amazon/awssdk/regions/util/HttpCredentialsUtilsTest.java
@@ -36,6 +36,7 @@
import org.mockito.runners.MockitoJUnitRunner;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.exception.SdkServiceException;
+import software.amazon.awssdk.core.internal.util.UserAgentUtils;
import software.amazon.awssdk.core.util.VersionInfo;
import software.amazon.awssdk.regions.internal.util.ConnectionUtils;
import software.amazon.awssdk.regions.internal.util.SocketUtils;
@@ -52,7 +53,7 @@ public class HttpCredentialsUtilsTest {
private static Map headers = new HashMap()
{
{
- put("User-Agent", String.format("aws-sdk-java/%s", VersionInfo.SDK_VERSION));
+ put("User-Agent", UserAgentUtils.getUserAgent());
put("Accept", "*/*");
put("Connection", "keep-alive");
}
diff --git a/core/sdk-core/pom.xml b/core/sdk-core/pom.xml
index c646262d6589..b1aefffdf264 100644
--- a/core/sdk-core/pom.xml
+++ b/core/sdk-core/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
core
- 2.5.11
+ 2.5.12
sdk-core
AWS Java SDK :: SDK Core
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkBytes.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkBytes.java
index ddfe9cbb1cdf..37b113ed9fa6 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkBytes.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkBytes.java
@@ -77,7 +77,7 @@ public static SdkBytes fromByteArray(byte[] bytes) {
*/
public static SdkBytes fromString(String string, Charset charset) {
Validate.paramNotNull(string, "string");
- Validate.paramNotNull(string, "charset");
+ Validate.paramNotNull(charset, "charset");
return new SdkBytes(string.getBytes(charset));
}
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/exception/SdkException.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/exception/SdkException.java
index 5fdd66518b43..bd9cc1df6746 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/exception/SdkException.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/exception/SdkException.java
@@ -33,6 +33,10 @@ protected SdkException(Builder builder) {
super(builder.message(), builder.cause());
}
+ public static SdkException create(String message, Throwable cause) {
+ return SdkException.builder().message(message).cause(cause).build();
+ }
+
/**
* Specifies whether or not an exception can be expected to succeed on a retry.
*/
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallAttemptTimeoutTrackingStage.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallAttemptTimeoutTrackingStage.java
index b2d37f4ebde9..0773d832d888 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallAttemptTimeoutTrackingStage.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallAttemptTimeoutTrackingStage.java
@@ -50,7 +50,8 @@ public ApiCallAttemptTimeoutTrackingStage(HttpClientDependencies dependencies, R
/**
* Start and end api call attempt timer around the execution of the api call attempt. It's important
* that the client execution task is canceled before the InterruptedException is handled by
- * {@link #wrapped#execute(SdkHttpFullRequest)} so the interrupt status doesn't leak out to the callers code
+ * {@link ApiCallTimeoutTrackingStage#wrapped#execute(SdkHttpFullRequest)} so the interrupt status doesn't leak out to the
+ * callers code.
*/
@Override
public Response execute(SdkHttpFullRequest request, RequestExecutionContext context) throws Exception {
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallTimeoutTrackingStage.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallTimeoutTrackingStage.java
index ffd274b9f28a..df052daf5fd9 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallTimeoutTrackingStage.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/ApiCallTimeoutTrackingStage.java
@@ -66,7 +66,8 @@ public Response execute(SdkHttpFullRequest request, RequestExecutionCon
/**
* Start and end client execution timer around the execution of the request. It's important
* that the client execution task is canceled before the InterruptedException is handled by
- * {@link #wrapped#execute(SdkHttpFullRequest)} so the interrupt status doesn't leak out to the callers code
+ * {@link ApiCallTimeoutTrackingStage#wrapped#execute(SdkHttpFullRequest)} so the interrupt status
+ * doesn't leak out to the callers code
*/
private Response executeWithTimer(SdkHttpFullRequest request, RequestExecutionContext context) throws Exception {
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/MakeAsyncHttpRequestStage.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/MakeAsyncHttpRequestStage.java
index 9d2070c22be7..846db89e9d89 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/MakeAsyncHttpRequestStage.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/MakeAsyncHttpRequestStage.java
@@ -207,9 +207,10 @@ private class ResponseHandler implements TransformingAsyncResponseHandler> responseFuture,
CompletableFuture transformFuture,
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/util/UserAgentUtils.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/util/UserAgentUtils.java
index 5ca467e779d9..1eb08e91d49f 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/util/UserAgentUtils.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/util/UserAgentUtils.java
@@ -33,7 +33,8 @@
public final class UserAgentUtils {
private static final String UA_STRING = "aws-sdk-{platform}/{version} {os.name}/{os.version} {java.vm.name}/{java.vm"
- + ".version} Java/{java.version}{language.and.region}{additional.languages}";
+ + ".version} Java/{java.version}{language.and.region}{additional.languages} "
+ + "vendor/{java.vendor}";
/** Disallowed characters in the user agent token: @see RFC 7230 */
private static final String UA_BLACKLIST_REGEX = "[() ,/:;<=>?@\\[\\]{}\\\\]";
@@ -84,6 +85,7 @@ static String userAgent() {
.replace("{java.vm.name}", sanitizeInput(JavaSystemSetting.JAVA_VM_NAME.getStringValue().orElse(null)))
.replace("{java.vm.version}", sanitizeInput(JavaSystemSetting.JAVA_VM_VERSION.getStringValue().orElse(null)))
.replace("{java.version}", sanitizeInput(JavaSystemSetting.JAVA_VERSION.getStringValue().orElse(null)))
+ .replace("{java.vendor}", sanitizeInput(JavaSystemSetting.JAVA_VENDOR.getStringValue().orElse(null)))
.replace("{additional.languages}", getAdditionalJvmLanguages());
Optional language = JavaSystemSetting.USER_LANGUAGE.getStringValue();
diff --git a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/util/UserAgentUtilsTest.java b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/util/UserAgentUtilsTest.java
index 80e9afc2df40..86a72a8945a4 100644
--- a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/util/UserAgentUtilsTest.java
+++ b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/util/UserAgentUtilsTest.java
@@ -21,6 +21,7 @@
import java.util.Arrays;
import org.junit.Test;
import software.amazon.awssdk.core.internal.util.UserAgentUtils;
+import software.amazon.awssdk.utils.JavaSystemSetting;
public class UserAgentUtilsTest {
@@ -31,6 +32,21 @@ public void userAgent() {
Arrays.stream(userAgent.split(" ")).forEach(str -> assertThat(isValidInput(str)).isTrue());
}
+ @Test
+ public void userAgent_HasVendor() {
+ System.setProperty(JavaSystemSetting.JAVA_VENDOR.property(), "finks");
+ String userAgent = UserAgentUtils.userAgent();
+ System.clearProperty(JavaSystemSetting.JAVA_VENDOR.property());
+ assertThat(userAgent).contains("vendor/finks");
+ }
+
+ @Test
+ public void userAgent_HasUnknownVendor() {
+ System.clearProperty(JavaSystemSetting.JAVA_VENDOR.property());
+ String userAgent = UserAgentUtils.userAgent();
+ assertThat(userAgent).contains("vendor/unknown");
+ }
+
private boolean isValidInput(String input) {
return input.startsWith("(") || input.contains("/") && input.split("/").length == 2;
}
diff --git a/docs/LaunchChangelog.md b/docs/LaunchChangelog.md
index 4895d1c9c5a8..36aa10162009 100644
--- a/docs/LaunchChangelog.md
+++ b/docs/LaunchChangelog.md
@@ -400,9 +400,9 @@ The S3 client in 2.0 is drastically different from the client in 1.11, because i
| `getObjectAsString` | `getObjectAsBytes().asUtf8String` |
| `getObjectMetadata` | `headObject` |
| `getObjectTagging` | `getObjectTagging` |
-| `getResourceUrl` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/860) |
+| `getResourceUrl` | [S3Utilities#getUrl](https://github.com/aws/aws-sdk-java-v2/blob/7428f629753c603f96dd700ca686a7b169fc4cd4/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java#L140) |
| `getS3AccountOwner` | `listBuckets` |
-| `getUrl` | [Not Supported](https://github.com/aws/aws-sdk-java-v2/issues/860) |
+| `getUrl` | [S3Utilities#getUrl](https://github.com/aws/aws-sdk-java-v2/blob/7428f629753c603f96dd700ca686a7b169fc4cd4/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java#L140) |
| `headBucket` | `headBucket` |
| `initiateMultipartUpload` | `createMultipartUpload` |
| `isRequesterPaysEnabled` | `getBucketRequestPayment` |
diff --git a/http-client-spi/pom.xml b/http-client-spi/pom.xml
index 2603214d9f46..98cfac880065 100644
--- a/http-client-spi/pom.xml
+++ b/http-client-spi/pom.xml
@@ -22,7 +22,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
http-client-spi
AWS Java SDK :: HTTP Client Interface
diff --git a/http-clients/apache-client/pom.xml b/http-clients/apache-client/pom.xml
index 88eba0a9635a..4428211d36c4 100644
--- a/http-clients/apache-client/pom.xml
+++ b/http-clients/apache-client/pom.xml
@@ -21,7 +21,7 @@
http-clients
software.amazon.awssdk
- 2.5.11
+ 2.5.12
apache-client
diff --git a/http-clients/netty-nio-client/pom.xml b/http-clients/netty-nio-client/pom.xml
index 9b36a86efe35..7869cae00fde 100644
--- a/http-clients/netty-nio-client/pom.xml
+++ b/http-clients/netty-nio-client/pom.xml
@@ -20,7 +20,7 @@
http-clients
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/http-clients/pom.xml b/http-clients/pom.xml
index 474bb2252105..1a5f16a3a0a6 100644
--- a/http-clients/pom.xml
+++ b/http-clients/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/http-clients/url-connection-client/pom.xml b/http-clients/url-connection-client/pom.xml
index 02588239630d..6eeb77c6807b 100644
--- a/http-clients/url-connection-client/pom.xml
+++ b/http-clients/url-connection-client/pom.xml
@@ -20,7 +20,7 @@
http-clients
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/pom.xml b/pom.xml
index ccbae1103595..e356e4874a5e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
4.0.0
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
pom
AWS Java SDK :: Parent
The Amazon Web Services SDK for Java provides Java APIs
@@ -123,7 +123,7 @@
3.0.1
3.1.1
1.6
- 7.8.2
+ 8.18
0.8.2
1.6.8
1.6.0
diff --git a/release-scripts/pom.xml b/release-scripts/pom.xml
index 44f413660322..42f868d46a22 100644
--- a/release-scripts/pom.xml
+++ b/release-scripts/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../pom.xml
release-scripts
diff --git a/services/acm/pom.xml b/services/acm/pom.xml
index e168742ce7bb..f4333e0878a8 100644
--- a/services/acm/pom.xml
+++ b/services/acm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
acm
AWS Java SDK :: Services :: AWS Certificate Manager
diff --git a/services/acmpca/pom.xml b/services/acmpca/pom.xml
index 6eb234974515..2c94504a167d 100644
--- a/services/acmpca/pom.xml
+++ b/services/acmpca/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
acmpca
AWS Java SDK :: Services :: ACM PCA
diff --git a/services/alexaforbusiness/pom.xml b/services/alexaforbusiness/pom.xml
index 699a2d270486..3bce35379278 100644
--- a/services/alexaforbusiness/pom.xml
+++ b/services/alexaforbusiness/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
alexaforbusiness
diff --git a/services/amplify/pom.xml b/services/amplify/pom.xml
index 562c0c539b3d..dddf08e3d65f 100644
--- a/services/amplify/pom.xml
+++ b/services/amplify/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
amplify
AWS Java SDK :: Services :: Amplify
diff --git a/services/apigateway/pom.xml b/services/apigateway/pom.xml
index 3aa47b815fbf..d6464d00d39f 100644
--- a/services/apigateway/pom.xml
+++ b/services/apigateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
apigateway
AWS Java SDK :: Services :: Amazon API Gateway
diff --git a/services/apigatewaymanagementapi/pom.xml b/services/apigatewaymanagementapi/pom.xml
index fc99f98ebe21..a48c1f9f4837 100644
--- a/services/apigatewaymanagementapi/pom.xml
+++ b/services/apigatewaymanagementapi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
apigatewaymanagementapi
AWS Java SDK :: Services :: ApiGatewayManagementApi
diff --git a/services/apigatewayv2/pom.xml b/services/apigatewayv2/pom.xml
index 8a5b062ae155..6f798ae9a87a 100644
--- a/services/apigatewayv2/pom.xml
+++ b/services/apigatewayv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
apigatewayv2
AWS Java SDK :: Services :: ApiGatewayV2
diff --git a/services/applicationautoscaling/pom.xml b/services/applicationautoscaling/pom.xml
index 96489911395d..35029cbbdc8c 100644
--- a/services/applicationautoscaling/pom.xml
+++ b/services/applicationautoscaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
applicationautoscaling
AWS Java SDK :: Services :: AWS Application Auto Scaling
diff --git a/services/applicationdiscovery/pom.xml b/services/applicationdiscovery/pom.xml
index 5fb7bc27ebb9..14ea0b78a181 100644
--- a/services/applicationdiscovery/pom.xml
+++ b/services/applicationdiscovery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
applicationdiscovery
AWS Java SDK :: Services :: AWS Application Discovery Service
diff --git a/services/appmesh/pom.xml b/services/appmesh/pom.xml
index 7b67a5b7080b..a58ef730a26f 100644
--- a/services/appmesh/pom.xml
+++ b/services/appmesh/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
appmesh
AWS Java SDK :: Services :: App Mesh
diff --git a/services/appstream/pom.xml b/services/appstream/pom.xml
index 12a2eb7f5621..52d149961321 100644
--- a/services/appstream/pom.xml
+++ b/services/appstream/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
appstream
AWS Java SDK :: Services :: Amazon AppStream
diff --git a/services/appsync/pom.xml b/services/appsync/pom.xml
index e453558190f6..dd974d7f48b2 100644
--- a/services/appsync/pom.xml
+++ b/services/appsync/pom.xml
@@ -21,7 +21,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
appsync
diff --git a/services/athena/pom.xml b/services/athena/pom.xml
index 20bddd0a89fb..4be53a222ee0 100644
--- a/services/athena/pom.xml
+++ b/services/athena/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
athena
AWS Java SDK :: Services :: Amazon Athena
diff --git a/services/autoscaling/pom.xml b/services/autoscaling/pom.xml
index 981589203936..989f2ae89239 100644
--- a/services/autoscaling/pom.xml
+++ b/services/autoscaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
autoscaling
AWS Java SDK :: Services :: Auto Scaling
diff --git a/services/autoscalingplans/pom.xml b/services/autoscalingplans/pom.xml
index 6469ba6a0064..fd0532ade987 100644
--- a/services/autoscalingplans/pom.xml
+++ b/services/autoscalingplans/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
autoscalingplans
AWS Java SDK :: Services :: Auto Scaling Plans
diff --git a/services/backup/pom.xml b/services/backup/pom.xml
index eb0d8fca10fa..85e04c449cc1 100644
--- a/services/backup/pom.xml
+++ b/services/backup/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
backup
AWS Java SDK :: Services :: Backup
diff --git a/services/batch/pom.xml b/services/batch/pom.xml
index 7e689ecc9dfc..1bba9796aa87 100644
--- a/services/batch/pom.xml
+++ b/services/batch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
batch
AWS Java SDK :: Services :: AWS Batch
diff --git a/services/budgets/pom.xml b/services/budgets/pom.xml
index b581c3dd6f93..e3051144ba32 100644
--- a/services/budgets/pom.xml
+++ b/services/budgets/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
budgets
AWS Java SDK :: Services :: AWS Budgets
diff --git a/services/chime/pom.xml b/services/chime/pom.xml
index 7209e9919022..204574983d57 100644
--- a/services/chime/pom.xml
+++ b/services/chime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
chime
AWS Java SDK :: Services :: Chime
diff --git a/services/cloud9/pom.xml b/services/cloud9/pom.xml
index dd2e00c7d922..f5a018dd78a6 100644
--- a/services/cloud9/pom.xml
+++ b/services/cloud9/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
cloud9
diff --git a/services/clouddirectory/pom.xml b/services/clouddirectory/pom.xml
index f36ccce52d06..50dd988d5f3e 100644
--- a/services/clouddirectory/pom.xml
+++ b/services/clouddirectory/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
clouddirectory
AWS Java SDK :: Services :: Amazon CloudDirectory
diff --git a/services/cloudformation/pom.xml b/services/cloudformation/pom.xml
index 264c7d55cc98..a50d0bcf2fbd 100644
--- a/services/cloudformation/pom.xml
+++ b/services/cloudformation/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudformation
AWS Java SDK :: Services :: AWS CloudFormation
diff --git a/services/cloudfront/pom.xml b/services/cloudfront/pom.xml
index f499f2611a91..21fc2dccf9a6 100644
--- a/services/cloudfront/pom.xml
+++ b/services/cloudfront/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudfront
AWS Java SDK :: Services :: Amazon CloudFront
diff --git a/services/cloudhsm/pom.xml b/services/cloudhsm/pom.xml
index 22fbb198a868..34c57848b60d 100644
--- a/services/cloudhsm/pom.xml
+++ b/services/cloudhsm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudhsm
AWS Java SDK :: Services :: AWS CloudHSM
diff --git a/services/cloudhsmv2/pom.xml b/services/cloudhsmv2/pom.xml
index b1f98f6dd59c..14a87653c7e0 100644
--- a/services/cloudhsmv2/pom.xml
+++ b/services/cloudhsmv2/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
cloudhsmv2
diff --git a/services/cloudsearch/pom.xml b/services/cloudsearch/pom.xml
index f539f8f247e2..384b6d33d7b4 100644
--- a/services/cloudsearch/pom.xml
+++ b/services/cloudsearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudsearch
AWS Java SDK :: Services :: Amazon CloudSearch
diff --git a/services/cloudsearchdomain/pom.xml b/services/cloudsearchdomain/pom.xml
index c54e66ecd8f8..15f9a1277f25 100644
--- a/services/cloudsearchdomain/pom.xml
+++ b/services/cloudsearchdomain/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudsearchdomain
AWS Java SDK :: Services :: Amazon CloudSearch Domain
diff --git a/services/cloudtrail/pom.xml b/services/cloudtrail/pom.xml
index 33d0317ba570..684d1174c50f 100644
--- a/services/cloudtrail/pom.xml
+++ b/services/cloudtrail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudtrail
AWS Java SDK :: Services :: AWS CloudTrail
diff --git a/services/cloudwatch/pom.xml b/services/cloudwatch/pom.xml
index bf2ccb0def56..3f22e5ecdc9a 100644
--- a/services/cloudwatch/pom.xml
+++ b/services/cloudwatch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudwatch
AWS Java SDK :: Services :: Amazon CloudWatch
diff --git a/services/cloudwatchevents/pom.xml b/services/cloudwatchevents/pom.xml
index 4d850e5997c4..63e57de6de2c 100644
--- a/services/cloudwatchevents/pom.xml
+++ b/services/cloudwatchevents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudwatchevents
AWS Java SDK :: Services :: Amazon CloudWatch Events
diff --git a/services/cloudwatchlogs/pom.xml b/services/cloudwatchlogs/pom.xml
index c173ecfbfbc6..65759249214b 100644
--- a/services/cloudwatchlogs/pom.xml
+++ b/services/cloudwatchlogs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cloudwatchlogs
AWS Java SDK :: Services :: Amazon CloudWatch Logs
diff --git a/services/codebuild/pom.xml b/services/codebuild/pom.xml
index 0c67a602e4ce..6331025fa508 100644
--- a/services/codebuild/pom.xml
+++ b/services/codebuild/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
codebuild
AWS Java SDK :: Services :: AWS Code Build
diff --git a/services/codecommit/pom.xml b/services/codecommit/pom.xml
index 0ff1829cc31c..aec0282a9c8e 100644
--- a/services/codecommit/pom.xml
+++ b/services/codecommit/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
codecommit
AWS Java SDK :: Services :: AWS CodeCommit
diff --git a/services/codedeploy/pom.xml b/services/codedeploy/pom.xml
index 7cd855ef32c6..63419b21c6f6 100644
--- a/services/codedeploy/pom.xml
+++ b/services/codedeploy/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
codedeploy
AWS Java SDK :: Services :: AWS CodeDeploy
diff --git a/services/codepipeline/pom.xml b/services/codepipeline/pom.xml
index d29c52efca23..a07614420894 100644
--- a/services/codepipeline/pom.xml
+++ b/services/codepipeline/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
codepipeline
AWS Java SDK :: Services :: AWS CodePipeline
diff --git a/services/codestar/pom.xml b/services/codestar/pom.xml
index 2ab5ba7fc6a3..d20c5acf57ab 100644
--- a/services/codestar/pom.xml
+++ b/services/codestar/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
codestar
AWS Java SDK :: Services :: AWS CodeStar
diff --git a/services/cognitoidentity/pom.xml b/services/cognitoidentity/pom.xml
index 5bdf2f98eb70..ed9c08f78536 100644
--- a/services/cognitoidentity/pom.xml
+++ b/services/cognitoidentity/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cognitoidentity
AWS Java SDK :: Services :: Amazon Cognito Identity
diff --git a/services/cognitoidentityprovider/pom.xml b/services/cognitoidentityprovider/pom.xml
index 76e88475087e..98b70f73d510 100644
--- a/services/cognitoidentityprovider/pom.xml
+++ b/services/cognitoidentityprovider/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cognitoidentityprovider
AWS Java SDK :: Services :: Amazon Cognito Identity Provider Service
diff --git a/services/cognitosync/pom.xml b/services/cognitosync/pom.xml
index 9e1be0c4c397..8095a05116d8 100644
--- a/services/cognitosync/pom.xml
+++ b/services/cognitosync/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
cognitosync
AWS Java SDK :: Services :: Amazon Cognito Sync
diff --git a/services/comprehend/pom.xml b/services/comprehend/pom.xml
index e0d5e8923ef0..4d3f9dabe790 100644
--- a/services/comprehend/pom.xml
+++ b/services/comprehend/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
comprehend
diff --git a/services/comprehendmedical/pom.xml b/services/comprehendmedical/pom.xml
index 62b202b0c460..955a25c428b4 100644
--- a/services/comprehendmedical/pom.xml
+++ b/services/comprehendmedical/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
comprehendmedical
AWS Java SDK :: Services :: ComprehendMedical
diff --git a/services/config/pom.xml b/services/config/pom.xml
index a029224d04c1..7d4004f3b6a9 100644
--- a/services/config/pom.xml
+++ b/services/config/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
config
AWS Java SDK :: Services :: AWS Config
diff --git a/services/config/src/main/resources/codegen-resources/service-2.json b/services/config/src/main/resources/codegen-resources/service-2.json
index de0cda98c07e..114378d5b838 100755
--- a/services/config/src/main/resources/codegen-resources/service-2.json
+++ b/services/config/src/main/resources/codegen-resources/service-2.json
@@ -273,7 +273,7 @@
{"shape":"InvalidNextTokenException"},
{"shape":"InvalidLimitException"}
],
- "documentation":" Returns status information for sources within an aggregator. The status includes information about the last time AWS Config verified authorization between the source account and an aggregator account. In case of a failure, the status contains the related error code or message.
"
+ "documentation":"Returns status information for sources within an aggregator. The status includes information about the last time AWS Config verified authorization between the source account and an aggregator account. In case of a failure, the status contains the related error code or message.
"
},
"DescribeConfigurationAggregators":{
"name":"DescribeConfigurationAggregators",
@@ -714,6 +714,21 @@
],
"documentation":"Creates and updates the retention configuration with details about retention period (number of days) that AWS Config stores your historical information. The API creates the RetentionConfiguration
object and names the object as default . When you have a RetentionConfiguration
object named default , calling the API modifies the default object.
Currently, AWS Config supports only one retention configuration per region in your account.
"
},
+ "SelectResourceConfig":{
+ "name":"SelectResourceConfig",
+ "http":{
+ "method":"POST",
+ "requestUri":"/"
+ },
+ "input":{"shape":"SelectResourceConfigRequest"},
+ "output":{"shape":"SelectResourceConfigResponse"},
+ "errors":[
+ {"shape":"InvalidExpressionException"},
+ {"shape":"InvalidLimitException"},
+ {"shape":"InvalidNextTokenException"}
+ ],
+ "documentation":"Accepts a structured query language (SQL) SELECT
command, performs the corresponding search, and returns resource configurations matching the properties.
For more information about query components, see the Query Components section in the AWS Config Developer Guide.
"
+ },
"StartConfigRulesEvaluation":{
"name":"StartConfigRulesEvaluation",
"http":{
@@ -2534,6 +2549,11 @@
"type":"string",
"enum":["aws.config"]
},
+ "Expression":{
+ "type":"string",
+ "max":4096,
+ "min":1
+ },
"FailedRemediationBatch":{
"type":"structure",
"members":{
@@ -2552,6 +2572,21 @@
"type":"list",
"member":{"shape":"FailedRemediationBatch"}
},
+ "FieldInfo":{
+ "type":"structure",
+ "members":{
+ "Name":{
+ "shape":"FieldName",
+ "documentation":"Name of the field.
"
+ }
+ },
+ "documentation":"Details about the fields such as name of the field.
"
+ },
+ "FieldInfoList":{
+ "type":"list",
+ "member":{"shape":"FieldInfo"}
+ },
+ "FieldName":{"type":"string"},
"GetAggregateComplianceDetailsByConfigRuleRequest":{
"type":"structure",
"required":[
@@ -2971,6 +3006,13 @@
"documentation":"The specified delivery channel name is not valid.
",
"exception":true
},
+ "InvalidExpressionException":{
+ "type":"structure",
+ "members":{
+ },
+ "documentation":"The syntax of the query is incorrect.
",
+ "exception":true
+ },
"InvalidLimitException":{
"type":"structure",
"members":{
@@ -3517,6 +3559,16 @@
}
}
},
+ "QueryInfo":{
+ "type":"structure",
+ "members":{
+ "SelectFields":{
+ "shape":"FieldInfoList",
+ "documentation":"Returns a FieldInfo
object.
"
+ }
+ },
+ "documentation":"Details about the query.
"
+ },
"RecorderName":{
"type":"string",
"max":256,
@@ -3974,6 +4026,10 @@
"type":"string",
"enum":["RESOURCE_ID"]
},
+ "Results":{
+ "type":"list",
+ "member":{"shape":"String"}
+ },
"RetentionConfiguration":{
"type":"structure",
"required":[
@@ -4040,6 +4096,41 @@
},
"documentation":"Defines which resources trigger an evaluation for an AWS Config rule. The scope can include one or more resource types, a combination of a tag key and value, or a combination of one resource type and one resource ID. Specify a scope to constrain which resources trigger an evaluation for a rule. Otherwise, evaluations for the rule are triggered when any resource in your recording group changes in configuration.
"
},
+ "SelectResourceConfigRequest":{
+ "type":"structure",
+ "required":["Expression"],
+ "members":{
+ "Expression":{
+ "shape":"Expression",
+ "documentation":"The SQL query SELECT
command.
"
+ },
+ "Limit":{
+ "shape":"Limit",
+ "documentation":"The maximum number of query results returned on each page.
"
+ },
+ "NextToken":{
+ "shape":"NextToken",
+ "documentation":"The nextToken
string returned in a previous request that you use to request the next page of results in a paginated response.
"
+ }
+ }
+ },
+ "SelectResourceConfigResponse":{
+ "type":"structure",
+ "members":{
+ "Results":{
+ "shape":"Results",
+ "documentation":"Returns the results for the SQL query.
"
+ },
+ "QueryInfo":{
+ "shape":"QueryInfo",
+ "documentation":"Returns the QueryInfo
object.
"
+ },
+ "NextToken":{
+ "shape":"NextToken",
+ "documentation":"The nextToken
string returned in a previous request that you use to request the next page of results in a paginated response.
"
+ }
+ }
+ },
"Source":{
"type":"structure",
"required":[
diff --git a/services/connect/pom.xml b/services/connect/pom.xml
index 7a81b8bf7a58..d66d0e281f50 100644
--- a/services/connect/pom.xml
+++ b/services/connect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
connect
AWS Java SDK :: Services :: Connect
diff --git a/services/costandusagereport/pom.xml b/services/costandusagereport/pom.xml
index 4895794ffa6b..b74260107981 100644
--- a/services/costandusagereport/pom.xml
+++ b/services/costandusagereport/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
costandusagereport
AWS Java SDK :: Services :: AWS Cost and Usage Report
diff --git a/services/costexplorer/pom.xml b/services/costexplorer/pom.xml
index cbaeb9bbdaa7..bbb16ff97dbd 100644
--- a/services/costexplorer/pom.xml
+++ b/services/costexplorer/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
costexplorer
diff --git a/services/databasemigration/pom.xml b/services/databasemigration/pom.xml
index 0140a1a2c634..6207fc869264 100644
--- a/services/databasemigration/pom.xml
+++ b/services/databasemigration/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
databasemigration
AWS Java SDK :: Services :: AWS Database Migration Service
diff --git a/services/datapipeline/pom.xml b/services/datapipeline/pom.xml
index e0651424fbf3..b49dbd27c5c3 100644
--- a/services/datapipeline/pom.xml
+++ b/services/datapipeline/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
datapipeline
AWS Java SDK :: Services :: AWS Data Pipeline
diff --git a/services/datasync/pom.xml b/services/datasync/pom.xml
index f72cf4edb0ad..b9dd07a510e9 100644
--- a/services/datasync/pom.xml
+++ b/services/datasync/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
datasync
AWS Java SDK :: Services :: DataSync
diff --git a/services/dax/pom.xml b/services/dax/pom.xml
index d4caeac715a8..0a6a19087212 100644
--- a/services/dax/pom.xml
+++ b/services/dax/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
dax
AWS Java SDK :: Services :: Amazon DynamoDB Accelerator (DAX)
diff --git a/services/devicefarm/pom.xml b/services/devicefarm/pom.xml
index 282cd0706c94..094669f8ddec 100644
--- a/services/devicefarm/pom.xml
+++ b/services/devicefarm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
devicefarm
AWS Java SDK :: Services :: AWS Device Farm
diff --git a/services/directconnect/pom.xml b/services/directconnect/pom.xml
index 0638b6ccb961..2ad91cf4aad1 100644
--- a/services/directconnect/pom.xml
+++ b/services/directconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
directconnect
AWS Java SDK :: Services :: AWS Direct Connect
diff --git a/services/directory/pom.xml b/services/directory/pom.xml
index f919450a6def..d8454fdd1c04 100644
--- a/services/directory/pom.xml
+++ b/services/directory/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
directory
AWS Java SDK :: Services :: AWS Directory Service
diff --git a/services/dlm/pom.xml b/services/dlm/pom.xml
index 2555a74ae7cc..f80a93f9c714 100644
--- a/services/dlm/pom.xml
+++ b/services/dlm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
dlm
AWS Java SDK :: Services :: DLM
diff --git a/services/docdb/pom.xml b/services/docdb/pom.xml
index 38f683eb263c..e22853365bc0 100644
--- a/services/docdb/pom.xml
+++ b/services/docdb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
docdb
AWS Java SDK :: Services :: DocDB
diff --git a/services/dynamodb/pom.xml b/services/dynamodb/pom.xml
index 17f56ae80fc9..3be4399b7297 100644
--- a/services/dynamodb/pom.xml
+++ b/services/dynamodb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
dynamodb
AWS Java SDK :: Services :: Amazon DynamoDB
diff --git a/services/ec2/pom.xml b/services/ec2/pom.xml
index 4e2549bb42e0..6d1e4fa34350 100644
--- a/services/ec2/pom.xml
+++ b/services/ec2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
ec2
AWS Java SDK :: Services :: Amazon EC2
diff --git a/services/ecr/pom.xml b/services/ecr/pom.xml
index 87ab6dc3bc1d..89daac7d11e1 100644
--- a/services/ecr/pom.xml
+++ b/services/ecr/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
ecr
AWS Java SDK :: Services :: Amazon EC2 Container Registry
diff --git a/services/ecs/pom.xml b/services/ecs/pom.xml
index e20fd483fe51..39d736c4df72 100644
--- a/services/ecs/pom.xml
+++ b/services/ecs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
ecs
AWS Java SDK :: Services :: Amazon EC2 Container Service
diff --git a/services/efs/pom.xml b/services/efs/pom.xml
index 04a2f6349229..771c8d11f619 100644
--- a/services/efs/pom.xml
+++ b/services/efs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
efs
AWS Java SDK :: Services :: Amazon Elastic File System
diff --git a/services/eks/pom.xml b/services/eks/pom.xml
index 69f4bef4d2b0..3c8671d50de7 100644
--- a/services/eks/pom.xml
+++ b/services/eks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
eks
AWS Java SDK :: Services :: EKS
diff --git a/services/eks/src/main/resources/codegen-resources/service-2.json b/services/eks/src/main/resources/codegen-resources/service-2.json
index 86b9634922c6..2592a1f7d4df 100644
--- a/services/eks/src/main/resources/codegen-resources/service-2.json
+++ b/services/eks/src/main/resources/codegen-resources/service-2.json
@@ -30,7 +30,7 @@
{"shape":"ServiceUnavailableException"},
{"shape":"UnsupportedAvailabilityZoneException"}
],
- "documentation":"Creates an Amazon EKS control plane.
The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, like etcd
and the API server. The control plane runs in an account managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server endpoint.
Amazon EKS worker nodes run in your AWS account and connect to your cluster's control plane via the Kubernetes API server endpoint and a certificate file that is created for your cluster.
The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the worker nodes (for example, to support kubectl exec
, logs
, and proxy
data flows).
After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch worker nodes into your cluster. For more information, see Managing Cluster Authentication and Launching Amazon EKS Worker Nodes in the Amazon EKS User Guide .
"
+ "documentation":"Creates an Amazon EKS control plane.
The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, like etcd
and the API server. The control plane runs in an account managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server endpoint.
Amazon EKS worker nodes run in your AWS account and connect to your cluster's control plane via the Kubernetes API server endpoint and a certificate file that is created for your cluster.
The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the worker nodes (for example, to support kubectl exec
, logs
, and proxy
data flows).
After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch worker nodes into your cluster. For more information, see Managing Cluster Authentication and Launching Amazon EKS Worker Nodes in the Amazon EKS User Guide .
"
},
"DeleteCluster":{
"name":"DeleteCluster",
@@ -47,7 +47,7 @@
{"shape":"ServerException"},
{"shape":"ServiceUnavailableException"}
],
- "documentation":"Deletes the Amazon EKS cluster control plane.
If you have active services in your cluster that are associated with a load balancer, you must delete those services before deleting the cluster so that the load balancers are deleted properly. Otherwise, you can have orphaned resources in your VPC that prevent you from being able to delete the VPC. For more information, see Deleting a Cluster in the Amazon EKS User Guide .
"
+ "documentation":"Deletes the Amazon EKS cluster control plane.
If you have active services in your cluster that are associated with a load balancer, you must delete those services before deleting the cluster so that the load balancers are deleted properly. Otherwise, you can have orphaned resources in your VPC that prevent you from being able to delete the VPC. For more information, see Deleting a Cluster in the Amazon EKS User Guide .
"
},
"DescribeCluster":{
"name":"DescribeCluster",
@@ -63,7 +63,7 @@
{"shape":"ServerException"},
{"shape":"ServiceUnavailableException"}
],
- "documentation":"Returns descriptive information about an Amazon EKS cluster.
The API server endpoint and certificate authority data returned by this operation are required for kubelet
and kubectl
to communicate with your Kubernetes API server. For more information, see Create a kubeconfig for Amazon EKS .
The API server endpoint and certificate authority data are not available until the cluster reaches the ACTIVE
state.
"
+ "documentation":"Returns descriptive information about an Amazon EKS cluster.
The API server endpoint and certificate authority data returned by this operation are required for kubelet
and kubectl
to communicate with your Kubernetes API server. For more information, see Create a kubeconfig for Amazon EKS .
The API server endpoint and certificate authority data are not available until the cluster reaches the ACTIVE
state.
"
},
"DescribeUpdate":{
"name":"DescribeUpdate",
@@ -113,6 +113,24 @@
],
"documentation":"Lists the updates associated with an Amazon EKS cluster in your AWS account, in the specified Region.
"
},
+ "UpdateClusterConfig":{
+ "name":"UpdateClusterConfig",
+ "http":{
+ "method":"POST",
+ "requestUri":"/clusters/{name}/update-config"
+ },
+ "input":{"shape":"UpdateClusterConfigRequest"},
+ "output":{"shape":"UpdateClusterConfigResponse"},
+ "errors":[
+ {"shape":"InvalidParameterException"},
+ {"shape":"ClientException"},
+ {"shape":"ServerException"},
+ {"shape":"ResourceInUseException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"InvalidRequestException"}
+ ],
+ "documentation":"Updates an Amazon EKS cluster configuration. Your cluster continues to function during the update. The response output includes an update ID that you can use to track the status of your cluster update with the DescribeUpdate API operation.
Currently, the only cluster configuration changes supported are to enable or disable Amazon EKS public and private API server endpoints. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .
Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to UPDATING
(this status transition is eventually consistent). When the update is complete (either Failed
or Successful
), the cluster status moves to Active
.
"
+ },
"UpdateClusterVersion":{
"name":"UpdateClusterVersion",
"http":{
@@ -133,6 +151,11 @@
}
},
"shapes":{
+ "Boolean":{"type":"boolean"},
+ "BoxedBoolean":{
+ "type":"boolean",
+ "box":true
+ },
"Certificate":{
"type":"structure",
"members":{
@@ -185,7 +208,7 @@
},
"resourcesVpcConfig":{
"shape":"VpcConfigResponse",
- "documentation":"The VPC subnets and security groups used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide .
"
+ "documentation":"The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide .
"
},
"status":{
"shape":"ClusterStatus",
@@ -201,7 +224,7 @@
},
"platformVersion":{
"shape":"String",
- "documentation":"The platform version of your Amazon EKS cluster. For more information, see Platform Versions in the Amazon EKS User Guide .
"
+ "documentation":"The platform version of your Amazon EKS cluster. For more information, see Platform Versions in the Amazon EKS User Guide .
"
}
},
"documentation":"An object representing an Amazon EKS cluster.
"
@@ -239,11 +262,11 @@
},
"roleArn":{
"shape":"String",
- "documentation":"The Amazon Resource Name (ARN) of the IAM role that provides permissions for Amazon EKS to make calls to other AWS API operations on your behalf. For more information, see Amazon EKS Service IAM Role in the Amazon EKS User Guide .
"
+ "documentation":"The Amazon Resource Name (ARN) of the IAM role that provides permissions for Amazon EKS to make calls to other AWS API operations on your behalf. For more information, see Amazon EKS Service IAM Role in the Amazon EKS User Guide .
"
},
"resourcesVpcConfig":{
"shape":"VpcConfigRequest",
- "documentation":"The VPC subnets and security groups used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide . You must specify at least two subnets. You may specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
"
+ "documentation":"The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide . You must specify at least two subnets. You may specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
"
},
"clientRequestToken":{
"shape":"String",
@@ -589,6 +612,30 @@
},
"documentation":"An object representing an asynchronous update.
"
},
+ "UpdateClusterConfigRequest":{
+ "type":"structure",
+ "required":["name"],
+ "members":{
+ "name":{
+ "shape":"String",
+ "documentation":"The name of the Amazon EKS cluster to update.
",
+ "location":"uri",
+ "locationName":"name"
+ },
+ "resourcesVpcConfig":{"shape":"VpcConfigRequest"},
+ "clientRequestToken":{
+ "shape":"String",
+ "documentation":"Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
",
+ "idempotencyToken":true
+ }
+ }
+ },
+ "UpdateClusterConfigResponse":{
+ "type":"structure",
+ "members":{
+ "update":{"shape":"Update"}
+ }
+ },
"UpdateClusterVersionRequest":{
"type":"structure",
"required":[
@@ -640,7 +687,9 @@
"type":"string",
"enum":[
"Version",
- "PlatformVersion"
+ "PlatformVersion",
+ "EndpointPrivateAccess",
+ "EndpointPublicAccess"
]
},
"UpdateParams":{
@@ -658,11 +707,13 @@
},
"UpdateType":{
"type":"string",
- "enum":["VersionUpdate"]
+ "enum":[
+ "VersionUpdate",
+ "EndpointAccessUpdate"
+ ]
},
"VpcConfigRequest":{
"type":"structure",
- "required":["subnetIds"],
"members":{
"subnetIds":{
"shape":"StringList",
@@ -671,6 +722,14 @@
"securityGroupIds":{
"shape":"StringList",
"documentation":"Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you do not specify a security group, the default security group for your VPC is used.
"
+ },
+ "endpointPublicAccess":{
+ "shape":"BoxedBoolean",
+ "documentation":"Set this value to false
to disable public access for your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true
, which enables public access for your Kubernetes API server. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .
"
+ },
+ "endpointPrivateAccess":{
+ "shape":"BoxedBoolean",
+ "documentation":"Set this value to true
to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC will use the private VPC endpoint. The default value for this parameter is false
, which disables private access for your Kubernetes API server. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .
"
}
},
"documentation":"An object representing an Amazon EKS cluster VPC configuration request.
"
@@ -689,6 +748,14 @@
"vpcId":{
"shape":"String",
"documentation":"The VPC associated with your cluster.
"
+ },
+ "endpointPublicAccess":{
+ "shape":"Boolean",
+ "documentation":"This parameter indicates whether the Amazon EKS public API server endpoint is enabled. If the Amazon EKS public API server endpoint is disabled, your cluster's Kubernetes API server can only receive requests that originate from within the cluster VPC.
"
+ },
+ "endpointPrivateAccess":{
+ "shape":"Boolean",
+ "documentation":"This parameter indicates whether the Amazon EKS private API server endpoint is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes API requests that originate from within your cluster's VPC will use the private VPC endpoint instead of traversing the internet.
"
}
},
"documentation":"An object representing an Amazon EKS cluster VPC configuration response.
"
diff --git a/services/elasticache/pom.xml b/services/elasticache/pom.xml
index 273afb289f37..15703cc7824e 100644
--- a/services/elasticache/pom.xml
+++ b/services/elasticache/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
elasticache
AWS Java SDK :: Services :: Amazon ElastiCache
diff --git a/services/elasticbeanstalk/pom.xml b/services/elasticbeanstalk/pom.xml
index 0737b249a96b..ee715f110819 100644
--- a/services/elasticbeanstalk/pom.xml
+++ b/services/elasticbeanstalk/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
elasticbeanstalk
AWS Java SDK :: Services :: AWS Elastic Beanstalk
diff --git a/services/elasticloadbalancing/pom.xml b/services/elasticloadbalancing/pom.xml
index 3736dbd38fa7..3938051a92d6 100644
--- a/services/elasticloadbalancing/pom.xml
+++ b/services/elasticloadbalancing/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
elasticloadbalancing
AWS Java SDK :: Services :: Elastic Load Balancing
diff --git a/services/elasticloadbalancingv2/pom.xml b/services/elasticloadbalancingv2/pom.xml
index ef978ae944a0..fc7bd4d29eae 100644
--- a/services/elasticloadbalancingv2/pom.xml
+++ b/services/elasticloadbalancingv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
elasticloadbalancingv2
AWS Java SDK :: Services :: Elastic Load Balancing V2
diff --git a/services/elasticsearch/pom.xml b/services/elasticsearch/pom.xml
index 4b8fbff28e35..eb0117de4b61 100644
--- a/services/elasticsearch/pom.xml
+++ b/services/elasticsearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
elasticsearch
AWS Java SDK :: Services :: Amazon Elasticsearch Service
diff --git a/services/elastictranscoder/pom.xml b/services/elastictranscoder/pom.xml
index a11dabb3ce4e..ef6fad193aee 100644
--- a/services/elastictranscoder/pom.xml
+++ b/services/elastictranscoder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
elastictranscoder
AWS Java SDK :: Services :: Amazon Elastic Transcoder
diff --git a/services/emr/pom.xml b/services/emr/pom.xml
index 6b0ef430cb37..de602dce00a1 100644
--- a/services/emr/pom.xml
+++ b/services/emr/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
emr
AWS Java SDK :: Services :: Amazon EMR
diff --git a/services/firehose/pom.xml b/services/firehose/pom.xml
index cf6fe0780dc4..eb0effbaa6d6 100644
--- a/services/firehose/pom.xml
+++ b/services/firehose/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
firehose
AWS Java SDK :: Services :: Amazon Kinesis Firehose
diff --git a/services/fms/pom.xml b/services/fms/pom.xml
index 2998cd5d4504..ea09637b3ec0 100644
--- a/services/fms/pom.xml
+++ b/services/fms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
fms
AWS Java SDK :: Services :: FMS
diff --git a/services/fsx/pom.xml b/services/fsx/pom.xml
index 2950281a21bc..a9ce81b4407d 100644
--- a/services/fsx/pom.xml
+++ b/services/fsx/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
fsx
AWS Java SDK :: Services :: FSx
diff --git a/services/gamelift/pom.xml b/services/gamelift/pom.xml
index 049bb34f689b..63d389b4ba2e 100644
--- a/services/gamelift/pom.xml
+++ b/services/gamelift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
gamelift
AWS Java SDK :: Services :: AWS GameLift
diff --git a/services/glacier/pom.xml b/services/glacier/pom.xml
index a4bafb8bf040..29a5041863c9 100644
--- a/services/glacier/pom.xml
+++ b/services/glacier/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
glacier
AWS Java SDK :: Services :: Amazon Glacier
diff --git a/services/globalaccelerator/pom.xml b/services/globalaccelerator/pom.xml
index 73375610cfed..a985b34405bb 100644
--- a/services/globalaccelerator/pom.xml
+++ b/services/globalaccelerator/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
globalaccelerator
AWS Java SDK :: Services :: Global Accelerator
diff --git a/services/glue/pom.xml b/services/glue/pom.xml
index 160dccc6d4ca..528d1f8ecda1 100644
--- a/services/glue/pom.xml
+++ b/services/glue/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
glue
diff --git a/services/greengrass/pom.xml b/services/greengrass/pom.xml
index 3c2319ce7c42..3dfb79a848e3 100644
--- a/services/greengrass/pom.xml
+++ b/services/greengrass/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
greengrass
AWS Java SDK :: Services :: AWS Greengrass
diff --git a/services/guardduty/pom.xml b/services/guardduty/pom.xml
index e2490b6f5f9f..ff3a86ae02b6 100644
--- a/services/guardduty/pom.xml
+++ b/services/guardduty/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
guardduty
diff --git a/services/health/pom.xml b/services/health/pom.xml
index c65e22080092..47105ce250db 100644
--- a/services/health/pom.xml
+++ b/services/health/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
health
AWS Java SDK :: Services :: AWS Health APIs and Notifications
diff --git a/services/iam/pom.xml b/services/iam/pom.xml
index 98a1fd5cf360..a63f358ae625 100644
--- a/services/iam/pom.xml
+++ b/services/iam/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
iam
AWS Java SDK :: Services :: AWS IAM
diff --git a/services/inspector/pom.xml b/services/inspector/pom.xml
index 7800be2d0122..c507990e6242 100644
--- a/services/inspector/pom.xml
+++ b/services/inspector/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
inspector
AWS Java SDK :: Services :: Amazon Inspector Service
diff --git a/services/iot/pom.xml b/services/iot/pom.xml
index b545c79183c2..6c04d15e2444 100644
--- a/services/iot/pom.xml
+++ b/services/iot/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
iot
AWS Java SDK :: Services :: AWS IoT
diff --git a/services/iot1clickdevices/pom.xml b/services/iot1clickdevices/pom.xml
index edd167cf0dc9..9dbca4c9b0f8 100644
--- a/services/iot1clickdevices/pom.xml
+++ b/services/iot1clickdevices/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
iot1clickdevices
AWS Java SDK :: Services :: IoT 1Click Devices Service
diff --git a/services/iot1clickprojects/pom.xml b/services/iot1clickprojects/pom.xml
index 2c421cc93aa3..4267c9fd7eb0 100644
--- a/services/iot1clickprojects/pom.xml
+++ b/services/iot1clickprojects/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
iot1clickprojects
AWS Java SDK :: Services :: IoT 1Click Projects
diff --git a/services/iotanalytics/pom.xml b/services/iotanalytics/pom.xml
index 0313fce7f876..654ea979f9c4 100644
--- a/services/iotanalytics/pom.xml
+++ b/services/iotanalytics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
iotanalytics
AWS Java SDK :: Services :: IoTAnalytics
diff --git a/services/iotdataplane/pom.xml b/services/iotdataplane/pom.xml
index f9d9da0b3a89..5c93b35dbb98 100644
--- a/services/iotdataplane/pom.xml
+++ b/services/iotdataplane/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
iotdataplane
AWS Java SDK :: Services :: AWS IoT Data Plane
diff --git a/services/iotjobsdataplane/pom.xml b/services/iotjobsdataplane/pom.xml
index 312e536987c3..07250b1ca9e2 100644
--- a/services/iotjobsdataplane/pom.xml
+++ b/services/iotjobsdataplane/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
iotjobsdataplane
AWS Java SDK :: Services :: IoT Jobs Data Plane
diff --git a/services/kafka/pom.xml b/services/kafka/pom.xml
index 41fda094a940..9b9a69970bad 100644
--- a/services/kafka/pom.xml
+++ b/services/kafka/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
kafka
AWS Java SDK :: Services :: Kafka
diff --git a/services/kinesis/pom.xml b/services/kinesis/pom.xml
index c820522ca557..c89f1363272f 100644
--- a/services/kinesis/pom.xml
+++ b/services/kinesis/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
kinesis
AWS Java SDK :: Services :: Amazon Kinesis
diff --git a/services/kinesisanalytics/pom.xml b/services/kinesisanalytics/pom.xml
index 64aed564bbdd..d293e856c1d7 100644
--- a/services/kinesisanalytics/pom.xml
+++ b/services/kinesisanalytics/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
kinesisanalytics
AWS Java SDK :: Services :: Amazon Kinesis Analytics
diff --git a/services/kinesisanalyticsv2/pom.xml b/services/kinesisanalyticsv2/pom.xml
index f8b1d3db4574..65d1fd0907d2 100644
--- a/services/kinesisanalyticsv2/pom.xml
+++ b/services/kinesisanalyticsv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
kinesisanalyticsv2
AWS Java SDK :: Services :: Kinesis Analytics V2
diff --git a/services/kinesisvideo/pom.xml b/services/kinesisvideo/pom.xml
index cf5227df4746..729293f5c801 100644
--- a/services/kinesisvideo/pom.xml
+++ b/services/kinesisvideo/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
kinesisvideo
diff --git a/services/kinesisvideoarchivedmedia/pom.xml b/services/kinesisvideoarchivedmedia/pom.xml
index 462fcb005ff9..c5c1fb46ad53 100644
--- a/services/kinesisvideoarchivedmedia/pom.xml
+++ b/services/kinesisvideoarchivedmedia/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
kinesisvideoarchivedmedia
AWS Java SDK :: Services :: Kinesis Video Archived Media
diff --git a/services/kinesisvideomedia/pom.xml b/services/kinesisvideomedia/pom.xml
index 005656abaabc..5281a08eb4ec 100644
--- a/services/kinesisvideomedia/pom.xml
+++ b/services/kinesisvideomedia/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
kinesisvideomedia
AWS Java SDK :: Services :: Kinesis Video Media
diff --git a/services/kms/pom.xml b/services/kms/pom.xml
index 271aecb63281..62592f52d097 100644
--- a/services/kms/pom.xml
+++ b/services/kms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
kms
AWS Java SDK :: Services :: AWS KMS
diff --git a/services/lambda/pom.xml b/services/lambda/pom.xml
index 109d00b759fe..0d6f9cfc9ec0 100644
--- a/services/lambda/pom.xml
+++ b/services/lambda/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
lambda
AWS Java SDK :: Services :: AWS Lambda
diff --git a/services/lexmodelbuilding/pom.xml b/services/lexmodelbuilding/pom.xml
index ffb41b1cbe9d..659cec84f55e 100644
--- a/services/lexmodelbuilding/pom.xml
+++ b/services/lexmodelbuilding/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
lexmodelbuilding
AWS Java SDK :: Services :: Amazon Lex Model Building
diff --git a/services/lexruntime/pom.xml b/services/lexruntime/pom.xml
index 1ccc50490c57..dc79a3ba6462 100644
--- a/services/lexruntime/pom.xml
+++ b/services/lexruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
lexruntime
AWS Java SDK :: Services :: Amazon Lex Runtime
diff --git a/services/licensemanager/pom.xml b/services/licensemanager/pom.xml
index 4e19b79e0389..3d6b0f9a7f12 100644
--- a/services/licensemanager/pom.xml
+++ b/services/licensemanager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
licensemanager
AWS Java SDK :: Services :: License Manager
diff --git a/services/lightsail/pom.xml b/services/lightsail/pom.xml
index 63ab0e1ab3e1..2a1fba99760e 100644
--- a/services/lightsail/pom.xml
+++ b/services/lightsail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
lightsail
AWS Java SDK :: Services :: Amazon Lightsail
diff --git a/services/machinelearning/pom.xml b/services/machinelearning/pom.xml
index 0710013f1f3b..49f3444db31f 100644
--- a/services/machinelearning/pom.xml
+++ b/services/machinelearning/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
machinelearning
AWS Java SDK :: Services :: Amazon Machine Learning
diff --git a/services/macie/pom.xml b/services/macie/pom.xml
index 075c5c7e6e8b..dc017c1f9a27 100644
--- a/services/macie/pom.xml
+++ b/services/macie/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
macie
AWS Java SDK :: Services :: Macie
diff --git a/services/marketplacecommerceanalytics/pom.xml b/services/marketplacecommerceanalytics/pom.xml
index e5b72d56f303..aee33c467c32 100644
--- a/services/marketplacecommerceanalytics/pom.xml
+++ b/services/marketplacecommerceanalytics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
marketplacecommerceanalytics
AWS Java SDK :: Services :: AWS Marketplace Commerce Analytics
diff --git a/services/marketplaceentitlement/pom.xml b/services/marketplaceentitlement/pom.xml
index dab765d1536c..ba7a06214489 100644
--- a/services/marketplaceentitlement/pom.xml
+++ b/services/marketplaceentitlement/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
marketplaceentitlement
AWS Java SDK :: Services :: AWS Marketplace Entitlement
diff --git a/services/marketplacemetering/pom.xml b/services/marketplacemetering/pom.xml
index 33cf3fec5fc7..aa171a62fb65 100644
--- a/services/marketplacemetering/pom.xml
+++ b/services/marketplacemetering/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
marketplacemetering
AWS Java SDK :: Services :: AWS Marketplace Metering Service
diff --git a/services/mediaconnect/pom.xml b/services/mediaconnect/pom.xml
index e7b588147c2e..8ba19ce94c7a 100644
--- a/services/mediaconnect/pom.xml
+++ b/services/mediaconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
mediaconnect
AWS Java SDK :: Services :: MediaConnect
diff --git a/services/mediaconvert/pom.xml b/services/mediaconvert/pom.xml
index 975828f88887..36620b536ab2 100644
--- a/services/mediaconvert/pom.xml
+++ b/services/mediaconvert/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
mediaconvert
diff --git a/services/medialive/pom.xml b/services/medialive/pom.xml
index 6a803ae0da70..d3ae1daf76ae 100644
--- a/services/medialive/pom.xml
+++ b/services/medialive/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
medialive
diff --git a/services/mediapackage/pom.xml b/services/mediapackage/pom.xml
index 2164b9ea1017..5e4e7818245a 100644
--- a/services/mediapackage/pom.xml
+++ b/services/mediapackage/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
mediapackage
diff --git a/services/mediastore/pom.xml b/services/mediastore/pom.xml
index 4f5139e43d5f..7f4258c63fdf 100644
--- a/services/mediastore/pom.xml
+++ b/services/mediastore/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
mediastore
diff --git a/services/mediastoredata/pom.xml b/services/mediastoredata/pom.xml
index f1de63663f3c..aebb833391ef 100644
--- a/services/mediastoredata/pom.xml
+++ b/services/mediastoredata/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
mediastoredata
diff --git a/services/mediatailor/pom.xml b/services/mediatailor/pom.xml
index ad104b1342f8..a97daaa3c6ae 100644
--- a/services/mediatailor/pom.xml
+++ b/services/mediatailor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
mediatailor
AWS Java SDK :: Services :: MediaTailor
diff --git a/services/migrationhub/pom.xml b/services/migrationhub/pom.xml
index 5ab8a19edbb5..e203bb9d528b 100644
--- a/services/migrationhub/pom.xml
+++ b/services/migrationhub/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
migrationhub
diff --git a/services/mobile/pom.xml b/services/mobile/pom.xml
index 8f378f7c862b..713a58f7bec3 100644
--- a/services/mobile/pom.xml
+++ b/services/mobile/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
mobile
diff --git a/services/mq/pom.xml b/services/mq/pom.xml
index d255de8fd608..f848e80008cb 100644
--- a/services/mq/pom.xml
+++ b/services/mq/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
mq
diff --git a/services/mturk/pom.xml b/services/mturk/pom.xml
index f2e1bb327043..c60c3b64ae7d 100644
--- a/services/mturk/pom.xml
+++ b/services/mturk/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
mturk
AWS Java SDK :: Services :: Amazon Mechanical Turk Requester
diff --git a/services/neptune/pom.xml b/services/neptune/pom.xml
index ff88626b54a8..39d877b3a7da 100644
--- a/services/neptune/pom.xml
+++ b/services/neptune/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
neptune
AWS Java SDK :: Services :: Neptune
diff --git a/services/opsworks/pom.xml b/services/opsworks/pom.xml
index a4353897364a..4bb1256525d1 100644
--- a/services/opsworks/pom.xml
+++ b/services/opsworks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
opsworks
AWS Java SDK :: Services :: AWS OpsWorks
diff --git a/services/opsworkscm/pom.xml b/services/opsworkscm/pom.xml
index 89ae771bf50e..c4bb529bb72b 100644
--- a/services/opsworkscm/pom.xml
+++ b/services/opsworkscm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
opsworkscm
AWS Java SDK :: Services :: AWS OpsWorks for Chef Automate
diff --git a/services/organizations/pom.xml b/services/organizations/pom.xml
index 065465c22461..2f05592399b6 100644
--- a/services/organizations/pom.xml
+++ b/services/organizations/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
organizations
AWS Java SDK :: Services :: AWS Organizations
diff --git a/services/pi/pom.xml b/services/pi/pom.xml
index 24e4e47efad6..104bcc0f60e8 100644
--- a/services/pi/pom.xml
+++ b/services/pi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
pi
AWS Java SDK :: Services :: PI
diff --git a/services/pinpoint/pom.xml b/services/pinpoint/pom.xml
index 982ba16e490c..e7d584415578 100644
--- a/services/pinpoint/pom.xml
+++ b/services/pinpoint/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
pinpoint
AWS Java SDK :: Services :: Amazon Pinpoint
diff --git a/services/pinpointemail/pom.xml b/services/pinpointemail/pom.xml
index c0caeae03a97..e17b0cb308d6 100644
--- a/services/pinpointemail/pom.xml
+++ b/services/pinpointemail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
pinpointemail
AWS Java SDK :: Services :: Pinpoint Email
diff --git a/services/pinpointsmsvoice/pom.xml b/services/pinpointsmsvoice/pom.xml
index 52626d7a28bf..ce00d9b61122 100644
--- a/services/pinpointsmsvoice/pom.xml
+++ b/services/pinpointsmsvoice/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
pinpointsmsvoice
AWS Java SDK :: Services :: Pinpoint SMS Voice
diff --git a/services/polly/pom.xml b/services/polly/pom.xml
index ba9a6035b304..921aa2e5c1a6 100644
--- a/services/polly/pom.xml
+++ b/services/polly/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
polly
AWS Java SDK :: Services :: Amazon Polly
diff --git a/services/pom.xml b/services/pom.xml
index 2d89ead97b68..ccb2dd8a2606 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -4,7 +4,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
services
AWS Java SDK :: Services
diff --git a/services/pricing/pom.xml b/services/pricing/pom.xml
index 180c01b8d033..9b63ef51caf6 100644
--- a/services/pricing/pom.xml
+++ b/services/pricing/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
pricing
diff --git a/services/quicksight/pom.xml b/services/quicksight/pom.xml
index 1cd9f2cf7b2c..ea880e7472f9 100644
--- a/services/quicksight/pom.xml
+++ b/services/quicksight/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
quicksight
AWS Java SDK :: Services :: QuickSight
diff --git a/services/ram/pom.xml b/services/ram/pom.xml
index 318d490e4de8..dc1ba733ab91 100644
--- a/services/ram/pom.xml
+++ b/services/ram/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
ram
AWS Java SDK :: Services :: RAM
diff --git a/services/rds/pom.xml b/services/rds/pom.xml
index 88defe408182..aeb2296b47fd 100644
--- a/services/rds/pom.xml
+++ b/services/rds/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
rds
AWS Java SDK :: Services :: Amazon RDS
diff --git a/services/rdsdata/pom.xml b/services/rdsdata/pom.xml
index cd08805faba7..ca40251c8de9 100644
--- a/services/rdsdata/pom.xml
+++ b/services/rdsdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
rdsdata
AWS Java SDK :: Services :: RDS Data
diff --git a/services/redshift/pom.xml b/services/redshift/pom.xml
index 381b1783d569..d519a6981961 100644
--- a/services/redshift/pom.xml
+++ b/services/redshift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
redshift
AWS Java SDK :: Services :: Amazon Redshift
diff --git a/services/rekognition/pom.xml b/services/rekognition/pom.xml
index 2a5c7f88ef0e..07b57be81d47 100644
--- a/services/rekognition/pom.xml
+++ b/services/rekognition/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
rekognition
AWS Java SDK :: Services :: Amazon Rekognition
diff --git a/services/resourcegroups/pom.xml b/services/resourcegroups/pom.xml
index bfed7b4e3eb5..92a5b8bce6e4 100644
--- a/services/resourcegroups/pom.xml
+++ b/services/resourcegroups/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
resourcegroups
diff --git a/services/resourcegroupstaggingapi/pom.xml b/services/resourcegroupstaggingapi/pom.xml
index c2b560bd250b..3e4701f1ebc0 100644
--- a/services/resourcegroupstaggingapi/pom.xml
+++ b/services/resourcegroupstaggingapi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
resourcegroupstaggingapi
AWS Java SDK :: Services :: AWS Resource Groups Tagging API
diff --git a/services/robomaker/pom.xml b/services/robomaker/pom.xml
index 1f2633be297a..dae9741301ff 100644
--- a/services/robomaker/pom.xml
+++ b/services/robomaker/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
robomaker
AWS Java SDK :: Services :: RoboMaker
diff --git a/services/route53/pom.xml b/services/route53/pom.xml
index f8d0d6145cc7..9ad5358874e6 100644
--- a/services/route53/pom.xml
+++ b/services/route53/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
route53
AWS Java SDK :: Services :: Amazon Route53
diff --git a/services/route53domains/pom.xml b/services/route53domains/pom.xml
index f7f89ee168e8..c89fb3198e1c 100644
--- a/services/route53domains/pom.xml
+++ b/services/route53domains/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
route53domains
AWS Java SDK :: Services :: Amazon Route53 Domains
diff --git a/services/route53resolver/pom.xml b/services/route53resolver/pom.xml
index 0bec39d0b767..7e1a3e0838d9 100644
--- a/services/route53resolver/pom.xml
+++ b/services/route53resolver/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
route53resolver
AWS Java SDK :: Services :: Route53Resolver
diff --git a/services/s3/pom.xml b/services/s3/pom.xml
index b38e443d78c5..2b09b4e72fde 100644
--- a/services/s3/pom.xml
+++ b/services/s3/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
s3
AWS Java SDK :: Services :: Amazon S3
diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java
new file mode 100644
index 000000000000..89596aca60d7
--- /dev/null
+++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java
@@ -0,0 +1,242 @@
+/*
+ * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file 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 software.amazon.awssdk.services.s3;
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.function.Consumer;
+import software.amazon.awssdk.annotations.Immutable;
+import software.amazon.awssdk.annotations.SdkInternalApi;
+import software.amazon.awssdk.annotations.SdkPublicApi;
+import software.amazon.awssdk.awscore.client.config.AwsClientOption;
+import software.amazon.awssdk.awscore.internal.EndpointUtils;
+import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
+import software.amazon.awssdk.core.client.config.SdkClientOption;
+import software.amazon.awssdk.core.exception.SdkException;
+import software.amazon.awssdk.http.SdkHttpFullRequest;
+import software.amazon.awssdk.http.SdkHttpMethod;
+import software.amazon.awssdk.http.SdkHttpRequest;
+import software.amazon.awssdk.protocols.core.OperationInfo;
+import software.amazon.awssdk.protocols.core.PathMarshaller;
+import software.amazon.awssdk.protocols.core.ProtocolUtils;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.s3.internal.S3EndpointUtils;
+import software.amazon.awssdk.services.s3.model.GetUrlRequest;
+import software.amazon.awssdk.utils.Validate;
+
+/**
+ * Utilities for working with Amazon S3 objects. An instance of this class can be created by:
+ *
+ * 1) Directly using the {@link #builder()} method. You have to manually specify the configuration params like region,
+ * s3Configuration on the builder.
+ *
+ *
+ * S3Utilities utilities = S3Utilities.builder().region(Region.US_WEST_2).build()
+ * GetUrlRequest request = GetUrlRequest.builder().bucket("foo-bucket").key("key-without-spaces").build()
+ * URL url = pathStyleUtilities.getUrl(request);
+ *
+ *
+ *
+ *
+ * 2) Using the low-level client {@link S3Client#utilities()} method. This is recommended as SDK will use the same
+ * configuration from the {@link S3Client} object to create the {@link S3Utilities} object.
+ *
+ *
+ * S3Client s3client = S3Client.create();
+ * S3Utilities utilities = s3client.utilities();
+ * GetUrlRequest request = GetUrlRequest.builder().bucket("foo-bucket").key("key-without-spaces").build()
+ * URL url = pathStyleUtilities.getUrl(request);
+ *
+ *
+ *
+ * Note: This class does not make network calls.
+ */
+@Immutable
+@SdkPublicApi
+public final class S3Utilities {
+
+ private final Region region;
+
+ private final S3Configuration s3Configuration;
+
+ /**
+ * SDK currently validates that region is present while constructing {@link S3Utilities} object.
+ * This can be relaxed in the future when more methods are added that don't use region.
+ */
+ private S3Utilities(Builder builder) {
+ this.region = Validate.paramNotNull(builder.region, "Region");
+ this.s3Configuration = builder.s3Configuration;
+ }
+
+ /**
+ * Creates a builder for {@link S3Utilities}.
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ // Used by low-level client
+ @SdkInternalApi
+ static S3Utilities create(SdkClientConfiguration clientConfiguration) {
+ return S3Utilities.builder()
+ .region(clientConfiguration.option(AwsClientOption.AWS_REGION))
+ .s3Configuration((S3Configuration) clientConfiguration.option(SdkClientOption.SERVICE_CONFIGURATION))
+ .build();
+ }
+
+ /**
+ * Returns the URL for an object stored in Amazon S3.
+ *
+ * If the object identified by the given bucket and key has public read permissions,
+ * then this URL can be directly accessed to retrieve the object's data.
+ *
+ *
+ * If same configuration options are set on both #GetUrlRequest and #S3Utilities objects (for example: region),
+ * the configuration set on the #GetUrlRequest takes precedence.
+ *
+ *
+ *
+ * This is a convenience which creates an instance of the {@link GetUrlRequest.Builder} avoiding the need to
+ * create one manually via {@link GetUrlRequest#builder()}
+ *
+ *
+ * @param getUrlRequest A {@link Consumer} that will call methods on {@link GetUrlRequest.Builder} to create a request.
+ * @return A URL for an object stored in Amazon S3.
+ * @throws MalformedURLException Generated Url is malformed
+ */
+ public URL getUrl(Consumer getUrlRequest) {
+ return getUrl(GetUrlRequest.builder().applyMutation(getUrlRequest).build());
+ }
+
+ /**
+ * Returns the URL for an object stored in Amazon S3.
+ *
+ * If the object identified by the given bucket and key has public read permissions,
+ * then this URL can be directly accessed to retrieve the object's data.
+ *
+ *
+ * If same configuration options are set on both #GetUrlRequest and #S3Utilities objects (for example: region),
+ * the configuration set on the #GetUrlRequest takes precedence.
+ *
+ *
+ * @param getUrlRequest request to construct url
+ * @return A URL for an object stored in Amazon S3.
+ * @throws MalformedURLException Generated Url is malformed
+ */
+ public URL getUrl(GetUrlRequest getUrlRequest) {
+ Region resolvedRegion = resolveRegionForGetUrl(getUrlRequest);
+ URI resolvedEndpoint = resolveEndpoint(getUrlRequest.endpoint(), resolvedRegion);
+
+ SdkHttpFullRequest marshalledRequest = createMarshalledRequest(getUrlRequest, resolvedEndpoint);
+
+ SdkHttpRequest httpRequest = S3EndpointUtils.applyEndpointConfiguration(marshalledRequest,
+ getUrlRequest,
+ resolvedRegion,
+ s3Configuration,
+ getUrlRequest.bucket());
+
+ try {
+ return httpRequest.getUri().toURL();
+ } catch (MalformedURLException exception) {
+ throw SdkException.create(String.format("Generated URI is malformed: " + httpRequest.getUri()),
+ exception);
+ }
+ }
+
+ private Region resolveRegionForGetUrl(GetUrlRequest getUrlRequest) {
+ if (getUrlRequest.region() == null && this.region == null) {
+ throw new IllegalArgumentException("Region should be provided either in GetUrlRequest object or S3Utilities object");
+ }
+
+ return getUrlRequest.region() != null ? getUrlRequest.region() : this.region;
+ }
+
+ /**
+ * If endpoint is not present, construct a default endpoint using the region information.
+ */
+ private URI resolveEndpoint(URI endpoint, Region region) {
+ return endpoint != null ? endpoint
+ : EndpointUtils.buildEndpoint("https", "s3", region);
+ }
+
+ /**
+ * Create a {@link SdkHttpFullRequest} object with the bucket and key values marshalled into the path params.
+ */
+ private SdkHttpFullRequest createMarshalledRequest(GetUrlRequest getUrlRequest, URI endpoint) {
+ OperationInfo operationInfo = OperationInfo.builder()
+ .requestUri("/{Bucket}/{Key+}")
+ .httpMethod(SdkHttpMethod.HEAD)
+ .build();
+
+ SdkHttpFullRequest.Builder builder = ProtocolUtils.createSdkHttpRequest(operationInfo, endpoint);
+
+ // encode bucket
+ builder.encodedPath(PathMarshaller.NON_GREEDY.marshall(builder.encodedPath(),
+ "Bucket",
+ getUrlRequest.bucket()));
+
+ // encode key
+ builder.encodedPath(PathMarshaller.GREEDY.marshall(builder.encodedPath(), "Key", getUrlRequest.key()));
+
+ return builder.build();
+ }
+
+ /**
+ * Builder class to construct {@link S3Utilities} object
+ */
+ public static final class Builder {
+ private Region region;
+
+ private S3Configuration s3Configuration;
+
+ private Builder() {
+ }
+
+ /**
+ * The default region to use when working with the methods in {@link S3Utilities} class.
+ *
+ * There can be methods in {@link S3Utilities} that don't need the region info.
+ * In that case, this option will be ignored when using those methods.
+ *
+ * @return This object for method chaining
+ */
+ public Builder region(Region region) {
+ this.region = region;
+ return this;
+ }
+
+ /**
+ * Sets the S3 configuration to enable options like path style access, dual stack, accelerate mode etc.
+ *
+ * There can be methods in {@link S3Utilities} that don't need the region info.
+ * In that case, this option will be ignored when using those methods.
+ *
+ * @return This object for method chaining
+ */
+ public Builder s3Configuration(S3Configuration s3Configuration) {
+ this.s3Configuration = s3Configuration;
+ return this;
+ }
+
+ /**
+ * Construct a {@link S3Utilities} object.
+ */
+ public S3Utilities build() {
+ return new S3Utilities(this);
+ }
+ }
+}
diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/S3EndpointUtils.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/S3EndpointUtils.java
new file mode 100644
index 000000000000..95a26ce94a8c
--- /dev/null
+++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/S3EndpointUtils.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file 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 software.amazon.awssdk.services.s3.internal;
+
+import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Arrays;
+import java.util.List;
+import software.amazon.awssdk.annotations.SdkInternalApi;
+import software.amazon.awssdk.http.SdkHttpRequest;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.regions.RegionMetadata;
+import software.amazon.awssdk.services.s3.S3Configuration;
+import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
+import software.amazon.awssdk.services.s3.model.DeleteBucketRequest;
+import software.amazon.awssdk.services.s3.model.ListBucketsRequest;
+
+/**
+ * Utilities for working with Amazon S3 bucket names, such as validation and
+ * checked to see if they are compatible with DNS addressing.
+ */
+@SdkInternalApi
+public final class S3EndpointUtils {
+
+ public static final List> ACCELERATE_DISABLED_OPERATIONS = Arrays.asList(
+ ListBucketsRequest.class, CreateBucketRequest.class, DeleteBucketRequest.class);
+
+ private S3EndpointUtils() {
+ }
+
+ /**
+ * Returns a new instance of the given {@link SdkHttpRequest} by applying any endpoint changes based on
+ * the given {@link S3Configuration} options.
+ */
+ public static SdkHttpRequest applyEndpointConfiguration(SdkHttpRequest request,
+ Object originalRequest,
+ Region region,
+ S3Configuration serviceConfiguration,
+ String bucketName) {
+
+ SdkHttpRequest.Builder mutableRequest = request.toBuilder();
+
+ URI endpoint = resolveEndpoint(request, originalRequest, region, serviceConfiguration);
+ mutableRequest.uri(endpoint);
+
+ if (serviceConfiguration == null || !serviceConfiguration.pathStyleAccessEnabled()) {
+ if (bucketName != null) {
+ if (BucketUtils.isVirtualAddressingCompatibleBucketName(bucketName, false)) {
+ changeToDnsEndpoint(mutableRequest, bucketName);
+ }
+ }
+ }
+
+ return mutableRequest.build();
+ }
+
+ /**
+ * Determine which endpoint to use based on region and {@link S3Configuration}. Will either be a traditional
+ * S3 endpoint (i.e. s3.us-east-1.amazonaws.com), the global S3 accelerate endpoint (i.e. s3-accelerate.amazonaws.com) or
+ * a regional dualstack endpoint for IPV6 (i.e. s3.dualstack.us-east-1.amazonaws.com).
+ */
+ private static URI resolveEndpoint(SdkHttpRequest request,
+ Object originalRequest,
+ Region region,
+ S3Configuration serviceConfiguration) {
+ RegionMetadata regionMetadata = RegionMetadata.of(region);
+ String protocol = request.protocol();
+
+ if (isAccelerateEnabled(serviceConfiguration) && isAccelerateSupported(originalRequest)) {
+ return accelerateEndpoint(serviceConfiguration, regionMetadata, protocol);
+ }
+
+ if (serviceConfiguration != null && serviceConfiguration.dualstackEnabled()) {
+ return dualstackEndpoint(regionMetadata, protocol);
+ }
+
+ return invokeSafely(() -> new URI(request.protocol(), null, request.host(), request.port(), null, null, null));
+ }
+
+ /**
+ * Changes from path style addressing (which the marshallers produce by default, to DNS style or virtual style addressing
+ * where the bucket name is prepended to the host. DNS style addressing is preferred due to the better load balancing
+ * qualities it provides, path style is an option mainly for proxy based situations and alternative S3 implementations.
+ *
+ * @param mutableRequest Marshalled HTTP request we are modifying.
+ * @param bucketName Bucket name for this particular operation.
+ */
+ private static void changeToDnsEndpoint(SdkHttpRequest.Builder mutableRequest, String bucketName) {
+ if (mutableRequest.host().startsWith("s3")) {
+ String newHost = mutableRequest.host().replaceFirst("s3", bucketName + "." + "s3");
+ String newPath = mutableRequest.encodedPath().replaceFirst("/" + bucketName, "");
+
+ mutableRequest.host(newHost).encodedPath(newPath);
+ }
+ }
+
+ /**
+ * @return dual stack endpoint from given protocol and region metadata
+ */
+ private static URI dualstackEndpoint(RegionMetadata metadata, String protocol) {
+ String serviceEndpoint = String.format("%s.%s.%s.%s", "s3", "dualstack", metadata.id(), metadata.domain());
+ return toUri(protocol, serviceEndpoint);
+ }
+
+ /**
+ * @return True if accelerate mode is enabled per {@link S3Configuration}, false if not.
+ */
+ private static boolean isAccelerateEnabled(S3Configuration serviceConfiguration) {
+ return serviceConfiguration != null && serviceConfiguration.accelerateModeEnabled();
+ }
+
+ /**
+ * @param originalRequest Request object to identify the operation.
+ * @return True if accelerate is supported for the given operation, false if not.
+ */
+ private static boolean isAccelerateSupported(Object originalRequest) {
+ return !ACCELERATE_DISABLED_OPERATIONS.contains(originalRequest.getClass());
+ }
+
+ /**
+ * @return The endpoint for an S3 accelerate enabled operation. S3 accelerate has a single global endpoint.
+ */
+ private static URI accelerateEndpoint(S3Configuration serviceConfiguration, RegionMetadata metadata, String protocol) {
+ if (serviceConfiguration.dualstackEnabled()) {
+ return toUri(protocol, "s3-accelerate.dualstack." + metadata.domain());
+ }
+ return toUri(protocol, "s3-accelerate." + metadata.domain());
+ }
+
+ private static URI toUri(String protocol, String endpoint) {
+ try {
+ return new URI(String.format("%s://%s", protocol, endpoint));
+ } catch (URISyntaxException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+}
diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptor.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptor.java
index 780ad88b7c55..5c678d2f2c82 100644
--- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptor.java
+++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptor.java
@@ -45,11 +45,15 @@ public Optional modifyHttpContent(Context.ModifyHttpRequest context
public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context,
ExecutionAttributes executionAttributes) {
if (context.request() instanceof CreateMultipartUploadRequest) {
- return context.httpRequest()
- .toBuilder()
- .putHeader(CONTENT_LENGTH, String.valueOf(0))
- .putHeader(CONTENT_TYPE, "binary/octet-stream")
- .build();
+ SdkHttpRequest.Builder builder = context.httpRequest()
+ .toBuilder()
+ .putHeader(CONTENT_LENGTH, String.valueOf(0));
+
+ if (!context.httpRequest().firstMatchingHeader(CONTENT_TYPE).isPresent()) {
+ builder.putHeader(CONTENT_TYPE, "binary/octet-stream");
+ }
+
+ return builder.build();
}
return context.httpRequest();
diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java
index c67ef4d2ef33..6c7bfe52c5b1 100644
--- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java
+++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java
@@ -15,12 +15,6 @@
package software.amazon.awssdk.services.s3.internal.handlers;
-import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Arrays;
-import java.util.List;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
import software.amazon.awssdk.awscore.AwsExecutionAttribute;
@@ -29,122 +23,24 @@
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
import software.amazon.awssdk.http.SdkHttpRequest;
-import software.amazon.awssdk.regions.Region;
-import software.amazon.awssdk.regions.RegionMetadata;
import software.amazon.awssdk.services.s3.S3Configuration;
-import software.amazon.awssdk.services.s3.internal.BucketUtils;
-import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
-import software.amazon.awssdk.services.s3.model.DeleteBucketRequest;
-import software.amazon.awssdk.services.s3.model.ListBucketsRequest;
+import software.amazon.awssdk.services.s3.internal.S3EndpointUtils;
@SdkInternalApi
public final class EndpointAddressInterceptor implements ExecutionInterceptor {
- private static final List> ACCELERATE_DISABLED_OPERATIONS = Arrays.asList(
- ListBucketsRequest.class, CreateBucketRequest.class, DeleteBucketRequest.class);
-
@Override
public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context,
ExecutionAttributes executionAttributes) {
- SdkHttpRequest request = context.httpRequest();
SdkRequest sdkRequest = context.request();
- S3Configuration serviceConfiguration =
- (S3Configuration) executionAttributes.getAttribute(AwsSignerExecutionAttribute.SERVICE_CONFIG);
- SdkHttpRequest.Builder mutableRequest = request.toBuilder();
-
- URI endpoint = resolveEndpoint(request, sdkRequest,
- executionAttributes, serviceConfiguration);
- mutableRequest.uri(endpoint);
-
- if (serviceConfiguration == null || !serviceConfiguration.pathStyleAccessEnabled()) {
- sdkRequest.getValueForField("Bucket", String.class).ifPresent(b -> {
- if (BucketUtils.isVirtualAddressingCompatibleBucketName(b, false)) {
- changeToDnsEndpoint(mutableRequest, b);
- }
- });
- }
-
- return mutableRequest.build();
- }
-
- /**
- * Determine which endpoint to use based on region and {@link S3Configuration}. Will either be a traditional
- * S3 endpoint (i.e. s3.us-east-1.amazonaws.com), the global S3 accelerate endpoint (i.e. s3-accelerate.amazonaws.com) or
- * a regional dualstack endpoint for IPV6 (i.e. s3.dualstack.us-east-1.amazonaws.com).
- */
- private URI resolveEndpoint(SdkHttpRequest request,
- SdkRequest originalRequest,
- ExecutionAttributes executionAttributes,
- S3Configuration serviceConfiguration) {
- Region region = executionAttributes.getAttribute(AwsExecutionAttribute.AWS_REGION);
- RegionMetadata regionMetadata = RegionMetadata.of(region);
- String protocol = request.protocol();
-
- if (isAccelerateEnabled(serviceConfiguration) && isAccelerateSupported(originalRequest)) {
- return accelerateEndpoint(serviceConfiguration, regionMetadata, protocol);
- }
-
- if (serviceConfiguration != null && serviceConfiguration.dualstackEnabled()) {
- return dualstackEndpoint(regionMetadata, protocol);
- }
-
- return invokeSafely(() -> new URI(request.protocol(), null, request.host(), request.port(), null, null, null));
- }
-
- private static URI dualstackEndpoint(RegionMetadata metadata, String protocol) {
- String serviceEndpoint = String.format("%s.%s.%s.%s", "s3", "dualstack", metadata.id(), metadata.domain());
- return toUri(protocol, serviceEndpoint);
- }
-
- /**
- * @return True if accelerate mode is enabled per {@link S3Configuration}, false if not.
- */
- private static boolean isAccelerateEnabled(S3Configuration serviceConfiguration) {
- return serviceConfiguration != null && serviceConfiguration.accelerateModeEnabled();
- }
-
- /**
- * @param originalRequest Request object to identify the operation.
- * @return True if accelerate is supported for the given operation, false if not.
- */
- private boolean isAccelerateSupported(Object originalRequest) {
- return !ACCELERATE_DISABLED_OPERATIONS.contains(originalRequest.getClass());
- }
-
- /**
- * @return The endpoint for an S3 accelerate enabled operation. S3 accelerate has a single global endpoint.
- */
- private static URI accelerateEndpoint(S3Configuration serviceConfiguration, RegionMetadata metadata, String protocol) {
- if (serviceConfiguration.dualstackEnabled()) {
- return toUri(protocol, "s3-accelerate.dualstack." + metadata.domain());
- }
- return toUri(protocol, "s3-accelerate." + metadata.domain());
- }
-
- private static URI toUri(String protocol, String endpoint) {
- try {
- return new URI(String.format("%s://%s", protocol, endpoint));
- } catch (URISyntaxException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- /**
- * Changes from path style addressing (which the marshallers produce by default, to DNS style or virtual style addressing
- * where the bucket name is prepended to the host. DNS style addressing is preferred due to the better load balancing
- * qualities it provides, path style is an option mainly for proxy based situations and alternative S3 implementations.
- *
- * @param mutableRequest Marshalled HTTP request we are modifying.
- * @param bucketName Bucket name for this particular operation.
- */
- private void changeToDnsEndpoint(SdkHttpRequest.Builder mutableRequest, String bucketName) {
- if (mutableRequest.host().startsWith("s3")) {
- String newHost = mutableRequest.host().replaceFirst("s3", bucketName + "." + "s3");
- String newPath = mutableRequest.encodedPath().replaceFirst("/" + bucketName, "");
-
- mutableRequest.host(newHost).encodedPath(newPath);
- }
+ return S3EndpointUtils.applyEndpointConfiguration(context.httpRequest(),
+ sdkRequest,
+ executionAttributes.getAttribute(AwsExecutionAttribute.AWS_REGION),
+ (S3Configuration) executionAttributes
+ .getAttribute(AwsSignerExecutionAttribute.SERVICE_CONFIG),
+ sdkRequest.getValueForField("Bucket", String.class)
+ .orElse(null));
}
}
diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/model/GetUrlRequest.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/model/GetUrlRequest.java
new file mode 100644
index 000000000000..104ffbc91343
--- /dev/null
+++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/model/GetUrlRequest.java
@@ -0,0 +1,228 @@
+/*
+ * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file 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 software.amazon.awssdk.services.s3.model;
+
+import java.net.URI;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+import software.amazon.awssdk.annotations.SdkPublicApi;
+import software.amazon.awssdk.core.SdkField;
+import software.amazon.awssdk.core.SdkPojo;
+import software.amazon.awssdk.core.protocol.MarshallLocation;
+import software.amazon.awssdk.core.protocol.MarshallingType;
+import software.amazon.awssdk.core.traits.LocationTrait;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.utils.Validate;
+import software.amazon.awssdk.utils.builder.CopyableBuilder;
+import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
+
+/**
+ * Request to generate a URL representing an object in Amazon S3.
+ *
+ * If the object identified by the given bucket and key has public read permissions,
+ * then this URL can be directly accessed to retrieve the object's data.
+ */
+@SdkPublicApi
+public final class GetUrlRequest implements SdkPojo, ToCopyableBuilder {
+ private static final SdkField BUCKET_FIELD = SdkField
+ .builder(MarshallingType.STRING)
+ .getter(getter(GetUrlRequest::bucket))
+ .setter(setter(Builder::bucket))
+ .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("Bucket")
+ .unmarshallLocationName("Bucket").build()).build();
+
+ private static final SdkField KEY_FIELD = SdkField
+ .builder(MarshallingType.STRING)
+ .getter(getter(GetUrlRequest::key))
+ .setter(setter(Builder::key))
+ .traits(LocationTrait.builder().location(MarshallLocation.GREEDY_PATH).locationName("Key")
+ .unmarshallLocationName("Key").build()).build();
+
+ private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(BUCKET_FIELD, KEY_FIELD));
+
+ private final String bucket;
+
+ private final String key;
+
+ private final Region region;
+
+ private final URI endpoint;
+
+ private GetUrlRequest(BuilderImpl builder) {
+ this.bucket = Validate.paramNotBlank(builder.bucket, "Bucket");
+ this.key = Validate.paramNotBlank(builder.key, "Key");
+ this.region = builder.region;
+ this.endpoint = builder.endpoint;
+ }
+
+ /**
+ * @return The name of the bucket for the object
+ */
+ public String bucket() {
+ return bucket;
+ }
+
+ /**
+ * @return The key value for this object.
+ */
+ public String key() {
+ return key;
+ }
+
+ /**
+ * @return The region value to use for constructing the URL
+ */
+ public Region region() {
+ return region;
+ }
+
+ /**
+ * @return The endpoint value to use for constructing the URL
+ */
+ public URI endpoint() {
+ return endpoint;
+ }
+
+ @Override
+ public Builder toBuilder() {
+ return new BuilderImpl(this);
+ }
+
+ public static Builder builder() {
+ return new BuilderImpl();
+ }
+
+ public Optional getValueForField(String fieldName, Class clazz) {
+ switch (fieldName) {
+ case "Bucket":
+ return Optional.ofNullable(clazz.cast(bucket()));
+ case "Key":
+ return Optional.ofNullable(clazz.cast(key()));
+ default:
+ return Optional.empty();
+ }
+ }
+
+ @Override
+ public List> sdkFields() {
+ return SDK_FIELDS;
+ }
+
+ private static Function getter(Function g) {
+ return obj -> g.apply((GetUrlRequest) obj);
+ }
+
+ private static BiConsumer setter(BiConsumer s) {
+ return (obj, val) -> s.accept((Builder) obj, val);
+ }
+
+ public interface Builder extends SdkPojo, CopyableBuilder {
+ /**
+ * Sets the value of the Bucket property for this object.
+ *
+ * @param bucket
+ * The new value for the Bucket property for this object.
+ * @return Returns a reference to this object so that method calls can be chained together.
+ */
+ Builder bucket(String bucket);
+
+ /**
+ * Sets the value of the Key property for this object.
+ *
+ * @param key
+ * The new value for the Key property for this object.
+ * @return Returns a reference to this object so that method calls can be chained together.
+ */
+ Builder key(String key);
+
+ /**
+ * Sets the region to use for constructing the URL.
+ *
+ * @param region
+ * The region to use for constructing the URL.
+ * @return Returns a reference to this object so that method calls can be chained together.
+ */
+ Builder region(Region region);
+
+ /**
+ * Sets the endpoint to use for constructing the URL.
+ *
+ * @param endpoint
+ * The endpoint to use for constructing the URL.
+ * @return Returns a reference to this object so that method calls can be chained together.
+ */
+ Builder endpoint(URI endpoint);
+
+ }
+
+ private static final class BuilderImpl implements Builder {
+ private String bucket;
+
+ private String key;
+
+ private Region region;
+
+ private URI endpoint;
+
+ private BuilderImpl() {
+ }
+
+ private BuilderImpl(GetUrlRequest getUrlRequest) {
+ bucket(getUrlRequest.bucket);
+ key(getUrlRequest.key);
+ region(getUrlRequest.region);
+ endpoint(getUrlRequest.endpoint);
+ }
+
+ @Override
+ public Builder bucket(String bucket) {
+ this.bucket = bucket;
+ return this;
+ }
+
+ @Override
+ public Builder key(String key) {
+ this.key = key;
+ return this;
+ }
+
+ @Override
+ public Builder region(Region region) {
+ this.region = region;
+ return this;
+ }
+
+ @Override
+ public Builder endpoint(URI endpoint) {
+ this.endpoint = endpoint;
+ return this;
+ }
+
+ @Override
+ public GetUrlRequest build() {
+ return new GetUrlRequest(this);
+ }
+
+ @Override
+ public List> sdkFields() {
+ return SDK_FIELDS;
+ }
+ }
+}
diff --git a/services/s3/src/main/resources/codegen-resources/customization.config b/services/s3/src/main/resources/codegen-resources/customization.config
index 948f9a4f2838..c2f0c5245e8c 100644
--- a/services/s3/src/main/resources/codegen-resources/customization.config
+++ b/services/s3/src/main/resources/codegen-resources/customization.config
@@ -51,5 +51,11 @@
"GetBucketNotification",
"PutBucketLifecycle",
"PutBucketNotification"
- ]
+ ],
+ "utilitiesMethod": {
+ "returnType": "software.amazon.awssdk.services.s3.S3Utilities",
+ "createMethodParams": [
+ "clientConfiguration"
+ ]
+ }
}
diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/MultipartUploadTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/MultipartUploadTest.java
index 27819820255b..2ff1986e660d 100644
--- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/MultipartUploadTest.java
+++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/MultipartUploadTest.java
@@ -79,4 +79,17 @@ public void asyncCreateMultipartUpload_shouldHaveUploadsQueryParam() {
verify(anyRequestedFor(anyUrl()).withQueryParam("uploads", containing("")));
verify(anyRequestedFor(anyUrl()).withHeader(CONTENT_TYPE, equalTo("binary/octet-stream")));
}
+
+ @Test
+ public void createMultipartUpload_overrideContentType() {
+ String overrideContentType = "application/html";
+ stubFor(any(urlMatching(".*"))
+ .willReturn(aResponse().withStatus(200).withBody(" ")));
+ s3Client.createMultipartUpload(b -> b.key("key")
+ .bucket("bucket")
+ .overrideConfiguration(c -> c.putHeader(CONTENT_TYPE, overrideContentType)));
+
+ verify(anyRequestedFor(anyUrl()).withQueryParam("uploads", containing("")));
+ verify(anyRequestedFor(anyUrl()).withHeader(CONTENT_TYPE, equalTo(overrideContentType)));
+ }
}
diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3UtilitiesTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3UtilitiesTest.java
new file mode 100644
index 000000000000..93a90bcf708c
--- /dev/null
+++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3UtilitiesTest.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file 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 governings3
+ * permissions and limitations under the License.
+ */
+
+package software.amazon.awssdk.services.s3;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.s3.model.GetUrlRequest;
+
+public class S3UtilitiesTest {
+
+ private static final URI US_EAST_1_URI = URI.create("https://s3.amazonaws.com");
+
+ private static final S3Configuration ACCELERATE_AND_DUALSTACK_ENABLED = S3Configuration.builder()
+ .accelerateModeEnabled(true)
+ .dualstackEnabled(true)
+ .checksumValidationEnabled(true)
+ .build();
+ private static final S3Configuration PATH_STYLE_CONFIG = S3Configuration.builder()
+ .pathStyleAccessEnabled(true)
+ .build();
+
+ private static S3Client defaultClient;
+ private static S3Utilities defaultUtilities;
+
+ private static S3AsyncClient asyncClient;
+ private static S3Utilities utilitiesFromAsyncClient;
+
+ @BeforeClass
+ public static void setup() {
+ defaultClient = S3Client.builder()
+ .credentialsProvider(dummyCreds())
+ .region(Region.US_WEST_2)
+ .build();
+ defaultUtilities = defaultClient.utilities();
+
+ asyncClient = S3AsyncClient.builder()
+ .credentialsProvider(dummyCreds())
+ .region(Region.AP_NORTHEAST_2)
+ .build();
+ utilitiesFromAsyncClient = asyncClient.utilities();
+ }
+
+ @AfterClass
+ public static void cleanup() {
+ defaultClient.close();
+ asyncClient.close();
+ }
+
+ @Test
+ public void test_utilities_createdThroughS3Client() throws MalformedURLException {
+ assertThat(defaultUtilities.getUrl(requestWithoutSpaces())
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.us-west-2.amazonaws.com/key-without-spaces");
+
+ assertThat(defaultUtilities.getUrl(requestWithSpecialCharacters())
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.us-west-2.amazonaws.com/key%20with%40spaces");
+ }
+
+ @Test
+ public void test_utilities_withPathStyleAccessEnabled() throws MalformedURLException {
+ S3Utilities pathStyleUtilities = S3Utilities.builder()
+ .region(Region.US_WEST_2)
+ .s3Configuration(PATH_STYLE_CONFIG)
+ .build();
+
+ assertThat(pathStyleUtilities.getUrl(requestWithoutSpaces())
+ .toExternalForm())
+ .isEqualTo("https://s3.us-west-2.amazonaws.com/foo-bucket/key-without-spaces");
+
+ assertThat(pathStyleUtilities.getUrl(requestWithSpecialCharacters())
+ .toExternalForm())
+ .isEqualTo("https://s3.us-west-2.amazonaws.com/foo-bucket/key%20with%40spaces");
+ }
+
+ @Test
+ public void test_withUsEast1Region() throws MalformedURLException {
+ S3Utilities usEastUtilities = S3Utilities.builder().region(Region.US_EAST_1).build();
+
+ assertThat(usEastUtilities.getUrl(requestWithoutSpaces())
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.amazonaws.com/key-without-spaces");
+
+ assertThat(usEastUtilities.getUrl(requestWithSpecialCharacters()).toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.amazonaws.com/key%20with%40spaces");
+ }
+
+ @Test
+ public void test_RegionOnRequestTakesPrecendence() throws MalformedURLException {
+ S3Utilities utilities = S3Utilities.builder().region(Region.US_WEST_2).build();
+
+ assertThat(utilities.getUrl(b -> b.bucket("foo-bucket")
+ .key("key-without-spaces")
+ .region(Region.US_EAST_1))
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.amazonaws.com/key-without-spaces");
+ }
+
+ @Test
+ public void test_EndpointOnRequestTakesPrecendence() throws MalformedURLException {
+ assertThat(defaultUtilities.getUrl(GetUrlRequest.builder()
+ .bucket("foo-bucket")
+ .key("key-without-spaces")
+ .endpoint(US_EAST_1_URI)
+ .build())
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.amazonaws.com/key-without-spaces");
+ }
+
+ @Test
+ public void testWithAccelerateAndDualStackEnabled() throws MalformedURLException {
+ S3Utilities utilities = S3Client.builder()
+ .credentialsProvider(dummyCreds())
+ .region(Region.US_WEST_2)
+ .serviceConfiguration(ACCELERATE_AND_DUALSTACK_ENABLED)
+ .build()
+ .utilities();
+
+ assertThat(utilities.getUrl(requestWithSpecialCharacters())
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3-accelerate.dualstack.amazonaws.com/key%20with%40spaces");
+ }
+
+ @Test
+ public void testAsync() throws MalformedURLException {
+ assertThat(utilitiesFromAsyncClient.getUrl(requestWithoutSpaces())
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.ap-northeast-2.amazonaws.com/key-without-spaces");
+
+ assertThat(utilitiesFromAsyncClient.getUrl(requestWithSpecialCharacters())
+ .toExternalForm())
+ .isEqualTo("https://foo-bucket.s3.ap-northeast-2.amazonaws.com/key%20with%40spaces");
+ }
+
+ @Test (expected = NullPointerException.class)
+ public void failIfRegionIsNotSetOnS3UtilitiesObject() throws MalformedURLException {
+ S3Utilities.builder().build();
+ }
+
+ private static GetUrlRequest requestWithoutSpaces() {
+ return GetUrlRequest.builder()
+ .bucket("foo-bucket")
+ .key("key-without-spaces")
+ .build();
+ }
+
+ private static GetUrlRequest requestWithSpecialCharacters() {
+ return GetUrlRequest.builder()
+ .bucket("foo-bucket")
+ .key("key with@spaces")
+ .build();
+ }
+
+ private static AwsCredentialsProvider dummyCreds() {
+ return StaticCredentialsProvider.create(AwsBasicCredentials.create("akid", "skid"));
+ }
+}
diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptorTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptorTest.java
index c4cc11b9bd7d..13c034534fa4 100644
--- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptorTest.java
+++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/handlers/CreateMultipartUploadRequestInterceptorTest.java
@@ -18,6 +18,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static software.amazon.awssdk.http.Header.CONTENT_LENGTH;
import static software.amazon.awssdk.http.Header.CONTENT_TYPE;
+import static software.amazon.awssdk.services.s3.utils.InterceptorTestUtils.sdkHttpFullRequest;
import java.util.Collections;
import java.util.Optional;
@@ -55,6 +56,20 @@ public void createMultipartRequest_shouldModifyHttpRequest() {
assertThat(httpRequest.headers()).containsEntry(CONTENT_TYPE, Collections.singletonList("binary/octet-stream"));
}
+ @Test
+ public void createMultipartRequest_contentTypePresent_shouldNotModifyContentType() {
+ String overrideContentType = "application/json";
+ Context.ModifyHttpRequest modifyHttpRequest =
+ InterceptorTestUtils.modifyHttpRequestContext(CreateMultipartUploadRequest.builder().build(),
+ sdkHttpFullRequest().toBuilder()
+ .putHeader(CONTENT_TYPE, overrideContentType).build());
+
+ SdkHttpRequest httpRequest = interceptor.modifyHttpRequest(modifyHttpRequest, new ExecutionAttributes());
+ assertThat(httpRequest).isNotEqualTo(modifyHttpRequest.httpRequest());
+ assertThat(httpRequest.headers()).containsEntry(CONTENT_LENGTH, Collections.singletonList("0"));
+ assertThat(httpRequest.headers()).containsEntry(CONTENT_TYPE, Collections.singletonList(overrideContentType));
+ }
+
@Test
public void nonCreateMultipartRequest_shouldNotModifyHttpContent() {
Context.ModifyHttpRequest modifyHttpRequest =
diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/utils/InterceptorTestUtils.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/utils/InterceptorTestUtils.java
index ef3503fcc23f..3228d86825dd 100644
--- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/utils/InterceptorTestUtils.java
+++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/utils/InterceptorTestUtils.java
@@ -26,7 +26,6 @@
import software.amazon.awssdk.core.async.EmptyPublisher;
import software.amazon.awssdk.core.interceptor.Context;
import software.amazon.awssdk.core.sync.RequestBody;
-import software.amazon.awssdk.http.AbortableInputStream;
import software.amazon.awssdk.http.SdkHttpFullRequest;
import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpRequest;
@@ -87,14 +86,17 @@ public SdkRequest request() {
}
public static Context.ModifyHttpRequest modifyHttpRequestContext(SdkRequest request) {
+ return modifyHttpRequestContext(request, sdkHttpFullRequest());
+ }
+
+ public static Context.ModifyHttpRequest modifyHttpRequestContext(SdkRequest request, SdkHttpRequest sdkHttpRequest) {
Optional requestBody = Optional.of(RequestBody.fromString("helloworld"));
Optional asyncRequestBody = Optional.of(AsyncRequestBody.fromString("helloworld"));
- SdkHttpFullRequest sdkHttpFullRequest = sdkHttpFullRequest();
return new Context.ModifyHttpRequest() {
@Override
public SdkHttpRequest httpRequest() {
- return sdkHttpFullRequest;
+ return sdkHttpRequest;
}
@Override
diff --git a/services/sagemaker/pom.xml b/services/sagemaker/pom.xml
index a1b0b754cb7c..72a8b7e706d1 100644
--- a/services/sagemaker/pom.xml
+++ b/services/sagemaker/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
sagemaker
diff --git a/services/sagemakerruntime/pom.xml b/services/sagemakerruntime/pom.xml
index 904849dae034..57a9b218f2ef 100644
--- a/services/sagemakerruntime/pom.xml
+++ b/services/sagemakerruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
sagemakerruntime
AWS Java SDK :: Services :: SageMaker Runtime
diff --git a/services/secretsmanager/pom.xml b/services/secretsmanager/pom.xml
index b189b4888ba8..451fda60b9f1 100644
--- a/services/secretsmanager/pom.xml
+++ b/services/secretsmanager/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
secretsmanager
AWS Java SDK :: Services :: AWS Secrets Manager
diff --git a/services/securityhub/pom.xml b/services/securityhub/pom.xml
index f78b57050715..62413b526f0f 100644
--- a/services/securityhub/pom.xml
+++ b/services/securityhub/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
securityhub
AWS Java SDK :: Services :: SecurityHub
diff --git a/services/serverlessapplicationrepository/pom.xml b/services/serverlessapplicationrepository/pom.xml
index 42d69c92b9d8..1d863cdf894b 100644
--- a/services/serverlessapplicationrepository/pom.xml
+++ b/services/serverlessapplicationrepository/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
serverlessapplicationrepository
diff --git a/services/servicecatalog/pom.xml b/services/servicecatalog/pom.xml
index ac336994a3a3..89470d9a1582 100644
--- a/services/servicecatalog/pom.xml
+++ b/services/servicecatalog/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
servicecatalog
AWS Java SDK :: Services :: AWS Service Catalog
diff --git a/services/servicediscovery/pom.xml b/services/servicediscovery/pom.xml
index 1db62ddee8eb..44bae2e2c0ed 100644
--- a/services/servicediscovery/pom.xml
+++ b/services/servicediscovery/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
servicediscovery
diff --git a/services/ses/pom.xml b/services/ses/pom.xml
index 2068cb7adc54..f7246cbd4b88 100644
--- a/services/ses/pom.xml
+++ b/services/ses/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
ses
AWS Java SDK :: Services :: Amazon SES
diff --git a/services/sfn/pom.xml b/services/sfn/pom.xml
index b8b4b1231961..a60497e0fedb 100644
--- a/services/sfn/pom.xml
+++ b/services/sfn/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
sfn
AWS Java SDK :: Services :: AWS Step Functions
diff --git a/services/shield/pom.xml b/services/shield/pom.xml
index 7d89e23e32fe..514fb5fd0e5b 100644
--- a/services/shield/pom.xml
+++ b/services/shield/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
shield
AWS Java SDK :: Services :: AWS Shield
diff --git a/services/signer/pom.xml b/services/signer/pom.xml
index 458db4808327..efbc4d438354 100644
--- a/services/signer/pom.xml
+++ b/services/signer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
signer
AWS Java SDK :: Services :: signer
diff --git a/services/sms/pom.xml b/services/sms/pom.xml
index 422f38fb003b..ce077a959bca 100644
--- a/services/sms/pom.xml
+++ b/services/sms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
sms
AWS Java SDK :: Services :: AWS Server Migration
diff --git a/services/snowball/pom.xml b/services/snowball/pom.xml
index 80365b1f77e4..9d1ca998b5db 100644
--- a/services/snowball/pom.xml
+++ b/services/snowball/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
snowball
AWS Java SDK :: Services :: Amazon Snowball
diff --git a/services/sns/pom.xml b/services/sns/pom.xml
index 7f4a62d68f7b..8427e7fbb05b 100644
--- a/services/sns/pom.xml
+++ b/services/sns/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
sns
AWS Java SDK :: Services :: Amazon SNS
diff --git a/services/sqs/pom.xml b/services/sqs/pom.xml
index aba7bcd6cab4..4194540e63d0 100644
--- a/services/sqs/pom.xml
+++ b/services/sqs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
sqs
AWS Java SDK :: Services :: Amazon SQS
diff --git a/services/ssm/pom.xml b/services/ssm/pom.xml
index 3090f804c0c8..c00ae031509e 100644
--- a/services/ssm/pom.xml
+++ b/services/ssm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
ssm
AWS Java SDK :: Services :: AWS Simple Systems Management (SSM)
diff --git a/services/storagegateway/pom.xml b/services/storagegateway/pom.xml
index d0627a5024bc..b30b650e4857 100644
--- a/services/storagegateway/pom.xml
+++ b/services/storagegateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
storagegateway
AWS Java SDK :: Services :: AWS Storage Gateway
diff --git a/services/sts/pom.xml b/services/sts/pom.xml
index f19c810297bc..0b0bbe8df5ab 100644
--- a/services/sts/pom.xml
+++ b/services/sts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
sts
AWS Java SDK :: Services :: AWS STS
diff --git a/services/support/pom.xml b/services/support/pom.xml
index 7d05c3128277..c684d313435a 100644
--- a/services/support/pom.xml
+++ b/services/support/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
support
AWS Java SDK :: Services :: AWS Support
diff --git a/services/swf/pom.xml b/services/swf/pom.xml
index a05c96725110..dbc6d81b6f41 100644
--- a/services/swf/pom.xml
+++ b/services/swf/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
swf
AWS Java SDK :: Services :: Amazon SWF
diff --git a/services/textract/pom.xml b/services/textract/pom.xml
index 795c5f96427e..a5145e9b0ba4 100644
--- a/services/textract/pom.xml
+++ b/services/textract/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
textract
AWS Java SDK :: Services :: Textract
diff --git a/services/transcribe/pom.xml b/services/transcribe/pom.xml
index 31d9c829ddfa..af7e3ce4959e 100644
--- a/services/transcribe/pom.xml
+++ b/services/transcribe/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
transcribe
AWS Java SDK :: Services :: Transcribe
diff --git a/services/transcribestreaming/pom.xml b/services/transcribestreaming/pom.xml
index 81e097d28c57..6fb56d78e15a 100644
--- a/services/transcribestreaming/pom.xml
+++ b/services/transcribestreaming/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
transcribestreaming
AWS Java SDK :: Services :: AWS Transcribe Streaming
diff --git a/services/transfer/pom.xml b/services/transfer/pom.xml
index bb4e3f22c160..1762adb8f7ed 100644
--- a/services/transfer/pom.xml
+++ b/services/transfer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
transfer
AWS Java SDK :: Services :: Transfer
diff --git a/services/translate/pom.xml b/services/translate/pom.xml
index c36e714bc63e..3c230c024541 100644
--- a/services/translate/pom.xml
+++ b/services/translate/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
translate
diff --git a/services/waf/pom.xml b/services/waf/pom.xml
index 927589eda18e..1e5bf991c61b 100644
--- a/services/waf/pom.xml
+++ b/services/waf/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
waf
AWS Java SDK :: Services :: AWS WAF
diff --git a/services/workdocs/pom.xml b/services/workdocs/pom.xml
index a7fb7437448c..ab266fda38a3 100644
--- a/services/workdocs/pom.xml
+++ b/services/workdocs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
workdocs
AWS Java SDK :: Services :: Amazon WorkDocs
diff --git a/services/worklink/pom.xml b/services/worklink/pom.xml
index 975245e6824f..a36a0568c2e3 100644
--- a/services/worklink/pom.xml
+++ b/services/worklink/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
worklink
AWS Java SDK :: Services :: WorkLink
diff --git a/services/workmail/pom.xml b/services/workmail/pom.xml
index 5abc46cf7c9c..f31f8ad20f10 100644
--- a/services/workmail/pom.xml
+++ b/services/workmail/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
workmail
diff --git a/services/workspaces/pom.xml b/services/workspaces/pom.xml
index a435f6695260..c4c8d0880b31 100644
--- a/services/workspaces/pom.xml
+++ b/services/workspaces/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
workspaces
AWS Java SDK :: Services :: Amazon WorkSpaces
diff --git a/services/xray/pom.xml b/services/xray/pom.xml
index db02fa018d67..32eb4fab0796 100644
--- a/services/xray/pom.xml
+++ b/services/xray/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.5.11
+ 2.5.12
xray
AWS Java SDK :: Services :: AWS X-Ray
diff --git a/test/codegen-generated-classes-test/pom.xml b/test/codegen-generated-classes-test/pom.xml
index 8e9454c58572..d0b97787ae98 100644
--- a/test/codegen-generated-classes-test/pom.xml
+++ b/test/codegen-generated-classes-test/pom.xml
@@ -6,7 +6,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
../../pom.xml
diff --git a/test/dynamodbdocument-v1/pom.xml b/test/dynamodbdocument-v1/pom.xml
index 6fd7b57744bc..24e26eb7168a 100644
--- a/test/dynamodbdocument-v1/pom.xml
+++ b/test/dynamodbdocument-v1/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
../../pom.xml
dynamodbdocument-v1
diff --git a/test/dynamodbmapper-v1/pom.xml b/test/dynamodbmapper-v1/pom.xml
index bec207c85a3a..81d703428248 100644
--- a/test/dynamodbmapper-v1/pom.xml
+++ b/test/dynamodbmapper-v1/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
../../pom.xml
dynamodbmapper-v1
diff --git a/test/http-client-tests/pom.xml b/test/http-client-tests/pom.xml
index df1abfed352d..1463542df32e 100644
--- a/test/http-client-tests/pom.xml
+++ b/test/http-client-tests/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
../../pom.xml
http-client-tests
diff --git a/test/module-path-tests/pom.xml b/test/module-path-tests/pom.xml
index 7d2cd56730b5..9cba9f55d730 100644
--- a/test/module-path-tests/pom.xml
+++ b/test/module-path-tests/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
../../pom.xml
4.0.0
diff --git a/test/protocol-tests-core/pom.xml b/test/protocol-tests-core/pom.xml
index 9b4c3fe5db97..dbab1f90406c 100644
--- a/test/protocol-tests-core/pom.xml
+++ b/test/protocol-tests-core/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
../../pom.xml
4.0.0
diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml
index 5e8d50e63829..cd40377c73a4 100644
--- a/test/protocol-tests/pom.xml
+++ b/test/protocol-tests/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
../../pom.xml
4.0.0
diff --git a/test/sdk-benchmarks/pom.xml b/test/sdk-benchmarks/pom.xml
index a33465f87f54..91a89b7df3e7 100755
--- a/test/sdk-benchmarks/pom.xml
+++ b/test/sdk-benchmarks/pom.xml
@@ -19,7 +19,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../../pom.xml
diff --git a/test/service-test-utils/pom.xml b/test/service-test-utils/pom.xml
index 08dcb5273e37..cc5668be3741 100644
--- a/test/service-test-utils/pom.xml
+++ b/test/service-test-utils/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../../pom.xml
service-test-utils
diff --git a/test/test-utils/pom.xml b/test/test-utils/pom.xml
index e65ae7690b52..13df9e0d9eed 100644
--- a/test/test-utils/pom.xml
+++ b/test/test-utils/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.5.11
+ 2.5.12
../../pom.xml
test-utils
diff --git a/utils/pom.xml b/utils/pom.xml
index 22348bf51e07..37a760cb415b 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.5.11
+ 2.5.12
4.0.0
diff --git a/utils/src/main/java/software/amazon/awssdk/utils/JavaSystemSetting.java b/utils/src/main/java/software/amazon/awssdk/utils/JavaSystemSetting.java
index 6b2c34a67089..7cbf0798cdb5 100644
--- a/utils/src/main/java/software/amazon/awssdk/utils/JavaSystemSetting.java
+++ b/utils/src/main/java/software/amazon/awssdk/utils/JavaSystemSetting.java
@@ -23,6 +23,7 @@
@SdkProtectedApi
public enum JavaSystemSetting implements SystemSetting {
JAVA_VERSION("java.version"),
+ JAVA_VENDOR("java.vendor"),
TEMP_DIRECTORY("java.io.tmpdir"),
JAVA_VM_NAME("java.vm.name"),
JAVA_VM_VERSION("java.vm.version"),