internalPlugins(SdkClientConfiguration config) {
return Collections.emptyList();
}
+ private AccountIdEndpointMode resolveAccountIdEndpointMode(SdkClientConfiguration config) {
+ AccountIdEndpointMode configuredMode = config.option(AwsClientOption.ACCOUNT_ID_ENDPOINT_MODE);
+ if (configuredMode == null) {
+ configuredMode = AccountIdEndpointModeResolver.create()
+ .profileFile(config.option(SdkClientOption.PROFILE_FILE_SUPPLIER))
+ .profileName(config.option(SdkClientOption.PROFILE_NAME)).defaultMode(AccountIdEndpointMode.PREFERRED)
+ .resolve();
+ }
+ return configuredMode;
+ }
+
protected static void validateClientOptions(SdkClientConfiguration c) {
Validate.notNull(c.option(SdkAdvancedClientOption.SIGNER),
"The 'overrideConfiguration.advancedOption[SIGNER]' must be configured in the client builder.");
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-endpointparams-client-builder-interface.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-endpointparams-client-builder-interface.java
new file mode 100644
index 000000000000..2b8c8460e2c3
--- /dev/null
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-endpointparams-client-builder-interface.java
@@ -0,0 +1,80 @@
+package software.amazon.awssdk.services.query;
+
+import software.amazon.awssdk.annotations.Generated;
+import software.amazon.awssdk.annotations.SdkPublicApi;
+import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider;
+import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode;
+import software.amazon.awssdk.identity.spi.IdentityProvider;
+import software.amazon.awssdk.identity.spi.TokenIdentity;
+import software.amazon.awssdk.services.query.auth.scheme.QueryAuthSchemeProvider;
+import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider;
+
+/**
+ * This includes configuration specific to Query Service that is supported by both {@link QueryClientBuilder} and
+ * {@link QueryAsyncClientBuilder}.
+ */
+@Generated("software.amazon.awssdk:codegen")
+@SdkPublicApi
+public interface QueryBaseClientBuilder, C> extends AwsClientBuilder {
+ /**
+ * Set the {@link QueryEndpointProvider} implementation that will be used by the client to determine the endpoint
+ * for each request. This is optional; if none is provided a default implementation will be used the SDK.
+ */
+ default B endpointProvider(QueryEndpointProvider endpointProvider) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Set the {@link QueryAuthSchemeProvider} implementation that will be used by the client to resolve the auth scheme
+ * for each request. This is optional; if none is provided a default implementation will be used the SDK.
+ */
+ default B authSchemeProvider(QueryAuthSchemeProvider authSchemeProvider) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * A boolean client context parameter
+ */
+ B booleanContextParam(Boolean booleanContextParam);
+
+ /**
+ * a string client context parameter
+ */
+ B stringContextParam(String stringContextParam);
+
+ /**
+ * Sets the behavior when account ID based endpoints are created. See {@link AccountIdEndpointMode} for values
+ */
+ B accountIdEndpointMode(AccountIdEndpointMode accountIdEndpointMode);
+
+ /**
+ * Set the token provider to use for bearer token authorization. This is optional, if none is provided, the SDK will
+ * use {@link software.amazon.awssdk.auth.token.credentials.aws.DefaultAwsTokenProvider}.
+ *
+ * If the service, or any of its operations require Bearer Token Authorization, then the SDK will default to this
+ * token provider to retrieve the token to use for authorization.
+ *
+ * This provider works in conjunction with the
+ * {@code software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.TOKEN_SIGNER} set on the client. By
+ * default it is {@link software.amazon.awssdk.auth.token.signer.aws.BearerTokenSigner}.
+ */
+ default B tokenProvider(SdkTokenProvider tokenProvider) {
+ return tokenProvider((IdentityProvider extends TokenIdentity>) tokenProvider);
+ }
+
+ /**
+ * Set the token provider to use for bearer token authorization. This is optional, if none is provided, the SDK will
+ * use {@link software.amazon.awssdk.auth.token.credentials.aws.DefaultAwsTokenProvider}.
+ *
+ * If the service, or any of its operations require Bearer Token Authorization, then the SDK will default to this
+ * token provider to retrieve the token to use for authorization.
+ *
+ * This provider works in conjunction with the
+ * {@code software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.TOKEN_SIGNER} set on the client. By
+ * default it is {@link software.amazon.awssdk.auth.token.signer.aws.BearerTokenSigner}.
+ */
+ default B tokenProvider(IdentityProvider extends TokenIdentity> tokenProvider) {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java
index 5e7c97377b7c..7b477cc3df0e 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java
@@ -11,6 +11,8 @@
import software.amazon.awssdk.auth.token.signer.aws.BearerTokenSigner;
import software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder;
import software.amazon.awssdk.awscore.client.config.AwsClientOption;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointModeResolver;
import software.amazon.awssdk.core.SdkPlugin;
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
@@ -82,8 +84,9 @@ protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientCon
}
return result.build();
});
- builder.option(SdkClientOption.EXECUTION_INTERCEPTORS, interceptors).option(SdkClientOption.CLIENT_CONTEXT_PARAMS,
- clientContextParams.build());
+ builder.option(SdkClientOption.EXECUTION_INTERCEPTORS, interceptors)
+ .option(SdkClientOption.CLIENT_CONTEXT_PARAMS, clientContextParams.build())
+ .option(AwsClientOption.ACCOUNT_ID_ENDPOINT_MODE, resolveAccountIdEndpointMode(config));
return builder.build();
}
@@ -110,6 +113,11 @@ public B stringContextParam(String stringContextParam) {
return thisBuilder();
}
+ public B accountIdEndpointMode(AccountIdEndpointMode accountIdEndpointMode) {
+ clientConfiguration.option(AwsClientOption.ACCOUNT_ID_ENDPOINT_MODE, accountIdEndpointMode);
+ return thisBuilder();
+ }
+
private IdentityProvider extends TokenIdentity> defaultTokenProvider() {
return DefaultAwsTokenProvider.create();
}
@@ -138,6 +146,17 @@ private List internalPlugins(SdkClientConfiguration config) {
return Collections.emptyList();
}
+ private AccountIdEndpointMode resolveAccountIdEndpointMode(SdkClientConfiguration config) {
+ AccountIdEndpointMode configuredMode = config.option(AwsClientOption.ACCOUNT_ID_ENDPOINT_MODE);
+ if (configuredMode == null) {
+ configuredMode = AccountIdEndpointModeResolver.create()
+ .profileFile(config.option(SdkClientOption.PROFILE_FILE_SUPPLIER))
+ .profileName(config.option(SdkClientOption.PROFILE_NAME)).defaultMode(AccountIdEndpointMode.PREFERRED)
+ .resolve();
+ }
+ return configuredMode;
+ }
+
protected static void validateClientOptions(SdkClientConfiguration c) {
Validate.notNull(c.option(SdkAdvancedClientOption.SIGNER),
"The 'overrideConfiguration.advancedOption[SIGNER]' must be configured in the client builder.");
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/composedclient/customization.config b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/composedclient/customization.config
index 5f33dce1133f..1e2f92deee04 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/composedclient/customization.config
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/composedclient/customization.config
@@ -11,7 +11,7 @@
"asyncClientDecorator": "software.amazon.awssdk.services.builder.AsyncClientDecorator",
"asyncClientDecoratorClass": true,
"syncClientDecoratorClass": true,
- "customClientContextParams":{
+ "customClientContextParams":{
"CustomParameter":{
"documentation":"Enables this client to use Custom Parameter",
"type":"boolean"
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-rule-set.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-rule-set.json
index dff6431e44c2..13da37d1d7ee 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-rule-set.json
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-rule-set.json
@@ -16,6 +16,14 @@
"type": "boolean",
"builtIn": "AWS::UseFIPS"
},
+ "awsAccountId": {
+ "type": "String",
+ "builtIn": "AWS::Auth::AccountId"
+ },
+ "awsAccountIdEndpointMode": {
+ "type": "String",
+ "builtIn": "AWS::Auth::AccountIdEndpointMode"
+ },
"endpointId": {
"type": "string"
},
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-parameters.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-parameters.java
index 7180601639af..7ba01efd69e4 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-parameters.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-parameters.java
@@ -18,6 +18,11 @@ public final class QueryEndpointParams implements ToCopyableBuilder {
Builder useFipsEndpoint(Boolean useFIPSEndpoint);
+ Builder awsAccountId(String awsAccountId);
+
+ Builder awsAccountIdEndpointMode(String awsAccountIdEndpointMode);
+
Builder endpointId(String endpointId);
Builder defaultTrueParam(Boolean defaultTrueParam);
@@ -126,6 +145,10 @@ private static class BuilderImpl implements Builder {
private Boolean useFIPSEndpoint;
+ private String awsAccountId;
+
+ private String awsAccountIdEndpointMode;
+
private String endpointId;
private Boolean defaultTrueParam = true;
@@ -147,6 +170,8 @@ private BuilderImpl(QueryEndpointParams builder) {
this.region = builder.region;
this.useDualStackEndpoint = builder.useDualStackEndpoint;
this.useFIPSEndpoint = builder.useFIPSEndpoint;
+ this.awsAccountId = builder.awsAccountId;
+ this.awsAccountIdEndpointMode = builder.awsAccountIdEndpointMode;
this.endpointId = builder.endpointId;
this.defaultTrueParam = builder.defaultTrueParam;
this.defaultStringParam = builder.defaultStringParam;
@@ -174,6 +199,18 @@ public Builder useFipsEndpoint(Boolean useFIPSEndpoint) {
return this;
}
+ @Override
+ public Builder awsAccountId(String awsAccountId) {
+ this.awsAccountId = awsAccountId;
+ return this;
+ }
+
+ @Override
+ public Builder awsAccountIdEndpointMode(String awsAccountIdEndpointMode) {
+ this.awsAccountIdEndpointMode = awsAccountIdEndpointMode;
+ return this;
+ }
+
@Override
public Builder endpointId(String endpointId) {
this.endpointId = endpointId;
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java
index 8aef420f4a00..82ae4b7717e0 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java
@@ -54,6 +54,12 @@ private static Map toIdentifierValueMap(QueryEndpointParams p
if (params.useFipsEndpoint() != null) {
paramsMap.put(Identifier.of("useFIPSEndpoint"), Value.fromBool(params.useFipsEndpoint()));
}
+ if (params.awsAccountId() != null) {
+ paramsMap.put(Identifier.of("awsAccountId"), Value.fromStr(params.awsAccountId()));
+ }
+ if (params.awsAccountIdEndpointMode() != null) {
+ paramsMap.put(Identifier.of("awsAccountIdEndpointMode"), Value.fromStr(params.awsAccountIdEndpointMode()));
+ }
if (params.endpointId() != null) {
paramsMap.put(Identifier.of("endpointId"), Value.fromStr(params.endpointId()));
}
@@ -339,6 +345,13 @@ private static EndpointRuleset ruleSet() {
.addParameter(
Parameter.builder().name("useFIPSEndpoint").type(ParameterType.fromValue("boolean"))
.required(false).builtIn("AWS::UseFIPS").build())
+ .addParameter(
+ Parameter.builder().name("awsAccountId").type(ParameterType.fromValue("String"))
+ .required(false).builtIn("AWS::Auth::AccountId").build())
+ .addParameter(
+ Parameter.builder().name("awsAccountIdEndpointMode")
+ .type(ParameterType.fromValue("String")).required(false)
+ .builtIn("AWS::Auth::AccountIdEndpointMode").build())
.addParameter(
Parameter.builder().name("endpointId").type(ParameterType.fromValue("string"))
.required(false).build())
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java
index ea1d2442d4ae..d8507c97a01c 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java
@@ -53,6 +53,12 @@ private static Map toIdentifierValueMap(QueryEndpointParams p
if (params.useFipsEndpoint() != null) {
paramsMap.put(Identifier.of("useFIPSEndpoint"), Value.fromBool(params.useFipsEndpoint()));
}
+ if (params.awsAccountId() != null) {
+ paramsMap.put(Identifier.of("awsAccountId"), Value.fromStr(params.awsAccountId()));
+ }
+ if (params.awsAccountIdEndpointMode() != null) {
+ paramsMap.put(Identifier.of("awsAccountIdEndpointMode"), Value.fromStr(params.awsAccountIdEndpointMode()));
+ }
if (params.endpointId() != null) {
paramsMap.put(Identifier.of("endpointId"), Value.fromStr(params.endpointId()));
}
@@ -338,6 +344,13 @@ private static EndpointRuleset ruleSet() {
.addParameter(
Parameter.builder().name("useFIPSEndpoint").type(ParameterType.fromValue("boolean"))
.required(false).builtIn("AWS::UseFIPS").build())
+ .addParameter(
+ Parameter.builder().name("awsAccountId").type(ParameterType.fromValue("String"))
+ .required(false).builtIn("AWS::Auth::AccountId").build())
+ .addParameter(
+ Parameter.builder().name("awsAccountIdEndpointMode")
+ .type(ParameterType.fromValue("String")).required(false)
+ .builtIn("AWS::Auth::AccountIdEndpointMode").build())
.addParameter(
Parameter.builder().name("endpointId").type(ParameterType.fromValue("string"))
.required(false).build())
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java
index e8c672150ac4..b7a7adfd9ecb 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java
@@ -31,6 +31,7 @@
import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner;
import software.amazon.awssdk.http.auth.aws.signer.RegionSet;
import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption;
+import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.identity.spi.Identity;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.services.query.endpoints.QueryClientContextParams;
@@ -38,6 +39,8 @@
import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider;
import software.amazon.awssdk.services.query.model.OperationWithContextParamRequest;
import software.amazon.awssdk.utils.AttributeMap;
+import software.amazon.awssdk.utils.CompletableFutureUtils;
+
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
@@ -113,6 +116,10 @@ public static QueryEndpointParams ruleParams(SdkRequest request, ExecutionAttrib
builder.region(AwsEndpointProviderUtils.regionBuiltIn(executionAttributes));
builder.useDualStackEndpoint(AwsEndpointProviderUtils.dualStackEnabledBuiltIn(executionAttributes));
builder.useFipsEndpoint(AwsEndpointProviderUtils.fipsEnabledBuiltIn(executionAttributes));
+ builder.awsAccountId(accountIdFromIdentity(executionAttributes
+ .getAttribute(SdkInternalExecutionAttribute.SELECTED_AUTH_SCHEME)));
+ builder.awsAccountIdEndpointMode(executionAttributes
+ .getAttribute(AwsExecutionAttribute.AWS_AUTH_ACCOUNT_ID_ENDPOINT_MODE).name());
setClientContextParams(builder, executionAttributes);
setContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME), request);
setStaticContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME));
@@ -213,4 +220,13 @@ private Supplier signerProvider(EndpointAuthScheme authScheme) {
}
throw SdkClientException.create("Don't know how to create signer for auth scheme: " + authScheme.name());
}
+
+ private static String accountIdFromIdentity(SelectedAuthScheme selectedAuthScheme) {
+ T identity = CompletableFutureUtils.joinLikeSync(selectedAuthScheme.identity());
+ String accountId = null;
+ if (identity instanceof AwsCredentialsIdentity) {
+ accountId = ((AwsCredentialsIdentity) identity).accountId().orElse(null);
+ }
+ return accountId;
+ }
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java
index d1d044a3e382..aa6e18499af3 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java
@@ -26,6 +26,7 @@
import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner;
import software.amazon.awssdk.http.auth.aws.signer.RegionSet;
import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption;
+import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.identity.spi.Identity;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.services.query.endpoints.QueryClientContextParams;
@@ -33,6 +34,7 @@
import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider;
import software.amazon.awssdk.services.query.model.OperationWithContextParamRequest;
import software.amazon.awssdk.utils.AttributeMap;
+import software.amazon.awssdk.utils.CompletableFutureUtils;
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
@@ -96,6 +98,10 @@ public static QueryEndpointParams ruleParams(SdkRequest request, ExecutionAttrib
builder.region(AwsEndpointProviderUtils.regionBuiltIn(executionAttributes));
builder.useDualStackEndpoint(AwsEndpointProviderUtils.dualStackEnabledBuiltIn(executionAttributes));
builder.useFipsEndpoint(AwsEndpointProviderUtils.fipsEnabledBuiltIn(executionAttributes));
+ builder.awsAccountId(accountIdFromIdentity(executionAttributes
+ .getAttribute(SdkInternalExecutionAttribute.SELECTED_AUTH_SCHEME)));
+ builder.awsAccountIdEndpointMode(executionAttributes
+ .getAttribute(AwsExecutionAttribute.AWS_AUTH_ACCOUNT_ID_ENDPOINT_MODE).name());
setClientContextParams(builder, executionAttributes);
setContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME), request);
setStaticContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME));
@@ -187,4 +193,13 @@ private static Optional hostPrefix(String operationName, SdkRequest requ
return Optional.empty();
}
}
+
+ private static String accountIdFromIdentity(SelectedAuthScheme selectedAuthScheme) {
+ T identity = CompletableFutureUtils.joinLikeSync(selectedAuthScheme.identity());
+ String accountId = null;
+ if (identity instanceof AwsCredentialsIdentity) {
+ accountId = ((AwsCredentialsIdentity) identity).accountId().orElse(null);
+ }
+ return accountId;
+ }
}
diff --git a/core/annotations/pom.xml b/core/annotations/pom.xml
index 054104b7c377..85a024b9ae24 100644
--- a/core/annotations/pom.xml
+++ b/core/annotations/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/arns/pom.xml b/core/arns/pom.xml
index 8828e059b3c7..90eb5bd90bf0 100644
--- a/core/arns/pom.xml
+++ b/core/arns/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/auth-crt/pom.xml b/core/auth-crt/pom.xml
index 38ca20b3af67..e1233041ad5e 100644
--- a/core/auth-crt/pom.xml
+++ b/core/auth-crt/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
auth-crt
diff --git a/core/auth/pom.xml b/core/auth/pom.xml
index 824ddb83776c..e142273bb876 100644
--- a/core/auth/pom.xml
+++ b/core/auth/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
auth
diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/AwsBasicCredentials.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/AwsBasicCredentials.java
index 52c2ec149ad6..696d35aa9c15 100644
--- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/AwsBasicCredentials.java
+++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/AwsBasicCredentials.java
@@ -44,6 +44,8 @@ public final class AwsBasicCredentials implements AwsCredentials,
ToCopyableBuilder {
/**
* A set of AWS credentials without an access key or secret access key, indicating that anonymous access should be used.
+ *
+ * This should be accessed via {@link AnonymousCredentialsProvider#resolveCredentials()}.
*/
// TODO(sra-identity-and-auth): Check if this static member can be removed after cleanup
@SdkInternalApi
@@ -53,12 +55,14 @@ public final class AwsBasicCredentials implements AwsCredentials,
private final String secretAccessKey;
private final boolean validateCredentials;
private final String providerName;
+ private final String accountId;
private AwsBasicCredentials(Builder builder) {
this.accessKeyId = trimToNull(builder.accessKeyId);
this.secretAccessKey = trimToNull(builder.secretAccessKey);
this.validateCredentials = builder.validateCredentials;
this.providerName = builder.providerName;
+ this.accountId = builder.accountId;
if (builder.validateCredentials) {
Validate.notNull(this.accessKeyId, "Access key ID cannot be blank.");
@@ -77,6 +81,7 @@ protected AwsBasicCredentials(String accessKeyId, String secretAccessKey) {
this.secretAccessKey = trimToNull(secretAccessKey);
this.validateCredentials = false;
this.providerName = null;
+ this.accountId = null;
}
public static Builder builder() {
@@ -88,7 +93,7 @@ public static Builder builder() {
*
* @param accessKeyId The AWS access key, used to identify the user interacting with AWS.
* @param secretAccessKey The AWS secret access key, used to authenticate the user interacting with AWS.
- * */
+ */
public static AwsBasicCredentials create(String accessKeyId, String secretAccessKey) {
return builder().accessKeyId(accessKeyId)
.secretAccessKey(secretAccessKey)
@@ -119,11 +124,20 @@ public Optional providerName() {
return Optional.ofNullable(providerName);
}
+ /**
+ * Retrieve the AWS account id associated with this credentials identity, if found.
+ */
+ @Override
+ public Optional accountId() {
+ return Optional.ofNullable(accountId);
+ }
+
@Override
public String toString() {
return ToString.builder("AwsCredentials")
.add("accessKeyId", accessKeyId)
.add("providerName", providerName)
+ .add("accountId", accountId)
.build();
}
@@ -137,7 +151,8 @@ public boolean equals(Object o) {
}
AwsBasicCredentials that = (AwsBasicCredentials) o;
return Objects.equals(accessKeyId, that.accessKeyId) &&
- Objects.equals(secretAccessKey, that.secretAccessKey);
+ Objects.equals(secretAccessKey, that.secretAccessKey) &&
+ Objects.equals(accountId, that.accountId().orElse(null));
}
@Override
@@ -145,6 +160,7 @@ public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(accessKeyId());
hashCode = 31 * hashCode + Objects.hashCode(secretAccessKey());
+ hashCode = 31 * hashCode + Objects.hashCode(accountId);
return hashCode;
}
@@ -152,6 +168,7 @@ public int hashCode() {
public Builder toBuilder() {
return builder().accessKeyId(accessKeyId)
.secretAccessKey(secretAccessKey)
+ .accountId(accountId)
.validateCredentials(validateCredentials)
.providerName(providerName);
}
@@ -169,6 +186,7 @@ public static final class Builder implements CopyableBuilder providerName() {
return Optional.ofNullable(providerName);
}
+ @Override
+ public Optional accountId() {
+ return Optional.ofNullable(accountId);
+ }
+
@Override
public String toString() {
return ToString.builder("AwsSessionCredentials")
.add("accessKeyId", accessKeyId())
.add("providerName", providerName)
+ .add("accountId", accountId)
.build();
}
@@ -132,6 +140,7 @@ public boolean equals(Object o) {
return Objects.equals(accessKeyId, that.accessKeyId) &&
Objects.equals(secretAccessKey, that.secretAccessKey) &&
Objects.equals(sessionToken, that.sessionToken) &&
+ Objects.equals(accountId, that.accountId().orElse(null)) &&
Objects.equals(expirationTime, that.expirationTime().orElse(null));
}
@@ -141,6 +150,7 @@ public int hashCode() {
hashCode = 31 * hashCode + Objects.hashCode(accessKeyId());
hashCode = 31 * hashCode + Objects.hashCode(secretAccessKey());
hashCode = 31 * hashCode + Objects.hashCode(sessionToken());
+ hashCode = 31 * hashCode + Objects.hashCode(accountId);
hashCode = 31 * hashCode + Objects.hashCode(expirationTime);
return hashCode;
}
@@ -150,6 +160,7 @@ public Builder toBuilder() {
return builder().accessKeyId(accessKeyId)
.secretAccessKey(secretAccessKey)
.sessionToken(sessionToken)
+ .accountId(accountId)
.expirationTime(expirationTime)
.providerName(providerName);
}
@@ -167,6 +178,7 @@ public static final class Builder implements CopyableBuilder executableCommand;
private final Duration credentialRefreshThreshold;
private final long processOutputLimit;
+ private final String staticAccountId;
private final CachedSupplier processCredentialCache;
@@ -91,6 +92,7 @@ private ProcessCredentialsProvider(Builder builder) {
this.commandFromBuilder = builder.command;
this.commandAsListOfStringsFromBuilder = builder.commandAsListOfStrings;
this.asyncCredentialUpdateEnabled = builder.asyncCredentialUpdateEnabled;
+ this.staticAccountId = builder.staticAccountId;
CachedSupplier.Builder cacheBuilder = CachedSupplier.builder(this::refreshCredentials)
.cachedValueName(toString());
@@ -176,20 +178,26 @@ private AwsCredentials credentials(JsonNode credentialsJson) {
String accessKeyId = getText(credentialsJson, "AccessKeyId");
String secretAccessKey = getText(credentialsJson, "SecretAccessKey");
String sessionToken = getText(credentialsJson, "SessionToken");
+ String accountId = getText(credentialsJson, "AccountId");
Validate.notEmpty(accessKeyId, "AccessKeyId cannot be empty.");
Validate.notEmpty(secretAccessKey, "SecretAccessKey cannot be empty.");
+ String resolvedAccountId = accountId == null ? this.staticAccountId : accountId;
+
return sessionToken != null ?
AwsSessionCredentials.builder()
.accessKeyId(accessKeyId)
.secretAccessKey(secretAccessKey)
.sessionToken(sessionToken)
+ .expirationTime(credentialExpirationTime(credentialsJson))
+ .accountId(resolvedAccountId)
.providerName(PROVIDER_NAME)
.build() :
AwsBasicCredentials.builder()
.accessKeyId(accessKeyId)
.secretAccessKey(secretAccessKey)
+ .accountId(resolvedAccountId)
.providerName(PROVIDER_NAME)
.build();
}
@@ -261,6 +269,7 @@ public static class Builder implements CopyableBuilder commandAsListOfStrings;
private Duration credentialRefreshThreshold = Duration.ofSeconds(15);
private long processOutputLimit = 64000;
+ private String staticAccountId;
/**
* @see #builder()
@@ -274,6 +283,7 @@ private Builder(ProcessCredentialsProvider provider) {
this.commandAsListOfStrings = provider.commandAsListOfStringsFromBuilder;
this.credentialRefreshThreshold = provider.credentialRefreshThreshold;
this.processOutputLimit = provider.processOutputLimit;
+ this.staticAccountId = provider.staticAccountId;
}
/**
@@ -334,6 +344,19 @@ public Builder processOutputLimit(long outputByteLimit) {
return this;
}
+ /**
+ * Configure a static account id for this credentials provider. Account id for ProcessCredentialsProvider is only
+ * relevant in a context where a service constructs endpoint URL containing an account id.
+ * This option should ONLY be used if the provider should return credentials with account id, and the process does not
+ * output account id. If a static account ID is configured, and the process also returns an account
+ * id, the process output value overrides the static value. If used, the static account id MUST match the credentials
+ * returned by the process.
+ */
+ public Builder staticAccountId(String staticAccountId) {
+ this.staticAccountId = staticAccountId;
+ return this;
+ }
+
public ProcessCredentialsProvider build() {
return new ProcessCredentialsProvider(this);
}
diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/SystemPropertyCredentialsProvider.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/SystemPropertyCredentialsProvider.java
index d2b5a93973eb..bcc7d77af4e6 100644
--- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/SystemPropertyCredentialsProvider.java
+++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/SystemPropertyCredentialsProvider.java
@@ -28,7 +28,7 @@
@SdkPublicApi
public final class SystemPropertyCredentialsProvider extends SystemSettingsCredentialsProvider {
- private static final String PROVIDER_NAME = "SystemSettingsCredentialsProvider";
+ private static final String PROVIDER_NAME = "SystemPropertyCredentialsProvider";
private SystemPropertyCredentialsProvider() {
}
diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java
index ef15454a0421..22da5e9986fd 100644
--- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java
+++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java
@@ -157,8 +157,11 @@ private Optional credentialsProvider(Set childre
private AwsCredentialsProvider basicProfileCredentialsProvider() {
requireProperties(ProfileProperty.AWS_ACCESS_KEY_ID,
ProfileProperty.AWS_SECRET_ACCESS_KEY);
- AwsCredentials credentials = AwsBasicCredentials.create(properties.get(ProfileProperty.AWS_ACCESS_KEY_ID),
- properties.get(ProfileProperty.AWS_SECRET_ACCESS_KEY));
+ AwsCredentials credentials = AwsBasicCredentials.builder()
+ .accessKeyId(properties.get(ProfileProperty.AWS_ACCESS_KEY_ID))
+ .secretAccessKey(properties.get(ProfileProperty.AWS_SECRET_ACCESS_KEY))
+ .accountId(properties.get(ProfileProperty.AWS_ACCOUNT_ID))
+ .build();
return StaticCredentialsProvider.create(credentials);
}
@@ -169,9 +172,12 @@ private AwsCredentialsProvider sessionProfileCredentialsProvider() {
requireProperties(ProfileProperty.AWS_ACCESS_KEY_ID,
ProfileProperty.AWS_SECRET_ACCESS_KEY,
ProfileProperty.AWS_SESSION_TOKEN);
- AwsCredentials credentials = AwsSessionCredentials.create(properties.get(ProfileProperty.AWS_ACCESS_KEY_ID),
- properties.get(ProfileProperty.AWS_SECRET_ACCESS_KEY),
- properties.get(ProfileProperty.AWS_SESSION_TOKEN));
+ AwsCredentials credentials = AwsSessionCredentials.builder()
+ .accessKeyId(properties.get(ProfileProperty.AWS_ACCESS_KEY_ID))
+ .secretAccessKey(properties.get(ProfileProperty.AWS_SECRET_ACCESS_KEY))
+ .sessionToken(properties.get(ProfileProperty.AWS_SESSION_TOKEN))
+ .accountId(properties.get(ProfileProperty.AWS_ACCOUNT_ID))
+ .build();
return StaticCredentialsProvider.create(credentials);
}
@@ -180,6 +186,7 @@ private AwsCredentialsProvider credentialProcessCredentialsProvider() {
return ProcessCredentialsProvider.builder()
.command(properties.get(ProfileProperty.CREDENTIAL_PROCESS))
+ .staticAccountId(properties.get(ProfileProperty.AWS_ACCOUNT_ID))
.build();
}
diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/SystemSettingsCredentialsProvider.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/SystemSettingsCredentialsProvider.java
index 1f980b0b358d..48e0f521f93d 100644
--- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/SystemSettingsCredentialsProvider.java
+++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/SystemSettingsCredentialsProvider.java
@@ -49,6 +49,7 @@ public AwsCredentials resolveCredentials() {
String accessKey = trim(loadSetting(SdkSystemSetting.AWS_ACCESS_KEY_ID).orElse(null));
String secretKey = trim(loadSetting(SdkSystemSetting.AWS_SECRET_ACCESS_KEY).orElse(null));
String sessionToken = trim(loadSetting(SdkSystemSetting.AWS_SESSION_TOKEN).orElse(null));
+ String accountId = trim(loadSetting(SdkSystemSetting.AWS_ACCOUNT_ID).orElse(null));
if (StringUtils.isBlank(accessKey)) {
throw SdkClientException.builder()
@@ -71,12 +72,14 @@ public AwsCredentials resolveCredentials() {
return StringUtils.isBlank(sessionToken) ? AwsBasicCredentials.builder()
.accessKeyId(accessKey)
.secretAccessKey(secretKey)
+ .accountId(accountId)
.providerName(provider())
.build()
: AwsSessionCredentials.builder()
.accessKeyId(accessKey)
.secretAccessKey(secretKey)
.sessionToken(sessionToken)
+ .accountId(accountId)
.providerName(provider())
.build();
}
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProcessCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProcessCredentialsProviderTest.java
index 2c5278ad1201..0fdedff07646 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProcessCredentialsProviderTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProcessCredentialsProviderTest.java
@@ -16,34 +16,51 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static software.amazon.awssdk.auth.credentials.internal.ProcessCredentialsTestUtils.copyErrorCaseProcessCredentialsScript;
-import static software.amazon.awssdk.auth.credentials.internal.ProcessCredentialsTestUtils.copyHappyCaseProcessCredentialsScript;
+import static org.assertj.core.api.Assertions.within;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.UncheckedIOException;
import java.time.Duration;
import java.time.Instant;
+import java.time.temporal.ChronoUnit;
import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
import software.amazon.awssdk.utils.DateUtils;
+import software.amazon.awssdk.utils.IoUtils;
+import software.amazon.awssdk.utils.Platform;
-class ProcessCredentialsProviderTest {
+public class ProcessCredentialsProviderTest {
private static final String PROCESS_RESOURCE_PATH = "/resources/process/";
private static final String RANDOM_SESSION_TOKEN = "RANDOM_TOKEN";
+
+ private static final String ACCESS_KEY_ID = "accessKeyId";
+ private static final String SECRET_ACCESS_KEY = "secretAccessKey";
+ private static final String SESSION_TOKEN = "sessionToken";
+ private static final String ACCOUNT_ID = "01234567891111";
+
private static String scriptLocation;
private static String errorScriptLocation;
@BeforeAll
- public static void setup() {
+ static void setup() {
scriptLocation = copyHappyCaseProcessCredentialsScript();
errorScriptLocation = copyErrorCaseProcessCredentialsScript();
}
@AfterAll
- public static void teardown() {
+ static void teardown() {
if (scriptLocation != null && !new File(scriptLocation).delete()) {
throw new IllegalStateException("Failed to delete file: " + scriptLocation);
}
@@ -52,19 +69,67 @@ public static void teardown() {
throw new IllegalStateException("Failed to delete file: " + errorScriptLocation);
}
}
+
+ @ParameterizedTest(name = "{index} - {0}")
+ @MethodSource("staticCredentialsValues")
+ void staticCredentialsCanBeLoaded(String description, String staticAccountId, Optional expectedValue,
+ String cmd) {
+ ProcessCredentialsProvider.Builder providerBuilder = ProcessCredentialsProvider.builder().command(cmd);
+ if (staticAccountId != null) {
+ providerBuilder.staticAccountId(staticAccountId);
+ }
+ AwsCredentials credentials = providerBuilder.build().resolveCredentials();
+
+ verifyCredentials(credentials);
+ assertThat(credentials).isNotInstanceOf(AwsSessionCredentials.class);
+
+ if (expectedValue.isPresent()) {
+ assertThat(credentials.accountId()).isPresent().hasValue(expectedValue.get());
+ } else {
+ assertThat(credentials.accountId()).isNotPresent();
+ }
+ }
+
+ private static List staticCredentialsValues() {
+ return Arrays.asList(
+ Arguments.of("when only containing access key id, secret", null, Optional.empty(),
+ String.format("%s accessKeyId secretAccessKey", scriptLocation)),
+ Arguments.of("when output has account id", null, Optional.of(ACCOUNT_ID),
+ String.format("%s %s %s acctid=%s", scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, ACCOUNT_ID)),
+ Arguments.of("when output has account id, static account id configured", "staticAccountId", Optional.of(ACCOUNT_ID),
+ String.format("%s %s %s acctid=%s", scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, ACCOUNT_ID)),
+ Arguments.of("when only static account id is configured", "staticAccountId", Optional.of("staticAccountId"),
+ String.format("%s %s %s", scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY))
+ );
+ }
@Test
void staticCredentialsCanBeLoaded() {
AwsCredentials credentials =
ProcessCredentialsProvider.builder()
- .command(scriptLocation + " accessKeyId secretAccessKey")
+ .command(String.format("%s accessKeyId secretAccessKey", scriptLocation))
.build()
.resolveCredentials();
- assertThat(credentials).isInstanceOf(AwsBasicCredentials.class);
- assertThat(credentials.accessKeyId()).isEqualTo("accessKeyId");
- assertThat(credentials.secretAccessKey()).isEqualTo("secretAccessKey");
- assertThat(credentials.providerName()).isPresent().contains("ProcessCredentialsProvider");
+ assertThat(credentials).isNotInstanceOf(AwsSessionCredentials.class);
+ assertThat(credentials.accessKeyId()).isEqualTo(ACCESS_KEY_ID);
+ assertThat(credentials.secretAccessKey()).isEqualTo(SECRET_ACCESS_KEY);
+ assertThat(credentials.accountId()).isNotPresent();
+ }
+
+ @Test
+ void staticCredentialsWithAccountIdCanBeLoaded() {
+ AwsCredentials credentials =
+ ProcessCredentialsProvider.builder()
+ .command(String.format("%s %s %s acctid=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, ACCOUNT_ID))
+ .build()
+ .resolveCredentials();
+
+ assertThat(credentials).isNotInstanceOf(AwsSessionCredentials.class);
+ assertThat(credentials.accessKeyId()).isEqualTo(ACCESS_KEY_ID);
+ assertThat(credentials.secretAccessKey()).isEqualTo(SECRET_ACCESS_KEY);
+ assertThat(credentials.accountId()).isPresent().isEqualTo(Optional.of(ACCOUNT_ID));
}
@Test
@@ -83,30 +148,75 @@ public void staticCredentials_commandAsListOfStrings_CanBeLoaded() {
@Test
void sessionCredentialsCanBeLoaded() {
+ String expiration = DateUtils.formatIso8601Date(Instant.now());
ProcessCredentialsProvider credentialsProvider =
ProcessCredentialsProvider.builder()
- .command(scriptLocation + " accessKeyId secretAccessKey sessionToken " +
- DateUtils.formatIso8601Date(Instant.now()))
+ .command(String.format("%s %s %s token=%s exp=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY,
+ SESSION_TOKEN, expiration))
.credentialRefreshThreshold(Duration.ofSeconds(1))
.build();
AwsCredentials credentials = credentialsProvider.resolveCredentials();
+ verifySessionCredentials(credentials, expiration);
+ assertThat(credentials.accountId()).isNotPresent();
+ }
- assertThat(credentials).isInstanceOf(AwsSessionCredentials.class);
+ @Test
+ void sessionCredentialsWithAccountIdCanBeLoaded() {
+ String expiration = DateUtils.formatIso8601Date(Instant.now());
+ ProcessCredentialsProvider credentialsProvider =
+ ProcessCredentialsProvider.builder()
+ .command(String.format("%s %s %s token=sessionToken exp=%s acctid=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, expiration, ACCOUNT_ID))
+ .credentialRefreshThreshold(Duration.ofSeconds(1))
+ .build();
+
+ AwsCredentials credentials = credentialsProvider.resolveCredentials();
+ verifySessionCredentials(credentials, expiration);
+ assertThat(credentials.accountId()).isPresent().isEqualTo(Optional.of(ACCOUNT_ID));
+ }
+
+ @Test
+ void sessionCredentialsWithStaticAccountIdCanBeLoaded() {
+ String expiration = DateUtils.formatIso8601Date(Instant.now());
+ ProcessCredentialsProvider credentialsProvider =
+ ProcessCredentialsProvider.builder()
+ .command(String.format("%s %s %s token=sessionToken exp=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, expiration))
+ .credentialRefreshThreshold(Duration.ofSeconds(1))
+ .staticAccountId("staticAccountId")
+ .build();
+ AwsCredentials credentials = credentialsProvider.resolveCredentials();
+ verifySessionCredentials(credentials, expiration);
+ assertThat(credentials.accountId()).isPresent().hasValue("staticAccountId");
+ }
+
+ private void verifySessionCredentials(AwsCredentials credentials, String expiration) {
+ verifyCredentials(credentials);
+
+ assertThat(credentials).isInstanceOf(AwsSessionCredentials.class);
AwsSessionCredentials sessionCredentials = (AwsSessionCredentials) credentials;
+ assertThat(sessionCredentials.sessionToken()).isEqualTo(SESSION_TOKEN);
- assertThat(credentials.accessKeyId()).isEqualTo("accessKeyId");
- assertThat(credentials.secretAccessKey()).isEqualTo("secretAccessKey");
- assertThat(sessionCredentials.sessionToken()).isNotNull();
+ assertThat(sessionCredentials.expirationTime()).isPresent();
+ Instant exp = sessionCredentials.expirationTime().get();
+ assertThat(exp).isCloseTo(expiration, within(1, ChronoUnit.MICROS));
+ }
+
+ private void verifyCredentials(AwsCredentials credentials) {
+ assertThat(credentials.accessKeyId()).isEqualTo(ACCESS_KEY_ID);
+ assertThat(credentials.secretAccessKey()).isEqualTo(SECRET_ACCESS_KEY);
}
@Test
void resultsAreCached() {
ProcessCredentialsProvider credentialsProvider =
ProcessCredentialsProvider.builder()
- .command(scriptLocation + " accessKeyId secretAccessKey sessionToken " +
- DateUtils.formatIso8601Date(Instant.now().plusSeconds(20)))
+ .command(String.format("%s %s %s token=%s exp=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, SESSION_TOKEN,
+ DateUtils.formatIso8601Date(Instant.now().plusSeconds(20))))
.build();
AwsCredentials request1 = credentialsProvider.resolveCredentials();
@@ -119,9 +229,8 @@ void resultsAreCached() {
void expirationBufferOverrideIsApplied() {
ProcessCredentialsProvider credentialsProvider =
ProcessCredentialsProvider.builder()
- .command(String.format("%s accessKeyId secretAccessKey %s %s",
- scriptLocation,
- RANDOM_SESSION_TOKEN,
+ .command(String.format("%s %s %s token=%s exp=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, RANDOM_SESSION_TOKEN,
DateUtils.formatIso8601Date(Instant.now().plusSeconds(20))))
.credentialRefreshThreshold(Duration.ofSeconds(20))
.build();
@@ -149,7 +258,8 @@ void processFailed_shouldContainErrorMessage() {
void lackOfExpirationIsCachedForever() {
ProcessCredentialsProvider credentialsProvider =
ProcessCredentialsProvider.builder()
- .command(scriptLocation + " accessKeyId secretAccessKey sessionToken")
+ .command(String.format("%s %s %s token=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, SESSION_TOKEN))
.credentialRefreshThreshold(Duration.ofSeconds(20))
.build();
@@ -160,19 +270,21 @@ void lackOfExpirationIsCachedForever() {
}
@Test
- void processOutputLimitIsEnforced() {
+ public void processOutputLimitIsEnforced() {
ProcessCredentialsProvider credentialsProvider =
ProcessCredentialsProvider.builder()
- .command(scriptLocation + " accessKeyId secretAccessKey")
+ .command(String.format("%s %s %s",
+ scriptLocation,
+ ACCESS_KEY_ID,
+ SECRET_ACCESS_KEY))
.processOutputLimit(1)
.build();
- assertThatThrownBy(credentialsProvider::resolveCredentials).isInstanceOf(IllegalStateException.class);
+ assertThatThrownBy(() -> credentialsProvider.resolveCredentials()).isInstanceOf(IllegalStateException.class);
}
@Test
void processOutputLimitDefaultPassesLargeInput() {
-
- String LONG_SESSION_TOKEN = "lYzvmByqdS1E69QQVEavDDHabQ2GuYKYABKRA4xLbAXpdnFtV030UH4" +
+ String longSessionToken = "lYzvmByqdS1E69QQVEavDDHabQ2GuYKYABKRA4xLbAXpdnFtV030UH4" +
"bQoZWCDcfADFvBwBm3ixEFTYMjn5XQozpFV2QAsWHirCVcEJ5DC60KPCNBcDi4KLNJfbsp3r6kKTOmYOeqhEyiC4emDX33X2ppZsa5" +
"1iwr6ShIZPOUPmuR4WDglmWubgO2q5tZv48xA5idkcHEmtGdoL343sY24q4gMh21eeBnF6ikjZdfvZ0Mn86UQ8r05AD346rSwM5bFs" +
"t019ZkJIjLHD3HoKJ44EndRvSvQClXfJCmmQDH5INiXdFLLNm0dzT3ynbVIW5x1YYBWptyts4NUSy2eJ3dTPjYICpQVCkbuNVA7PqR" +
@@ -185,8 +297,10 @@ void processOutputLimitDefaultPassesLargeInput() {
"Iu1sEFlKvPdfF1uefbTj6YdjUciWu1UBH47VbIcTbvbwmUiu2javB21kOenyDoelK5GUM4u0uPeXIOOhtZsJb8kz88h1joWkaKr2fc" +
"jrIS08FM47Y4Z2Mi4zfwyN54L";
- ProcessCredentialsProvider credentialsProvider = ProcessCredentialsProvider.builder()
- .command(scriptLocation + " accessKeyId secretAccessKey " + LONG_SESSION_TOKEN)
+ ProcessCredentialsProvider credentialsProvider =
+ ProcessCredentialsProvider.builder()
+ .command(String.format("%s %s %s token=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, longSessionToken))
.build();
AwsSessionCredentials sessionCredentials = (AwsSessionCredentials) credentialsProvider.resolveCredentials();
@@ -199,7 +313,8 @@ void processOutputLimitDefaultPassesLargeInput() {
void closeDoesNotRaise() {
ProcessCredentialsProvider credentialsProvider =
ProcessCredentialsProvider.builder()
- .command(scriptLocation + " accessKeyId secretAccessKey sessionToken")
+ .command(String.format("%s %s %s token=%s",
+ scriptLocation, ACCESS_KEY_ID, SECRET_ACCESS_KEY, SESSION_TOKEN))
.build();
credentialsProvider.resolveCredentials();
credentialsProvider.close();
@@ -235,4 +350,47 @@ void commandAsListOfStrings_isNotExecutedInAShell() {
+ "No such file or directory");
}
}
+
+ public static String copyHappyCaseProcessCredentialsScript() {
+ String scriptClasspathFilename = Platform.isWindows() ? "windows-credentials-script.bat"
+ : "linux-credentials-script.sh";
+
+ return copyProcessCredentialsScript(scriptClasspathFilename);
+ }
+
+ public static String copyErrorCaseProcessCredentialsScript() {
+ String scriptClasspathFilename = Platform.isWindows() ? "windows-credentials-error-script.bat"
+ : "linux-credentials-error-script.sh";
+
+ return copyProcessCredentialsScript(scriptClasspathFilename);
+ }
+
+ private static String copyProcessCredentialsScript(String scriptClasspathFilename) {
+ String scriptClasspathLocation = PROCESS_RESOURCE_PATH + scriptClasspathFilename;
+
+ InputStream scriptInputStream = null;
+ OutputStream scriptOutputStream = null;
+
+ try {
+ scriptInputStream = ProcessCredentialsProviderTest.class.getResourceAsStream(scriptClasspathLocation);
+
+ File scriptFileOnDisk = File.createTempFile("ProcessCredentialsProviderTest", scriptClasspathFilename);
+ scriptFileOnDisk.deleteOnExit();
+
+ if (!scriptFileOnDisk.setExecutable(true)) {
+ throw new IllegalStateException("Could not make " + scriptFileOnDisk + " executable.");
+ }
+
+ scriptOutputStream = new FileOutputStream(scriptFileOnDisk);
+
+ IoUtils.copy(scriptInputStream, scriptOutputStream);
+
+ return scriptFileOnDisk.getAbsolutePath();
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ } finally {
+ IoUtils.closeQuietly(scriptInputStream, null);
+ IoUtils.closeQuietly(scriptOutputStream, null);
+ }
+ }
}
\ No newline at end of file
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProviderTest.java
index 17b9b24ae092..0ffad04e77b3 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProviderTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProviderTest.java
@@ -24,6 +24,7 @@
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.util.Optional;
import java.util.function.Supplier;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
@@ -114,6 +115,24 @@ void presentProfileReturnsCredentials() {
assertThat(provider.resolveCredentials()).satisfies(credentials -> {
assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isNotPresent();
+ });
+ }
+
+ @Test
+ void presentProfileWithAccountIdReturnsCredentialsWithAccountId() {
+ ProfileFile file = profileFile("[default]\n"
+ + "aws_access_key_id = defaultAccessKey\n"
+ + "aws_secret_access_key = defaultSecretAccessKey\n"
+ + "aws_account_id = defaultAccountId");
+
+ ProfileCredentialsProvider provider =
+ ProfileCredentialsProvider.builder().profileFile(file).profileName("default").build();
+
+ assertThat(provider.resolveCredentials()).satisfies(credentials -> {
+ assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
+ assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isPresent().isEqualTo(Optional.of("defaultAccountId"));
});
}
@@ -201,13 +220,15 @@ void resolveCredentials_presentProfileFileSupplier_returnsCredentials() {
assertThat(provider.resolveCredentials()).satisfies(credentials -> {
assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isNotPresent();
});
}
@Test
void resolveCredentials_presentSupplierProfileFile_returnsCredentials() {
Supplier supplier = () -> profileFile("[default]\naws_access_key_id = defaultAccessKey\n"
- + "aws_secret_access_key = defaultSecretAccessKey\n");
+ + "aws_secret_access_key = defaultSecretAccessKey\n"
+ + "aws_account_id = defaultAccountId");
ProfileCredentialsProvider provider =
ProfileCredentialsProvider.builder()
@@ -218,6 +239,7 @@ void resolveCredentials_presentSupplierProfileFile_returnsCredentials() {
assertThat(provider.resolveCredentials()).satisfies(credentials -> {
assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isPresent();
});
}
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/StaticCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/StaticCredentialsProviderTest.java
index 8254e04c0ab1..d02b633dfd2e 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/StaticCredentialsProviderTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/StaticCredentialsProviderTest.java
@@ -30,6 +30,18 @@ void getAwsCredentials_ReturnsSameCredentials() {
assertThat(actualCredentials.providerName()).isPresent();
}
+ @Test
+ void getAwsCredentialsWithAccountId_ReturnsSameCredentials() {
+ AwsCredentials credentials = AwsBasicCredentials.builder()
+ .accessKeyId("akid")
+ .secretAccessKey("skid")
+ .accountId("acctid")
+ .build();
+ AwsCredentials actualCredentials = StaticCredentialsProvider.create(credentials).resolveCredentials();
+ assertThat(actualCredentials).isEqualTo(credentials);
+ }
+
+
@Test
void getSessionAwsCredentials_ReturnsSameCredentials() {
AwsSessionCredentials credentials = AwsSessionCredentials.create("akid", "skid", "token");
@@ -39,6 +51,18 @@ void getSessionAwsCredentials_ReturnsSameCredentials() {
assertThat(actualCredentials.providerName()).isPresent();
}
+ @Test
+ void getSessionAwsCredentialsWithAccountId_ReturnsSameCredentials() {
+ AwsSessionCredentials credentials = AwsSessionCredentials.builder()
+ .accessKeyId("akid")
+ .secretAccessKey("skid")
+ .sessionToken("token")
+ .accountId("acctid")
+ .build();
+ AwsCredentials actualCredentials = StaticCredentialsProvider.create(credentials).resolveCredentials();
+ assertThat(actualCredentials).isEqualTo(credentials);
+ }
+
@Test
void nullCredentials_ThrowsRuntimeException() {
assertThatThrownBy(() -> StaticCredentialsProvider.create(null)).isInstanceOf(RuntimeException.class);
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/SystemSettingCredentialsProvidersTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/SystemSettingCredentialsProvidersTest.java
new file mode 100644
index 000000000000..8961c5d0a18c
--- /dev/null
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/SystemSettingCredentialsProvidersTest.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright 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.auth.credentials;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.Consumer;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+import software.amazon.awssdk.core.SdkSystemSetting;
+import software.amazon.awssdk.core.exception.SdkClientException;
+import software.amazon.awssdk.testutils.EnvironmentVariableHelper;
+import software.amazon.awssdk.utils.Pair;
+
+class SystemSettingCredentialsProvidersTest {
+
+ private static final Pair ACCESS_KEY_ID = Pair.of(SdkSystemSetting.AWS_ACCESS_KEY_ID, "access");
+ private static final Pair SECRET_KEY = Pair.of(SdkSystemSetting.AWS_SECRET_ACCESS_KEY, "secret");
+ private static final Pair SESSION_TOKEN = Pair.of(SdkSystemSetting.AWS_SESSION_TOKEN, "token");
+ private static final Pair ACCOUNT_ID = Pair.of(SdkSystemSetting.AWS_ACCOUNT_ID, "accountid");
+ private static final EnvironmentVariableHelper ENVIRONMENT_VARIABLE_HELPER = new EnvironmentVariableHelper();
+
+ @BeforeEach
+ public void setup() {
+ clearSettings();
+ }
+
+ @AfterEach
+ public void teardown() {
+ clearSettings();
+ }
+
+ public static void clearSettings() {
+ ENVIRONMENT_VARIABLE_HELPER.reset();
+ System.clearProperty(SdkSystemSetting.AWS_ACCESS_KEY_ID.property());
+ System.clearProperty(SdkSystemSetting.AWS_SECRET_ACCESS_KEY.property());
+ System.clearProperty(SdkSystemSetting.AWS_SESSION_TOKEN.property());
+ System.clearProperty(SdkSystemSetting.AWS_ACCOUNT_ID.property());
+ }
+
+ @ParameterizedTest(name = "{index} - {0}")
+ @MethodSource("config")
+ void configureEnvVars_resolveCredentials(String description,
+ List> systemSettings,
+ Consumer expected) {
+ configureEnvironmentVariables(systemSettings);
+ EnvironmentVariableCredentialsProvider provider = EnvironmentVariableCredentialsProvider.create();
+ if (expected != null) {
+ assertThat(provider.resolveCredentials()).satisfies(expected);
+ } else {
+ assertThatThrownBy(provider::resolveCredentials).isInstanceOf(SdkClientException.class);
+ }
+ }
+
+ @ParameterizedTest(name = "{index} - {0}")
+ @MethodSource("config")
+ void configureSystemProperties_resolveCredentials(String description,
+ List> systemSettings,
+ Consumer expected) {
+ configureSystemProperties(systemSettings);
+ SystemPropertyCredentialsProvider provider = SystemPropertyCredentialsProvider.create();
+ if (expected != null) {
+ assertThat(provider.resolveCredentials()).satisfies(expected);
+ } else {
+ assertThatThrownBy(provider::resolveCredentials).isInstanceOf(SdkClientException.class);
+ }
+ }
+
+ private static List config() {
+ return Arrays.asList(
+ Arguments.of("When access key id and secret is set, return basic credentials",
+ Arrays.asList(ACCESS_KEY_ID, SECRET_KEY),
+ (Consumer) awsCredentials -> {
+ assertThat(awsCredentials.accessKeyId()).isEqualTo("access");
+ assertThat(awsCredentials.secretAccessKey()).isEqualTo("secret");
+ assertThat(awsCredentials).isNotInstanceOf(AwsSessionCredentials.class);
+ assertThat(awsCredentials).hasFieldOrPropertyWithValue("accountId", null);
+ }),
+ Arguments.of("When access key id, secret and token is set, return session credentials",
+ Arrays.asList(ACCESS_KEY_ID, SECRET_KEY, SESSION_TOKEN),
+ (Consumer) awsCredentials -> {
+ assertThat(awsCredentials).isInstanceOf(AwsSessionCredentials.class);
+ assertThat(((AwsSessionCredentials) awsCredentials).sessionToken()).isEqualTo("token");
+ }),
+ Arguments.of("When access key id is null, throw exception", Arrays.asList(SECRET_KEY), null),
+ Arguments.of("When secret key is null, throw exception", Arrays.asList(ACCESS_KEY_ID), null),
+ Arguments.of("When account id is set, return basic credentials with account id",
+ Arrays.asList(ACCESS_KEY_ID, SECRET_KEY, ACCOUNT_ID),
+ (Consumer) awsCredentials -> {
+ assertThat(awsCredentials.accessKeyId()).isEqualTo("access");
+ assertThat(awsCredentials.secretAccessKey()).isEqualTo("secret");
+ assertThat(awsCredentials.accountId()).isPresent().isEqualTo(Optional.of("accountid"));
+ assertThat(awsCredentials).isNotInstanceOf(AwsSessionCredentials.class);
+ }),
+ Arguments.of("When account id and token is set, return session credentials with account id",
+ Arrays.asList(ACCESS_KEY_ID, SECRET_KEY, SESSION_TOKEN, ACCOUNT_ID),
+ (Consumer) awsCredentials -> {
+ assertThat(awsCredentials.accessKeyId()).isEqualTo("access");
+ assertThat(awsCredentials.secretAccessKey()).isEqualTo("secret");
+ assertThat(awsCredentials.accountId()).isPresent().isEqualTo(Optional.of("accountid"));
+ assertThat(awsCredentials).isInstanceOf(AwsSessionCredentials.class);
+ })
+ );
+ }
+
+ private void configureEnvironmentVariables(List> systemSettings) {
+ for (Pair setting : systemSettings) {
+ ENVIRONMENT_VARIABLE_HELPER.set(setting.left(), setting.right());
+ }
+ }
+
+ private void configureSystemProperties(List> systemSettings) {
+ for (Pair setting : systemSettings) {
+ System.setProperty(setting.left().property(), setting.right());
+ }
+ }
+}
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/SystemSettingsCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/SystemSettingsCredentialsProviderTest.java
index 615bcb63f1d9..81905de526ac 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/SystemSettingsCredentialsProviderTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/SystemSettingsCredentialsProviderTest.java
@@ -47,7 +47,7 @@ void systemPropertyCredentialsProvider_resolveCredentials_returnsCredentialsWith
AwsCredentials credentials = SystemPropertyCredentialsProvider.create().resolveCredentials();
assertThat(credentials.accessKeyId()).isEqualTo("akid1");
assertThat(credentials.secretAccessKey()).isEqualTo("skid1");
- assertThat(credentials.providerName()).isPresent().contains("SystemSettingsCredentialsProvider");
+ assertThat(credentials.providerName()).isPresent().contains("SystemPropertyCredentialsProvider");
}
@Test
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/AwsSessionCredentialsTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/AwsSessionCredentialsTest.java
index cb3a62600494..27d72e29881b 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/AwsSessionCredentialsTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/AwsSessionCredentialsTest.java
@@ -16,7 +16,9 @@
package software.amazon.awssdk.auth.credentials.internal;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import nl.jqno.equalsverifier.EqualsVerifier;
import org.junit.jupiter.api.Test;
@@ -27,6 +29,7 @@ class AwsSessionCredentialsTest {
private static final String ACCESS_KEY_ID = "accessKeyId";
private static final String SECRET_ACCESS_KEY = "secretAccessKey";
private static final String SESSION_TOKEN = "sessionToken";
+ private static final String ACCOUNT_ID = "accountId";
private static final String PROVIDER_NAME = "StaticCredentialsProvider";
@Test
@@ -65,6 +68,7 @@ void create_isSuccessful() {
assertEquals(ACCESS_KEY_ID, identity.accessKeyId());
assertEquals(SECRET_ACCESS_KEY, identity.secretAccessKey());
assertEquals(SESSION_TOKEN, identity.sessionToken());
+ assertFalse(identity.accountId().isPresent());
}
@Test
@@ -73,10 +77,13 @@ void build_isSuccessful() {
.accessKeyId(ACCESS_KEY_ID)
.secretAccessKey(SECRET_ACCESS_KEY)
.sessionToken(SESSION_TOKEN)
+ .accountId(ACCOUNT_ID)
.build();
assertEquals(ACCESS_KEY_ID, identity.accessKeyId());
assertEquals(SECRET_ACCESS_KEY, identity.secretAccessKey());
assertEquals(SESSION_TOKEN, identity.sessionToken());
+ assertTrue(identity.accountId().isPresent());
+ assertEquals(ACCOUNT_ID, identity.accountId().get());
}
@Test
@@ -85,11 +92,14 @@ void copy_isSuccessful() {
.accessKeyId(ACCESS_KEY_ID)
.secretAccessKey(SECRET_ACCESS_KEY)
.sessionToken(SESSION_TOKEN)
+ .accountId(ACCOUNT_ID)
.build();
AwsSessionCredentials copy = identity.copy(c -> c.providerName(PROVIDER_NAME));
assertEquals(ACCESS_KEY_ID, copy.accessKeyId());
assertEquals(SECRET_ACCESS_KEY, copy.secretAccessKey());
assertEquals(SESSION_TOKEN, copy.sessionToken());
+ assertTrue(identity.accountId().isPresent());
+ assertEquals(ACCOUNT_ID, identity.accountId().get());
assertEquals(PROVIDER_NAME, copy.providerName().get());
}
}
diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtilsTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtilsTest.java
index ef95613e5efc..5f8aa868c2d9 100644
--- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtilsTest.java
+++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtilsTest.java
@@ -55,7 +55,8 @@ public static void teardown() {
public void roleProfileCanInheritFromAnotherFile() {
String sourceProperties =
"aws_access_key_id=defaultAccessKey\n" +
- "aws_secret_access_key=defaultSecretAccessKey";
+ "aws_secret_access_key=defaultSecretAccessKey" +
+ "aws_account_id=defaultAccountId";
String childProperties =
"source_profile=source\n" +
@@ -114,13 +115,15 @@ public void profileFileWithStaticCredentialsLoadsCorrectly() {
ProfileFile profileFile = allTypesProfile();
assertThat(profileFile.profile("default")).hasValueSatisfying(profile -> {
assertThat(profile.name()).isEqualTo("default");
- assertThat(profile.property(ProfileProperty.AWS_ACCESS_KEY_ID)).hasValue("defaultAccessKey");
assertThat(profile.toString()).contains("default");
+ assertThat(profile.property(ProfileProperty.AWS_ACCESS_KEY_ID)).hasValue("defaultAccessKey");
+ assertThat(profile.property(ProfileProperty.AWS_ACCOUNT_ID)).hasValue("defaultAccountId");
assertThat(profile.property(ProfileProperty.REGION)).isNotPresent();
assertThat(new ProfileCredentialsUtils(profileFile, profile, profileFile::profile).credentialsProvider()).hasValueSatisfying(credentialsProvider -> {
assertThat(credentialsProvider.resolveCredentials()).satisfies(credentials -> {
assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isPresent().hasValue("defaultAccountId");
});
});
});
@@ -137,6 +140,7 @@ public void profileFileWithSessionCredentialsLoadsCorrectly() {
assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
assertThat(((AwsSessionCredentials) credentials).sessionToken()).isEqualTo("awsSessionToken");
+ assertThat(credentials.accountId()).isPresent().hasValue("defaultAccountId");
});
});
});
@@ -152,6 +156,55 @@ public void profileFileWithProcessCredentialsLoadsCorrectly() {
assertThat(credentials).isInstanceOf(AwsBasicCredentials.class);
assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isNotPresent();
+ });
+ });
+ });
+ }
+
+ @Test
+ public void profileFileWithProcessCredentialsAndAccountIdInFileFindsAccountId() {
+ ProfileFile profileFile = allTypesProfile();
+ assertThat(profileFile.profile("profile-credential-process-account-id")).hasValueSatisfying(profile -> {
+ assertThat(profile.property(ProfileProperty.REGION)).isNotPresent();
+ assertThat(new ProfileCredentialsUtils(profileFile, profile, profileFile::profile).credentialsProvider()).hasValueSatisfying(credentialsProvider -> {
+ assertThat(credentialsProvider.resolveCredentials()).satisfies(credentials -> {
+ assertThat(credentials).isInstanceOf(AwsBasicCredentials.class);
+ assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
+ assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isPresent().hasValue("123456789012");
+ });
+ });
+ });
+ }
+
+ @Test
+ public void profileFileWithProcessCredentialsAndAccountIdInFileAndProfilePicksFromFile() {
+ ProfileFile profileFile = allTypesProfile();
+ assertThat(profileFile.profile("profile-credential-process-account-id-override")).hasValueSatisfying(profile -> {
+ assertThat(profile.property(ProfileProperty.REGION)).isNotPresent();
+ assertThat(new ProfileCredentialsUtils(profileFile, profile, profileFile::profile).credentialsProvider()).hasValueSatisfying(credentialsProvider -> {
+ assertThat(credentialsProvider.resolveCredentials()).satisfies(credentials -> {
+ assertThat(credentials).isInstanceOf(AwsBasicCredentials.class);
+ assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
+ assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isPresent().hasValue("123456789012");
+ });
+ });
+ });
+ }
+
+ @Test
+ public void profileFileWithProcessCredentialsAndAccountIdInProfileFindsAccountId() {
+ ProfileFile profileFile = allTypesProfile();
+ assertThat(profileFile.profile("profile-credential-process-local-account-id")).hasValueSatisfying(profile -> {
+ assertThat(profile.property(ProfileProperty.REGION)).isNotPresent();
+ assertThat(new ProfileCredentialsUtils(profileFile, profile, profileFile::profile).credentialsProvider()).hasValueSatisfying(credentialsProvider -> {
+ assertThat(credentialsProvider.resolveCredentials()).satisfies(credentials -> {
+ assertThat(credentials).isInstanceOf(AwsBasicCredentials.class);
+ assertThat(credentials.accessKeyId()).isEqualTo("defaultAccessKey");
+ assertThat(credentials.secretAccessKey()).isEqualTo("defaultSecretAccessKey");
+ assertThat(credentials.accountId()).isPresent().hasValue("defaultAccountId");
});
});
});
@@ -308,11 +361,13 @@ private ProfileFile allTypesProfile() {
return configFile("[default]\n" +
"aws_access_key_id = defaultAccessKey\n" +
"aws_secret_access_key = defaultSecretAccessKey\n" +
+ "aws_account_id = defaultAccountId\n" +
"\n" +
"[profile profile-with-session-token]\n" +
"aws_access_key_id = defaultAccessKey\n" +
"aws_secret_access_key = defaultSecretAccessKey\n" +
"aws_session_token = awsSessionToken\n" +
+ "aws_account_id = defaultAccountId\n" +
"\n" +
"[profile profile-with-region]\n" +
"region = us-east-1\n" +
@@ -324,6 +379,17 @@ private ProfileFile allTypesProfile() {
"[profile profile-credential-process]\n" +
"credential_process=" + scriptLocation +" defaultAccessKey defaultSecretAccessKey\n" +
"\n" +
+ "[profile profile-credential-process-account-id]\n" +
+ "credential_process=" + scriptLocation +" defaultAccessKey defaultSecretAccessKey acctid=123456789012\n" +
+ "\n" +
+ "[profile profile-credential-process-account-id-override]\n" +
+ "aws_account_id = defaultAccountId\n" +
+ "credential_process=" + scriptLocation +" defaultAccessKey defaultSecretAccessKey acctid=123456789012\n" +
+ "\n" +
+ "[profile profile-credential-process-local-account-id]\n" +
+ "aws_account_id = defaultAccountId\n" +
+ "credential_process=" + scriptLocation +" defaultAccessKey defaultSecretAccessKey\n" +
+ "\n" +
"[profile profile-with-container-credential-source]\n" +
"credential_source=ecscontainer\n" +
"role_arn=arn:aws:iam::123456789012:role/testRole\n" +
diff --git a/core/auth/src/test/resources/resources/process/linux-credentials-script.sh b/core/auth/src/test/resources/resources/process/linux-credentials-script.sh
index 03c802ec3034..de5dbeaf1397 100644
--- a/core/auth/src/test/resources/resources/process/linux-credentials-script.sh
+++ b/core/auth/src/test/resources/resources/process/linux-credentials-script.sh
@@ -1,18 +1,36 @@
#!/usr/bin/env bash
+
+parseAdditionalParams () {
+ local prefix=`echo $1 | cut -d= -f1`;
+ local param=`echo $1 | cut -d= -f2`;
+
+ case "$prefix" in
+ ("token"*)
+ if [[ "$param" = "RANDOM_TOKEN" ]]; then
+ echo "\"SessionToken\": \"$RANDOM\""
+ else
+ echo "\"SessionToken\": \"$param\""
+ fi;
+ ;;
+ ("exp"*)
+ echo "\"Expiration\": \"$param\"";
+ ;;
+ ("acctid"*)
+ echo "\"AccountId\": \"$param\"";
+ ;;
+ (*)
+ echo "\"$prefix\": \"$param\"";
+ ;;
+ esac
+}
+
echo '{';
echo '"Version": 1,';
echo "\"AccessKeyId\": \"$1\",";
echo "\"SecretAccessKey\": \"$2\"";
-if [[ $# -ge 3 ]]; then
+for args in "${@:3}"
+do
echo ',';
- if [[ "$3" = "RANDOM_TOKEN" ]]; then
- echo "\"SessionToken\": \"$RANDOM\""
- else
- echo "\"SessionToken\": \"$3\""
- fi;
-fi;
-if [[ $# -ge 4 ]]; then
- echo ','
- echo "\"Expiration\": \"$4\"";
-fi;
+ parseAdditionalParams $args;
+done;
echo '}';
\ No newline at end of file
diff --git a/core/auth/src/test/resources/resources/process/windows-credentials-script.bat b/core/auth/src/test/resources/resources/process/windows-credentials-script.bat
index bb5ed72f070c..055b74b73e50 100644
--- a/core/auth/src/test/resources/resources/process/windows-credentials-script.bat
+++ b/core/auth/src/test/resources/resources/process/windows-credentials-script.bat
@@ -1,19 +1,45 @@
@ECHO OFF
-SET input=%1
ECHO {
ECHO "Version": 1,
ECHO "AccessKeyId": "%1",
-ECHO "SecretAccessKey": "%2"
-IF NOT "%3"=="" (
+SHIFT
+ECHO "SecretAccessKey": "%1"
+SHIFT
+
+:LOOP
+ IF "%1"=="" (
+ GOTO :EXITLOOP
+ )
+ IF "%2"=="" (
+ echo "Expected value for param %1!"
+ exit /b 1
+ )
ECHO ,
+ CALL :PARSE_ARGS %1 %2
+ SHIFT
+ SHIFT
+GOTO :LOOP
+
+:EXITLOOP
+
+ECHO }
+
+GOTO:EOF
+
+:PARSE_ARGS
+SET prefix=%1
+SET param=%2
+IF "%prefix%"=="token" (
IF "%3"=="RANDOM_TOKEN" (
ECHO "SessionToken": "%RANDOM%"
) ELSE (
- ECHO "SessionToken": "%3"
+ ECHO "SessionToken": "%param%"
)
+) ELSE IF "%prefix%"=="exp" (
+ ECHO "Expiration": "%param%"
+) ELSE IF "%prefix%"=="acctid" (
+ ECHO "AccountId": "%param%"
+) ELSE (
+ ECHO "%prefix%": "%param%"
)
-IF NOT "%4"=="" (
- ECHO ,
- ECHO "Expiration": "%4"
-)
-echo }
\ No newline at end of file
+EXIT /B
diff --git a/core/aws-core/pom.xml b/core/aws-core/pom.xml
index 255a10b0c767..d3e7af1164cf 100644
--- a/core/aws-core/pom.xml
+++ b/core/aws-core/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
aws-core
diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsExecutionAttribute.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsExecutionAttribute.java
index ff7fa4fc16d4..12f6542043b6 100644
--- a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsExecutionAttribute.java
+++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsExecutionAttribute.java
@@ -18,6 +18,7 @@
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
import software.amazon.awssdk.awscore.client.config.AwsClientOption;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode;
import software.amazon.awssdk.core.interceptor.ExecutionAttribute;
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute;
@@ -27,7 +28,7 @@
* AWS-specific attributes attached to the execution. This information is available to {@link ExecutionInterceptor}s.
*/
@SdkPublicApi
-public final class AwsExecutionAttribute extends SdkExecutionAttribute {
+public final class AwsExecutionAttribute extends SdkExecutionAttribute {
/**
* The AWS {@link Region} the client was configured with. This is not always same as the
* {@link AwsSignerExecutionAttribute#SIGNING_REGION} for global services like IAM.
@@ -58,6 +59,18 @@ public final class AwsExecutionAttribute extends SdkExecutionAttribute {
public static final ExecutionAttribute USE_GLOBAL_ENDPOINT =
new ExecutionAttribute<>("UseGlobalEndpoint");
+ /**
+ * The AWS account ID associated with the identity resolved for this request.
+ */
+ public static final ExecutionAttribute AWS_AUTH_ACCOUNT_ID =
+ new ExecutionAttribute<>("AwsAuthAccountId");
+
+ /**
+ * The mode for an AWS account ID that's resolved for this request. See {@link AccountIdEndpointMode} for values.
+ */
+ public static final ExecutionAttribute AWS_AUTH_ACCOUNT_ID_ENDPOINT_MODE =
+ new ExecutionAttribute<>("AwsAuthAccountIdEndpointMode");
+
private AwsExecutionAttribute() {
}
}
diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/config/AwsClientOption.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/config/AwsClientOption.java
index 64b608d04764..3ab3798c4659 100644
--- a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/config/AwsClientOption.java
+++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/config/AwsClientOption.java
@@ -20,6 +20,7 @@
import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider;
import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode;
import software.amazon.awssdk.core.client.config.ClientOption;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.identity.spi.IdentityProvider;
@@ -91,6 +92,12 @@ public final class AwsClientOption extends ClientOption {
*/
public static final AwsClientOption DEFAULTS_MODE = new AwsClientOption<>(DefaultsMode.class);
+ /**
+ * Option used by the rest of the SDK to read the {@link DefaultsMode}. This will never be {@link DefaultsMode#AUTO}.
+ */
+ public static final AwsClientOption ACCOUNT_ID_ENDPOINT_MODE =
+ new AwsClientOption<>(AccountIdEndpointMode.class);
+
/**
* Option to specify whether global endpoint should be used.
*/
diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/endpoints/AccountIdEndpointMode.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/endpoints/AccountIdEndpointMode.java
new file mode 100644
index 000000000000..7e6f0050dc4e
--- /dev/null
+++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/endpoints/AccountIdEndpointMode.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 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.awscore.endpoints;
+
+import software.amazon.awssdk.annotations.SdkPublicApi;
+
+/**
+ * Enum Class for AccountId Endpoint Mode.
+ */
+@SdkPublicApi
+public enum AccountIdEndpointMode {
+
+ /**
+ * Default value that indicates account ID values will be used in endpoint rules if available.
+ */
+ PREFERRED,
+
+ /**
+ * When mode is disabled, any resolved account ID will not be used in endpoint construction and rules that
+ * reference them will be bypassed.
+ */
+ DISABLED,
+
+ /**
+ * Required mode would be used in scenarios where endpoint resolution should return an error if no account ID is
+ * available.
+ */
+ REQUIRED;
+
+ /**
+ * Returns the appropriate AccountIdEndpointMode value after parsing the parameter.
+ * @param s AccountIdEndpointMode in String Format.
+ * @return AccountIdEndpointMode enumValue
+ * @throws IllegalArgumentException Unrecognized value for endpoint mode.
+ */
+ public static AccountIdEndpointMode fromValue(String s) {
+ if (s == null) {
+ return null;
+ }
+
+ for (AccountIdEndpointMode value : values()) {
+ if (value.name().equalsIgnoreCase(s)) {
+ return value;
+ }
+ }
+
+ throw new IllegalArgumentException("Unrecognized value for account id endpoint mode: " + s);
+ }
+}
diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/endpoints/AccountIdEndpointModeResolver.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/endpoints/AccountIdEndpointModeResolver.java
new file mode 100644
index 000000000000..529b7007621e
--- /dev/null
+++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/endpoints/AccountIdEndpointModeResolver.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 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.awscore.endpoints;
+
+import java.util.Optional;
+import java.util.function.Supplier;
+import software.amazon.awssdk.annotations.SdkInternalApi;
+import software.amazon.awssdk.core.SdkSystemSetting;
+import software.amazon.awssdk.profiles.ProfileFile;
+import software.amazon.awssdk.profiles.ProfileProperty;
+import software.amazon.awssdk.utils.OptionalUtils;
+
+@SdkInternalApi
+public final class AccountIdEndpointModeResolver {
+
+ private static final AccountIdEndpointMode SDK_DEFAULT_MODE = AccountIdEndpointMode.PREFERRED;
+
+ private Supplier profileFile;
+ private String profileName;
+ private AccountIdEndpointMode defaultMode;
+
+ private AccountIdEndpointModeResolver() {
+ }
+
+ public static AccountIdEndpointModeResolver create() {
+ return new AccountIdEndpointModeResolver();
+ }
+
+ public AccountIdEndpointModeResolver profileFile(Supplier profileFile) {
+ this.profileFile = profileFile;
+ return this;
+ }
+
+ public AccountIdEndpointModeResolver profileName(String profileName) {
+ this.profileName = profileName;
+ return this;
+ }
+
+ public AccountIdEndpointModeResolver defaultMode(AccountIdEndpointMode defaultMode) {
+ this.defaultMode = defaultMode;
+ return this;
+ }
+
+ public AccountIdEndpointMode resolve() {
+ return OptionalUtils.firstPresent(fromSystemSettings(),
+ () -> fromProfileFile(profileFile, profileName))
+ .orElseGet(this::fromDefaultMode);
+ }
+
+ private Optional fromSystemSettings() {
+ return SdkSystemSetting.AWS_ACCOUNT_ID_ENDPOINT_MODE.getStringValue()
+ .flatMap(this::stringToEnum);
+ }
+
+ private Optional fromProfileFile(Supplier profileFile, String profileName) {
+ return profileFile.get()
+ .profile(profileName)
+ .flatMap(p -> p.property(ProfileProperty.ACCOUNT_ID_ENDPOINT_MODE))
+ .flatMap(this::stringToEnum);
+ }
+
+ private AccountIdEndpointMode fromDefaultMode() {
+ return defaultMode != null ? defaultMode : SDK_DEFAULT_MODE;
+ }
+
+ private Optional stringToEnum(String value) {
+ return Optional.of(AccountIdEndpointMode.fromValue(value));
+ }
+}
diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/AwsExecutionContextBuilder.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/AwsExecutionContextBuilder.java
index 1c4c520fb6cd..b3510f75aca3 100644
--- a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/AwsExecutionContextBuilder.java
+++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/AwsExecutionContextBuilder.java
@@ -114,6 +114,8 @@ private AwsExecutionContextBuilder() {
.putAttribute(SdkExecutionAttribute.SIGNER_OVERRIDDEN, clientConfig.option(SdkClientOption.SIGNER_OVERRIDDEN))
.putAttribute(AwsExecutionAttribute.USE_GLOBAL_ENDPOINT,
clientConfig.option(AwsClientOption.USE_GLOBAL_ENDPOINT))
+ .putAttribute(AwsExecutionAttribute.AWS_AUTH_ACCOUNT_ID_ENDPOINT_MODE,
+ clientConfig.option(AwsClientOption.ACCOUNT_ID_ENDPOINT_MODE))
.putAttribute(RESOLVED_CHECKSUM_SPECS, HttpChecksumResolver.resolveChecksumSpecs(executionAttributes));
// Auth Scheme resolution related attributes
diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/authcontext/AwsCredentialsAuthorizationStrategy.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/authcontext/AwsCredentialsAuthorizationStrategy.java
index ce64b5f40e75..a14e163cae1d 100644
--- a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/authcontext/AwsCredentialsAuthorizationStrategy.java
+++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/internal/authcontext/AwsCredentialsAuthorizationStrategy.java
@@ -20,6 +20,7 @@
import software.amazon.awssdk.auth.credentials.AwsCredentials;
import software.amazon.awssdk.auth.credentials.CredentialUtils;
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
+import software.amazon.awssdk.awscore.AwsExecutionAttribute;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkRequest;
@@ -84,6 +85,8 @@ public void addCredentialsToExecutionAttributes(ExecutionAttributes executionAtt
resolveCredentialsProvider(request, defaultCredentialsProvider);
AwsCredentials credentials = CredentialUtils.toCredentials(resolveCredentials(credentialsProvider, metricCollector));
executionAttributes.putAttribute(AwsSignerExecutionAttribute.AWS_CREDENTIALS, credentials);
+ // TODO: A separate execution attribute is not strictly needed; this can be optimized before release
+ executionAttributes.putAttribute(AwsExecutionAttribute.AWS_AUTH_ACCOUNT_ID, credentials.accountId().orElse(null));
}
/**
diff --git a/core/aws-core/src/test/java/software/amazon/awssdk/awscore/endpoint/AccountIdEndpointModeResolverTest.java b/core/aws-core/src/test/java/software/amazon/awssdk/awscore/endpoint/AccountIdEndpointModeResolverTest.java
new file mode 100644
index 000000000000..ab23369e334b
--- /dev/null
+++ b/core/aws-core/src/test/java/software/amazon/awssdk/awscore/endpoint/AccountIdEndpointModeResolverTest.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright 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.awscore.endpoint;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode.DISABLED;
+import static software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode.PREFERRED;
+import static software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode.REQUIRED;
+
+import java.util.Arrays;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointModeResolver;
+import software.amazon.awssdk.core.SdkSystemSetting;
+import software.amazon.awssdk.profiles.ProfileFile;
+import software.amazon.awssdk.profiles.ProfileProperty;
+import software.amazon.awssdk.testutils.EnvironmentVariableHelper;
+import software.amazon.awssdk.utils.Pair;
+import software.amazon.awssdk.utils.StringInputStream;
+
+class AccountIdEndpointModeResolverTest {
+ private static final EnvironmentVariableHelper ENVIRONMENT_VARIABLE_HELPER = new EnvironmentVariableHelper();
+ private static final String PROFILE = "test";
+
+ @BeforeEach
+ public void methodSetup() {
+ ENVIRONMENT_VARIABLE_HELPER.reset();
+ System.clearProperty(SdkSystemSetting.AWS_ACCOUNT_ID_ENDPOINT_MODE.property());
+ }
+
+ @ParameterizedTest(name = "{index} - EXPECTED:{3} (sys:{0}, env:{1}, cfg:{2})")
+ @MethodSource("configValues")
+ void resolveMode_whenValidValues_resolvesCorrectly(
+ String systemProperty, String envVar, ProfileFile profileFile, AccountIdEndpointMode expected) {
+
+ setUpSystemSettings(systemProperty, envVar);
+
+ AccountIdEndpointModeResolver resolver = AccountIdEndpointModeResolver.create()
+ .profileFile(() -> profileFile)
+ .profileName(PROFILE);
+ assertThat(resolver.resolve()).isEqualTo(expected);
+ }
+
+ private static Stream configValues() {
+ ProfileFile emptyProfile = configFile("profile test", Pair.of("foo", "bar"));
+
+ Function testProfileConfig =
+ s -> configFile("profile test", Pair.of(ProfileProperty.ACCOUNT_ID_ENDPOINT_MODE, s));
+
+ return Stream.of(
+ Arguments.of(null, null, emptyProfile, PREFERRED),
+ Arguments.of("preferred", null, null, PREFERRED),
+ Arguments.of("required", null, null, REQUIRED),
+ Arguments.of("disabled", null, null, DISABLED),
+ Arguments.of("required", "preferred", null, REQUIRED),
+ Arguments.of("required", null, testProfileConfig.apply("preferred"), REQUIRED),
+ Arguments.of(null, "preferred", null, PREFERRED),
+ Arguments.of(null, "required", null, REQUIRED),
+ Arguments.of(null, "disabled", null, DISABLED),
+ Arguments.of(null, "disabled", testProfileConfig.apply("required"), DISABLED),
+ Arguments.of(null, null, testProfileConfig.apply("preferred"), PREFERRED),
+ Arguments.of(null, null, testProfileConfig.apply("required"), REQUIRED),
+ Arguments.of(null, null, testProfileConfig.apply("disabled"), DISABLED),
+ Arguments.of(null, null, configFile("profile test", Pair.of("bar", "baz")), PREFERRED),
+ Arguments.of(null, null, configFile("profile foo", Pair.of(ProfileProperty.ACCOUNT_ID_ENDPOINT_MODE, "required")),
+ PREFERRED)
+ );
+ }
+
+ @ParameterizedTest(name = "{index} - sys:{0}, env:{1}, cfg:{2}")
+ @MethodSource("invalidConfigValues")
+ void resolveMode_whenInvalidConfig_throws(
+ String systemProperty, String envVar, ProfileFile profileFile) {
+
+ setUpSystemSettings(systemProperty, envVar);
+
+ AccountIdEndpointModeResolver resolver = AccountIdEndpointModeResolver.create()
+ .profileFile(() -> profileFile)
+ .profileName(PROFILE);
+ assertThatThrownBy(resolver::resolve).isInstanceOf(IllegalArgumentException.class);
+ }
+
+ private static Stream invalidConfigValues() {
+ Function testProfileConfig =
+ s -> configFile("profile test", Pair.of(ProfileProperty.ACCOUNT_ID_ENDPOINT_MODE, s));
+
+ return Stream.of(
+ Arguments.of("foo", null, null),
+ Arguments.of(null, "foo", null),
+ Arguments.of(null, null, testProfileConfig.apply("foo"))
+ );
+ }
+
+ private static void setUpSystemSettings(String systemProperty, String envVar) {
+ if (systemProperty != null) {
+ System.setProperty(SdkSystemSetting.AWS_ACCOUNT_ID_ENDPOINT_MODE.property(), systemProperty);
+
+ }
+ if (envVar != null) {
+ ENVIRONMENT_VARIABLE_HELPER.set(SdkSystemSetting.AWS_ACCOUNT_ID_ENDPOINT_MODE.environmentVariable(),
+ envVar);
+ }
+ }
+
+ private static ProfileFile configFile(String name, Pair, ?>... pairs) {
+ String values = Arrays.stream(pairs)
+ .map(pair -> String.format("%s=%s", pair.left(), pair.right()))
+ .collect(Collectors.joining(System.lineSeparator()));
+ String contents = String.format("[%s]\n%s", name, values);
+
+ return configFile(contents);
+ }
+
+ private static ProfileFile configFile(String credentialFile) {
+ return ProfileFile.builder()
+ .content(new StringInputStream(credentialFile))
+ .type(ProfileFile.Type.CONFIGURATION)
+ .build();
+ }
+}
diff --git a/core/checksums-spi/pom.xml b/core/checksums-spi/pom.xml
index a80243af8f70..8249529f1232 100644
--- a/core/checksums-spi/pom.xml
+++ b/core/checksums-spi/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
checksums-spi
diff --git a/core/checksums/pom.xml b/core/checksums/pom.xml
index 01a043f849d5..2404de74b228 100644
--- a/core/checksums/pom.xml
+++ b/core/checksums/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
checksums
diff --git a/core/crt-core/pom.xml b/core/crt-core/pom.xml
index 3de8ea0794d0..c794d857ed61 100644
--- a/core/crt-core/pom.xml
+++ b/core/crt-core/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
crt-core
diff --git a/core/endpoints-spi/pom.xml b/core/endpoints-spi/pom.xml
index f343781c550d..8f5f72d650a0 100644
--- a/core/endpoints-spi/pom.xml
+++ b/core/endpoints-spi/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/http-auth-aws-crt/pom.xml b/core/http-auth-aws-crt/pom.xml
index caff051f2ab5..7246bd9cbe7d 100644
--- a/core/http-auth-aws-crt/pom.xml
+++ b/core/http-auth-aws-crt/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
http-auth-aws-crt
diff --git a/core/http-auth-aws-eventstream/pom.xml b/core/http-auth-aws-eventstream/pom.xml
index 0b44cf5527f3..d71c6dce7d9c 100644
--- a/core/http-auth-aws-eventstream/pom.xml
+++ b/core/http-auth-aws-eventstream/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
http-auth-aws-eventstream
diff --git a/core/http-auth-aws/pom.xml b/core/http-auth-aws/pom.xml
index a98b64d965c5..1f3dfab0e44e 100644
--- a/core/http-auth-aws/pom.xml
+++ b/core/http-auth-aws/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
http-auth-aws
diff --git a/core/http-auth-spi/pom.xml b/core/http-auth-spi/pom.xml
index a96290583460..9dcb1447d827 100644
--- a/core/http-auth-spi/pom.xml
+++ b/core/http-auth-spi/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
http-auth-spi
diff --git a/core/http-auth/pom.xml b/core/http-auth/pom.xml
index 9ec31e07e341..de9968b16ed1 100644
--- a/core/http-auth/pom.xml
+++ b/core/http-auth/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
http-auth
diff --git a/core/identity-spi/pom.xml b/core/identity-spi/pom.xml
index c50203d60db5..47dfe7dba763 100644
--- a/core/identity-spi/pom.xml
+++ b/core/identity-spi/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
identity-spi
diff --git a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentity.java b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentity.java
index f738df91fcb0..ce3c0b0cd458 100644
--- a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentity.java
+++ b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentity.java
@@ -15,6 +15,7 @@
package software.amazon.awssdk.identity.spi;
+import java.util.Optional;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.identity.spi.internal.DefaultAwsCredentialsIdentity;
@@ -32,6 +33,7 @@
@SdkPublicApi
@ThreadSafe
public interface AwsCredentialsIdentity extends Identity {
+
/**
* Retrieve the AWS access key, used to identify the user interacting with services.
*/
@@ -42,6 +44,12 @@ public interface AwsCredentialsIdentity extends Identity {
*/
String secretAccessKey();
+ /**
+ * Retrieve the AWS account id associated with this credentials identity, if found.
+ */
+ default Optional accountId() {
+ return Optional.empty();
+ }
static Builder builder() {
return DefaultAwsCredentialsIdentity.builder();
@@ -70,6 +78,11 @@ interface Builder {
*/
Builder secretAccessKey(String secretAccessKey);
+ /**
+ * The AWS account id associated with this credentials identity.
+ */
+ Builder accountId(String accountId);
+
/**
* The name of the identity provider that created this credential identity.
*/
diff --git a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentity.java b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentity.java
index bf3ae020fbe0..5a3228ab8c77 100644
--- a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentity.java
+++ b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentity.java
@@ -60,6 +60,9 @@ interface Builder extends AwsCredentialsIdentity.Builder {
@Override
Builder secretAccessKey(String secretAccessKey);
+ @Override
+ Builder accountId(String accountId);
+
/**
* The AWS session token, retrieved from an AWS token service, used for authenticating that this user has
* received temporary permission to access some resource.
diff --git a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsCredentialsIdentity.java b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsCredentialsIdentity.java
index 2e38b32ded6a..42f643babc51 100644
--- a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsCredentialsIdentity.java
+++ b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsCredentialsIdentity.java
@@ -28,11 +28,13 @@ public final class DefaultAwsCredentialsIdentity implements AwsCredentialsIdenti
private final String accessKeyId;
private final String secretAccessKey;
private final String providerName;
+ private final String accountId;
private DefaultAwsCredentialsIdentity(Builder builder) {
this.accessKeyId = builder.accessKeyId;
this.secretAccessKey = builder.secretAccessKey;
this.providerName = builder.providerName;
+ this.accountId = builder.accountId;
Validate.paramNotNull(accessKeyId, "accessKeyId");
Validate.paramNotNull(secretAccessKey, "secretAccessKey");
@@ -57,11 +59,17 @@ public Optional providerName() {
return Optional.ofNullable(providerName);
}
+ @Override
+ public Optional accountId() {
+ return Optional.ofNullable(accountId);
+ }
+
@Override
public String toString() {
return ToString.builder("AwsCredentialsIdentity")
.add("accessKeyId", accessKeyId)
.add("providerName", providerName)
+ .add("accountId", accountId)
.build();
}
@@ -75,7 +83,8 @@ public boolean equals(Object o) {
}
AwsCredentialsIdentity that = (AwsCredentialsIdentity) o;
return Objects.equals(accessKeyId, that.accessKeyId()) &&
- Objects.equals(secretAccessKey, that.secretAccessKey());
+ Objects.equals(secretAccessKey, that.secretAccessKey()) &&
+ Objects.equals(accountId, that.accountId().orElse(null));
}
@Override
@@ -83,6 +92,7 @@ public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(accessKeyId);
hashCode = 31 * hashCode + Objects.hashCode(secretAccessKey);
+ hashCode = 31 * hashCode + Objects.hashCode(accountId);
return hashCode;
}
@@ -90,6 +100,7 @@ private static final class Builder implements AwsCredentialsIdentity.Builder {
private String accessKeyId;
private String secretAccessKey;
private String providerName;
+ private String accountId;
private Builder() {
}
@@ -112,6 +123,12 @@ public Builder providerName(String providerName) {
return this;
}
+ @Override
+ public Builder accountId(String accountId) {
+ this.accountId = accountId;
+ return this;
+ }
+
@Override
public AwsCredentialsIdentity build() {
return new DefaultAwsCredentialsIdentity(this);
diff --git a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsSessionCredentialsIdentity.java b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsSessionCredentialsIdentity.java
index 7b07dfb4f31c..a55a579f6b19 100644
--- a/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsSessionCredentialsIdentity.java
+++ b/core/identity-spi/src/main/java/software/amazon/awssdk/identity/spi/internal/DefaultAwsSessionCredentialsIdentity.java
@@ -29,12 +29,15 @@ public final class DefaultAwsSessionCredentialsIdentity implements AwsSessionCre
private final String secretAccessKey;
private final String sessionToken;
private final String providerName;
+ private final String accountId;
+
private DefaultAwsSessionCredentialsIdentity(Builder builder) {
this.accessKeyId = builder.accessKeyId;
this.secretAccessKey = builder.secretAccessKey;
this.sessionToken = builder.sessionToken;
this.providerName = builder.providerName;
+ this.accountId = builder.accountId;
Validate.paramNotNull(accessKeyId, "accessKeyId");
Validate.paramNotNull(secretAccessKey, "secretAccessKey");
@@ -55,6 +58,11 @@ public String secretAccessKey() {
return secretAccessKey;
}
+ @Override
+ public Optional accountId() {
+ return Optional.ofNullable(accountId);
+ }
+
@Override
public String sessionToken() {
return sessionToken;
@@ -70,6 +78,7 @@ public String toString() {
return ToString.builder("AwsSessionCredentialsIdentity")
.add("accessKeyId", accessKeyId)
.add("providerName", providerName)
+ .add("accountId", accountId)
.build();
}
@@ -84,7 +93,8 @@ public boolean equals(Object o) {
AwsSessionCredentialsIdentity that = (AwsSessionCredentialsIdentity) o;
return Objects.equals(accessKeyId, that.accessKeyId()) &&
Objects.equals(secretAccessKey, that.secretAccessKey()) &&
- Objects.equals(sessionToken, that.sessionToken());
+ Objects.equals(sessionToken, that.sessionToken()) &&
+ Objects.equals(accountId, that.accountId().orElse(null));
}
@Override
@@ -93,6 +103,7 @@ public int hashCode() {
hashCode = 31 * hashCode + Objects.hashCode(accessKeyId);
hashCode = 31 * hashCode + Objects.hashCode(secretAccessKey);
hashCode = 31 * hashCode + Objects.hashCode(sessionToken);
+ hashCode = 31 * hashCode + Objects.hashCode(accountId);
return hashCode;
}
@@ -101,6 +112,7 @@ private static final class Builder implements AwsSessionCredentialsIdentity.Buil
private String secretAccessKey;
private String sessionToken;
private String providerName;
+ private String accountId;
private Builder() {
}
@@ -129,6 +141,13 @@ public Builder providerName(String providerName) {
return this;
}
+
+ @Override
+ public Builder accountId(String accountId) {
+ this.accountId = accountId;
+ return this;
+ }
+
@Override
public AwsSessionCredentialsIdentity build() {
return new DefaultAwsSessionCredentialsIdentity(this);
diff --git a/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentityTest.java b/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentityTest.java
index a75cfafa340f..02a141bd3bc5 100644
--- a/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentityTest.java
+++ b/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsCredentialsIdentityTest.java
@@ -16,7 +16,9 @@
package software.amazon.awssdk.identity.spi;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import nl.jqno.equalsverifier.EqualsVerifier;
import org.junit.jupiter.api.Test;
@@ -26,6 +28,7 @@
public class AwsCredentialsIdentityTest {
private static final String ACCESS_KEY_ID = "accessKeyId";
private static final String SECRET_ACCESS_KEY = "secretAccessKey";
+ private static final String ACCOUNT_ID = "accountId";
@Test
public void equalsHashcode() {
@@ -54,6 +57,7 @@ public void create_isSuccessful() {
AwsCredentialsIdentity identity = AwsCredentialsIdentity.create(ACCESS_KEY_ID, SECRET_ACCESS_KEY);
assertEquals(ACCESS_KEY_ID, identity.accessKeyId());
assertEquals(SECRET_ACCESS_KEY, identity.secretAccessKey());
+ assertFalse(identity.accountId().isPresent());
}
@Test
@@ -61,8 +65,11 @@ public void build_isSuccessful() {
AwsCredentialsIdentity identity = AwsCredentialsIdentity.builder()
.accessKeyId(ACCESS_KEY_ID)
.secretAccessKey(SECRET_ACCESS_KEY)
+ .accountId(ACCOUNT_ID)
.build();
assertEquals(ACCESS_KEY_ID, identity.accessKeyId());
assertEquals(SECRET_ACCESS_KEY, identity.secretAccessKey());
+ assertTrue(identity.accountId().isPresent());
+ assertEquals(ACCOUNT_ID, identity.accountId().get());
}
}
diff --git a/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentityTest.java b/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentityTest.java
index b687b7b89348..7e2218303505 100644
--- a/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentityTest.java
+++ b/core/identity-spi/src/test/java/software/amazon/awssdk/identity/spi/AwsSessionCredentialsIdentityTest.java
@@ -16,7 +16,9 @@
package software.amazon.awssdk.identity.spi;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import nl.jqno.equalsverifier.EqualsVerifier;
import org.junit.jupiter.api.Test;
@@ -27,6 +29,7 @@ public class AwsSessionCredentialsIdentityTest {
private static final String ACCESS_KEY_ID = "accessKeyId";
private static final String SECRET_ACCESS_KEY = "secretAccessKey";
private static final String SESSION_TOKEN = "sessionToken";
+ private static final String ACCOUNT_ID = "accountId";
@Test
public void equalsHashcode() {
@@ -64,6 +67,7 @@ public void create_isSuccessful() {
assertEquals(ACCESS_KEY_ID, identity.accessKeyId());
assertEquals(SECRET_ACCESS_KEY, identity.secretAccessKey());
assertEquals(SESSION_TOKEN, identity.sessionToken());
+ assertFalse(identity.accountId().isPresent());
}
@Test
@@ -72,9 +76,12 @@ public void build_isSuccessful() {
.accessKeyId(ACCESS_KEY_ID)
.secretAccessKey(SECRET_ACCESS_KEY)
.sessionToken(SESSION_TOKEN)
+ .accountId(ACCOUNT_ID)
.build();
assertEquals(ACCESS_KEY_ID, identity.accessKeyId());
assertEquals(SECRET_ACCESS_KEY, identity.secretAccessKey());
assertEquals(SESSION_TOKEN, identity.sessionToken());
+ assertTrue(identity.accountId().isPresent());
+ assertEquals(ACCOUNT_ID, identity.accountId().get());
}
}
diff --git a/core/imds/pom.xml b/core/imds/pom.xml
index e85cb104c77d..e8c09f6481be 100644
--- a/core/imds/pom.xml
+++ b/core/imds/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
imds
diff --git a/core/json-utils/pom.xml b/core/json-utils/pom.xml
index 0247c8a891f1..a236bfe75dc1 100644
--- a/core/json-utils/pom.xml
+++ b/core/json-utils/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/metrics-spi/pom.xml b/core/metrics-spi/pom.xml
index 053339c3755e..cb8c9e7e6598 100644
--- a/core/metrics-spi/pom.xml
+++ b/core/metrics-spi/pom.xml
@@ -5,7 +5,7 @@
core
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/pom.xml b/core/pom.xml
index a94dfe292ff6..242f11439a57 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
core
diff --git a/core/profiles/pom.xml b/core/profiles/pom.xml
index 28cb19aea894..b9e4b2f8851e 100644
--- a/core/profiles/pom.xml
+++ b/core/profiles/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
profiles
diff --git a/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java b/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java
index 4f880510ca5a..97d35332ada9 100644
--- a/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java
+++ b/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java
@@ -39,6 +39,11 @@ public final class ProfileProperty {
*/
public static final String AWS_SESSION_TOKEN = "aws_session_token";
+ /**
+ * Property name for specifying the Amazon AWS Account ID associated with credentials
+ */
+ public static final String AWS_ACCOUNT_ID = "aws_account_id";
+
/**
* Property name for specifying the IAM role to assume
*/
@@ -113,6 +118,15 @@ public final class ProfileProperty {
*/
public static final String DEFAULTS_MODE = "defaults_mode";
+ /**
+ * The "account id endpoint mode" to be used for clients created using the currently-configured profile.
+ * This setting can only be used by services that route user requests to account specific endpoints, and determines
+ * how endpoints should be resolved depending on the availability of an accountId for a request.
+ *
+ * See the {@code AccountIdEndpointMode} class javadoc for more information.
+ */
+ public static final String ACCOUNT_ID_ENDPOINT_MODE = "account_id_endpoint_mode";
+
/**
* Aws region where the SSO directory for the given 'sso_start_url' is hosted. This is independent of the general 'region'.
*/
diff --git a/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java b/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java
index 6fa45ecbe4fb..0e8083f20faa 100644
--- a/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java
+++ b/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java
@@ -68,7 +68,7 @@ public static void tearDown() {
@Test
void get_profileFileFixed_doesNotReloadProfileFile() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
ProfileFileSupplier supplier = builder()
.fixedProfileFile(credentialsFilePath, ProfileFile.Type.CREDENTIALS)
@@ -76,7 +76,7 @@ void get_profileFileFixed_doesNotReloadProfileFile() {
ProfileFile file1 = supplier.get();
- generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey");
+ generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey", "modifiedAccountId");
ProfileFile file2 = supplier.get();
@@ -85,7 +85,7 @@ void get_profileFileFixed_doesNotReloadProfileFile() {
@Test
void get_profileModifiedWithinJitterPeriod_doesNotReloadCredentials() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
AdjustableClock clock = new AdjustableClock();
Duration durationWithinJitter = Duration.ofMillis(10);
@@ -95,7 +95,7 @@ void get_profileModifiedWithinJitterPeriod_doesNotReloadCredentials() {
ProfileFile file1 = supplier.get();
- generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey");
+ generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey", "modifiedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plus(durationWithinJitter));
clock.tickForward(durationWithinJitter);
@@ -106,7 +106,7 @@ void get_profileModifiedWithinJitterPeriod_doesNotReloadCredentials() {
@Test
void get_profileModifiedOutsideJitterPeriod_reloadsCredentials() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
AdjustableClock clock = new AdjustableClock();
@@ -118,7 +118,7 @@ void get_profileModifiedOutsideJitterPeriod_reloadsCredentials() {
supplier.get();
- generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey");
+ generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey", "modifiedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plus(durationOutsideJitter));
clock.tickForward(durationOutsideJitter);
@@ -136,12 +136,17 @@ void get_profileModifiedOutsideJitterPeriod_reloadsCredentials() {
assertThat(awsSecretAccessKeyOptional).isPresent();
String awsSecretAccessKey = awsSecretAccessKeyOptional.get();
assertThat(awsSecretAccessKey).isEqualTo("modifiedSecretAccessKey");
+
+ Optional awsAccountIdOptional = profile.property("aws_account_id");
+ assertThat(awsAccountIdOptional).isPresent();
+ String awsAccountId = awsAccountIdOptional.get();
+ assertThat(awsAccountId).isEqualTo("modifiedAccountId");
});
}
@Test
void get_profileModified_reloadsProfileFile() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
AdjustableClock clock = new AdjustableClock();
ProfileFileSupplier supplier = builderWithClock(clock)
@@ -151,7 +156,7 @@ void get_profileModified_reloadsProfileFile() {
Duration duration = Duration.ofSeconds(10);
ProfileFile file1 = supplier.get();
- generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey");
+ generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey", "modifiedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plusMillis(1));
clock.tickForward(duration);
@@ -162,7 +167,7 @@ void get_profileModified_reloadsProfileFile() {
@Test
void get_profileModifiedOnceButRefreshedMultipleTimes_reloadsProfileFileOnce() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
AdjustableClock clock = new AdjustableClock();
ProfileFileSupplier supplier = builderWithClock(clock)
@@ -173,7 +178,7 @@ void get_profileModifiedOnceButRefreshedMultipleTimes_reloadsProfileFileOnce() {
clock.tickForward(Duration.ofSeconds(5));
ProfileFile file2 = supplier.get();
- generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey");
+ generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey", "modifiedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plusMillis(1));
clock.tickForward(Duration.ofSeconds(5));
@@ -185,7 +190,7 @@ void get_profileModifiedOnceButRefreshedMultipleTimes_reloadsProfileFileOnce() {
@Test
void get_profileModifiedMultipleTimes_reloadsProfileFileOncePerChange() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
AdjustableClock clock = new AdjustableClock();
ProfileFileSupplier supplier = builderWithClock(clock)
@@ -198,13 +203,13 @@ void get_profileModifiedMultipleTimes_reloadsProfileFileOncePerChange() {
clock.tickForward(duration);
ProfileFile file2 = supplier.get();
- generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey");
+ generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey", "modifiedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plusMillis(1));
clock.tickForward(duration);
ProfileFile file3 = supplier.get();
- generateTestCredentialsFile("updatedAccessKey", "updatedSecretAccessKey");
+ generateTestCredentialsFile("updatedAccessKey", "updatedSecretAccessKey", "updatedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plusMillis(1));
clock.tickForward(duration);
@@ -221,7 +226,7 @@ void get_profileModifiedMultipleTimes_reloadsProfileFileOncePerChange() {
@Test
void get_supplierBuiltByReloadWhenModified_loadsProfileFile() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
ProfileFileSupplier supplier = ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS);
ProfileFile file = supplier.get();
@@ -239,12 +244,17 @@ void get_supplierBuiltByReloadWhenModified_loadsProfileFile() {
assertThat(awsSecretAccessKeyOptional).isPresent();
String awsSecretAccessKey = awsSecretAccessKeyOptional.get();
assertThat(awsSecretAccessKey).isEqualTo("defaultSecretAccessKey");
+
+ Optional awsAccountIdOptional = profile.property("aws_account_id");
+ assertThat(awsAccountIdOptional).isPresent();
+ String awsAccountId = awsAccountIdOptional.get();
+ assertThat(awsAccountId).isEqualTo("defaultAccountId");
});
}
@Test
void get_supplierBuiltByFixedProfileFile_returnsProfileFile() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
ProfileFileSupplier supplier = ProfileFileSupplier.fixedProfileFile(ProfileFile.builder()
.content(credentialsFilePath)
@@ -265,12 +275,17 @@ void get_supplierBuiltByFixedProfileFile_returnsProfileFile() {
assertThat(awsSecretAccessKeyOptional).isPresent();
String awsSecretAccessKey = awsSecretAccessKeyOptional.get();
assertThat(awsSecretAccessKey).isEqualTo("defaultSecretAccessKey");
+
+ Optional awsAccountIdOptional = profile.property("aws_account_id");
+ assertThat(awsAccountIdOptional).isPresent();
+ String awsAccountId = awsAccountIdOptional.get();
+ assertThat(awsAccountId).isEqualTo("defaultAccountId");
});
}
@Test
void get_supplierBuiltByReloadWhenModifiedAggregate_reloadsCredentials() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
Path configFilePath = generateTestConfigFile(Pair.of("region", "us-west-2"));
ProfileFileSupplier credentialsProfileFileSupplier = ProfileFileSupplier.reloadWhenModified(credentialsFilePath,
@@ -302,7 +317,7 @@ void get_supplierBuiltByReloadWhenModifiedAggregate_reloadsCredentials() {
@Test
void get_supplierBuiltByFixedProfileFileAggregate_returnsAggregateProfileFileInstance() {
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
Path configFilePath = generateTestConfigFile(Pair.of("region", "us-west-2"));
ProfileFileSupplier credentialsProfileFileSupplier
@@ -332,6 +347,11 @@ void get_supplierBuiltByFixedProfileFileAggregate_returnsAggregateProfileFileIns
String awsSecretAccessKey = awsSecretAccessKeyOptional.get();
assertThat(awsSecretAccessKey).isEqualTo("defaultSecretAccessKey");
+ Optional awsAccountIdOptional = profile.property("aws_account_id");
+ assertThat(awsAccountIdOptional).isPresent();
+ String awsAccountId = awsAccountIdOptional.get();
+ assertThat(awsAccountId).isEqualTo("defaultAccountId");
+
Optional regionOptional = profile.property("region");
assertThat(regionOptional).isPresent();
String region = regionOptional.get();
@@ -341,11 +361,13 @@ void get_supplierBuiltByFixedProfileFileAggregate_returnsAggregateProfileFileIns
@Test
void aggregate_supplierReturnsSameInstanceMultipleTimesAggregatingProfileFile_aggregatesOnlyDistinctInstances() {
- ProfileFile credentialFile1 = credentialFile("test1", "key1", "secret1");
- ProfileFile credentialFile2 = credentialFile("test2", "key2", "secret2");
- ProfileFile credentialFile3 = credentialFile("test3", "key3", "secret3");
- ProfileFile credentialFile4 = credentialFile("test4", "key4", "secret4");
- ProfileFile configFile = configFile("profile test", Pair.of("region", "us-west-2"));
+ ProfileFile credentialFile1 = credentialProfileFile("test1", "key1", "secret1");
+ ProfileFile credentialFile2 = credentialProfileFile("test2", "key2", "secret2");
+ ProfileFile credentialFile3 = credentialProfileFile("test3", "key3", "secret3");
+ ProfileFile credentialFile4 = credentialProfileFile("test4", "key4", "secret4");
+ ProfileFile configFile = configProfileFile("profile test",
+ Pair.of("region", "us-west-2"),
+ Pair.of("aws_account_id", "012354678922"));
List orderedCredentialsFiles
= Arrays.asList(credentialFile1, credentialFile1, credentialFile2, credentialFile3, credentialFile3, credentialFile4,
@@ -370,13 +392,13 @@ void aggregate_supplierReturnsSameInstanceMultipleTimesAggregatingProfileFile_ag
@Test
void aggregate_supplierReturnsSameInstanceMultipleTimesAggregatingProfileFileSupplier_aggregatesOnlyDistinctInstances() {
- ProfileFile credentialFile1 = credentialFile("test1", "key1", "secret1");
- ProfileFile credentialFile2 = credentialFile("test2", "key2", "secret2");
- ProfileFile credentialFile3 = credentialFile("test3", "key3", "secret3");
- ProfileFile credentialFile4 = credentialFile("test4", "key4", "secret4");
- ProfileFile configFile1 = configFile("profile test", Pair.of("region", "us-west-1"));
- ProfileFile configFile2 = configFile("profile test", Pair.of("region", "us-west-2"));
- ProfileFile configFile3 = configFile("profile test", Pair.of("region", "us-west-3"));
+ ProfileFile credentialFile1 = credentialProfileFile("test1", "key1", "secret1");
+ ProfileFile credentialFile2 = credentialProfileFile("test2", "key2", "secret2");
+ ProfileFile credentialFile3 = credentialProfileFile("test3", "key3", "secret3");
+ ProfileFile credentialFile4 = credentialProfileFile("test4", "key4", "secret4");
+ ProfileFile configFile1 = configProfileFile("profile test", Pair.of("region", "us-west-1"));
+ ProfileFile configFile2 = configProfileFile("profile test", Pair.of("region", "us-west-2"));
+ ProfileFile configFile3 = configProfileFile("profile test", Pair.of("region", "us-west-3"));
List orderedCredentialsFiles
= Arrays.asList(credentialFile1, credentialFile1, credentialFile2, credentialFile2, credentialFile3,
@@ -412,8 +434,10 @@ void aggregate_supplierReturnsSameInstanceMultipleTimesAggregatingProfileFileSup
@Test
void aggregate_duplicateOptionsGivenFixedProfileFirst_preservesPrecedence() {
- ProfileFile configFile1 = configFile("profile default", Pair.of("aws_access_key_id", "config-key"));
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ ProfileFile configFile1 = configProfileFile("profile default",
+ Pair.of("aws_access_key_id", "config-key"),
+ Pair.of("aws_account_id", "012354678922"));
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
ProfileFileSupplier supplier = ProfileFileSupplier.aggregate(
ProfileFileSupplier.fixedProfileFile(configFile1),
@@ -421,15 +445,19 @@ void aggregate_duplicateOptionsGivenFixedProfileFirst_preservesPrecedence() {
ProfileFile profileFile = supplier.get();
String accessKeyId = profileFile.profile("default").get().property("aws_access_key_id").get();
+ String accountId = profileFile.profile("default").get().property("aws_account_id").get();
assertThat(accessKeyId).isEqualTo("config-key");
+ assertThat(accountId).isEqualTo("012354678922");
- generateTestCredentialsFile("defaultAccessKey2", "defaultSecretAccessKey2");
+ generateTestCredentialsFile("defaultAccessKey2", "defaultSecretAccessKey2", "defaultAccountId2");
profileFile = supplier.get();
accessKeyId = profileFile.profile("default").get().property("aws_access_key_id").get();
+ accountId = profileFile.profile("default").get().property("aws_account_id").get();
assertThat(accessKeyId).isEqualTo("config-key");
+ assertThat(accountId).isEqualTo("012354678922");
}
@Test
@@ -437,8 +465,8 @@ void aggregate_duplicateOptionsGivenReloadingProfileFirst_preservesPrecedence()
Instant startTime = Instant.now();
AdjustableClock clock = new AdjustableClock(startTime);
- ProfileFile configFile1 = configFile("profile default", Pair.of("aws_access_key_id", "config-key"));
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ ProfileFile configFile1 = configProfileFile("profile default", Pair.of("aws_access_key_id", "config-key"));
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
ProfileFileSupplier supplier = ProfileFileSupplier.aggregate(
builderWithClock(clock)
@@ -451,7 +479,7 @@ void aggregate_duplicateOptionsGivenReloadingProfileFirst_preservesPrecedence()
assertThat(accessKeyId).isEqualTo("defaultAccessKey");
- generateTestCredentialsFile("defaultAccessKey2", "defaultSecretAccessKey2");
+ generateTestCredentialsFile("defaultAccessKey2", "defaultSecretAccessKey2", "defaultAccountId2");
Duration tick = Duration.ofMillis(1_000);
@@ -481,7 +509,7 @@ void get_givenOnLoadAction_callsActionOncePerNewProfileFile() {
int actualProfilesCount = 3;
AtomicInteger blockCount = new AtomicInteger();
- Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey");
+ Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey", "defaultAccountId");
AdjustableClock clock = new AdjustableClock();
ProfileFileSupplier supplier = builderWithClock(clock)
@@ -495,13 +523,13 @@ void get_givenOnLoadAction_callsActionOncePerNewProfileFile() {
clock.tickForward(duration);
supplier.get();
- generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey");
+ generateTestCredentialsFile("modifiedAccessKey", "modifiedSecretAccessKey", "modifiedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plusMillis(1));
clock.tickForward(duration);
supplier.get();
- generateTestCredentialsFile("updatedAccessKey", "updatedSecretAccessKey");
+ generateTestCredentialsFile("updatedAccessKey", "updatedSecretAccessKey", "updatedAccountId");
updateModificationTime(credentialsFilePath, clock.instant().plusMillis(1));
clock.tickForward(duration);
@@ -522,9 +550,10 @@ private Path writeTestFile(String contents, Path path) {
}
}
- private Path generateTestCredentialsFile(String accessKeyId, String secretAccessKey) {
- String contents = String.format("[default]\naws_access_key_id = %s\naws_secret_access_key = %s\n",
- accessKeyId, secretAccessKey);
+ private Path generateTestCredentialsFile(String accessKeyId, String secretAccessKey, String accountId) {
+ String contents = String.format("[default]\naws_access_key_id = %s\naws_secret_access_key = %s\n"
+ + "aws_account_id = %s\n",
+ accessKeyId, secretAccessKey, accountId);
return writeTestFile(contents, getTestCredentialsFilePath());
}
@@ -549,33 +578,33 @@ private void updateModificationTime(Path path, Instant instant) {
}
}
- private ProfileFile credentialFile(String credentialFile) {
+ private ProfileFile credentialProfileFile(String credentialFile) {
return ProfileFile.builder()
.content(new StringInputStream(credentialFile))
.type(ProfileFile.Type.CREDENTIALS)
.build();
}
- private ProfileFile credentialFile(String name, String accessKeyId, String secretAccessKey) {
+ private ProfileFile credentialProfileFile(String name, String accessKeyId, String secretAccessKey) {
String contents = String.format("[%s]\naws_access_key_id = %s\naws_secret_access_key = %s\n",
name, accessKeyId, secretAccessKey);
- return credentialFile(contents);
+ return credentialProfileFile(contents);
}
- private ProfileFile configFile(String credentialFile) {
+ private ProfileFile configProfileFile(String credentialFile) {
return ProfileFile.builder()
.content(new StringInputStream(credentialFile))
.type(ProfileFile.Type.CONFIGURATION)
.build();
}
- private ProfileFile configFile(String name, Pair, ?>... pairs) {
+ private ProfileFile configProfileFile(String name, Pair, ?>... pairs) {
String values = Arrays.stream(pairs)
.map(pair -> String.format("%s=%s", pair.left(), pair.right()))
.collect(Collectors.joining(System.lineSeparator()));
String contents = String.format("[%s]\n%s", name, values);
- return configFile(contents);
+ return configProfileFile(contents);
}
private static Predicate uniqueInstances() {
diff --git a/core/protocols/aws-cbor-protocol/pom.xml b/core/protocols/aws-cbor-protocol/pom.xml
index 21809a83271f..2fc8a8232a59 100644
--- a/core/protocols/aws-cbor-protocol/pom.xml
+++ b/core/protocols/aws-cbor-protocol/pom.xml
@@ -20,7 +20,7 @@
protocols
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/protocols/aws-json-protocol/pom.xml b/core/protocols/aws-json-protocol/pom.xml
index 8dffde399779..1b7f954f83dd 100644
--- a/core/protocols/aws-json-protocol/pom.xml
+++ b/core/protocols/aws-json-protocol/pom.xml
@@ -20,7 +20,7 @@
protocols
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/protocols/aws-query-protocol/pom.xml b/core/protocols/aws-query-protocol/pom.xml
index 61c005e5bf26..ea7848e744b1 100644
--- a/core/protocols/aws-query-protocol/pom.xml
+++ b/core/protocols/aws-query-protocol/pom.xml
@@ -20,7 +20,7 @@
protocols
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/protocols/aws-xml-protocol/pom.xml b/core/protocols/aws-xml-protocol/pom.xml
index 4e32e75eacee..b980403bbe00 100644
--- a/core/protocols/aws-xml-protocol/pom.xml
+++ b/core/protocols/aws-xml-protocol/pom.xml
@@ -20,7 +20,7 @@
protocols
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/protocols/pom.xml b/core/protocols/pom.xml
index 3df6866a7211..5c7198f6bd7a 100644
--- a/core/protocols/pom.xml
+++ b/core/protocols/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/protocols/protocol-core/pom.xml b/core/protocols/protocol-core/pom.xml
index 3cb5edfa1c26..bfa6fcf7e238 100644
--- a/core/protocols/protocol-core/pom.xml
+++ b/core/protocols/protocol-core/pom.xml
@@ -20,7 +20,7 @@
protocols
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/core/regions/pom.xml b/core/regions/pom.xml
index dbf01d11945d..7b9e953f050a 100644
--- a/core/regions/pom.xml
+++ b/core/regions/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
regions
diff --git a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json
index f95a23a901c2..27e464f51716 100644
--- a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json
+++ b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json
@@ -21251,6 +21251,17 @@
"cn-northwest-1" : { }
}
},
+ "entitlement.marketplace" : {
+ "endpoints" : {
+ "cn-northwest-1" : {
+ "credentialScope" : {
+ "region" : "cn-northwest-1"
+ },
+ "hostname" : "entitlement-marketplace.cn-northwest-1.amazonaws.com.cn",
+ "protocols" : [ "HTTPS" ]
+ }
+ }
+ },
"es" : {
"endpoints" : {
"cn-north-1" : {
diff --git a/core/sdk-core/pom.xml b/core/sdk-core/pom.xml
index ff5356de3111..eb05243ad684 100644
--- a/core/sdk-core/pom.xml
+++ b/core/sdk-core/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
core
- 2.25.36
+ 2.25.37
sdk-core
AWS Java SDK :: SDK Core
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java
index 1f08db5a9057..e59f663c06c8 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java
@@ -45,6 +45,11 @@ public enum SdkSystemSetting implements SystemSetting {
*/
AWS_SESSION_TOKEN("aws.sessionToken", null),
+ /**
+ * Configure the AWS account id associated with credentials supplied through system properties.
+ */
+ AWS_ACCOUNT_ID("aws.accountId", null),
+
/**
* Configure the AWS web identity token file path.
*/
@@ -187,6 +192,11 @@ public enum SdkSystemSetting implements SystemSetting {
*/
AWS_DEFAULTS_MODE("aws.defaultsMode", null),
+ /**
+ * Which {@code AccountIdEndpointMode} to use, case insensitive
+ */
+ AWS_ACCOUNT_ID_ENDPOINT_MODE("aws.accountIdEndpointMode", null),
+
/**
* Defines whether dualstack endpoints should be resolved during default endpoint resolution instead of non-dualstack
* endpoints.
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/IdentityProviderNameMapping.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/IdentityProviderNameMapping.java
index d76b0b250a42..95e249eb529f 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/IdentityProviderNameMapping.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/useragent/IdentityProviderNameMapping.java
@@ -31,9 +31,9 @@ public enum IdentityProviderNameMapping {
SYS("SystemPropertyCredentialsProvider"),
ENV("EnvironmentVariableCredentialsProvider"),
- STSWEB("StsAssumeRoleWithWebIdentity"),
+ STSWEB("StsAssumeRoleWithWebIdentityCredentialsProvider"),
STSROLE("StsAssumeRoleCredentialsProvider"),
- STSSAML("StsAssumeRoleWithWebIdentityCredentialsProvider"),
+ STSSAML("StsAssumeRoleWithSamlCredentialsProvider"),
STSFED("StsGetFederationTokenCredentialsProvider"),
STSSESS("StsGetSessionTokenCredentialsProvider"),
SSO("SsoCredentialsProvider"),
diff --git a/http-client-spi/pom.xml b/http-client-spi/pom.xml
index 8d699e4cb8b5..418a558a1d99 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.25.36
+ 2.25.37
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 edfcea3d5399..15a3ebba5a97 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.25.36
+ 2.25.37
apache-client
diff --git a/http-clients/aws-crt-client/pom.xml b/http-clients/aws-crt-client/pom.xml
index 8d8d55aa798b..4abfb0f7c59f 100644
--- a/http-clients/aws-crt-client/pom.xml
+++ b/http-clients/aws-crt-client/pom.xml
@@ -21,7 +21,7 @@
http-clients
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/http-clients/netty-nio-client/pom.xml b/http-clients/netty-nio-client/pom.xml
index d9fbeb86b3e2..123ddf0719f8 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.25.36
+ 2.25.37
4.0.0
diff --git a/http-clients/pom.xml b/http-clients/pom.xml
index 712751c51e89..9a74fa57b425 100644
--- a/http-clients/pom.xml
+++ b/http-clients/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/http-clients/url-connection-client/pom.xml b/http-clients/url-connection-client/pom.xml
index f331ea4b0d1e..d66ade4f062f 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.25.36
+ 2.25.37
4.0.0
diff --git a/metric-publishers/cloudwatch-metric-publisher/pom.xml b/metric-publishers/cloudwatch-metric-publisher/pom.xml
index a21b6fce95c8..f9446cf3c359 100644
--- a/metric-publishers/cloudwatch-metric-publisher/pom.xml
+++ b/metric-publishers/cloudwatch-metric-publisher/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
metric-publishers
- 2.25.36
+ 2.25.37
cloudwatch-metric-publisher
diff --git a/metric-publishers/pom.xml b/metric-publishers/pom.xml
index 535b1199b920..d502f71bbca5 100644
--- a/metric-publishers/pom.xml
+++ b/metric-publishers/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
metric-publishers
diff --git a/pom.xml b/pom.xml
index f58df3b8cd07..efff18a2e4a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
4.0.0
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
pom
AWS Java SDK :: Parent
The Amazon Web Services SDK for Java provides Java APIs
@@ -96,7 +96,7 @@
${project.version}
- 2.25.35
+ 2.25.36
2.15.2
2.15.2
2.13.2
diff --git a/release-scripts/pom.xml b/release-scripts/pom.xml
index 92dcf58d1693..01269ea5be01 100644
--- a/release-scripts/pom.xml
+++ b/release-scripts/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
../pom.xml
release-scripts
diff --git a/services-custom/dynamodb-enhanced/pom.xml b/services-custom/dynamodb-enhanced/pom.xml
index 143e6d4f6d9b..a9884755cc63 100644
--- a/services-custom/dynamodb-enhanced/pom.xml
+++ b/services-custom/dynamodb-enhanced/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services-custom
- 2.25.36
+ 2.25.37
dynamodb-enhanced
AWS Java SDK :: DynamoDB :: Enhanced Client
diff --git a/services-custom/iam-policy-builder/pom.xml b/services-custom/iam-policy-builder/pom.xml
index 81115f143c2f..d5890de7d780 100644
--- a/services-custom/iam-policy-builder/pom.xml
+++ b/services-custom/iam-policy-builder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
../../pom.xml
iam-policy-builder
diff --git a/services-custom/pom.xml b/services-custom/pom.xml
index f4ed06578bc9..e495ab8096df 100644
--- a/services-custom/pom.xml
+++ b/services-custom/pom.xml
@@ -19,7 +19,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
services-custom
AWS Java SDK :: Custom Services
diff --git a/services-custom/s3-event-notifications/pom.xml b/services-custom/s3-event-notifications/pom.xml
index 55d474f268a8..69e681e6de32 100644
--- a/services-custom/s3-event-notifications/pom.xml
+++ b/services-custom/s3-event-notifications/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
../../pom.xml
s3-event-notifications
diff --git a/services-custom/s3-transfer-manager/pom.xml b/services-custom/s3-transfer-manager/pom.xml
index b00736ad0235..58416c45c1c3 100644
--- a/services-custom/s3-transfer-manager/pom.xml
+++ b/services-custom/s3-transfer-manager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
../../pom.xml
s3-transfer-manager
diff --git a/services/accessanalyzer/pom.xml b/services/accessanalyzer/pom.xml
index e538a39c7244..4f1e0933036a 100644
--- a/services/accessanalyzer/pom.xml
+++ b/services/accessanalyzer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
accessanalyzer
AWS Java SDK :: Services :: AccessAnalyzer
diff --git a/services/account/pom.xml b/services/account/pom.xml
index 0b3215bc8da7..e1a863ccc9d9 100644
--- a/services/account/pom.xml
+++ b/services/account/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
account
AWS Java SDK :: Services :: Account
diff --git a/services/acm/pom.xml b/services/acm/pom.xml
index 99648b2ed17a..1e2aa0d8eccc 100644
--- a/services/acm/pom.xml
+++ b/services/acm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
acm
AWS Java SDK :: Services :: AWS Certificate Manager
diff --git a/services/acmpca/pom.xml b/services/acmpca/pom.xml
index 4eb2e1381297..3dbc081ff4c7 100644
--- a/services/acmpca/pom.xml
+++ b/services/acmpca/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
acmpca
AWS Java SDK :: Services :: ACM PCA
diff --git a/services/alexaforbusiness/pom.xml b/services/alexaforbusiness/pom.xml
index 124cd861ec27..db2d9dd4f07f 100644
--- a/services/alexaforbusiness/pom.xml
+++ b/services/alexaforbusiness/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
alexaforbusiness
diff --git a/services/amp/pom.xml b/services/amp/pom.xml
index d2fbb2d37e89..03bafa23c0b0 100644
--- a/services/amp/pom.xml
+++ b/services/amp/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
amp
AWS Java SDK :: Services :: Amp
diff --git a/services/amplify/pom.xml b/services/amplify/pom.xml
index 5e58b91b89bc..cdfb3c6e6fb9 100644
--- a/services/amplify/pom.xml
+++ b/services/amplify/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
amplify
AWS Java SDK :: Services :: Amplify
diff --git a/services/amplifybackend/pom.xml b/services/amplifybackend/pom.xml
index 47961b9627fd..ddef198652bb 100644
--- a/services/amplifybackend/pom.xml
+++ b/services/amplifybackend/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
amplifybackend
AWS Java SDK :: Services :: Amplify Backend
diff --git a/services/amplifyuibuilder/pom.xml b/services/amplifyuibuilder/pom.xml
index 78dec312d9ad..6cfe1bef9c8d 100644
--- a/services/amplifyuibuilder/pom.xml
+++ b/services/amplifyuibuilder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
amplifyuibuilder
AWS Java SDK :: Services :: Amplify UI Builder
diff --git a/services/apigateway/pom.xml b/services/apigateway/pom.xml
index 6cf50f8ce4be..1add4de13cfe 100644
--- a/services/apigateway/pom.xml
+++ b/services/apigateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
apigateway
AWS Java SDK :: Services :: Amazon API Gateway
diff --git a/services/apigatewaymanagementapi/pom.xml b/services/apigatewaymanagementapi/pom.xml
index 22018a7dbf81..862e59954a11 100644
--- a/services/apigatewaymanagementapi/pom.xml
+++ b/services/apigatewaymanagementapi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
apigatewaymanagementapi
AWS Java SDK :: Services :: ApiGatewayManagementApi
diff --git a/services/apigatewayv2/pom.xml b/services/apigatewayv2/pom.xml
index 99977701523f..c37c0edce7de 100644
--- a/services/apigatewayv2/pom.xml
+++ b/services/apigatewayv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
apigatewayv2
AWS Java SDK :: Services :: ApiGatewayV2
diff --git a/services/appconfig/pom.xml b/services/appconfig/pom.xml
index 0f298546d594..2f34c5c8d408 100644
--- a/services/appconfig/pom.xml
+++ b/services/appconfig/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
appconfig
AWS Java SDK :: Services :: AppConfig
diff --git a/services/appconfigdata/pom.xml b/services/appconfigdata/pom.xml
index 098bf7c7fab6..1aa9b43db15d 100644
--- a/services/appconfigdata/pom.xml
+++ b/services/appconfigdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
appconfigdata
AWS Java SDK :: Services :: App Config Data
diff --git a/services/appfabric/pom.xml b/services/appfabric/pom.xml
index 57e706180c0a..1760e1cf829d 100644
--- a/services/appfabric/pom.xml
+++ b/services/appfabric/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
appfabric
AWS Java SDK :: Services :: App Fabric
diff --git a/services/appflow/pom.xml b/services/appflow/pom.xml
index f6fdb2b88666..50be5c45a246 100644
--- a/services/appflow/pom.xml
+++ b/services/appflow/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
appflow
AWS Java SDK :: Services :: Appflow
diff --git a/services/appintegrations/pom.xml b/services/appintegrations/pom.xml
index 19b4e6d306f6..0cc7868d39ae 100644
--- a/services/appintegrations/pom.xml
+++ b/services/appintegrations/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
appintegrations
AWS Java SDK :: Services :: App Integrations
diff --git a/services/applicationautoscaling/pom.xml b/services/applicationautoscaling/pom.xml
index 0b0e3f03caa3..1abd76e00935 100644
--- a/services/applicationautoscaling/pom.xml
+++ b/services/applicationautoscaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
applicationautoscaling
AWS Java SDK :: Services :: AWS Application Auto Scaling
diff --git a/services/applicationcostprofiler/pom.xml b/services/applicationcostprofiler/pom.xml
index 1faaed936789..7e154e661144 100644
--- a/services/applicationcostprofiler/pom.xml
+++ b/services/applicationcostprofiler/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
applicationcostprofiler
AWS Java SDK :: Services :: Application Cost Profiler
diff --git a/services/applicationdiscovery/pom.xml b/services/applicationdiscovery/pom.xml
index f0a80c1f7e6e..2de5b7e52c06 100644
--- a/services/applicationdiscovery/pom.xml
+++ b/services/applicationdiscovery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
applicationdiscovery
AWS Java SDK :: Services :: AWS Application Discovery Service
diff --git a/services/applicationinsights/pom.xml b/services/applicationinsights/pom.xml
index b98913bc69d2..2378ca8cf6cc 100644
--- a/services/applicationinsights/pom.xml
+++ b/services/applicationinsights/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
applicationinsights
AWS Java SDK :: Services :: Application Insights
diff --git a/services/appmesh/pom.xml b/services/appmesh/pom.xml
index 348ffaa09b01..65f0f5453d19 100644
--- a/services/appmesh/pom.xml
+++ b/services/appmesh/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
appmesh
AWS Java SDK :: Services :: App Mesh
diff --git a/services/apprunner/pom.xml b/services/apprunner/pom.xml
index bc1f966fa3ed..2e3371b6766b 100644
--- a/services/apprunner/pom.xml
+++ b/services/apprunner/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
apprunner
AWS Java SDK :: Services :: App Runner
diff --git a/services/appstream/pom.xml b/services/appstream/pom.xml
index cc669d3bdadd..87cb44052dcc 100644
--- a/services/appstream/pom.xml
+++ b/services/appstream/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
appstream
AWS Java SDK :: Services :: Amazon AppStream
diff --git a/services/appsync/pom.xml b/services/appsync/pom.xml
index 24ed08879fed..0234ff808d64 100644
--- a/services/appsync/pom.xml
+++ b/services/appsync/pom.xml
@@ -21,7 +21,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
appsync
diff --git a/services/arczonalshift/pom.xml b/services/arczonalshift/pom.xml
index 7bf3654e817b..eb23dca97aad 100644
--- a/services/arczonalshift/pom.xml
+++ b/services/arczonalshift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
arczonalshift
AWS Java SDK :: Services :: ARC Zonal Shift
diff --git a/services/artifact/pom.xml b/services/artifact/pom.xml
index 00e132a2fe21..5d29ebf40366 100644
--- a/services/artifact/pom.xml
+++ b/services/artifact/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
artifact
AWS Java SDK :: Services :: Artifact
diff --git a/services/athena/pom.xml b/services/athena/pom.xml
index f0544a0dea35..4b24841a08f6 100644
--- a/services/athena/pom.xml
+++ b/services/athena/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
athena
AWS Java SDK :: Services :: Amazon Athena
diff --git a/services/auditmanager/pom.xml b/services/auditmanager/pom.xml
index 0c4329c2f1e9..bd80bfcf0263 100644
--- a/services/auditmanager/pom.xml
+++ b/services/auditmanager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
auditmanager
AWS Java SDK :: Services :: Audit Manager
diff --git a/services/autoscaling/pom.xml b/services/autoscaling/pom.xml
index 56b7c755bcc7..c25b803adf6d 100644
--- a/services/autoscaling/pom.xml
+++ b/services/autoscaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
autoscaling
AWS Java SDK :: Services :: Auto Scaling
diff --git a/services/autoscalingplans/pom.xml b/services/autoscalingplans/pom.xml
index c26d0b21fc79..8bb7146c900f 100644
--- a/services/autoscalingplans/pom.xml
+++ b/services/autoscalingplans/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
autoscalingplans
AWS Java SDK :: Services :: Auto Scaling Plans
diff --git a/services/b2bi/pom.xml b/services/b2bi/pom.xml
index b4d3b5276c87..a08ed14ec2d7 100644
--- a/services/b2bi/pom.xml
+++ b/services/b2bi/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
b2bi
AWS Java SDK :: Services :: B2 Bi
diff --git a/services/backup/pom.xml b/services/backup/pom.xml
index 640d82b5f75e..84244284736c 100644
--- a/services/backup/pom.xml
+++ b/services/backup/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
backup
AWS Java SDK :: Services :: Backup
diff --git a/services/backupgateway/pom.xml b/services/backupgateway/pom.xml
index 19681a309fd9..43deaf3e93e0 100644
--- a/services/backupgateway/pom.xml
+++ b/services/backupgateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
backupgateway
AWS Java SDK :: Services :: Backup Gateway
diff --git a/services/backupstorage/pom.xml b/services/backupstorage/pom.xml
index 514a20fab2fe..acbf3e974415 100644
--- a/services/backupstorage/pom.xml
+++ b/services/backupstorage/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
backupstorage
AWS Java SDK :: Services :: Backup Storage
diff --git a/services/batch/pom.xml b/services/batch/pom.xml
index ee4387fb3417..2584a55bd64c 100644
--- a/services/batch/pom.xml
+++ b/services/batch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
batch
AWS Java SDK :: Services :: AWS Batch
diff --git a/services/bcmdataexports/pom.xml b/services/bcmdataexports/pom.xml
index ef6e440b7421..01c1d7537620 100644
--- a/services/bcmdataexports/pom.xml
+++ b/services/bcmdataexports/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
bcmdataexports
AWS Java SDK :: Services :: BCM Data Exports
diff --git a/services/bedrock/pom.xml b/services/bedrock/pom.xml
index bb0f376ee17b..20946bb99033 100644
--- a/services/bedrock/pom.xml
+++ b/services/bedrock/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
bedrock
AWS Java SDK :: Services :: Bedrock
diff --git a/services/bedrock/src/main/resources/codegen-resources/paginators-1.json b/services/bedrock/src/main/resources/codegen-resources/paginators-1.json
index e8b0ae033ec2..8f920eff6d18 100644
--- a/services/bedrock/src/main/resources/codegen-resources/paginators-1.json
+++ b/services/bedrock/src/main/resources/codegen-resources/paginators-1.json
@@ -6,6 +6,18 @@
"limit_key": "maxResults",
"result_key": "modelSummaries"
},
+ "ListEvaluationJobs": {
+ "input_token": "nextToken",
+ "output_token": "nextToken",
+ "limit_key": "maxResults",
+ "result_key": "jobSummaries"
+ },
+ "ListGuardrails": {
+ "input_token": "nextToken",
+ "output_token": "nextToken",
+ "limit_key": "maxResults",
+ "result_key": "guardrails"
+ },
"ListModelCustomizationJobs": {
"input_token": "nextToken",
"output_token": "nextToken",
diff --git a/services/bedrock/src/main/resources/codegen-resources/service-2.json b/services/bedrock/src/main/resources/codegen-resources/service-2.json
index 5bc66fe4d038..694f91927d24 100644
--- a/services/bedrock/src/main/resources/codegen-resources/service-2.json
+++ b/services/bedrock/src/main/resources/codegen-resources/service-2.json
@@ -12,6 +12,68 @@
"uid":"bedrock-2023-04-20"
},
"operations":{
+ "CreateEvaluationJob":{
+ "name":"CreateEvaluationJob",
+ "http":{
+ "method":"POST",
+ "requestUri":"/evaluation-jobs",
+ "responseCode":202
+ },
+ "input":{"shape":"CreateEvaluationJobRequest"},
+ "output":{"shape":"CreateEvaluationJobResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"ConflictException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"API operation for creating and managing Amazon Bedrock automatic model evaluation jobs and model evaluation jobs that use human workers. To learn more about the requirements for creating a model evaluation job see, Model evaluations.
",
+ "idempotent":true
+ },
+ "CreateGuardrail":{
+ "name":"CreateGuardrail",
+ "http":{
+ "method":"POST",
+ "requestUri":"/guardrails",
+ "responseCode":202
+ },
+ "input":{"shape":"CreateGuardrailRequest"},
+ "output":{"shape":"CreateGuardrailResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"ConflictException"},
+ {"shape":"InternalServerException"},
+ {"shape":"TooManyTagsException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Creates a guardrail to block topics and to filter out harmful content.
-
Specify a name
and optional description
.
-
Specify messages for when the guardrail successfully blocks a prompt or a model response in the blockedInputMessaging
and blockedOutputsMessaging
fields.
-
Specify topics for the guardrail to deny in the topicPolicyConfig
object. Each GuardrailTopicConfig object in the topicsConfig
list pertains to one topic.
-
Give a name
and description
so that the guardrail can properly identify the topic.
-
Specify DENY
in the type
field.
-
(Optional) Provide up to five prompts that you would categorize as belonging to the topic in the examples
list.
-
Specify filter strengths for the harmful categories defined in Amazon Bedrock in the contentPolicyConfig
object. Each GuardrailContentFilterConfig object in the filtersConfig
list pertains to a harmful category. For more information, see Content filters. For more information about the fields in a content filter, see GuardrailContentFilterConfig.
-
(Optional) For security, include the ARN of a KMS key in the kmsKeyId
field.
-
(Optional) Attach any tags to the guardrail in the tags
object. For more information, see Tag resources.
"
+ },
+ "CreateGuardrailVersion":{
+ "name":"CreateGuardrailVersion",
+ "http":{
+ "method":"POST",
+ "requestUri":"/guardrails/{guardrailIdentifier}",
+ "responseCode":202
+ },
+ "input":{"shape":"CreateGuardrailVersionRequest"},
+ "output":{"shape":"CreateGuardrailVersionResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"ConflictException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Creates a version of the guardrail. Use this API to create a snapshot of the guardrail when you are satisfied with a configuration, or to compare the configuration with another version.
"
+ },
"CreateModelCustomizationJob":{
"name":"CreateModelCustomizationJob",
"http":{
@@ -31,7 +93,7 @@
{"shape":"ServiceQuotaExceededException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Creates a fine-tuning job to customize a base model.
You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Training data contains input and output text for each record in a JSONL format. Optionally, you can specify validation data in the same format as the training data. Amazon Bedrock returns validation loss metrics and output generations after the job completes.
Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size. To monitor a job, use the GetModelCustomizationJob
operation to retrieve the job status.
For more information, see Custom models in the Bedrock User Guide.
",
+ "documentation":"Creates a fine-tuning job to customize a base model.
You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Amazon Bedrock returns validation loss metrics and output generations after the job completes.
For information on the format of training and validation data, see Prepare the datasets.
Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size. To monitor a job, use the GetModelCustomizationJob
operation to retrieve the job status.
For more information, see Custom models in the Amazon Bedrock User Guide.
",
"idempotent":true
},
"CreateProvisionedModelThroughput":{
@@ -52,7 +114,7 @@
{"shape":"ServiceQuotaExceededException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Creates a provisioned throughput with dedicated capacity for a foundation model or a fine-tuned model.
For more information, see Provisioned throughput in the Bedrock User Guide.
",
+ "documentation":"Creates dedicated throughput for a base or custom model with the model units and for the duration that you specify. For pricing details, see Amazon Bedrock Pricing. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.
",
"idempotent":true
},
"DeleteCustomModel":{
@@ -72,7 +134,27 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Deletes a custom model that you created earlier. For more information, see Custom models in the Bedrock User Guide.
",
+ "documentation":"Deletes a custom model that you created earlier. For more information, see Custom models in the Amazon Bedrock User Guide.
",
+ "idempotent":true
+ },
+ "DeleteGuardrail":{
+ "name":"DeleteGuardrail",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/guardrails/{guardrailIdentifier}",
+ "responseCode":202
+ },
+ "input":{"shape":"DeleteGuardrailRequest"},
+ "output":{"shape":"DeleteGuardrailResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"ConflictException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Deletes a guardrail.
-
To delete a guardrail, only specify the ARN of the guardrail in the guardrailIdentifier
field. If you delete a guardrail, all of its versions will be deleted.
-
To delete a version of a guardrail, specify the ARN of the guardrail in the guardrailIdentifier
field and the version in the guardrailVersion
field.
",
"idempotent":true
},
"DeleteModelInvocationLoggingConfiguration":{
@@ -109,7 +191,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Deletes a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.
",
+ "documentation":"Deletes a Provisioned Throughput. You can't delete a Provisioned Throughput before the commitment term is over. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.
",
"idempotent":true
},
"GetCustomModel":{
@@ -128,7 +210,25 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Get the properties associated with a Amazon Bedrock custom model that you have created.For more information, see Custom models in the Bedrock User Guide.
"
+ "documentation":"Get the properties associated with a Amazon Bedrock custom model that you have created.For more information, see Custom models in the Amazon Bedrock User Guide.
"
+ },
+ "GetEvaluationJob":{
+ "name":"GetEvaluationJob",
+ "http":{
+ "method":"GET",
+ "requestUri":"/evaluation-jobs/{jobIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"GetEvaluationJobRequest"},
+ "output":{"shape":"GetEvaluationJobResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Retrieves the properties associated with a model evaluation job, including the status of the job. For more information, see Model evaluations.
"
},
"GetFoundationModel":{
"name":"GetFoundationModel",
@@ -148,6 +248,24 @@
],
"documentation":"Get details about a Amazon Bedrock foundation model.
"
},
+ "GetGuardrail":{
+ "name":"GetGuardrail",
+ "http":{
+ "method":"GET",
+ "requestUri":"/guardrails/{guardrailIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"GetGuardrailRequest"},
+ "output":{"shape":"GetGuardrailResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Gets details about a guardrail. If you don't specify a version, the response returns details for the DRAFT
version.
"
+ },
"GetModelCustomizationJob":{
"name":"GetModelCustomizationJob",
"http":{
@@ -164,7 +282,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Retrieves the properties associated with a model-customization job, including the status of the job. For more information, see Custom models in the Bedrock User Guide.
"
+ "documentation":"Retrieves the properties associated with a model-customization job, including the status of the job. For more information, see Custom models in the Amazon Bedrock User Guide.
"
},
"GetModelInvocationLoggingConfiguration":{
"name":"GetModelInvocationLoggingConfiguration",
@@ -198,7 +316,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Get details for a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.
"
+ "documentation":"Returns details for a Provisioned Throughput. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.
"
},
"ListCustomModels":{
"name":"ListCustomModels",
@@ -215,7 +333,24 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Returns a list of the custom models that you have created with the CreateModelCustomizationJob
operation.
For more information, see Custom models in the Bedrock User Guide.
"
+ "documentation":"Returns a list of the custom models that you have created with the CreateModelCustomizationJob
operation.
For more information, see Custom models in the Amazon Bedrock User Guide.
"
+ },
+ "ListEvaluationJobs":{
+ "name":"ListEvaluationJobs",
+ "http":{
+ "method":"GET",
+ "requestUri":"/evaluation-jobs",
+ "responseCode":200
+ },
+ "input":{"shape":"ListEvaluationJobsRequest"},
+ "output":{"shape":"ListEvaluationJobsResponse"},
+ "errors":[
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Lists model evaluation jobs.
"
},
"ListFoundationModels":{
"name":"ListFoundationModels",
@@ -232,7 +367,25 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"List of Amazon Bedrock foundation models that you can use. For more information, see Foundation models in the Bedrock User Guide.
"
+ "documentation":"Lists Amazon Bedrock foundation models that you can use. You can filter the results with the request parameters. For more information, see Foundation models in the Amazon Bedrock User Guide.
"
+ },
+ "ListGuardrails":{
+ "name":"ListGuardrails",
+ "http":{
+ "method":"GET",
+ "requestUri":"/guardrails",
+ "responseCode":200
+ },
+ "input":{"shape":"ListGuardrailsRequest"},
+ "output":{"shape":"ListGuardrailsResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Lists details about all the guardrails in an account. To list the DRAFT
version of all your guardrails, don't specify the guardrailIdentifier
field. To list all versions of a guardrail, specify the ARN of the guardrail in the guardrailIdentifier
field.
You can set the maximum number of results to return in a response in the maxResults
field. If there are more results than the number you set, the response returns a nextToken
that you can send in another ListGuardrails
request to see the next batch of results.
"
},
"ListModelCustomizationJobs":{
"name":"ListModelCustomizationJobs",
@@ -249,7 +402,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria.
For more information, see Custom models in the Bedrock User Guide.
"
+ "documentation":"Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria.
For more information, see Custom models in the Amazon Bedrock User Guide.
"
},
"ListProvisionedModelThroughputs":{
"name":"ListProvisionedModelThroughputs",
@@ -266,7 +419,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"List the provisioned capacities. For more information, see Provisioned throughput in the Bedrock User Guide.
"
+ "documentation":"Lists the Provisioned Throughputs in the account. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.
"
},
"ListTagsForResource":{
"name":"ListTagsForResource",
@@ -284,7 +437,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"List the tags associated with the specified resource.
For more information, see Tagging resources in the Bedrock User Guide.
"
+ "documentation":"List the tags associated with the specified resource.
For more information, see Tagging resources in the Amazon Bedrock User Guide.
"
},
"PutModelInvocationLoggingConfiguration":{
"name":"PutModelInvocationLoggingConfiguration",
@@ -304,6 +457,25 @@
"documentation":"Set the configuration values for model invocation logging.
",
"idempotent":true
},
+ "StopEvaluationJob":{
+ "name":"StopEvaluationJob",
+ "http":{
+ "method":"POST",
+ "requestUri":"/evaluation-job/{jobIdentifier}/stop",
+ "responseCode":200
+ },
+ "input":{"shape":"StopEvaluationJobRequest"},
+ "output":{"shape":"StopEvaluationJobResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"ConflictException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Stops an in progress model evaluation job.
"
+ },
"StopModelCustomizationJob":{
"name":"StopModelCustomizationJob",
"http":{
@@ -321,7 +493,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Stops an active model customization job. For more information, see Custom models in the Bedrock User Guide.
",
+ "documentation":"Stops an active model customization job. For more information, see Custom models in the Amazon Bedrock User Guide.
",
"idempotent":true
},
"TagResource":{
@@ -341,7 +513,7 @@
{"shape":"TooManyTagsException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Associate tags with a resource. For more information, see Tagging resources in the Bedrock User Guide.
"
+ "documentation":"Associate tags with a resource. For more information, see Tagging resources in the Amazon Bedrock User Guide.
"
},
"UntagResource":{
"name":"UntagResource",
@@ -359,7 +531,28 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Remove one or more tags from a resource. For more information, see Tagging resources in the Bedrock User Guide.
"
+ "documentation":"Remove one or more tags from a resource. For more information, see Tagging resources in the Amazon Bedrock User Guide.
"
+ },
+ "UpdateGuardrail":{
+ "name":"UpdateGuardrail",
+ "http":{
+ "method":"PUT",
+ "requestUri":"/guardrails/{guardrailIdentifier}",
+ "responseCode":202
+ },
+ "input":{"shape":"UpdateGuardrailRequest"},
+ "output":{"shape":"UpdateGuardrailResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"ConflictException"},
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "documentation":"Updates a guardrail with the values you specify.
-
Specify a name
and optional description
.
-
Specify messages for when the guardrail successfully blocks a prompt or a model response in the blockedInputMessaging
and blockedOutputsMessaging
fields.
-
Specify topics for the guardrail to deny in the topicPolicyConfig
object. Each GuardrailTopicConfig object in the topicsConfig
list pertains to one topic.
-
Give a name
and description
so that the guardrail can properly identify the topic.
-
Specify DENY
in the type
field.
-
(Optional) Provide up to five prompts that you would categorize as belonging to the topic in the examples
list.
-
Specify filter strengths for the harmful categories defined in Amazon Bedrock in the contentPolicyConfig
object. Each GuardrailContentFilterConfig object in the filtersConfig
list pertains to a harmful category. For more information, see Content filters. For more information about the fields in a content filter, see GuardrailContentFilterConfig.
-
(Optional) For security, include the ARN of a KMS key in the kmsKeyId
field.
-
(Optional) Attach any tags to the guardrail in the tags
object. For more information, see Tag resources.
",
+ "idempotent":true
},
"UpdateProvisionedModelThroughput":{
"name":"UpdateProvisionedModelThroughput",
@@ -377,7 +570,7 @@
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
- "documentation":"Update a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.
",
+ "documentation":"Updates the name or associated model for a Provisioned Throughput. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.
",
"idempotent":true
}
},
@@ -394,6 +587,17 @@
},
"exception":true
},
+ "AutomatedEvaluationConfig":{
+ "type":"structure",
+ "required":["datasetMetricConfigs"],
+ "members":{
+ "datasetMetricConfigs":{
+ "shape":"EvaluationDatasetMetricConfigs",
+ "documentation":"Specifies the required elements for an automatic model evaluation job.
"
+ }
+ },
+ "documentation":"Use to specify a automatic model evaluation job. The EvaluationDatasetMetricConfig
object is used to specify the prompt datasets, task type, and metric names.
"
+ },
"BaseModelIdentifier":{
"type":"string",
"max":2048,
@@ -434,7 +638,7 @@
},
"roleArn":{
"shape":"RoleArn",
- "documentation":"The role ARN.
"
+ "documentation":"The role Amazon Resource Name (ARN).
"
},
"largeDataDeliveryS3Config":{
"shape":"S3Config",
@@ -462,6 +666,185 @@
},
"exception":true
},
+ "CreateEvaluationJobRequest":{
+ "type":"structure",
+ "required":[
+ "jobName",
+ "roleArn",
+ "evaluationConfig",
+ "inferenceConfig",
+ "outputDataConfig"
+ ],
+ "members":{
+ "jobName":{
+ "shape":"EvaluationJobName",
+ "documentation":"The name of the model evaluation job. Model evaluation job names must unique with your AWS account, and your account's AWS region.
"
+ },
+ "jobDescription":{
+ "shape":"EvaluationJobDescription",
+ "documentation":"A description of the model evaluation job.
"
+ },
+ "clientRequestToken":{
+ "shape":"IdempotencyToken",
+ "documentation":"A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.
",
+ "idempotencyToken":true
+ },
+ "roleArn":{
+ "shape":"RoleArn",
+ "documentation":"The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. The service role must have Amazon Bedrock as the service principal, and provide access to any Amazon S3 buckets specified in the EvaluationConfig
object. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole
permission. To learn more about the required permissions, see Required permissions.
"
+ },
+ "customerEncryptionKeyId":{
+ "shape":"KmsKeyId",
+ "documentation":"Specify your customer managed key ARN that will be used to encrypt your model evaluation job.
"
+ },
+ "jobTags":{
+ "shape":"TagList",
+ "documentation":"Tags to attach to the model evaluation job.
"
+ },
+ "evaluationConfig":{
+ "shape":"EvaluationConfig",
+ "documentation":"Specifies whether the model evaluation job is automatic or uses human worker.
"
+ },
+ "inferenceConfig":{
+ "shape":"EvaluationInferenceConfig",
+ "documentation":"Specify the models you want to use in your model evaluation job. Automatic model evaluation jobs support a single model, and model evaluation job that use human workers support two models.
"
+ },
+ "outputDataConfig":{
+ "shape":"EvaluationOutputDataConfig",
+ "documentation":"An object that defines where the results of model evaluation job will be saved in Amazon S3.
"
+ }
+ }
+ },
+ "CreateEvaluationJobResponse":{
+ "type":"structure",
+ "required":["jobArn"],
+ "members":{
+ "jobArn":{
+ "shape":"EvaluationJobArn",
+ "documentation":"The ARN of the model evaluation job.
"
+ }
+ }
+ },
+ "CreateGuardrailRequest":{
+ "type":"structure",
+ "required":[
+ "name",
+ "blockedInputMessaging",
+ "blockedOutputsMessaging"
+ ],
+ "members":{
+ "name":{
+ "shape":"GuardrailName",
+ "documentation":"The name to give the guardrail.
"
+ },
+ "description":{
+ "shape":"GuardrailDescription",
+ "documentation":"A description of the guardrail.
"
+ },
+ "topicPolicyConfig":{
+ "shape":"GuardrailTopicPolicyConfig",
+ "documentation":"The topic policies to configure for the guardrail.
"
+ },
+ "contentPolicyConfig":{
+ "shape":"GuardrailContentPolicyConfig",
+ "documentation":"The content filter policies to configure for the guardrail.
"
+ },
+ "wordPolicyConfig":{
+ "shape":"GuardrailWordPolicyConfig",
+ "documentation":"The word policy you configure for the guardrail.
"
+ },
+ "sensitiveInformationPolicyConfig":{
+ "shape":"GuardrailSensitiveInformationPolicyConfig",
+ "documentation":"The sensitive information policy to configure for the guardrail.
"
+ },
+ "blockedInputMessaging":{
+ "shape":"GuardrailBlockedMessaging",
+ "documentation":"The message to return when the guardrail blocks a prompt.
"
+ },
+ "blockedOutputsMessaging":{
+ "shape":"GuardrailBlockedMessaging",
+ "documentation":"The message to return when the guardrail blocks a model response.
"
+ },
+ "kmsKeyId":{
+ "shape":"KmsKeyId",
+ "documentation":"The ARN of the KMS key that you use to encrypt the guardrail.
"
+ },
+ "tags":{
+ "shape":"TagList",
+ "documentation":"The tags that you want to attach to the guardrail.
"
+ },
+ "clientRequestToken":{
+ "shape":"IdempotencyToken",
+ "documentation":"A unique, case-sensitive identifier to ensure that the API request completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency in the Amazon S3 User Guide.
",
+ "idempotencyToken":true
+ }
+ }
+ },
+ "CreateGuardrailResponse":{
+ "type":"structure",
+ "required":[
+ "guardrailId",
+ "guardrailArn",
+ "version",
+ "createdAt"
+ ],
+ "members":{
+ "guardrailId":{
+ "shape":"GuardrailId",
+ "documentation":"The unique identifier of the guardrail that was created.
"
+ },
+ "guardrailArn":{
+ "shape":"GuardrailArn",
+ "documentation":"The ARN of the guardrail that was created.
"
+ },
+ "version":{
+ "shape":"GuardrailDraftVersion",
+ "documentation":"The version of the guardrail that was created. This value should be 1.
"
+ },
+ "createdAt":{
+ "shape":"Timestamp",
+ "documentation":"The time at which the guardrail was created.
"
+ }
+ }
+ },
+ "CreateGuardrailVersionRequest":{
+ "type":"structure",
+ "required":["guardrailIdentifier"],
+ "members":{
+ "guardrailIdentifier":{
+ "shape":"GuardrailIdentifier",
+ "documentation":"The unique identifier of the guardrail.
",
+ "location":"uri",
+ "locationName":"guardrailIdentifier"
+ },
+ "description":{
+ "shape":"GuardrailDescription",
+ "documentation":"A description of the guardrail version.
"
+ },
+ "clientRequestToken":{
+ "shape":"IdempotencyToken",
+ "documentation":"A unique, case-sensitive identifier to ensure that the API request completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency in the Amazon S3 User Guide.
",
+ "idempotencyToken":true
+ }
+ }
+ },
+ "CreateGuardrailVersionResponse":{
+ "type":"structure",
+ "required":[
+ "guardrailId",
+ "version"
+ ],
+ "members":{
+ "guardrailId":{
+ "shape":"GuardrailId",
+ "documentation":"The unique identifier of the guardrail.
"
+ },
+ "version":{
+ "shape":"GuardrailNumericalVersion",
+ "documentation":"The number of the version of the guardrail.
"
+ }
+ }
+ },
"CreateModelCustomizationJobRequest":{
"type":"structure",
"required":[
@@ -476,19 +859,19 @@
"members":{
"jobName":{
"shape":"JobName",
- "documentation":"Enter a unique name for the fine-tuning job.
"
+ "documentation":"A name for the fine-tuning job.
"
},
"customModelName":{
"shape":"CustomModelName",
- "documentation":"Enter a name for the custom model.
"
+ "documentation":"A name for the resulting custom model.
"
},
"roleArn":{
"shape":"RoleArn",
- "documentation":"The Amazon Resource Name (ARN) of an IAM role that Amazon Bedrock can assume to perform tasks on your behalf. For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole
permission.
"
+ "documentation":"The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole
permission.
"
},
"clientRequestToken":{
"shape":"IdempotencyToken",
- "documentation":"Unique token value that you can provide. The GetModelCustomizationJob response includes the same token value.
",
+ "documentation":"A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.
",
"idempotencyToken":true
},
"baseModelIdentifier":{
@@ -505,11 +888,11 @@
},
"jobTags":{
"shape":"TagList",
- "documentation":"Assign tags to the job.
"
+ "documentation":"Tags to attach to the job.
"
},
"customModelTags":{
"shape":"TagList",
- "documentation":"Assign tags to the custom model.
"
+ "documentation":"Tags to attach to the resulting custom model.
"
},
"trainingDataConfig":{
"shape":"TrainingDataConfig",
@@ -525,7 +908,7 @@
},
"hyperParameters":{
"shape":"ModelCustomizationHyperParameters",
- "documentation":"Parameters related to tuning the model.
"
+ "documentation":"Parameters related to tuning the model. For details on the format for different models, see Custom model hyperparameters.
"
},
"vpcConfig":{
"shape":"VpcConfig",
@@ -539,7 +922,7 @@
"members":{
"jobArn":{
"shape":"ModelCustomizationJobArn",
- "documentation":"ARN of the fine tuning job
"
+ "documentation":"Amazon Resource Name (ARN) of the fine tuning job
"
}
}
},
@@ -553,28 +936,28 @@
"members":{
"clientRequestToken":{
"shape":"IdempotencyToken",
- "documentation":"Unique token value that you can provide. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error.
",
+ "documentation":"A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency in the Amazon S3 User Guide.
",
"idempotencyToken":true
},
"modelUnits":{
"shape":"PositiveInteger",
- "documentation":"Number of model units to allocate.
"
+ "documentation":"Number of model units to allocate. A model unit delivers a specific throughput level for the specified model. The throughput level of a model unit specifies the total number of input and output tokens that it can process and generate within a span of one minute. By default, your account has no model units for purchasing Provisioned Throughputs with commitment. You must first visit the Amazon Web Services support center to request MUs.
For model unit quotas, see Provisioned Throughput quotas in the Amazon Bedrock User Guide.
For more information about what an MU specifies, contact your Amazon Web Services account manager.
"
},
"provisionedModelName":{
"shape":"ProvisionedModelName",
- "documentation":"Unique name for this provisioned throughput.
"
+ "documentation":"The name for this Provisioned Throughput.
"
},
"modelId":{
"shape":"ModelIdentifier",
- "documentation":"Name or ARN of the model to associate with this provisioned throughput.
"
+ "documentation":"The Amazon Resource Name (ARN) or name of the model to associate with this Provisioned Throughput. For a list of models for which you can purchase Provisioned Throughput, see Amazon Bedrock model IDs for purchasing Provisioned Throughput in the Amazon Bedrock User Guide.
"
},
"commitmentDuration":{
"shape":"CommitmentDuration",
- "documentation":"Commitment duration requested for the provisioned throughput.
"
+ "documentation":"The commitment duration requested for the Provisioned Throughput. Billing occurs hourly and is discounted for longer commitment terms. To request a no-commit Provisioned Throughput, omit this field.
Custom models support all levels of commitment. To see which base models support no commitment, see Supported regions and models for Provisioned Throughput in the Amazon Bedrock User Guide
"
},
"tags":{
"shape":"TagList",
- "documentation":"Tags to associate with this provisioned throughput.
"
+ "documentation":"Tags to associate with this Provisioned Throughput.
"
}
}
},
@@ -584,7 +967,7 @@
"members":{
"provisionedModelArn":{
"shape":"ProvisionedModelArn",
- "documentation":"The ARN for this provisioned throughput.
"
+ "documentation":"The Amazon Resource Name (ARN) for this Provisioned Throughput.
"
}
}
},
@@ -612,7 +995,7 @@
"members":{
"modelArn":{
"shape":"CustomModelArn",
- "documentation":"The ARN of the custom model.
"
+ "documentation":"The Amazon Resource Name (ARN) of the custom model.
"
},
"modelName":{
"shape":"CustomModelName",
@@ -624,7 +1007,7 @@
},
"baseModelArn":{
"shape":"ModelArn",
- "documentation":"The base model ARN.
"
+ "documentation":"The base model Amazon Resource Name (ARN).
"
},
"baseModelName":{
"shape":"ModelName",
@@ -665,6 +1048,29 @@
"members":{
}
},
+ "DeleteGuardrailRequest":{
+ "type":"structure",
+ "required":["guardrailIdentifier"],
+ "members":{
+ "guardrailIdentifier":{
+ "shape":"GuardrailIdentifier",
+ "documentation":"The unique identifier of the guardrail.
",
+ "location":"uri",
+ "locationName":"guardrailIdentifier"
+ },
+ "guardrailVersion":{
+ "shape":"GuardrailNumericalVersion",
+ "documentation":"The version of the guardrail.
",
+ "location":"querystring",
+ "locationName":"guardrailVersion"
+ }
+ }
+ },
+ "DeleteGuardrailResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
"DeleteModelInvocationLoggingConfigurationRequest":{
"type":"structure",
"members":{
@@ -681,7 +1087,7 @@
"members":{
"provisionedModelId":{
"shape":"ProvisionedModelId",
- "documentation":"The ARN or name of the provisioned throughput.
",
+ "documentation":"The Amazon Resource Name (ARN) or name of the Provisioned Throughput.
",
"location":"uri",
"locationName":"provisionedModelId"
}
@@ -697,32 +1103,327 @@
"max":2048,
"min":0
},
- "FineTuningJobStatus":{
- "type":"string",
- "enum":[
- "InProgress",
- "Completed",
- "Failed",
- "Stopping",
- "Stopped"
- ]
- },
- "FoundationModelArn":{
- "type":"string",
- "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}"
+ "ErrorMessages":{
+ "type":"list",
+ "member":{"shape":"ErrorMessage"},
+ "max":20,
+ "min":0
},
- "FoundationModelDetails":{
+ "EvaluationBedrockModel":{
"type":"structure",
"required":[
- "modelArn",
- "modelId"
+ "modelIdentifier",
+ "inferenceParams"
],
"members":{
- "modelArn":{
- "shape":"FoundationModelArn",
- "documentation":"The model ARN.
"
+ "modelIdentifier":{
+ "shape":"EvaluationModelIdentifier",
+ "documentation":"The ARN of the Amazon Bedrock model specified.
"
},
- "modelId":{
+ "inferenceParams":{
+ "shape":"EvaluationModelInferenceParams",
+ "documentation":"Each Amazon Bedrock support different inference parameters that change how the model behaves during inference.
"
+ }
+ },
+ "documentation":"Contains the ARN of the Amazon Bedrock models specified in your model evaluation job. Each Amazon Bedrock model supports different inferenceParams
. To learn more about supported inference parameters for Amazon Bedrock models, see Inference parameters for foundation models.
The inferenceParams
are specified using JSON. To successfully insert JSON as string make sure that all quotations are properly escaped. For example, \"temperature\":\"0.25\"
key value pair would need to be formatted as \\\"temperature\\\":\\\"0.25\\\"
to successfully accepted in the request.
"
+ },
+ "EvaluationConfig":{
+ "type":"structure",
+ "members":{
+ "automated":{
+ "shape":"AutomatedEvaluationConfig",
+ "documentation":"Used to specify an automated model evaluation job. See AutomatedEvaluationConfig
to view the required parameters.
"
+ },
+ "human":{
+ "shape":"HumanEvaluationConfig",
+ "documentation":"Used to specify a model evaluation job that uses human workers.See HumanEvaluationConfig
to view the required parameters.
"
+ }
+ },
+ "documentation":"Used to specify either a AutomatedEvaluationConfig
or HumanEvaluationConfig
object.
",
+ "union":true
+ },
+ "EvaluationDataset":{
+ "type":"structure",
+ "required":["name"],
+ "members":{
+ "name":{
+ "shape":"EvaluationDatasetName",
+ "documentation":"Used to specify supported built-in prompt datasets. Valid values are Builtin.Bold
, Builtin.BoolQ
, Builtin.NaturalQuestions
, Builtin.Gigaword
, Builtin.RealToxicityPrompts
, Builtin.TriviaQa
, Builtin.T-Rex
, Builtin.WomensEcommerceClothingReviews
and Builtin.Wikitext2
.
"
+ },
+ "datasetLocation":{
+ "shape":"EvaluationDatasetLocation",
+ "documentation":"For custom prompt datasets, you must specify the location in Amazon S3 where the prompt dataset is saved.
"
+ }
+ },
+ "documentation":"Used to specify the name of a built-in prompt dataset and optionally, the Amazon S3 bucket where a custom prompt dataset is saved.
"
+ },
+ "EvaluationDatasetLocation":{
+ "type":"structure",
+ "members":{
+ "s3Uri":{
+ "shape":"S3Uri",
+ "documentation":"The S3 URI of the S3 bucket specified in the job.
"
+ }
+ },
+ "documentation":"The location in Amazon S3 where your prompt dataset is stored.
",
+ "union":true
+ },
+ "EvaluationDatasetMetricConfig":{
+ "type":"structure",
+ "required":[
+ "taskType",
+ "dataset",
+ "metricNames"
+ ],
+ "members":{
+ "taskType":{
+ "shape":"EvaluationTaskType",
+ "documentation":"The task type you want the model to carry out.
"
+ },
+ "dataset":{
+ "shape":"EvaluationDataset",
+ "documentation":"Specifies the prompt dataset.
"
+ },
+ "metricNames":{
+ "shape":"EvaluationMetricNames",
+ "documentation":"The names of the metrics used. For automated model evaluation jobs valid values are \"Builtin.Accuracy\"
, \"Builtin.Robustness\"
, and \"Builtin.Toxicity\"
. In human-based model evaluation jobs the array of strings must match the name
parameter specified in HumanEvaluationCustomMetric
.
"
+ }
+ },
+ "documentation":"Defines the built-in prompt datasets, built-in metric names and custom metric names, and the task type.
"
+ },
+ "EvaluationDatasetMetricConfigs":{
+ "type":"list",
+ "member":{"shape":"EvaluationDatasetMetricConfig"},
+ "max":5,
+ "min":1
+ },
+ "EvaluationDatasetName":{
+ "type":"string",
+ "max":63,
+ "min":1,
+ "pattern":"[0-9a-zA-Z-_.]+",
+ "sensitive":true
+ },
+ "EvaluationInferenceConfig":{
+ "type":"structure",
+ "members":{
+ "models":{
+ "shape":"EvaluationModelConfigs",
+ "documentation":"Used to specify the models.
"
+ }
+ },
+ "documentation":"Used to define the models you want used in your model evaluation job. Automated model evaluation jobs support only a single model. In a human-based model evaluation job, your annotator can compare the responses for up to two different models.
",
+ "union":true
+ },
+ "EvaluationJobArn":{
+ "type":"string",
+ "max":1011,
+ "min":0,
+ "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12}"
+ },
+ "EvaluationJobDescription":{
+ "type":"string",
+ "max":200,
+ "min":1,
+ "pattern":".+",
+ "sensitive":true
+ },
+ "EvaluationJobIdentifier":{
+ "type":"string",
+ "max":1011,
+ "min":0,
+ "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12})",
+ "sensitive":true
+ },
+ "EvaluationJobName":{
+ "type":"string",
+ "max":63,
+ "min":1,
+ "pattern":"[a-z0-9](-*[a-z0-9]){0,62}"
+ },
+ "EvaluationJobStatus":{
+ "type":"string",
+ "enum":[
+ "InProgress",
+ "Completed",
+ "Failed",
+ "Stopping",
+ "Stopped"
+ ]
+ },
+ "EvaluationJobType":{
+ "type":"string",
+ "enum":[
+ "Human",
+ "Automated"
+ ]
+ },
+ "EvaluationMetricDescription":{
+ "type":"string",
+ "max":63,
+ "min":1,
+ "pattern":".+",
+ "sensitive":true
+ },
+ "EvaluationMetricName":{
+ "type":"string",
+ "max":63,
+ "min":1,
+ "pattern":"[0-9a-zA-Z-_.]+",
+ "sensitive":true
+ },
+ "EvaluationMetricNames":{
+ "type":"list",
+ "member":{"shape":"EvaluationMetricName"},
+ "max":10,
+ "min":1
+ },
+ "EvaluationModelConfig":{
+ "type":"structure",
+ "members":{
+ "bedrockModel":{
+ "shape":"EvaluationBedrockModel",
+ "documentation":"Defines the Amazon Bedrock model and inference parameters you want used.
"
+ }
+ },
+ "documentation":"Defines the models used in the model evaluation job.
",
+ "union":true
+ },
+ "EvaluationModelConfigs":{
+ "type":"list",
+ "member":{"shape":"EvaluationModelConfig"},
+ "max":2,
+ "min":1
+ },
+ "EvaluationModelIdentifier":{
+ "type":"string",
+ "max":2048,
+ "min":1,
+ "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)"
+ },
+ "EvaluationModelIdentifiers":{
+ "type":"list",
+ "member":{"shape":"EvaluationModelIdentifier"},
+ "max":2,
+ "min":1
+ },
+ "EvaluationModelInferenceParams":{
+ "type":"string",
+ "max":1023,
+ "min":1,
+ "sensitive":true
+ },
+ "EvaluationOutputDataConfig":{
+ "type":"structure",
+ "required":["s3Uri"],
+ "members":{
+ "s3Uri":{
+ "shape":"S3Uri",
+ "documentation":"The Amazon S3 URI where the results of model evaluation job are saved.
"
+ }
+ },
+ "documentation":"The Amazon S3 location where the results of your model evaluation job are saved.
"
+ },
+ "EvaluationRatingMethod":{
+ "type":"string",
+ "max":100,
+ "min":1,
+ "pattern":"[0-9a-zA-Z-_]+"
+ },
+ "EvaluationSummaries":{
+ "type":"list",
+ "member":{"shape":"EvaluationSummary"},
+ "max":5,
+ "min":1
+ },
+ "EvaluationSummary":{
+ "type":"structure",
+ "required":[
+ "jobArn",
+ "jobName",
+ "status",
+ "creationTime",
+ "jobType",
+ "evaluationTaskTypes",
+ "modelIdentifiers"
+ ],
+ "members":{
+ "jobArn":{
+ "shape":"EvaluationJobArn",
+ "documentation":"The Amazon Resource Name (ARN) of the model evaluation job.
"
+ },
+ "jobName":{
+ "shape":"EvaluationJobName",
+ "documentation":"The name of the model evaluation job.
"
+ },
+ "status":{
+ "shape":"EvaluationJobStatus",
+ "documentation":"The current status of the model evaluation job.
"
+ },
+ "creationTime":{
+ "shape":"Timestamp",
+ "documentation":"When the model evaluation job was created.
"
+ },
+ "jobType":{
+ "shape":"EvaluationJobType",
+ "documentation":"The type, either human or automatic, of model evaluation job.
"
+ },
+ "evaluationTaskTypes":{
+ "shape":"EvaluationTaskTypes",
+ "documentation":"What task type was used in the model evaluation job.
"
+ },
+ "modelIdentifiers":{
+ "shape":"EvaluationModelIdentifiers",
+ "documentation":"The Amazon Resource Names (ARNs) of the model(s) used in the model evaluation job.
"
+ }
+ },
+ "documentation":"A summary of the model evaluation job.
"
+ },
+ "EvaluationTaskType":{
+ "type":"string",
+ "enum":[
+ "Summarization",
+ "Classification",
+ "QuestionAndAnswer",
+ "Generation",
+ "Custom"
+ ],
+ "max":63,
+ "min":1,
+ "pattern":"[A-Za-z0-9]+"
+ },
+ "EvaluationTaskTypes":{
+ "type":"list",
+ "member":{"shape":"EvaluationTaskType"},
+ "max":5,
+ "min":1
+ },
+ "FineTuningJobStatus":{
+ "type":"string",
+ "enum":[
+ "InProgress",
+ "Completed",
+ "Failed",
+ "Stopping",
+ "Stopped"
+ ]
+ },
+ "FoundationModelArn":{
+ "type":"string",
+ "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}"
+ },
+ "FoundationModelDetails":{
+ "type":"structure",
+ "required":[
+ "modelArn",
+ "modelId"
+ ],
+ "members":{
+ "modelArn":{
+ "shape":"FoundationModelArn",
+ "documentation":"The model Amazon Resource Name (ARN).
"
+ },
+ "modelId":{
"shape":"BedrockModelId",
"documentation":"The model identifier.
"
},
@@ -732,7 +1433,7 @@
},
"providerName":{
"shape":"BrandedName",
- "documentation":"he model's provider name.
"
+ "documentation":"The model's provider name.
"
},
"inputModalities":{
"shape":"ModelModalityList",
@@ -788,11 +1489,11 @@
"members":{
"modelArn":{
"shape":"FoundationModelArn",
- "documentation":"The ARN of the foundation model.
"
+ "documentation":"The Amazon Resource Name (ARN) of the foundation model.
"
},
"modelId":{
"shape":"BedrockModelId",
- "documentation":"The model Id of the foundation model.
"
+ "documentation":"The model ID of the foundation model.
"
},
"modelName":{
"shape":"BrandedName",
@@ -839,7 +1540,7 @@
"members":{
"modelIdentifier":{
"shape":"ModelIdentifier",
- "documentation":"Name or ARN of the custom model.
",
+ "documentation":"Name or Amazon Resource Name (ARN) of the custom model.
",
"location":"uri",
"locationName":"modelIdentifier"
}
@@ -859,7 +1560,7 @@
"members":{
"modelArn":{
"shape":"ModelArn",
- "documentation":"ARN associated with this model.
"
+ "documentation":"Amazon Resource Name (ARN) associated with this model.
"
},
"modelName":{
"shape":"CustomModelName",
@@ -871,11 +1572,11 @@
},
"jobArn":{
"shape":"ModelCustomizationJobArn",
- "documentation":"Job ARN associated with this model.
"
+ "documentation":"Job Amazon Resource Name (ARN) associated with this model.
"
},
"baseModelArn":{
"shape":"ModelArn",
- "documentation":"ARN of the base model.
"
+ "documentation":"Amazon Resource Name (ARN) of the base model.
"
},
"customizationType":{
"shape":"CustomizationType",
@@ -887,20 +1588,23 @@
},
"hyperParameters":{
"shape":"ModelCustomizationHyperParameters",
- "documentation":"Hyperparameter values associated with this model.
"
+ "documentation":"Hyperparameter values associated with this model. For details on the format for different models, see Custom model hyperparameters.
"
},
"trainingDataConfig":{
"shape":"TrainingDataConfig",
- "documentation":"Information about the training dataset.
"
+ "documentation":"Contains information about the training dataset.
"
+ },
+ "validationDataConfig":{
+ "shape":"ValidationDataConfig",
+ "documentation":"Contains information about the validation dataset.
"
},
- "validationDataConfig":{"shape":"ValidationDataConfig"},
"outputDataConfig":{
"shape":"OutputDataConfig",
"documentation":"Output data configuration associated with this custom model.
"
},
"trainingMetrics":{
"shape":"TrainingMetrics",
- "documentation":"The training metrics from the job creation.
"
+ "documentation":"Contains training metrics from the job creation.
"
},
"validationMetrics":{
"shape":"ValidationMetrics",
@@ -912,6 +1616,86 @@
}
}
},
+ "GetEvaluationJobRequest":{
+ "type":"structure",
+ "required":["jobIdentifier"],
+ "members":{
+ "jobIdentifier":{
+ "shape":"EvaluationJobIdentifier",
+ "documentation":"The Amazon Resource Name (ARN) of the model evaluation job.
",
+ "location":"uri",
+ "locationName":"jobIdentifier"
+ }
+ }
+ },
+ "GetEvaluationJobResponse":{
+ "type":"structure",
+ "required":[
+ "jobName",
+ "status",
+ "jobArn",
+ "roleArn",
+ "jobType",
+ "evaluationConfig",
+ "inferenceConfig",
+ "outputDataConfig",
+ "creationTime"
+ ],
+ "members":{
+ "jobName":{
+ "shape":"EvaluationJobName",
+ "documentation":"The name of the model evaluation job.
"
+ },
+ "status":{
+ "shape":"EvaluationJobStatus",
+ "documentation":"The status of the model evaluation job.
"
+ },
+ "jobArn":{
+ "shape":"EvaluationJobArn",
+ "documentation":"The Amazon Resource Name (ARN) of the model evaluation job.
"
+ },
+ "jobDescription":{
+ "shape":"EvaluationJobDescription",
+ "documentation":"The description of the model evaluation job.
"
+ },
+ "roleArn":{
+ "shape":"RoleArn",
+ "documentation":"The Amazon Resource Name (ARN) of the IAM service role used in the model evaluation job.
"
+ },
+ "customerEncryptionKeyId":{
+ "shape":"KmsKeyId",
+ "documentation":"The Amazon Resource Name (ARN) of the customer managed key specified when the model evaluation job was created.
"
+ },
+ "jobType":{
+ "shape":"EvaluationJobType",
+ "documentation":"The type of model evaluation job.
"
+ },
+ "evaluationConfig":{
+ "shape":"EvaluationConfig",
+ "documentation":"Contains details about the type of model evaluation job, the metrics used, the task type selected, the datasets used, and any custom metrics you defined.
"
+ },
+ "inferenceConfig":{
+ "shape":"EvaluationInferenceConfig",
+ "documentation":"Details about the models you specified in your model evaluation job.
"
+ },
+ "outputDataConfig":{
+ "shape":"EvaluationOutputDataConfig",
+ "documentation":"Amazon S3 location for where output data is saved.
"
+ },
+ "creationTime":{
+ "shape":"Timestamp",
+ "documentation":"When the model evaluation job was created.
"
+ },
+ "lastModifiedTime":{
+ "shape":"Timestamp",
+ "documentation":"When the model evaluation job was last modified.
"
+ },
+ "failureMessages":{
+ "shape":"ErrorMessages",
+ "documentation":"An array of strings the specify why the model evaluation job has failed.
"
+ }
+ }
+ },
"GetFoundationModelRequest":{
"type":"structure",
"required":["modelIdentifier"],
@@ -933,56 +1717,158 @@
}
}
},
- "GetModelCustomizationJobRequest":{
+ "GetGuardrailRequest":{
"type":"structure",
- "required":["jobIdentifier"],
+ "required":["guardrailIdentifier"],
"members":{
- "jobIdentifier":{
- "shape":"ModelCustomizationJobIdentifier",
- "documentation":"Identifier for the customization job.
",
+ "guardrailIdentifier":{
+ "shape":"GuardrailIdentifier",
+ "documentation":"The unique identifier of the guardrail for which to get details.
",
"location":"uri",
- "locationName":"jobIdentifier"
+ "locationName":"guardrailIdentifier"
+ },
+ "guardrailVersion":{
+ "shape":"GuardrailVersion",
+ "documentation":"The version of the guardrail for which to get details. If you don't specify a version, the response returns details for the DRAFT
version.
",
+ "location":"querystring",
+ "locationName":"guardrailVersion"
}
}
},
- "GetModelCustomizationJobResponse":{
+ "GetGuardrailResponse":{
"type":"structure",
"required":[
- "jobArn",
- "jobName",
- "outputModelName",
- "roleArn",
- "creationTime",
- "baseModelArn",
- "hyperParameters",
- "trainingDataConfig",
- "validationDataConfig",
- "outputDataConfig"
+ "name",
+ "guardrailId",
+ "guardrailArn",
+ "version",
+ "status",
+ "createdAt",
+ "updatedAt",
+ "blockedInputMessaging",
+ "blockedOutputsMessaging"
],
"members":{
- "jobArn":{
- "shape":"ModelCustomizationJobArn",
- "documentation":"The ARN of the customization job.
"
+ "name":{
+ "shape":"GuardrailName",
+ "documentation":"The name of the guardrail.
"
},
- "jobName":{
- "shape":"JobName",
- "documentation":"The name of the customization job.
"
+ "description":{
+ "shape":"GuardrailDescription",
+ "documentation":"The description of the guardrail.
"
},
- "outputModelName":{
- "shape":"CustomModelName",
- "documentation":"The name of the output model.
"
+ "guardrailId":{
+ "shape":"GuardrailId",
+ "documentation":"The unique identifier of the guardrail.
"
},
- "outputModelArn":{
- "shape":"CustomModelArn",
- "documentation":"The ARN of the output model.
"
+ "guardrailArn":{
+ "shape":"GuardrailArn",
+ "documentation":"The ARN of the guardrail that was created.
"
+ },
+ "version":{
+ "shape":"GuardrailVersion",
+ "documentation":"The version of the guardrail.
"
+ },
+ "status":{
+ "shape":"GuardrailStatus",
+ "documentation":"The status of the guardrail.
"
+ },
+ "topicPolicy":{
+ "shape":"GuardrailTopicPolicy",
+ "documentation":"The topic policy that was configured for the guardrail.
"
+ },
+ "contentPolicy":{
+ "shape":"GuardrailContentPolicy",
+ "documentation":"The content policy that was configured for the guardrail.
"
+ },
+ "wordPolicy":{
+ "shape":"GuardrailWordPolicy",
+ "documentation":"The word policy that was configured for the guardrail.
"
+ },
+ "sensitiveInformationPolicy":{
+ "shape":"GuardrailSensitiveInformationPolicy",
+ "documentation":"The sensitive information policy that was configured for the guardrail.
"
+ },
+ "createdAt":{
+ "shape":"Timestamp",
+ "documentation":"The date and time at which the guardrail was created.
"
+ },
+ "updatedAt":{
+ "shape":"Timestamp",
+ "documentation":"The date and time at which the guardrail was updated.
"
+ },
+ "statusReasons":{
+ "shape":"GuardrailStatusReasons",
+ "documentation":"Appears if the status
is FAILED
. A list of reasons for why the guardrail failed to be created, updated, versioned, or deleted.
"
+ },
+ "failureRecommendations":{
+ "shape":"GuardrailFailureRecommendations",
+ "documentation":"Appears if the status
of the guardrail is FAILED
. A list of recommendations to carry out before retrying the request.
"
+ },
+ "blockedInputMessaging":{
+ "shape":"GuardrailBlockedMessaging",
+ "documentation":"The message that the guardrail returns when it blocks a prompt.
"
+ },
+ "blockedOutputsMessaging":{
+ "shape":"GuardrailBlockedMessaging",
+ "documentation":"The message that the guardrail returns when it blocks a model response.
"
+ },
+ "kmsKeyArn":{
+ "shape":"KmsKeyArn",
+ "documentation":"The ARN of the KMS key that encrypts the guardrail.
"
+ }
+ }
+ },
+ "GetModelCustomizationJobRequest":{
+ "type":"structure",
+ "required":["jobIdentifier"],
+ "members":{
+ "jobIdentifier":{
+ "shape":"ModelCustomizationJobIdentifier",
+ "documentation":"Identifier for the customization job.
",
+ "location":"uri",
+ "locationName":"jobIdentifier"
+ }
+ }
+ },
+ "GetModelCustomizationJobResponse":{
+ "type":"structure",
+ "required":[
+ "jobArn",
+ "jobName",
+ "outputModelName",
+ "roleArn",
+ "creationTime",
+ "baseModelArn",
+ "hyperParameters",
+ "trainingDataConfig",
+ "validationDataConfig",
+ "outputDataConfig"
+ ],
+ "members":{
+ "jobArn":{
+ "shape":"ModelCustomizationJobArn",
+ "documentation":"The Amazon Resource Name (ARN) of the customization job.
"
+ },
+ "jobName":{
+ "shape":"JobName",
+ "documentation":"The name of the customization job.
"
+ },
+ "outputModelName":{
+ "shape":"CustomModelName",
+ "documentation":"The name of the output model.
"
+ },
+ "outputModelArn":{
+ "shape":"CustomModelArn",
+ "documentation":"The Amazon Resource Name (ARN) of the output model.
"
},
"clientRequestToken":{
"shape":"IdempotencyToken",
- "documentation":"The token that you specified in the CreateCustomizationJob request.
"
+ "documentation":"The token that you specified in the CreateCustomizationJob
request.
"
},
"roleArn":{
"shape":"RoleArn",
- "documentation":"The ARN of the IAM role.
"
+ "documentation":"The Amazon Resource Name (ARN) of the IAM role.
"
},
"status":{
"shape":"ModelCustomizationJobStatus",
@@ -1006,14 +1892,20 @@
},
"baseModelArn":{
"shape":"FoundationModelArn",
- "documentation":"ARN of the base model.
"
+ "documentation":"Amazon Resource Name (ARN) of the base model.
"
},
"hyperParameters":{
"shape":"ModelCustomizationHyperParameters",
- "documentation":"The hyperparameter values for the job. For information about hyperparameters for specific models, see Guidelines for model customization.
"
+ "documentation":"The hyperparameter values for the job. For details on the format for different models, see Custom model hyperparameters.
"
+ },
+ "trainingDataConfig":{
+ "shape":"TrainingDataConfig",
+ "documentation":"Contains information about the training dataset.
"
+ },
+ "validationDataConfig":{
+ "shape":"ValidationDataConfig",
+ "documentation":"Contains information about the validation dataset.
"
},
- "trainingDataConfig":{"shape":"TrainingDataConfig"},
- "validationDataConfig":{"shape":"ValidationDataConfig"},
"outputDataConfig":{
"shape":"OutputDataConfig",
"documentation":"Output data configuration
"
@@ -1026,7 +1918,10 @@
"shape":"KmsKeyArn",
"documentation":"The custom model is encrypted at rest using this key.
"
},
- "trainingMetrics":{"shape":"TrainingMetrics"},
+ "trainingMetrics":{
+ "shape":"TrainingMetrics",
+ "documentation":"Contains training metrics from the job creation.
"
+ },
"validationMetrics":{
"shape":"ValidationMetrics",
"documentation":"The loss metric for each validator that you provided in the createjob request.
"
@@ -1035,102 +1930,842 @@
"shape":"VpcConfig",
"documentation":"VPC configuration for the custom model job.
"
}
- }
+ }
+ },
+ "GetModelInvocationLoggingConfigurationRequest":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "GetModelInvocationLoggingConfigurationResponse":{
+ "type":"structure",
+ "members":{
+ "loggingConfig":{
+ "shape":"LoggingConfig",
+ "documentation":"The current configuration values.
"
+ }
+ }
+ },
+ "GetProvisionedModelThroughputRequest":{
+ "type":"structure",
+ "required":["provisionedModelId"],
+ "members":{
+ "provisionedModelId":{
+ "shape":"ProvisionedModelId",
+ "documentation":"The Amazon Resource Name (ARN) or name of the Provisioned Throughput.
",
+ "location":"uri",
+ "locationName":"provisionedModelId"
+ }
+ }
+ },
+ "GetProvisionedModelThroughputResponse":{
+ "type":"structure",
+ "required":[
+ "modelUnits",
+ "desiredModelUnits",
+ "provisionedModelName",
+ "provisionedModelArn",
+ "modelArn",
+ "desiredModelArn",
+ "foundationModelArn",
+ "status",
+ "creationTime",
+ "lastModifiedTime"
+ ],
+ "members":{
+ "modelUnits":{
+ "shape":"PositiveInteger",
+ "documentation":"The number of model units allocated to this Provisioned Throughput.
"
+ },
+ "desiredModelUnits":{
+ "shape":"PositiveInteger",
+ "documentation":"The number of model units that was requested for this Provisioned Throughput.
"
+ },
+ "provisionedModelName":{
+ "shape":"ProvisionedModelName",
+ "documentation":"The name of the Provisioned Throughput.
"
+ },
+ "provisionedModelArn":{
+ "shape":"ProvisionedModelArn",
+ "documentation":"The Amazon Resource Name (ARN) of the Provisioned Throughput.
"
+ },
+ "modelArn":{
+ "shape":"ModelArn",
+ "documentation":"The Amazon Resource Name (ARN) of the model associated with this Provisioned Throughput.
"
+ },
+ "desiredModelArn":{
+ "shape":"ModelArn",
+ "documentation":"The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the modelArn
if updating hasn't completed.
"
+ },
+ "foundationModelArn":{
+ "shape":"FoundationModelArn",
+ "documentation":"The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized.
"
+ },
+ "status":{
+ "shape":"ProvisionedModelStatus",
+ "documentation":"The status of the Provisioned Throughput.
"
+ },
+ "creationTime":{
+ "shape":"Timestamp",
+ "documentation":"The timestamp of the creation time for this Provisioned Throughput.
"
+ },
+ "lastModifiedTime":{
+ "shape":"Timestamp",
+ "documentation":"The timestamp of the last time that this Provisioned Throughput was modified.
"
+ },
+ "failureMessage":{
+ "shape":"ErrorMessage",
+ "documentation":"A failure message for any issues that occurred during creation, updating, or deletion of the Provisioned Throughput.
"
+ },
+ "commitmentDuration":{
+ "shape":"CommitmentDuration",
+ "documentation":"Commitment duration of the Provisioned Throughput.
"
+ },
+ "commitmentExpirationTime":{
+ "shape":"Timestamp",
+ "documentation":"The timestamp for when the commitment term for the Provisioned Throughput expires.
"
+ }
+ }
+ },
+ "GuardrailArn":{
+ "type":"string",
+ "max":2048,
+ "min":0,
+ "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+"
+ },
+ "GuardrailBlockedMessaging":{
+ "type":"string",
+ "max":500,
+ "min":1,
+ "sensitive":true
+ },
+ "GuardrailContentFilter":{
+ "type":"structure",
+ "required":[
+ "type",
+ "inputStrength",
+ "outputStrength"
+ ],
+ "members":{
+ "type":{
+ "shape":"GuardrailContentFilterType",
+ "documentation":"The harmful category that the content filter is applied to.
"
+ },
+ "inputStrength":{
+ "shape":"GuardrailFilterStrength",
+ "documentation":"The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.
"
+ },
+ "outputStrength":{
+ "shape":"GuardrailFilterStrength",
+ "documentation":"The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.
"
+ }
+ },
+ "documentation":"Contains filter strengths for harmful content. Guardrails support the following content filters to detect and filter harmful user inputs and FM-generated outputs.
-
Hate – Describes language or a statement that discriminates, criticizes, insults, denounces, or dehumanizes a person or group on the basis of an identity (such as race, ethnicity, gender, religion, sexual orientation, ability, and national origin).
-
Insults – Describes language or a statement that includes demeaning, humiliating, mocking, insulting, or belittling language. This type of language is also labeled as bullying.
-
Sexual – Describes language or a statement that indicates sexual interest, activity, or arousal using direct or indirect references to body parts, physical traits, or sex.
-
Violence – Describes language or a statement that includes glorification of or threats to inflict physical pain, hurt, or injury toward a person, group or thing.
Content filtering depends on the confidence classification of user inputs and FM responses across each of the four harmful categories. All input and output statements are classified into one of four confidence levels (NONE, LOW, MEDIUM, HIGH) for each harmful category. For example, if a statement is classified as Hate with HIGH confidence, the likelihood of the statement representing hateful content is high. A single statement can be classified across multiple categories with varying confidence levels. For example, a single statement can be classified as Hate with HIGH confidence, Insults with LOW confidence, Sexual with NONE confidence, and Violence with MEDIUM confidence.
For more information, see Guardrails content filters.
This data type is used in the following API operations:
"
+ },
+ "GuardrailContentFilterConfig":{
+ "type":"structure",
+ "required":[
+ "type",
+ "inputStrength",
+ "outputStrength"
+ ],
+ "members":{
+ "type":{
+ "shape":"GuardrailContentFilterType",
+ "documentation":"The harmful category that the content filter is applied to.
"
+ },
+ "inputStrength":{
+ "shape":"GuardrailFilterStrength",
+ "documentation":"The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.
"
+ },
+ "outputStrength":{
+ "shape":"GuardrailFilterStrength",
+ "documentation":"The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.
"
+ }
+ },
+ "documentation":"Contains filter strengths for harmful content. Guardrails support the following content filters to detect and filter harmful user inputs and FM-generated outputs.
-
Hate – Describes language or a statement that discriminates, criticizes, insults, denounces, or dehumanizes a person or group on the basis of an identity (such as race, ethnicity, gender, religion, sexual orientation, ability, and national origin).
-
Insults – Describes language or a statement that includes demeaning, humiliating, mocking, insulting, or belittling language. This type of language is also labeled as bullying.
-
Sexual – Describes language or a statement that indicates sexual interest, activity, or arousal using direct or indirect references to body parts, physical traits, or sex.
-
Violence – Describes language or a statement that includes glorification of or threats to inflict physical pain, hurt, or injury toward a person, group or thing.
Content filtering depends on the confidence classification of user inputs and FM responses across each of the four harmful categories. All input and output statements are classified into one of four confidence levels (NONE, LOW, MEDIUM, HIGH) for each harmful category. For example, if a statement is classified as Hate with HIGH confidence, the likelihood of the statement representing hateful content is high. A single statement can be classified across multiple categories with varying confidence levels. For example, a single statement can be classified as Hate with HIGH confidence, Insults with LOW confidence, Sexual with NONE confidence, and Violence with MEDIUM confidence.
For more information, see Guardrails content filters.
This data type is used in the following API operations:
"
+ },
+ "GuardrailContentFilterType":{
+ "type":"string",
+ "enum":[
+ "SEXUAL",
+ "VIOLENCE",
+ "HATE",
+ "INSULTS",
+ "MISCONDUCT",
+ "PROMPT_ATTACK"
+ ]
+ },
+ "GuardrailContentFilters":{
+ "type":"list",
+ "member":{"shape":"GuardrailContentFilter"},
+ "max":6,
+ "min":1
+ },
+ "GuardrailContentFiltersConfig":{
+ "type":"list",
+ "member":{"shape":"GuardrailContentFilterConfig"},
+ "max":6,
+ "min":1
+ },
+ "GuardrailContentPolicy":{
+ "type":"structure",
+ "members":{
+ "filters":{
+ "shape":"GuardrailContentFilters",
+ "documentation":"Contains the type of the content filter and how strongly it should apply to prompts and model responses.
"
+ }
+ },
+ "documentation":"Contains details about how to handle harmful content.
This data type is used in the following API operations:
"
+ },
+ "GuardrailContentPolicyConfig":{
+ "type":"structure",
+ "required":["filtersConfig"],
+ "members":{
+ "filtersConfig":{
+ "shape":"GuardrailContentFiltersConfig",
+ "documentation":"Contains the type of the content filter and how strongly it should apply to prompts and model responses.
"
+ }
+ },
+ "documentation":"Contains details about how to handle harmful content.
This data type is used in the following API operations:
"
+ },
+ "GuardrailDescription":{
+ "type":"string",
+ "max":200,
+ "min":1,
+ "sensitive":true
+ },
+ "GuardrailDraftVersion":{
+ "type":"string",
+ "max":5,
+ "min":5,
+ "pattern":"DRAFT"
+ },
+ "GuardrailFailureRecommendation":{
+ "type":"string",
+ "max":200,
+ "min":1,
+ "sensitive":true
+ },
+ "GuardrailFailureRecommendations":{
+ "type":"list",
+ "member":{"shape":"GuardrailFailureRecommendation"},
+ "max":100,
+ "min":0
+ },
+ "GuardrailFilterStrength":{
+ "type":"string",
+ "enum":[
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH"
+ ]
+ },
+ "GuardrailId":{
+ "type":"string",
+ "max":64,
+ "min":0,
+ "pattern":"[a-z0-9]+"
+ },
+ "GuardrailIdentifier":{
+ "type":"string",
+ "max":2048,
+ "min":0,
+ "pattern":"(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))"
+ },
+ "GuardrailManagedWordLists":{
+ "type":"list",
+ "member":{"shape":"GuardrailManagedWords"}
+ },
+ "GuardrailManagedWordListsConfig":{
+ "type":"list",
+ "member":{"shape":"GuardrailManagedWordsConfig"}
+ },
+ "GuardrailManagedWords":{
+ "type":"structure",
+ "required":["type"],
+ "members":{
+ "type":{
+ "shape":"GuardrailManagedWordsType",
+ "documentation":"ManagedWords$type The managed word type that was configured for the guardrail. (For now, we only offer profanity word list)
"
+ }
+ },
+ "documentation":"The managed word list that was configured for the guardrail. (This is a list of words that are pre-defined and managed by Guardrails only.)
"
+ },
+ "GuardrailManagedWordsConfig":{
+ "type":"structure",
+ "required":["type"],
+ "members":{
+ "type":{
+ "shape":"GuardrailManagedWordsType",
+ "documentation":"The managed word type to configure for the guardrail.
"
+ }
+ },
+ "documentation":"The managed word list to configure for the guardrail.
"
+ },
+ "GuardrailManagedWordsType":{
+ "type":"string",
+ "enum":["PROFANITY"]
+ },
+ "GuardrailName":{
+ "type":"string",
+ "max":50,
+ "min":1,
+ "pattern":"[0-9a-zA-Z-_]+",
+ "sensitive":true
+ },
+ "GuardrailNumericalVersion":{
+ "type":"string",
+ "pattern":"[1-9][0-9]{0,7}"
+ },
+ "GuardrailPiiEntities":{
+ "type":"list",
+ "member":{"shape":"GuardrailPiiEntity"},
+ "min":1
+ },
+ "GuardrailPiiEntitiesConfig":{
+ "type":"list",
+ "member":{"shape":"GuardrailPiiEntityConfig"},
+ "min":1
+ },
+ "GuardrailPiiEntity":{
+ "type":"structure",
+ "required":[
+ "type",
+ "action"
+ ],
+ "members":{
+ "type":{
+ "shape":"GuardrailPiiEntityType",
+ "documentation":"The type of PII entity. For example, Social Security Number.
"
+ },
+ "action":{
+ "shape":"GuardrailSensitiveInformationAction",
+ "documentation":"The configured guardrail action when PII entity is detected.
"
+ }
+ },
+ "documentation":"The PII entity configured for the guardrail.
"
+ },
+ "GuardrailPiiEntityConfig":{
+ "type":"structure",
+ "required":[
+ "type",
+ "action"
+ ],
+ "members":{
+ "type":{
+ "shape":"GuardrailPiiEntityType",
+ "documentation":"Configure guardrail type when the PII entity is detected.
"
+ },
+ "action":{
+ "shape":"GuardrailSensitiveInformationAction",
+ "documentation":"Configure guardrail action when the PII entity is detected.
"
+ }
+ },
+ "documentation":"The PII entity to configure for the guardrail.
"
+ },
+ "GuardrailPiiEntityType":{
+ "type":"string",
+ "enum":[
+ "ADDRESS",
+ "AGE",
+ "AWS_ACCESS_KEY",
+ "AWS_SECRET_KEY",
+ "CA_HEALTH_NUMBER",
+ "CA_SOCIAL_INSURANCE_NUMBER",
+ "CREDIT_DEBIT_CARD_CVV",
+ "CREDIT_DEBIT_CARD_EXPIRY",
+ "CREDIT_DEBIT_CARD_NUMBER",
+ "DRIVER_ID",
+ "EMAIL",
+ "INTERNATIONAL_BANK_ACCOUNT_NUMBER",
+ "IP_ADDRESS",
+ "LICENSE_PLATE",
+ "MAC_ADDRESS",
+ "NAME",
+ "PASSWORD",
+ "PHONE",
+ "PIN",
+ "SWIFT_CODE",
+ "UK_NATIONAL_HEALTH_SERVICE_NUMBER",
+ "UK_NATIONAL_INSURANCE_NUMBER",
+ "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER",
+ "URL",
+ "USERNAME",
+ "US_BANK_ACCOUNT_NUMBER",
+ "US_BANK_ROUTING_NUMBER",
+ "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER",
+ "US_PASSPORT_NUMBER",
+ "US_SOCIAL_SECURITY_NUMBER",
+ "VEHICLE_IDENTIFICATION_NUMBER"
+ ]
+ },
+ "GuardrailRegex":{
+ "type":"structure",
+ "required":[
+ "name",
+ "pattern",
+ "action"
+ ],
+ "members":{
+ "name":{
+ "shape":"GuardrailRegexNameString",
+ "documentation":"The name of the regular expression for the guardrail.
"
+ },
+ "description":{
+ "shape":"GuardrailRegexDescriptionString",
+ "documentation":"The description of the regular expression for the guardrail.
"
+ },
+ "pattern":{
+ "shape":"GuardrailRegexPatternString",
+ "documentation":"The pattern of the regular expression configured for the guardrail.
"
+ },
+ "action":{
+ "shape":"GuardrailSensitiveInformationAction",
+ "documentation":"The action taken when a match to the regular expression is detected.
"
+ }
+ },
+ "documentation":"The regular expression configured for the guardrail.
"
+ },
+ "GuardrailRegexConfig":{
+ "type":"structure",
+ "required":[
+ "name",
+ "pattern",
+ "action"
+ ],
+ "members":{
+ "name":{
+ "shape":"GuardrailRegexConfigNameString",
+ "documentation":"The name of the regular expression to configure for the guardrail.
"
+ },
+ "description":{
+ "shape":"GuardrailRegexConfigDescriptionString",
+ "documentation":"The description of the regular expression to configure for the guardrail.
"
+ },
+ "pattern":{
+ "shape":"GuardrailRegexConfigPatternString",
+ "documentation":"The regular expression pattern to configure for the guardrail.
"
+ },
+ "action":{
+ "shape":"GuardrailSensitiveInformationAction",
+ "documentation":"The guardrail action to configure when matching regular expression is detected.
"
+ }
+ },
+ "documentation":"The regular expression to configure for the guardrail.
"
+ },
+ "GuardrailRegexConfigDescriptionString":{
+ "type":"string",
+ "max":1000,
+ "min":1
+ },
+ "GuardrailRegexConfigNameString":{
+ "type":"string",
+ "max":100,
+ "min":1
+ },
+ "GuardrailRegexConfigPatternString":{
+ "type":"string",
+ "max":500,
+ "min":1
+ },
+ "GuardrailRegexDescriptionString":{
+ "type":"string",
+ "max":1000,
+ "min":1
+ },
+ "GuardrailRegexNameString":{
+ "type":"string",
+ "max":100,
+ "min":1
+ },
+ "GuardrailRegexPatternString":{
+ "type":"string",
+ "max":500,
+ "min":1
+ },
+ "GuardrailRegexes":{
+ "type":"list",
+ "member":{"shape":"GuardrailRegex"}
+ },
+ "GuardrailRegexesConfig":{
+ "type":"list",
+ "member":{"shape":"GuardrailRegexConfig"},
+ "max":10,
+ "min":1
+ },
+ "GuardrailSensitiveInformationAction":{
+ "type":"string",
+ "enum":[
+ "BLOCK",
+ "ANONYMIZE"
+ ]
+ },
+ "GuardrailSensitiveInformationPolicy":{
+ "type":"structure",
+ "members":{
+ "piiEntities":{
+ "shape":"GuardrailPiiEntities",
+ "documentation":"The list of PII entities configured for the guardrail.
"
+ },
+ "regexes":{
+ "shape":"GuardrailRegexes",
+ "documentation":"The list of regular expressions configured for the guardrail.
"
+ }
+ },
+ "documentation":"Contains details about PII entities and regular expressions configured for the guardrail.
"
+ },
+ "GuardrailSensitiveInformationPolicyConfig":{
+ "type":"structure",
+ "members":{
+ "piiEntitiesConfig":{
+ "shape":"GuardrailPiiEntitiesConfig",
+ "documentation":"A list of PII entities to configure to the guardrail.
"
+ },
+ "regexesConfig":{
+ "shape":"GuardrailRegexesConfig",
+ "documentation":"A list of regular expressions to configure to the guardrail.
"
+ }
+ },
+ "documentation":"Contains details about PII entities and regular expressions to configure for the guardrail.
"
+ },
+ "GuardrailStatus":{
+ "type":"string",
+ "enum":[
+ "CREATING",
+ "UPDATING",
+ "VERSIONING",
+ "READY",
+ "FAILED",
+ "DELETING"
+ ]
+ },
+ "GuardrailStatusReason":{
+ "type":"string",
+ "max":200,
+ "min":1,
+ "sensitive":true
+ },
+ "GuardrailStatusReasons":{
+ "type":"list",
+ "member":{"shape":"GuardrailStatusReason"},
+ "max":100,
+ "min":0
+ },
+ "GuardrailSummaries":{
+ "type":"list",
+ "member":{"shape":"GuardrailSummary"},
+ "max":1000,
+ "min":0
+ },
+ "GuardrailSummary":{
+ "type":"structure",
+ "required":[
+ "id",
+ "arn",
+ "status",
+ "name",
+ "version",
+ "createdAt",
+ "updatedAt"
+ ],
+ "members":{
+ "id":{
+ "shape":"GuardrailId",
+ "documentation":"The unique identifier of the guardrail.
"
+ },
+ "arn":{
+ "shape":"GuardrailArn",
+ "documentation":"The ARN of the guardrail.
"
+ },
+ "status":{
+ "shape":"GuardrailStatus",
+ "documentation":"The status of the guardrail.
"
+ },
+ "name":{
+ "shape":"GuardrailName",
+ "documentation":"The name of the guardrail.
"
+ },
+ "description":{
+ "shape":"GuardrailDescription",
+ "documentation":"A description of the guardrail.
"
+ },
+ "version":{
+ "shape":"GuardrailVersion",
+ "documentation":"The version of the guardrail.
"
+ },
+ "createdAt":{
+ "shape":"Timestamp",
+ "documentation":"The date and time at which the guardrail was created.
"
+ },
+ "updatedAt":{
+ "shape":"Timestamp",
+ "documentation":"The date and time at which the guardrail was last updated.
"
+ }
+ },
+ "documentation":"Contains details about a guardrail.
This data type is used in the following API operations:
"
+ },
+ "GuardrailTopic":{
+ "type":"structure",
+ "required":[
+ "name",
+ "definition"
+ ],
+ "members":{
+ "name":{
+ "shape":"GuardrailTopicName",
+ "documentation":"The name of the topic to deny.
"
+ },
+ "definition":{
+ "shape":"GuardrailTopicDefinition",
+ "documentation":"A definition of the topic to deny.
"
+ },
+ "examples":{
+ "shape":"GuardrailTopicExamples",
+ "documentation":"A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic.
"
+ },
+ "type":{
+ "shape":"GuardrailTopicType",
+ "documentation":"Specifies to deny the topic.
"
+ }
+ },
+ "documentation":"Details about topics for the guardrail to identify and deny.
This data type is used in the following API operations:
"
+ },
+ "GuardrailTopicConfig":{
+ "type":"structure",
+ "required":[
+ "name",
+ "definition",
+ "type"
+ ],
+ "members":{
+ "name":{
+ "shape":"GuardrailTopicName",
+ "documentation":"The name of the topic to deny.
"
+ },
+ "definition":{
+ "shape":"GuardrailTopicDefinition",
+ "documentation":"A definition of the topic to deny.
"
+ },
+ "examples":{
+ "shape":"GuardrailTopicExamples",
+ "documentation":"A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic.
"
+ },
+ "type":{
+ "shape":"GuardrailTopicType",
+ "documentation":"Specifies to deny the topic.
"
+ }
+ },
+ "documentation":"Details about topics for the guardrail to identify and deny.
This data type is used in the following API operations:
"
+ },
+ "GuardrailTopicDefinition":{
+ "type":"string",
+ "max":200,
+ "min":1,
+ "sensitive":true
+ },
+ "GuardrailTopicExample":{
+ "type":"string",
+ "max":100,
+ "min":1,
+ "sensitive":true
+ },
+ "GuardrailTopicExamples":{
+ "type":"list",
+ "member":{"shape":"GuardrailTopicExample"},
+ "max":5,
+ "min":0
+ },
+ "GuardrailTopicName":{
+ "type":"string",
+ "max":100,
+ "min":1,
+ "pattern":"[0-9a-zA-Z-_ !?.]+",
+ "sensitive":true
+ },
+ "GuardrailTopicPolicy":{
+ "type":"structure",
+ "required":["topics"],
+ "members":{
+ "topics":{
+ "shape":"GuardrailTopics",
+ "documentation":"A list of policies related to topics that the guardrail should deny.
"
+ }
+ },
+ "documentation":"Contains details about topics that the guardrail should identify and deny.
This data type is used in the following API operations:
"
},
- "GetModelInvocationLoggingConfigurationRequest":{
+ "GuardrailTopicPolicyConfig":{
"type":"structure",
+ "required":["topicsConfig"],
"members":{
- }
+ "topicsConfig":{
+ "shape":"GuardrailTopicsConfig",
+ "documentation":"A list of policies related to topics that the guardrail should deny.
"
+ }
+ },
+ "documentation":"Contains details about topics that the guardrail should identify and deny.
This data type is used in the following API operations:
"
},
- "GetModelInvocationLoggingConfigurationResponse":{
+ "GuardrailTopicType":{
+ "type":"string",
+ "enum":["DENY"]
+ },
+ "GuardrailTopics":{
+ "type":"list",
+ "member":{"shape":"GuardrailTopic"},
+ "max":30,
+ "min":1
+ },
+ "GuardrailTopicsConfig":{
+ "type":"list",
+ "member":{"shape":"GuardrailTopicConfig"},
+ "max":30,
+ "min":1
+ },
+ "GuardrailVersion":{
+ "type":"string",
+ "pattern":"(([1-9][0-9]{0,7})|(DRAFT))"
+ },
+ "GuardrailWord":{
"type":"structure",
+ "required":["text"],
"members":{
- "loggingConfig":{
- "shape":"LoggingConfig",
- "documentation":"The current configuration values.
"
+ "text":{
+ "shape":"GuardrailWordTextString",
+ "documentation":"Text of the word configured for the guardrail to block.
"
}
- }
+ },
+ "documentation":"A word configured for the guardrail.
"
},
- "GetProvisionedModelThroughputRequest":{
+ "GuardrailWordConfig":{
"type":"structure",
- "required":["provisionedModelId"],
+ "required":["text"],
"members":{
- "provisionedModelId":{
- "shape":"ProvisionedModelId",
- "documentation":"The ARN or name of the provisioned throughput.
",
- "location":"uri",
- "locationName":"provisionedModelId"
+ "text":{
+ "shape":"GuardrailWordConfigTextString",
+ "documentation":"Text of the word configured for the guardrail to block.
"
}
- }
+ },
+ "documentation":"A word to configure for the guardrail.
"
},
- "GetProvisionedModelThroughputResponse":{
+ "GuardrailWordConfigTextString":{
+ "type":"string",
+ "max":100,
+ "min":1
+ },
+ "GuardrailWordPolicy":{
"type":"structure",
- "required":[
- "modelUnits",
- "desiredModelUnits",
- "provisionedModelName",
- "provisionedModelArn",
- "modelArn",
- "desiredModelArn",
- "foundationModelArn",
- "status",
- "creationTime",
- "lastModifiedTime"
- ],
"members":{
- "modelUnits":{
- "shape":"PositiveInteger",
- "documentation":"The current number of model units requested to be available for this provisioned throughput.
"
+ "words":{
+ "shape":"GuardrailWords",
+ "documentation":"A list of words configured for the guardrail.
"
},
- "desiredModelUnits":{
- "shape":"PositiveInteger",
- "documentation":"The desired number of model units that was requested to be available for this provisioned throughput.
"
- },
- "provisionedModelName":{
- "shape":"ProvisionedModelName",
- "documentation":"The name of the provisioned throughput.
"
- },
- "provisionedModelArn":{
- "shape":"ProvisionedModelArn",
- "documentation":"The ARN of the provisioned throughput.
"
- },
- "modelArn":{
- "shape":"ModelArn",
- "documentation":"The ARN or name of the model associated with this provisioned throughput.
"
- },
- "desiredModelArn":{
- "shape":"ModelArn",
- "documentation":"The ARN of the new model to asssociate with this provisioned throughput.
"
- },
- "foundationModelArn":{
- "shape":"FoundationModelArn",
- "documentation":"ARN of the foundation model.
"
+ "managedWordLists":{
+ "shape":"GuardrailManagedWordLists",
+ "documentation":"A list of managed words configured for the guardrail.
"
+ }
+ },
+ "documentation":"Contains details about the word policy configured for the guardrail.
"
+ },
+ "GuardrailWordPolicyConfig":{
+ "type":"structure",
+ "members":{
+ "wordsConfig":{
+ "shape":"GuardrailWordsConfig",
+ "documentation":"A list of words to configure for the guardrail.
"
},
- "status":{
- "shape":"ProvisionedModelStatus",
- "documentation":"Status of the provisioned throughput.
"
+ "managedWordListsConfig":{
+ "shape":"GuardrailManagedWordListsConfig",
+ "documentation":"A list of managed words to configure for the guardrail.
"
+ }
+ },
+ "documentation":"Contains details about the word policy to configured for the guardrail.
"
+ },
+ "GuardrailWordTextString":{
+ "type":"string",
+ "max":100,
+ "min":1
+ },
+ "GuardrailWords":{
+ "type":"list",
+ "member":{"shape":"GuardrailWord"},
+ "max":10000,
+ "min":1
+ },
+ "GuardrailWordsConfig":{
+ "type":"list",
+ "member":{"shape":"GuardrailWordConfig"},
+ "max":10000,
+ "min":1
+ },
+ "HumanEvaluationConfig":{
+ "type":"structure",
+ "required":["datasetMetricConfigs"],
+ "members":{
+ "humanWorkflowConfig":{
+ "shape":"HumanWorkflowConfig",
+ "documentation":"The parameters of the human workflow.
"
},
- "creationTime":{
- "shape":"Timestamp",
- "documentation":"The timestamp of the creation time for this provisioned throughput.
"
+ "customMetrics":{
+ "shape":"HumanEvaluationCustomMetrics",
+ "documentation":"A HumanEvaluationCustomMetric
object. It contains the names the metrics, how the metrics are to be evaluated, an optional description.
"
},
- "lastModifiedTime":{
- "shape":"Timestamp",
- "documentation":"The timestamp of the last modified time of this provisioned throughput.
"
+ "datasetMetricConfigs":{
+ "shape":"EvaluationDatasetMetricConfigs",
+ "documentation":"Use to specify the metrics, task, and prompt dataset to be used in your model evaluation job.
"
+ }
+ },
+ "documentation":"Specifies the custom metrics, how tasks will be rated, the flow definition ARN, and your custom prompt datasets. Model evaluation jobs use human workers only support the use of custom prompt datasets. To learn more about custom prompt datasets and the required format, see Custom prompt datasets.
When you create custom metrics in HumanEvaluationCustomMetric
you must specify the metric's name
. The list of names
specified in the HumanEvaluationCustomMetric
array, must match the metricNames
array of strings specified in EvaluationDatasetMetricConfig
. For example, if in the HumanEvaluationCustomMetric
array your specified the names \"accuracy\", \"toxicity\", \"readability\"
as custom metrics then the metricNames
array would need to look like the following [\"accuracy\", \"toxicity\", \"readability\"]
in EvaluationDatasetMetricConfig
.
"
+ },
+ "HumanEvaluationCustomMetric":{
+ "type":"structure",
+ "required":[
+ "name",
+ "ratingMethod"
+ ],
+ "members":{
+ "name":{
+ "shape":"EvaluationMetricName",
+ "documentation":"The name of the metric. Your human evaluators will see this name in the evaluation UI.
"
},
- "failureMessage":{
- "shape":"ErrorMessage",
- "documentation":"Failure message for any issues that the create operation encounters.
"
+ "description":{
+ "shape":"EvaluationMetricDescription",
+ "documentation":"An optional description of the metric. Use this parameter to provide more details about the metric.
"
},
- "commitmentDuration":{
- "shape":"CommitmentDuration",
- "documentation":"Commitment duration of the provisioned throughput.
"
+ "ratingMethod":{
+ "shape":"EvaluationRatingMethod",
+ "documentation":"Choose how you want your human workers to evaluation your model. Valid values for rating methods are ThumbsUpDown
, IndividualLikertScale
,ComparisonLikertScale
, ComparisonChoice
, and ComparisonRank
"
+ }
+ },
+ "documentation":"In a model evaluation job that uses human workers you must define the name of the metric, and how you want that metric rated ratingMethod
, and an optional description of the metric.
"
+ },
+ "HumanEvaluationCustomMetrics":{
+ "type":"list",
+ "member":{"shape":"HumanEvaluationCustomMetric"},
+ "max":10,
+ "min":1
+ },
+ "HumanTaskInstructions":{
+ "type":"string",
+ "max":5000,
+ "min":1,
+ "pattern":"[\\S\\s]+",
+ "sensitive":true
+ },
+ "HumanWorkflowConfig":{
+ "type":"structure",
+ "required":["flowDefinitionArn"],
+ "members":{
+ "flowDefinitionArn":{
+ "shape":"SageMakerFlowDefinitionArn",
+ "documentation":"The Amazon Resource Number (ARN) for the flow definition
"
},
- "commitmentExpirationTime":{
- "shape":"Timestamp",
- "documentation":"Commitment expiration time for the provisioned throughput.
"
+ "instructions":{
+ "shape":"HumanTaskInstructions",
+ "documentation":"Instructions for the flow definition
"
}
- }
+ },
+ "documentation":"Contains SageMakerFlowDefinition
object. The object is used to specify the prompt dataset, task type, rating method and metric names.
"
},
"IdempotencyToken":{
"type":"string",
@@ -1205,13 +2840,13 @@
},
"baseModelArnEquals":{
"shape":"ModelArn",
- "documentation":"Return custom models only if the base model ARN matches this parameter.
",
+ "documentation":"Return custom models only if the base model Amazon Resource Name (ARN) matches this parameter.
",
"location":"querystring",
"locationName":"baseModelArnEquals"
},
"foundationModelArnEquals":{
"shape":"FoundationModelArn",
- "documentation":"Return custom models only if the foundation model ARN matches this parameter.
",
+ "documentation":"Return custom models only if the foundation model Amazon Resource Name (ARN) matches this parameter.
",
"location":"querystring",
"locationName":"foundationModelArnEquals"
},
@@ -1254,30 +2889,96 @@
}
}
},
+ "ListEvaluationJobsRequest":{
+ "type":"structure",
+ "members":{
+ "creationTimeAfter":{
+ "shape":"Timestamp",
+ "documentation":"A filter that includes model evaluation jobs created after the time specified.
",
+ "location":"querystring",
+ "locationName":"creationTimeAfter"
+ },
+ "creationTimeBefore":{
+ "shape":"Timestamp",
+ "documentation":"A filter that includes model evaluation jobs created prior to the time specified.
",
+ "location":"querystring",
+ "locationName":"creationTimeBefore"
+ },
+ "statusEquals":{
+ "shape":"EvaluationJobStatus",
+ "documentation":"Only return jobs where the status condition is met.
",
+ "location":"querystring",
+ "locationName":"statusEquals"
+ },
+ "nameContains":{
+ "shape":"EvaluationJobName",
+ "documentation":"Query parameter string for model evaluation job names.
",
+ "location":"querystring",
+ "locationName":"nameContains"
+ },
+ "maxResults":{
+ "shape":"MaxResults",
+ "documentation":"The maximum number of results to return.
",
+ "location":"querystring",
+ "locationName":"maxResults"
+ },
+ "nextToken":{
+ "shape":"PaginationToken",
+ "documentation":"Continuation token from the previous response, for Amazon Bedrock to list the next set of results.
",
+ "location":"querystring",
+ "locationName":"nextToken"
+ },
+ "sortBy":{
+ "shape":"SortJobsBy",
+ "documentation":"Allows you to sort model evaluation jobs by when they were created.
",
+ "location":"querystring",
+ "locationName":"sortBy"
+ },
+ "sortOrder":{
+ "shape":"SortOrder",
+ "documentation":"How you want the order of jobs sorted.
",
+ "location":"querystring",
+ "locationName":"sortOrder"
+ }
+ }
+ },
+ "ListEvaluationJobsResponse":{
+ "type":"structure",
+ "members":{
+ "nextToken":{
+ "shape":"PaginationToken",
+ "documentation":"Continuation token from the previous response, for Amazon Bedrock to list the next set of results.
"
+ },
+ "jobSummaries":{
+ "shape":"EvaluationSummaries",
+ "documentation":"A summary of the model evaluation jobs.
"
+ }
+ }
+ },
"ListFoundationModelsRequest":{
"type":"structure",
"members":{
"byProvider":{
"shape":"Provider",
- "documentation":"A Amazon Bedrock model provider.
",
+ "documentation":"Return models belonging to the model provider that you specify.
",
"location":"querystring",
"locationName":"byProvider"
},
"byCustomizationType":{
"shape":"ModelCustomization",
- "documentation":"List by customization type.
",
+ "documentation":"Return models that support the customization type that you specify. For more information, see Custom models in the Amazon Bedrock User Guide.
",
"location":"querystring",
"locationName":"byCustomizationType"
},
"byOutputModality":{
"shape":"ModelModality",
- "documentation":"List by output modality type.
",
+ "documentation":"Return models that support the output modality that you specify.
",
"location":"querystring",
"locationName":"byOutputModality"
},
"byInferenceType":{
"shape":"InferenceType",
- "documentation":"List by inference type.
",
+ "documentation":"Return models that support the inference type that you specify. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.
",
"location":"querystring",
"locationName":"byInferenceType"
}
@@ -1292,6 +2993,43 @@
}
}
},
+ "ListGuardrailsRequest":{
+ "type":"structure",
+ "members":{
+ "guardrailIdentifier":{
+ "shape":"GuardrailIdentifier",
+ "documentation":"The unique identifier of the guardrail.
",
+ "location":"querystring",
+ "locationName":"guardrailIdentifier"
+ },
+ "maxResults":{
+ "shape":"MaxResults",
+ "documentation":"The maximum number of results to return in the response.
",
+ "location":"querystring",
+ "locationName":"maxResults"
+ },
+ "nextToken":{
+ "shape":"PaginationToken",
+ "documentation":"If there are more results than were returned in the response, the response returns a nextToken
that you can send in another ListGuardrails
request to see the next batch of results.
",
+ "location":"querystring",
+ "locationName":"nextToken"
+ }
+ }
+ },
+ "ListGuardrailsResponse":{
+ "type":"structure",
+ "required":["guardrails"],
+ "members":{
+ "guardrails":{
+ "shape":"GuardrailSummaries",
+ "documentation":"A list of objects, each of which contains details about a guardrail.
"
+ },
+ "nextToken":{
+ "shape":"PaginationToken",
+ "documentation":"If there are more results than were returned in the response, the response returns a nextToken
that you can send in another ListGuardrails
request to see the next batch of results.
"
+ }
+ }
+ },
"ListModelCustomizationJobsRequest":{
"type":"structure",
"members":{
@@ -1363,49 +3101,49 @@
"members":{
"creationTimeAfter":{
"shape":"Timestamp",
- "documentation":"Return provisioned capacities created after the specified time.
",
+ "documentation":"A filter that returns Provisioned Throughputs created after the specified time.
",
"location":"querystring",
"locationName":"creationTimeAfter"
},
"creationTimeBefore":{
"shape":"Timestamp",
- "documentation":"Return provisioned capacities created before the specified time.
",
+ "documentation":"A filter that returns Provisioned Throughputs created before the specified time.
",
"location":"querystring",
"locationName":"creationTimeBefore"
},
"statusEquals":{
"shape":"ProvisionedModelStatus",
- "documentation":"Return the list of provisioned capacities that match the specified status.
",
+ "documentation":"A filter that returns Provisioned Throughputs if their statuses matches the value that you specify.
",
"location":"querystring",
"locationName":"statusEquals"
},
"modelArnEquals":{
"shape":"ModelArn",
- "documentation":"Return the list of provisioned capacities where their model ARN is equal to this parameter.
",
+ "documentation":"A filter that returns Provisioned Throughputs whose model Amazon Resource Name (ARN) is equal to the value that you specify.
",
"location":"querystring",
"locationName":"modelArnEquals"
},
"nameContains":{
"shape":"ProvisionedModelName",
- "documentation":"Return the list of provisioned capacities if their name contains these characters.
",
+ "documentation":"A filter that returns Provisioned Throughputs if their name contains the expression that you specify.
",
"location":"querystring",
"locationName":"nameContains"
},
"maxResults":{
"shape":"MaxResults",
- "documentation":"THe maximum number of results to return in the response.
",
+ "documentation":"THe maximum number of results to return in the response. If there are more results than the number you specified, the response returns a nextToken
value. To see the next batch of results, send the nextToken
value in another list request.
",
"location":"querystring",
"locationName":"maxResults"
},
"nextToken":{
"shape":"PaginationToken",
- "documentation":"Continuation token from the previous response, for Amazon Bedrock to list the next set of results.
",
+ "documentation":"If there are more results than the number you specified in the maxResults
field, the response returns a nextToken
value. To see the next batch of results, specify the nextToken
value in this field.
",
"location":"querystring",
"locationName":"nextToken"
},
"sortBy":{
"shape":"SortByProvisionedModels",
- "documentation":"The field to sort by in the returned list of provisioned capacities.
",
+ "documentation":"The field by which to sort the returned list of Provisioned Throughputs.
",
"location":"querystring",
"locationName":"sortBy"
},
@@ -1422,11 +3160,11 @@
"members":{
"nextToken":{
"shape":"PaginationToken",
- "documentation":"Continuation token for the next request to list the next set of results.
"
+ "documentation":"If there are more results than the number you specified in the maxResults
field, this value is returned. To see the next batch of results, include this value in the nextToken
field in another list request.
"
},
"provisionedModelSummaries":{
"shape":"ProvisionedModelSummaries",
- "documentation":"List of summaries, one for each provisioned throughput in the response.
"
+ "documentation":"A list of summaries, one for each Provisioned Throughput in the response.
"
}
}
},
@@ -1436,7 +3174,7 @@
"members":{
"resourceARN":{
"shape":"TaggableResourcesArn",
- "documentation":"The ARN of the resource.
"
+ "documentation":"The Amazon Resource Name (ARN) of the resource.
"
}
}
},
@@ -1478,7 +3216,7 @@
"documentation":"Set to include embeddings data in the log delivery.
"
}
},
- "documentation":"Configuration fields for invokation logging.
"
+ "documentation":"Configuration fields for invocation logging.
"
},
"MaxResults":{
"type":"integer",
@@ -1546,11 +3284,11 @@
"members":{
"jobArn":{
"shape":"ModelCustomizationJobArn",
- "documentation":"ARN of the customization job.
"
+ "documentation":"Amazon Resource Name (ARN) of the customization job.
"
},
"baseModelArn":{
"shape":"ModelArn",
- "documentation":"ARN of the base model.
"
+ "documentation":"Amazon Resource Name (ARN) of the base model.
"
},
"jobName":{
"shape":"JobName",
@@ -1574,7 +3312,7 @@
},
"customModelArn":{
"shape":"CustomModelArn",
- "documentation":"ARN of the custom model.
"
+ "documentation":"Amazon Resource Name (ARN) of the custom model.
"
},
"customModelName":{
"shape":"CustomModelName",
@@ -1689,54 +3427,54 @@
"members":{
"provisionedModelName":{
"shape":"ProvisionedModelName",
- "documentation":"The name of the provisioned throughput.
"
+ "documentation":"The name of the Provisioned Throughput.
"
},
"provisionedModelArn":{
"shape":"ProvisionedModelArn",
- "documentation":"The ARN of the provisioned throughput.
"
+ "documentation":"The Amazon Resource Name (ARN) of the Provisioned Throughput.
"
},
"modelArn":{
"shape":"ModelArn",
- "documentation":"The ARN of the model associated with this provisioned throughput.
"
+ "documentation":"The Amazon Resource Name (ARN) of the model associated with the Provisioned Throughput.
"
},
"desiredModelArn":{
"shape":"ModelArn",
- "documentation":"Desired model ARN.
"
+ "documentation":"The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the modelArn
if updating hasn't completed.
"
},
"foundationModelArn":{
"shape":"FoundationModelArn",
- "documentation":"Foundation model ARN.
"
+ "documentation":"The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized.
"
},
"modelUnits":{
"shape":"PositiveInteger",
- "documentation":"The number of model units allocated.
"
+ "documentation":"The number of model units allocated to the Provisioned Throughput.
"
},
"desiredModelUnits":{
"shape":"PositiveInteger",
- "documentation":"Desired model units.
"
+ "documentation":"The number of model units that was requested to be allocated to the Provisioned Throughput.
"
},
"status":{
"shape":"ProvisionedModelStatus",
- "documentation":"Status of the provisioned throughput.
"
+ "documentation":"The status of the Provisioned Throughput.
"
},
"commitmentDuration":{
"shape":"CommitmentDuration",
- "documentation":"Commitment duration for the provisioned throughput.
"
+ "documentation":"The duration for which the Provisioned Throughput was committed.
"
},
"commitmentExpirationTime":{
"shape":"Timestamp",
- "documentation":"Commitment expiration time for the provisioned throughput.
"
+ "documentation":"The timestamp for when the commitment term of the Provisioned Throughput expires.
"
},
"creationTime":{
"shape":"Timestamp",
- "documentation":"The time that this provisioned throughput was created.
"
+ "documentation":"The time that the Provisioned Throughput was created.
"
},
"lastModifiedTime":{
"shape":"Timestamp",
- "documentation":"The time that this provisioned throughput was last modified.
"
+ "documentation":"The time that the Provisioned Throughput was last modified.
"
}
},
- "documentation":"Set of fields associated with a provisioned throughput.
"
+ "documentation":"A summary of information about a Provisioned Throughput.
This data type is used in the following API operations:
"
},
"PutModelInvocationLoggingConfigurationRequest":{
"type":"structure",
@@ -1758,7 +3496,7 @@
"members":{
"message":{"shape":"NonBlankString"}
},
- "documentation":"The specified resource ARN was not found. Check the ARN and try your request again.
",
+ "documentation":"The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.
",
"error":{
"httpStatusCode":404,
"senderFault":true
@@ -1792,6 +3530,12 @@
"min":1,
"pattern":"s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?"
},
+ "SageMakerFlowDefinitionArn":{
+ "type":"string",
+ "max":1024,
+ "min":0,
+ "pattern":"arn:aws(-[^:]+)?:sagemaker:[a-z0-9-]{1,20}:[0-9]{12}:flow-definition/.*"
+ },
"SecurityGroupId":{
"type":"string",
"max":32,
@@ -1835,6 +3579,23 @@
"Descending"
]
},
+ "StopEvaluationJobRequest":{
+ "type":"structure",
+ "required":["jobIdentifier"],
+ "members":{
+ "jobIdentifier":{
+ "shape":"EvaluationJobIdentifier",
+ "documentation":"The ARN of the model evaluation job you want to stop.
",
+ "location":"uri",
+ "locationName":"jobIdentifier"
+ }
+ }
+ },
+ "StopEvaluationJobResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
"StopModelCustomizationJobRequest":{
"type":"structure",
"required":["jobIdentifier"],
@@ -1910,7 +3671,7 @@
"members":{
"resourceARN":{
"shape":"TaggableResourcesArn",
- "documentation":"The ARN of the resource to tag.
"
+ "documentation":"The Amazon Resource Name (ARN) of the resource to tag.
"
},
"tags":{
"shape":"TagList",
@@ -1933,7 +3694,7 @@
"type":"string",
"max":1011,
"min":20,
- "pattern":".*(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$))).*"
+ "pattern":".*(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)|(:guardrail/[a-z0-9]+$)|(:evaluation-job/[a-z0-9]{12}$))).*"
},
"ThrottlingException":{
"type":"structure",
@@ -1997,7 +3758,7 @@
"members":{
"resourceARN":{
"shape":"TaggableResourcesArn",
- "documentation":"The ARN of the resource to untag.
"
+ "documentation":"The Amazon Resource Name (ARN) of the resource to untag.
"
},
"tagKeys":{
"shape":"TagKeyList",
@@ -2010,23 +3771,103 @@
"members":{
}
},
+ "UpdateGuardrailRequest":{
+ "type":"structure",
+ "required":[
+ "guardrailIdentifier",
+ "name",
+ "blockedInputMessaging",
+ "blockedOutputsMessaging"
+ ],
+ "members":{
+ "guardrailIdentifier":{
+ "shape":"GuardrailIdentifier",
+ "documentation":"The unique identifier of the guardrail
",
+ "location":"uri",
+ "locationName":"guardrailIdentifier"
+ },
+ "name":{
+ "shape":"GuardrailName",
+ "documentation":"A name for the guardrail.
"
+ },
+ "description":{
+ "shape":"GuardrailDescription",
+ "documentation":"A description of the guardrail.
"
+ },
+ "topicPolicyConfig":{
+ "shape":"GuardrailTopicPolicyConfig",
+ "documentation":"The topic policy to configure for the guardrail.
"
+ },
+ "contentPolicyConfig":{
+ "shape":"GuardrailContentPolicyConfig",
+ "documentation":"The content policy to configure for the guardrail.
"
+ },
+ "wordPolicyConfig":{
+ "shape":"GuardrailWordPolicyConfig",
+ "documentation":"The word policy to configure for the guardrail.
"
+ },
+ "sensitiveInformationPolicyConfig":{
+ "shape":"GuardrailSensitiveInformationPolicyConfig",
+ "documentation":"The sensitive information policy to configure for the guardrail.
"
+ },
+ "blockedInputMessaging":{
+ "shape":"GuardrailBlockedMessaging",
+ "documentation":"The message to return when the guardrail blocks a prompt.
"
+ },
+ "blockedOutputsMessaging":{
+ "shape":"GuardrailBlockedMessaging",
+ "documentation":"The message to return when the guardrail blocks a model response.
"
+ },
+ "kmsKeyId":{
+ "shape":"KmsKeyId",
+ "documentation":"The ARN of the KMS key with which to encrypt the guardrail.
"
+ }
+ }
+ },
+ "UpdateGuardrailResponse":{
+ "type":"structure",
+ "required":[
+ "guardrailId",
+ "guardrailArn",
+ "version",
+ "updatedAt"
+ ],
+ "members":{
+ "guardrailId":{
+ "shape":"GuardrailId",
+ "documentation":"The unique identifier of the guardrail
"
+ },
+ "guardrailArn":{
+ "shape":"GuardrailArn",
+ "documentation":"The ARN of the guardrail that was created.
"
+ },
+ "version":{
+ "shape":"GuardrailDraftVersion",
+ "documentation":"The version of the guardrail.
"
+ },
+ "updatedAt":{
+ "shape":"Timestamp",
+ "documentation":"The date and time at which the guardrail was updated.
"
+ }
+ }
+ },
"UpdateProvisionedModelThroughputRequest":{
"type":"structure",
"required":["provisionedModelId"],
"members":{
"provisionedModelId":{
"shape":"ProvisionedModelId",
- "documentation":"The ARN or name of the provisioned throughput to update.
",
+ "documentation":"The Amazon Resource Name (ARN) or name of the Provisioned Throughput to update.
",
"location":"uri",
"locationName":"provisionedModelId"
},
"desiredProvisionedModelName":{
"shape":"ProvisionedModelName",
- "documentation":"The new name for this provisioned throughput.
"
+ "documentation":"The new name for this Provisioned Throughput.
"
},
"desiredModelId":{
"shape":"ModelIdentifier",
- "documentation":"The ARN of the new model to associate with this provisioned throughput.
"
+ "documentation":"The Amazon Resource Name (ARN) of the new model to associate with this Provisioned Throughput. You can't specify this field if this Provisioned Throughput is associated with a base model.
If this Provisioned Throughput is associated with a custom model, you can specify one of the following options:
"
}
}
},
@@ -2108,5 +3949,5 @@
"documentation":"VPC configuration.
"
}
},
- "documentation":"Describes the API operations for creating and managing Amazon Bedrock models.
"
+ "documentation":"Describes the API operations for creating, managing, fine-turning, and evaluating Amazon Bedrock models.
"
}
diff --git a/services/bedrockagent/pom.xml b/services/bedrockagent/pom.xml
index 7bc58f0f1189..09ff557bec0e 100644
--- a/services/bedrockagent/pom.xml
+++ b/services/bedrockagent/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
bedrockagent
AWS Java SDK :: Services :: Bedrock Agent
diff --git a/services/bedrockagent/src/main/resources/codegen-resources/service-2.json b/services/bedrockagent/src/main/resources/codegen-resources/service-2.json
index 3f1edd88b2cd..767d0eb30789 100644
--- a/services/bedrockagent/src/main/resources/codegen-resources/service-2.json
+++ b/services/bedrockagent/src/main/resources/codegen-resources/service-2.json
@@ -1527,6 +1527,12 @@
"type":"boolean",
"box":true
},
+ "BucketOwnerAccountId":{
+ "type":"string",
+ "max":12,
+ "min":12,
+ "pattern":"^[0-9]{12}$"
+ },
"ChunkingConfiguration":{
"type":"structure",
"required":["chunkingStrategy"],
@@ -1754,6 +1760,10 @@
"documentation":"A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.
",
"idempotencyToken":true
},
+ "dataDeletionPolicy":{
+ "shape":"DataDeletionPolicy",
+ "documentation":"The deletion policy for the requested data source
"
+ },
"dataSourceConfiguration":{
"shape":"DataSourceConfiguration",
"documentation":"Contains metadata about where the data source is stored.
"
@@ -1853,6 +1863,13 @@
"type":"string",
"enum":["RETURN_CONTROL"]
},
+ "DataDeletionPolicy":{
+ "type":"string",
+ "enum":[
+ "RETAIN",
+ "DELETE"
+ ]
+ },
"DataSource":{
"type":"structure",
"required":[
@@ -1869,6 +1886,10 @@
"shape":"DateTimestamp",
"documentation":"The time at which the data source was created.
"
},
+ "dataDeletionPolicy":{
+ "shape":"DataDeletionPolicy",
+ "documentation":"The deletion policy for the data source.
"
+ },
"dataSourceConfiguration":{
"shape":"DataSourceConfiguration",
"documentation":"Contains details about how the data source is stored.
"
@@ -1881,6 +1902,10 @@
"shape":"Description",
"documentation":"The description of the data source.
"
},
+ "failureReasons":{
+ "shape":"FailureReasons",
+ "documentation":"The details of the failure reasons related to the data source.
"
+ },
"knowledgeBaseId":{
"shape":"Id",
"documentation":"The unique identifier of the knowledge base to which the data source belongs.
"
@@ -1927,7 +1952,8 @@
"type":"string",
"enum":[
"AVAILABLE",
- "DELETING"
+ "DELETING",
+ "DELETE_UNSUCCESSFUL"
]
},
"DataSourceSummaries":{
@@ -2968,7 +2994,8 @@
"ACTIVE",
"DELETING",
"UPDATING",
- "FAILED"
+ "FAILED",
+ "DELETE_UNSUCCESSFUL"
]
},
"KnowledgeBaseStorageType":{
@@ -3815,6 +3842,10 @@
"shape":"S3BucketArn",
"documentation":"The Amazon Resource Name (ARN) of the bucket that contains the data source.
"
},
+ "bucketOwnerAccountId":{
+ "shape":"BucketOwnerAccountId",
+ "documentation":"The account ID for the owner of the S3 bucket.
"
+ },
"inclusionPrefixes":{
"shape":"S3Prefixes",
"documentation":"A list of S3 prefixes that define the object containing the data sources. For more information, see Organizing objects using prefixes.
"
@@ -4310,6 +4341,10 @@
"name"
],
"members":{
+ "dataDeletionPolicy":{
+ "shape":"DataDeletionPolicy",
+ "documentation":"The data deletion policy of the updated data source.
"
+ },
"dataSourceConfiguration":{
"shape":"DataSourceConfiguration",
"documentation":"Contains details about the storage configuration of the data source.
"
diff --git a/services/bedrockagentruntime/pom.xml b/services/bedrockagentruntime/pom.xml
index aae5b117bac2..ddbd84ac09c5 100644
--- a/services/bedrockagentruntime/pom.xml
+++ b/services/bedrockagentruntime/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
bedrockagentruntime
AWS Java SDK :: Services :: Bedrock Agent Runtime
diff --git a/services/bedrockagentruntime/src/main/resources/codegen-resources/service-2.json b/services/bedrockagentruntime/src/main/resources/codegen-resources/service-2.json
index 88806cdc81a8..41e066a5674c 100644
--- a/services/bedrockagentruntime/src/main/resources/codegen-resources/service-2.json
+++ b/services/bedrockagentruntime/src/main/resources/codegen-resources/service-2.json
@@ -291,6 +291,35 @@
"type":"boolean",
"box":true
},
+ "ByteContentBlob":{
+ "type":"blob",
+ "max":10485760,
+ "min":1,
+ "sensitive":true
+ },
+ "ByteContentDoc":{
+ "type":"structure",
+ "required":[
+ "contentType",
+ "data",
+ "identifier"
+ ],
+ "members":{
+ "contentType":{
+ "shape":"ContentType",
+ "documentation":"The MIME type of the document contained in the wrapper object.
"
+ },
+ "data":{
+ "shape":"ByteContentBlob",
+ "documentation":"The byte value of the file to upload, encoded as a Base-64 string.
"
+ },
+ "identifier":{
+ "shape":"Identifier",
+ "documentation":"The file name of the document contained in the wrapper object.
"
+ }
+ },
+ "documentation":"This property contains the document to chat with, along with its attributes.
"
+ },
"Citation":{
"type":"structure",
"members":{
@@ -336,6 +365,10 @@
"key":{"shape":"String"},
"value":{"shape":"Parameters"}
},
+ "ContentType":{
+ "type":"string",
+ "pattern":"[a-z]{1,20}/.{1,20}"
+ },
"CreationMode":{
"type":"string",
"enum":[
@@ -363,6 +396,70 @@
"type":"double",
"box":true
},
+ "ExternalSource":{
+ "type":"structure",
+ "required":["sourceType"],
+ "members":{
+ "byteContent":{
+ "shape":"ByteContentDoc",
+ "documentation":"The identifier, contentType, and data of the external source wrapper object.
"
+ },
+ "s3Location":{
+ "shape":"S3ObjectDoc",
+ "documentation":"The S3 location of the external source wrapper object.
"
+ },
+ "sourceType":{
+ "shape":"ExternalSourceType",
+ "documentation":"The source type of the external source wrapper object.
"
+ }
+ },
+ "documentation":"The unique external source of the content contained in the wrapper object.
"
+ },
+ "ExternalSourceType":{
+ "type":"string",
+ "enum":[
+ "S3",
+ "BYTE_CONTENT"
+ ]
+ },
+ "ExternalSources":{
+ "type":"list",
+ "member":{"shape":"ExternalSource"},
+ "max":1,
+ "min":1
+ },
+ "ExternalSourcesGenerationConfiguration":{
+ "type":"structure",
+ "members":{
+ "promptTemplate":{
+ "shape":"PromptTemplate",
+ "documentation":"Contain the textPromptTemplate string for the external source wrapper object.
"
+ }
+ },
+ "documentation":"Contains the generation configuration of the external source wrapper object.
"
+ },
+ "ExternalSourcesRetrieveAndGenerateConfiguration":{
+ "type":"structure",
+ "required":[
+ "modelArn",
+ "sources"
+ ],
+ "members":{
+ "generationConfiguration":{
+ "shape":"ExternalSourcesGenerationConfiguration",
+ "documentation":"The prompt used with the external source wrapper object with the retrieveAndGenerate function.
"
+ },
+ "modelArn":{
+ "shape":"BedrockModelArn",
+ "documentation":"The modelArn used with the external source wrapper object in the retrieveAndGenerate function.
"
+ },
+ "sources":{
+ "shape":"ExternalSources",
+ "documentation":"The document used with the external source wrapper object in the retrieveAndGenerate function.
"
+ }
+ },
+ "documentation":"The configurations of the external source wrapper object in the retrieveAndGenerate function.
"
+ },
"FailureReasonString":{
"type":"string",
"sensitive":true
@@ -513,6 +610,12 @@
},
"documentation":"Contains configurations for response generation based on the knowledge base query results.
This data type is used in the following API operations:
"
},
+ "Identifier":{
+ "type":"string",
+ "max":1024,
+ "min":1,
+ "sensitive":true
+ },
"InferenceConfiguration":{
"type":"structure",
"members":{
@@ -1375,6 +1478,10 @@
"type":"structure",
"required":["type"],
"members":{
+ "externalSourcesConfiguration":{
+ "shape":"ExternalSourcesRetrieveAndGenerateConfiguration",
+ "documentation":"The configuration used with the external source wrapper object in the retrieveAndGenerate function.
"
+ },
"knowledgeBaseConfiguration":{
"shape":"KnowledgeBaseRetrieveAndGenerateConfiguration",
"documentation":"Contains details about the resource being queried.
"
@@ -1471,7 +1578,10 @@
},
"RetrieveAndGenerateType":{
"type":"string",
- "enum":["KNOWLEDGE_BASE"]
+ "enum":[
+ "KNOWLEDGE_BASE",
+ "EXTERNAL_SOURCES"
+ ]
},
"RetrieveRequest":{
"type":"structure",
@@ -1558,6 +1668,23 @@
"event":true,
"sensitive":true
},
+ "S3ObjectDoc":{
+ "type":"structure",
+ "required":["uri"],
+ "members":{
+ "uri":{
+ "shape":"S3Uri",
+ "documentation":"The file location of the S3 wrapper object.
"
+ }
+ },
+ "documentation":"The unique wrapper object of the document from the S3 location.
"
+ },
+ "S3Uri":{
+ "type":"string",
+ "max":1024,
+ "min":1,
+ "pattern":"^s3://[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]/.{1,1024}$"
+ },
"SearchType":{
"type":"string",
"enum":[
diff --git a/services/bedrockruntime/pom.xml b/services/bedrockruntime/pom.xml
index a093cbed4dfe..6d74f3738bfd 100644
--- a/services/bedrockruntime/pom.xml
+++ b/services/bedrockruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
bedrockruntime
AWS Java SDK :: Services :: Bedrock Runtime
diff --git a/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json b/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json
index e782a198751c..5d545913e0e2 100644
--- a/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json
+++ b/services/bedrockruntime/src/main/resources/codegen-resources/service-2.json
@@ -32,7 +32,7 @@
{"shape":"ServiceQuotaExceededException"},
{"shape":"ModelErrorException"}
],
- "documentation":"Invokes the specified Bedrock model to run inference using the input provided in the request body. You use InvokeModel to run inference for text models, image models, and embedding models.
For more information, see Run inference in the Bedrock User Guide.
For example requests, see Examples (after the Errors section).
"
+ "documentation":"Invokes the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. You use model inference to generate text, images, and embeddings.
For example code, see Invoke model code examples in the Amazon Bedrock User Guide.
This operation requires permission for the bedrock:InvokeModel
action.
"
},
"InvokeModelWithResponseStream":{
"name":"InvokeModelWithResponseStream",
@@ -55,7 +55,7 @@
{"shape":"ServiceQuotaExceededException"},
{"shape":"ModelErrorException"}
],
- "documentation":"Invoke the specified Bedrock model to run inference using the input provided. Return the response in a stream.
For more information, see Run inference in the Bedrock User Guide.
For an example request and response, see Examples (after the Errors section).
"
+ "documentation":"Invoke the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. The response is returned in a stream.
To see if a model supports streaming, call GetFoundationModel and check the responseStreamingSupported
field in the response.
The CLI doesn't support InvokeModelWithResponseStream
.
For example code, see Invoke model with streaming code example in the Amazon Bedrock User Guide.
This operation requires permissions to perform the bedrock:InvokeModelWithResponseStream
action.
"
}
},
"shapes":{
@@ -77,6 +77,16 @@
"min":0,
"sensitive":true
},
+ "GuardrailIdentifier":{
+ "type":"string",
+ "max":2048,
+ "min":0,
+ "pattern":"(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))"
+ },
+ "GuardrailVersion":{
+ "type":"string",
+ "pattern":"(([1-9][0-9]{0,7})|(DRAFT))"
+ },
"InternalServerException":{
"type":"structure",
"members":{
@@ -102,7 +112,7 @@
"members":{
"body":{
"shape":"Body",
- "documentation":"Input data in the format specified in the content-type request header. To see the format and content of this field for different models, refer to Inference parameters.
"
+ "documentation":"The prompt and inference parameters in the format specified in the contentType
in the header. To see the format and content of the request and response bodies for different models, refer to Inference parameters. For more information, see Run inference in the Bedrock User Guide.
"
},
"contentType":{
"shape":"MimeType",
@@ -118,9 +128,27 @@
},
"modelId":{
"shape":"InvokeModelIdentifier",
- "documentation":"Identifier of the model.
",
+ "documentation":"The unique identifier of the model to invoke to run inference.
The modelId
to provide depends on the type of model that you use:
",
"location":"uri",
"locationName":"modelId"
+ },
+ "trace":{
+ "shape":"Trace",
+ "documentation":"Specifies whether to enable or disable the Bedrock trace. If enabled, you can see the full Bedrock trace.
",
+ "location":"header",
+ "locationName":"X-Amzn-Bedrock-Trace"
+ },
+ "guardrailIdentifier":{
+ "shape":"GuardrailIdentifier",
+ "documentation":"The unique identifier of the guardrail that you want to use. If you don't provide a value, no guardrail is applied to the invocation.
An error will be thrown in the following situations.
-
You don't provide a guardrail identifier but you specify the amazon-bedrock-guardrailConfig
field in the request body.
-
You enable the guardrail but the contentType
isn't application/json
.
-
You provide a guardrail identifier, but guardrailVersion
isn't specified.
",
+ "location":"header",
+ "locationName":"X-Amzn-Bedrock-GuardrailIdentifier"
+ },
+ "guardrailVersion":{
+ "shape":"GuardrailVersion",
+ "documentation":"The version number for the guardrail. The value can also be DRAFT
.
",
+ "location":"header",
+ "locationName":"X-Amzn-Bedrock-GuardrailVersion"
}
},
"payload":"body"
@@ -134,7 +162,7 @@
"members":{
"body":{
"shape":"Body",
- "documentation":"Inference response from the model in the format specified in the content-type header field. To see the format and content of this field for different models, refer to Inference parameters.
"
+ "documentation":"Inference response from the model in the format specified in the contentType
header. To see the format and content of the request and response bodies for different models, refer to Inference parameters.
"
},
"contentType":{
"shape":"MimeType",
@@ -154,7 +182,7 @@
"members":{
"body":{
"shape":"Body",
- "documentation":"Inference input in the format specified by the content-type. To see the format and content of this field for different models, refer to Inference parameters.
"
+ "documentation":"The prompt and inference parameters in the format specified in the contentType
in the header. To see the format and content of the request and response bodies for different models, refer to Inference parameters. For more information, see Run inference in the Bedrock User Guide.
"
},
"contentType":{
"shape":"MimeType",
@@ -170,9 +198,27 @@
},
"modelId":{
"shape":"InvokeModelIdentifier",
- "documentation":"Id of the model to invoke using the streaming request.
",
+ "documentation":"The unique identifier of the model to invoke to run inference.
The modelId
to provide depends on the type of model that you use:
",
"location":"uri",
"locationName":"modelId"
+ },
+ "trace":{
+ "shape":"Trace",
+ "documentation":"Specifies whether to enable or disable the Bedrock trace. If enabled, you can see the full Bedrock trace.
",
+ "location":"header",
+ "locationName":"X-Amzn-Bedrock-Trace"
+ },
+ "guardrailIdentifier":{
+ "shape":"GuardrailIdentifier",
+ "documentation":"The unique identifier of the guardrail that you want to use. If you don't provide a value, no guardrail is applied to the invocation.
An error is thrown in the following situations.
-
You don't provide a guardrail identifier but you specify the amazon-bedrock-guardrailConfig
field in the request body.
-
You enable the guardrail but the contentType
isn't application/json
.
-
You provide a guardrail identifier, but guardrailVersion
isn't specified.
",
+ "location":"header",
+ "locationName":"X-Amzn-Bedrock-GuardrailIdentifier"
+ },
+ "guardrailVersion":{
+ "shape":"GuardrailVersion",
+ "documentation":"The version number for the guardrail. The value can also be DRAFT
.
",
+ "location":"header",
+ "locationName":"X-Amzn-Bedrock-GuardrailVersion"
}
},
"payload":"body"
@@ -186,7 +232,7 @@
"members":{
"body":{
"shape":"ResponseStream",
- "documentation":"Inference response from the model in the format specified by Content-Type. To see the format and content of this field for different models, refer to Inference parameters.
"
+ "documentation":"Inference response from the model in the format specified by the contentType
header. To see the format and content of this field for different models, refer to Inference parameters.
"
},
"contentType":{
"shape":"MimeType",
@@ -243,7 +289,7 @@
"documentation":"The original message.
"
}
},
- "documentation":"An error occurred while streaming the response.
",
+ "documentation":"An error occurred while streaming the response. Retry your request.
",
"error":{
"httpStatusCode":424,
"senderFault":true
@@ -303,11 +349,26 @@
"shape":"PayloadPart",
"documentation":"Content included in the response.
"
},
- "internalServerException":{"shape":"InternalServerException"},
- "modelStreamErrorException":{"shape":"ModelStreamErrorException"},
- "validationException":{"shape":"ValidationException"},
- "throttlingException":{"shape":"ThrottlingException"},
- "modelTimeoutException":{"shape":"ModelTimeoutException"}
+ "internalServerException":{
+ "shape":"InternalServerException",
+ "documentation":"An internal server error occurred. Retry your request.
"
+ },
+ "modelStreamErrorException":{
+ "shape":"ModelStreamErrorException",
+ "documentation":"An error occurred while streaming the response. Retry your request.
"
+ },
+ "validationException":{
+ "shape":"ValidationException",
+ "documentation":"Input validation failed. Check your request parameters and retry the request.
"
+ },
+ "throttlingException":{
+ "shape":"ThrottlingException",
+ "documentation":"The number or frequency of requests exceeds the limit. Resubmit your request later.
"
+ },
+ "modelTimeoutException":{
+ "shape":"ModelTimeoutException",
+ "documentation":"The request took too long to process. Processing time exceeded the model timeout length.
"
+ }
},
"documentation":"Definition of content in the response stream.
",
"eventstream":true
@@ -342,6 +403,13 @@
},
"exception":true
},
+ "Trace":{
+ "type":"string",
+ "enum":[
+ "ENABLED",
+ "DISABLED"
+ ]
+ },
"ValidationException":{
"type":"structure",
"members":{
@@ -355,5 +423,5 @@
"exception":true
}
},
- "documentation":"Describes the API operations for running inference using Bedrock models.
"
+ "documentation":"Describes the API operations for running inference using Amazon Bedrock models.
"
}
diff --git a/services/billingconductor/pom.xml b/services/billingconductor/pom.xml
index e754d843a414..1f756d0dc447 100644
--- a/services/billingconductor/pom.xml
+++ b/services/billingconductor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
billingconductor
AWS Java SDK :: Services :: Billingconductor
diff --git a/services/braket/pom.xml b/services/braket/pom.xml
index 88550c06ac1e..2ddd963e8223 100644
--- a/services/braket/pom.xml
+++ b/services/braket/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
braket
AWS Java SDK :: Services :: Braket
diff --git a/services/budgets/pom.xml b/services/budgets/pom.xml
index 32d1cd9d61ca..86519911b1b0 100644
--- a/services/budgets/pom.xml
+++ b/services/budgets/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
budgets
AWS Java SDK :: Services :: AWS Budgets
diff --git a/services/chatbot/pom.xml b/services/chatbot/pom.xml
index a8566ec9cccc..4d4b52274592 100644
--- a/services/chatbot/pom.xml
+++ b/services/chatbot/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
chatbot
AWS Java SDK :: Services :: Chatbot
diff --git a/services/chime/pom.xml b/services/chime/pom.xml
index b7137f896e94..2ff51f4a560e 100644
--- a/services/chime/pom.xml
+++ b/services/chime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
chime
AWS Java SDK :: Services :: Chime
diff --git a/services/chimesdkidentity/pom.xml b/services/chimesdkidentity/pom.xml
index 859aba3f2317..aee3999d4ee1 100644
--- a/services/chimesdkidentity/pom.xml
+++ b/services/chimesdkidentity/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
chimesdkidentity
AWS Java SDK :: Services :: Chime SDK Identity
diff --git a/services/chimesdkmediapipelines/pom.xml b/services/chimesdkmediapipelines/pom.xml
index e44972afa3dc..287344e8f10d 100644
--- a/services/chimesdkmediapipelines/pom.xml
+++ b/services/chimesdkmediapipelines/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
chimesdkmediapipelines
AWS Java SDK :: Services :: Chime SDK Media Pipelines
diff --git a/services/chimesdkmeetings/pom.xml b/services/chimesdkmeetings/pom.xml
index e71563e55232..18f77f3e7bcc 100644
--- a/services/chimesdkmeetings/pom.xml
+++ b/services/chimesdkmeetings/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
chimesdkmeetings
AWS Java SDK :: Services :: Chime SDK Meetings
diff --git a/services/chimesdkmessaging/pom.xml b/services/chimesdkmessaging/pom.xml
index 69fefff69848..94773e6ae980 100644
--- a/services/chimesdkmessaging/pom.xml
+++ b/services/chimesdkmessaging/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
chimesdkmessaging
AWS Java SDK :: Services :: Chime SDK Messaging
diff --git a/services/chimesdkvoice/pom.xml b/services/chimesdkvoice/pom.xml
index e8cbf85434c3..31f889916bd8 100644
--- a/services/chimesdkvoice/pom.xml
+++ b/services/chimesdkvoice/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
chimesdkvoice
AWS Java SDK :: Services :: Chime SDK Voice
diff --git a/services/cleanrooms/pom.xml b/services/cleanrooms/pom.xml
index a4537cc44b92..55931e72d393 100644
--- a/services/cleanrooms/pom.xml
+++ b/services/cleanrooms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cleanrooms
AWS Java SDK :: Services :: Clean Rooms
diff --git a/services/cleanroomsml/pom.xml b/services/cleanroomsml/pom.xml
index c6c97a66a99f..844f0da0eb85 100644
--- a/services/cleanroomsml/pom.xml
+++ b/services/cleanroomsml/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cleanroomsml
AWS Java SDK :: Services :: Clean Rooms ML
diff --git a/services/cloud9/pom.xml b/services/cloud9/pom.xml
index 5f04a6833ae2..e2a66b489d50 100644
--- a/services/cloud9/pom.xml
+++ b/services/cloud9/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
cloud9
diff --git a/services/cloudcontrol/pom.xml b/services/cloudcontrol/pom.xml
index ea2a22c3742c..924e3938703e 100644
--- a/services/cloudcontrol/pom.xml
+++ b/services/cloudcontrol/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudcontrol
AWS Java SDK :: Services :: Cloud Control
diff --git a/services/clouddirectory/pom.xml b/services/clouddirectory/pom.xml
index 5e8dcde4d31c..638ed3831419 100644
--- a/services/clouddirectory/pom.xml
+++ b/services/clouddirectory/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
clouddirectory
AWS Java SDK :: Services :: Amazon CloudDirectory
diff --git a/services/cloudformation/pom.xml b/services/cloudformation/pom.xml
index bbd14119563a..c5c9f55ba5c6 100644
--- a/services/cloudformation/pom.xml
+++ b/services/cloudformation/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudformation
AWS Java SDK :: Services :: AWS CloudFormation
diff --git a/services/cloudfront/pom.xml b/services/cloudfront/pom.xml
index 13ad46ed4a1c..4f3b9612ceea 100644
--- a/services/cloudfront/pom.xml
+++ b/services/cloudfront/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudfront
AWS Java SDK :: Services :: Amazon CloudFront
diff --git a/services/cloudfrontkeyvaluestore/pom.xml b/services/cloudfrontkeyvaluestore/pom.xml
index 1dd53e35dc89..1f7ec39a22fb 100644
--- a/services/cloudfrontkeyvaluestore/pom.xml
+++ b/services/cloudfrontkeyvaluestore/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudfrontkeyvaluestore
AWS Java SDK :: Services :: Cloud Front Key Value Store
diff --git a/services/cloudhsm/pom.xml b/services/cloudhsm/pom.xml
index 603bcf40ea38..72b5bdfd2d8f 100644
--- a/services/cloudhsm/pom.xml
+++ b/services/cloudhsm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudhsm
AWS Java SDK :: Services :: AWS CloudHSM
diff --git a/services/cloudhsmv2/pom.xml b/services/cloudhsmv2/pom.xml
index 680c861a8037..c012570a8a71 100644
--- a/services/cloudhsmv2/pom.xml
+++ b/services/cloudhsmv2/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
cloudhsmv2
diff --git a/services/cloudsearch/pom.xml b/services/cloudsearch/pom.xml
index ce30c4b8423b..584255c86798 100644
--- a/services/cloudsearch/pom.xml
+++ b/services/cloudsearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudsearch
AWS Java SDK :: Services :: Amazon CloudSearch
diff --git a/services/cloudsearchdomain/pom.xml b/services/cloudsearchdomain/pom.xml
index 29af0bdf242f..20ca35953f2f 100644
--- a/services/cloudsearchdomain/pom.xml
+++ b/services/cloudsearchdomain/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudsearchdomain
AWS Java SDK :: Services :: Amazon CloudSearch Domain
diff --git a/services/cloudtrail/pom.xml b/services/cloudtrail/pom.xml
index f5b2cb1dadec..8294f7fc50b1 100644
--- a/services/cloudtrail/pom.xml
+++ b/services/cloudtrail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudtrail
AWS Java SDK :: Services :: AWS CloudTrail
diff --git a/services/cloudtraildata/pom.xml b/services/cloudtraildata/pom.xml
index 7d8bad4d8269..7f53c109ebba 100644
--- a/services/cloudtraildata/pom.xml
+++ b/services/cloudtraildata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudtraildata
AWS Java SDK :: Services :: Cloud Trail Data
diff --git a/services/cloudwatch/pom.xml b/services/cloudwatch/pom.xml
index fe70b8e050a9..96815303c79f 100644
--- a/services/cloudwatch/pom.xml
+++ b/services/cloudwatch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudwatch
AWS Java SDK :: Services :: Amazon CloudWatch
diff --git a/services/cloudwatchevents/pom.xml b/services/cloudwatchevents/pom.xml
index 73ce73c04605..5ad4337c6189 100644
--- a/services/cloudwatchevents/pom.xml
+++ b/services/cloudwatchevents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudwatchevents
AWS Java SDK :: Services :: Amazon CloudWatch Events
diff --git a/services/cloudwatchlogs/pom.xml b/services/cloudwatchlogs/pom.xml
index 4444eac59ff8..a37d1f6517b1 100644
--- a/services/cloudwatchlogs/pom.xml
+++ b/services/cloudwatchlogs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cloudwatchlogs
AWS Java SDK :: Services :: Amazon CloudWatch Logs
diff --git a/services/codeartifact/pom.xml b/services/codeartifact/pom.xml
index 5b21be790be6..373e45045c77 100644
--- a/services/codeartifact/pom.xml
+++ b/services/codeartifact/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codeartifact
AWS Java SDK :: Services :: Codeartifact
diff --git a/services/codebuild/pom.xml b/services/codebuild/pom.xml
index 6dfe30ea483d..cc6958c30d5f 100644
--- a/services/codebuild/pom.xml
+++ b/services/codebuild/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codebuild
AWS Java SDK :: Services :: AWS Code Build
diff --git a/services/codecatalyst/pom.xml b/services/codecatalyst/pom.xml
index 0c46f0113b29..3db33888f0f7 100644
--- a/services/codecatalyst/pom.xml
+++ b/services/codecatalyst/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codecatalyst
AWS Java SDK :: Services :: Code Catalyst
diff --git a/services/codecommit/pom.xml b/services/codecommit/pom.xml
index a8cddfe567e6..e20ca70d5750 100644
--- a/services/codecommit/pom.xml
+++ b/services/codecommit/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codecommit
AWS Java SDK :: Services :: AWS CodeCommit
diff --git a/services/codeconnections/pom.xml b/services/codeconnections/pom.xml
index 1941ee7e74d1..5c86f9951b91 100644
--- a/services/codeconnections/pom.xml
+++ b/services/codeconnections/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codeconnections
AWS Java SDK :: Services :: Code Connections
diff --git a/services/codedeploy/pom.xml b/services/codedeploy/pom.xml
index 876bcdce47ca..fca099918fad 100644
--- a/services/codedeploy/pom.xml
+++ b/services/codedeploy/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codedeploy
AWS Java SDK :: Services :: AWS CodeDeploy
diff --git a/services/codeguruprofiler/pom.xml b/services/codeguruprofiler/pom.xml
index f36aca38d48a..61a2bbd2241a 100644
--- a/services/codeguruprofiler/pom.xml
+++ b/services/codeguruprofiler/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codeguruprofiler
AWS Java SDK :: Services :: CodeGuruProfiler
diff --git a/services/codegurureviewer/pom.xml b/services/codegurureviewer/pom.xml
index 5cf226e38ff8..a54aad7cc045 100644
--- a/services/codegurureviewer/pom.xml
+++ b/services/codegurureviewer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codegurureviewer
AWS Java SDK :: Services :: CodeGuru Reviewer
diff --git a/services/codegurusecurity/pom.xml b/services/codegurusecurity/pom.xml
index 79c297d53ba6..58e998223643 100644
--- a/services/codegurusecurity/pom.xml
+++ b/services/codegurusecurity/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codegurusecurity
AWS Java SDK :: Services :: Code Guru Security
diff --git a/services/codepipeline/pom.xml b/services/codepipeline/pom.xml
index c07a716bd1f5..881ca5a3fcad 100644
--- a/services/codepipeline/pom.xml
+++ b/services/codepipeline/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codepipeline
AWS Java SDK :: Services :: AWS CodePipeline
diff --git a/services/codestar/pom.xml b/services/codestar/pom.xml
index 1757a1b48153..db4c3c51efd4 100644
--- a/services/codestar/pom.xml
+++ b/services/codestar/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codestar
AWS Java SDK :: Services :: AWS CodeStar
diff --git a/services/codestarconnections/pom.xml b/services/codestarconnections/pom.xml
index 6ee348c74f63..84ae58cacdfe 100644
--- a/services/codestarconnections/pom.xml
+++ b/services/codestarconnections/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codestarconnections
AWS Java SDK :: Services :: CodeStar connections
diff --git a/services/codestarnotifications/pom.xml b/services/codestarnotifications/pom.xml
index d81ed9f4d827..8065d8679270 100644
--- a/services/codestarnotifications/pom.xml
+++ b/services/codestarnotifications/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
codestarnotifications
AWS Java SDK :: Services :: Codestar Notifications
diff --git a/services/cognitoidentity/pom.xml b/services/cognitoidentity/pom.xml
index 93d56368e6e6..9ff4d93f1b3a 100644
--- a/services/cognitoidentity/pom.xml
+++ b/services/cognitoidentity/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cognitoidentity
AWS Java SDK :: Services :: Amazon Cognito Identity
diff --git a/services/cognitoidentityprovider/pom.xml b/services/cognitoidentityprovider/pom.xml
index f70cc79dceba..bc000427d7d0 100644
--- a/services/cognitoidentityprovider/pom.xml
+++ b/services/cognitoidentityprovider/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cognitoidentityprovider
AWS Java SDK :: Services :: Amazon Cognito Identity Provider Service
diff --git a/services/cognitosync/pom.xml b/services/cognitosync/pom.xml
index 94462909df32..c3c558f0bbe5 100644
--- a/services/cognitosync/pom.xml
+++ b/services/cognitosync/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
cognitosync
AWS Java SDK :: Services :: Amazon Cognito Sync
diff --git a/services/comprehend/pom.xml b/services/comprehend/pom.xml
index ebde6b2c547f..0867d444d3d2 100644
--- a/services/comprehend/pom.xml
+++ b/services/comprehend/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
comprehend
diff --git a/services/comprehendmedical/pom.xml b/services/comprehendmedical/pom.xml
index 82f02790da2f..ccda3e7392b1 100644
--- a/services/comprehendmedical/pom.xml
+++ b/services/comprehendmedical/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
comprehendmedical
AWS Java SDK :: Services :: ComprehendMedical
diff --git a/services/computeoptimizer/pom.xml b/services/computeoptimizer/pom.xml
index f501a120ea81..9e330b00fead 100644
--- a/services/computeoptimizer/pom.xml
+++ b/services/computeoptimizer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
computeoptimizer
AWS Java SDK :: Services :: Compute Optimizer
diff --git a/services/config/pom.xml b/services/config/pom.xml
index dd50804ae5b1..01c6934a8394 100644
--- a/services/config/pom.xml
+++ b/services/config/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
config
AWS Java SDK :: Services :: AWS Config
diff --git a/services/connect/pom.xml b/services/connect/pom.xml
index 7f56eec20e14..d1b4e2a5fae7 100644
--- a/services/connect/pom.xml
+++ b/services/connect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
connect
AWS Java SDK :: Services :: Connect
diff --git a/services/connectcampaigns/pom.xml b/services/connectcampaigns/pom.xml
index 3459eca16eba..b0d93a86b287 100644
--- a/services/connectcampaigns/pom.xml
+++ b/services/connectcampaigns/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
connectcampaigns
AWS Java SDK :: Services :: Connect Campaigns
diff --git a/services/connectcases/pom.xml b/services/connectcases/pom.xml
index 5e8ab8f6821b..243f4963b721 100644
--- a/services/connectcases/pom.xml
+++ b/services/connectcases/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
connectcases
AWS Java SDK :: Services :: Connect Cases
diff --git a/services/connectcontactlens/pom.xml b/services/connectcontactlens/pom.xml
index 0689d112071f..0f9e434bbd5d 100644
--- a/services/connectcontactlens/pom.xml
+++ b/services/connectcontactlens/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
connectcontactlens
AWS Java SDK :: Services :: Connect Contact Lens
diff --git a/services/connectparticipant/pom.xml b/services/connectparticipant/pom.xml
index a168e1068163..21b768e5a6f7 100644
--- a/services/connectparticipant/pom.xml
+++ b/services/connectparticipant/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
connectparticipant
AWS Java SDK :: Services :: ConnectParticipant
diff --git a/services/controlcatalog/pom.xml b/services/controlcatalog/pom.xml
index adce7af930a4..33df78f99500 100644
--- a/services/controlcatalog/pom.xml
+++ b/services/controlcatalog/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
controlcatalog
AWS Java SDK :: Services :: Control Catalog
diff --git a/services/controltower/pom.xml b/services/controltower/pom.xml
index 53b2daee5087..7167ec8af00f 100644
--- a/services/controltower/pom.xml
+++ b/services/controltower/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
controltower
AWS Java SDK :: Services :: Control Tower
diff --git a/services/costandusagereport/pom.xml b/services/costandusagereport/pom.xml
index 2e7247e3a677..d1b216cce1b3 100644
--- a/services/costandusagereport/pom.xml
+++ b/services/costandusagereport/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
costandusagereport
AWS Java SDK :: Services :: AWS Cost and Usage Report
diff --git a/services/costexplorer/pom.xml b/services/costexplorer/pom.xml
index 5a62bb7381da..1d74883eea81 100644
--- a/services/costexplorer/pom.xml
+++ b/services/costexplorer/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
costexplorer
diff --git a/services/costexplorer/src/main/resources/codegen-resources/service-2.json b/services/costexplorer/src/main/resources/codegen-resources/service-2.json
index db0850939f38..16f78dc1216c 100644
--- a/services/costexplorer/src/main/resources/codegen-resources/service-2.json
+++ b/services/costexplorer/src/main/resources/codegen-resources/service-2.json
@@ -201,7 +201,7 @@
{"shape":"InvalidNextTokenException"},
{"shape":"RequestChangedException"}
],
- "documentation":"Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts
or UsageQuantity
, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE
or AZ
, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only.
This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information about how to access the Settings page, see Controlling Access for Cost Explorer in the Billing and Cost Management User Guide.
"
+ "documentation":"Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts
or UsageQuantity
, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE
or AZ
, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts.
Hourly granularity is only available for EC2-Instances (Elastic Compute Cloud) resource-level data. All other resource-level data is available at daily granularity.
This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information about how to access the Settings page, see Controlling Access for Cost Explorer in the Billing and Cost Management User Guide.
"
},
"GetCostCategories":{
"name":"GetCostCategories",
@@ -4013,14 +4013,18 @@
"members":{
"RecommendationId":{
"shape":"GenericString",
- "documentation":"The ID for this specific recommendation.
"
+ "documentation":"The ID for the recommendation.
"
},
"GenerationTimestamp":{
"shape":"GenericString",
- "documentation":"The timestamp for when Amazon Web Services made this recommendation.
"
+ "documentation":"The timestamp for when Amazon Web Services made the recommendation.
"
+ },
+ "AdditionalMetadata":{
+ "shape":"GenericString",
+ "documentation":"Additional metadata that might be applicable to the recommendation.
"
}
},
- "documentation":"Information about this specific recommendation, such as the timestamp for when Amazon Web Services made a specific recommendation.
"
+ "documentation":"Information about a recommendation, such as the timestamp for when Amazon Web Services made a specific recommendation.
"
},
"ReservationPurchaseRecommendationSummary":{
"type":"structure",
@@ -4226,22 +4230,22 @@
"members":{
"RecommendationId":{
"shape":"GenericString",
- "documentation":"The ID for this specific recommendation.
"
+ "documentation":"The ID for the recommendation.
"
},
"GenerationTimestamp":{
"shape":"GenericString",
- "documentation":"The timestamp for when Amazon Web Services made this recommendation.
"
+ "documentation":"The timestamp for when Amazon Web Services made the recommendation.
"
},
"LookbackPeriodInDays":{
"shape":"LookbackPeriodInDays",
- "documentation":"The number of days of previous usage that Amazon Web Services considers when making this recommendation.
"
+ "documentation":"The number of days of previous usage that Amazon Web Services considers when making the recommendation.
"
},
"AdditionalMetadata":{
"shape":"GenericString",
"documentation":"Additional metadata that might be applicable to the recommendation.
"
}
},
- "documentation":"Metadata for this recommendation set.
"
+ "documentation":"Metadata for a recommendation set.
"
},
"RightsizingRecommendationSummary":{
"type":"structure",
diff --git a/services/costoptimizationhub/pom.xml b/services/costoptimizationhub/pom.xml
index 943b4d6d000a..681320492c60 100644
--- a/services/costoptimizationhub/pom.xml
+++ b/services/costoptimizationhub/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
costoptimizationhub
AWS Java SDK :: Services :: Cost Optimization Hub
diff --git a/services/customerprofiles/pom.xml b/services/customerprofiles/pom.xml
index 2086fc968eb3..4978d3ec9a3b 100644
--- a/services/customerprofiles/pom.xml
+++ b/services/customerprofiles/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
customerprofiles
AWS Java SDK :: Services :: Customer Profiles
diff --git a/services/databasemigration/pom.xml b/services/databasemigration/pom.xml
index 3efce6e1c4fd..c7b6c04a5398 100644
--- a/services/databasemigration/pom.xml
+++ b/services/databasemigration/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
databasemigration
AWS Java SDK :: Services :: AWS Database Migration Service
diff --git a/services/databrew/pom.xml b/services/databrew/pom.xml
index 1ae22d17374e..2bc932cd8995 100644
--- a/services/databrew/pom.xml
+++ b/services/databrew/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
databrew
AWS Java SDK :: Services :: Data Brew
diff --git a/services/dataexchange/pom.xml b/services/dataexchange/pom.xml
index 030ee5d5b072..312dde457c07 100644
--- a/services/dataexchange/pom.xml
+++ b/services/dataexchange/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
dataexchange
AWS Java SDK :: Services :: DataExchange
diff --git a/services/datapipeline/pom.xml b/services/datapipeline/pom.xml
index b0bc650f0322..cf1f881285c4 100644
--- a/services/datapipeline/pom.xml
+++ b/services/datapipeline/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
datapipeline
AWS Java SDK :: Services :: AWS Data Pipeline
diff --git a/services/datasync/pom.xml b/services/datasync/pom.xml
index 8f525589410e..759ac6b5bb12 100644
--- a/services/datasync/pom.xml
+++ b/services/datasync/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
datasync
AWS Java SDK :: Services :: DataSync
diff --git a/services/datazone/pom.xml b/services/datazone/pom.xml
index fcdccec4ee9d..4f758ad0df27 100644
--- a/services/datazone/pom.xml
+++ b/services/datazone/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
datazone
AWS Java SDK :: Services :: Data Zone
diff --git a/services/dax/pom.xml b/services/dax/pom.xml
index 0fbd05e407db..f9659ccbbe26 100644
--- a/services/dax/pom.xml
+++ b/services/dax/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
dax
AWS Java SDK :: Services :: Amazon DynamoDB Accelerator (DAX)
diff --git a/services/deadline/pom.xml b/services/deadline/pom.xml
index 6a8cc37d7c23..19fbdf453a4e 100644
--- a/services/deadline/pom.xml
+++ b/services/deadline/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
deadline
AWS Java SDK :: Services :: Deadline
diff --git a/services/detective/pom.xml b/services/detective/pom.xml
index 520a0a3e6f07..e8e958e57dd4 100644
--- a/services/detective/pom.xml
+++ b/services/detective/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
detective
AWS Java SDK :: Services :: Detective
diff --git a/services/devicefarm/pom.xml b/services/devicefarm/pom.xml
index cf96f6f13719..eea9917c9e42 100644
--- a/services/devicefarm/pom.xml
+++ b/services/devicefarm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
devicefarm
AWS Java SDK :: Services :: AWS Device Farm
diff --git a/services/devopsguru/pom.xml b/services/devopsguru/pom.xml
index 3fe7d33f3612..1eac6bb07a60 100644
--- a/services/devopsguru/pom.xml
+++ b/services/devopsguru/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
devopsguru
AWS Java SDK :: Services :: Dev Ops Guru
diff --git a/services/directconnect/pom.xml b/services/directconnect/pom.xml
index 57c34ccccc1a..02e104fc9b84 100644
--- a/services/directconnect/pom.xml
+++ b/services/directconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
directconnect
AWS Java SDK :: Services :: AWS Direct Connect
diff --git a/services/directory/pom.xml b/services/directory/pom.xml
index e94a08950768..832c94bb1339 100644
--- a/services/directory/pom.xml
+++ b/services/directory/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
directory
AWS Java SDK :: Services :: AWS Directory Service
diff --git a/services/dlm/pom.xml b/services/dlm/pom.xml
index 31011521c7ca..3416cf23b787 100644
--- a/services/dlm/pom.xml
+++ b/services/dlm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
dlm
AWS Java SDK :: Services :: DLM
diff --git a/services/docdb/pom.xml b/services/docdb/pom.xml
index 88d32ad80dcf..7e65f4dc7e0b 100644
--- a/services/docdb/pom.xml
+++ b/services/docdb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
docdb
AWS Java SDK :: Services :: DocDB
diff --git a/services/docdbelastic/pom.xml b/services/docdbelastic/pom.xml
index de1b3f2b8e1c..9d3143bcb7f4 100644
--- a/services/docdbelastic/pom.xml
+++ b/services/docdbelastic/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
docdbelastic
AWS Java SDK :: Services :: Doc DB Elastic
diff --git a/services/drs/pom.xml b/services/drs/pom.xml
index a512f8dd2f01..fe736ab284d1 100644
--- a/services/drs/pom.xml
+++ b/services/drs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
drs
AWS Java SDK :: Services :: Drs
diff --git a/services/dynamodb/pom.xml b/services/dynamodb/pom.xml
index 0cdba259f3dd..a5a719d5c6f1 100644
--- a/services/dynamodb/pom.xml
+++ b/services/dynamodb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
dynamodb
AWS Java SDK :: Services :: Amazon DynamoDB
diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/customization.config b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/customization.config
index 43c388445c29..548062504a24 100644
--- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/customization.config
+++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/customization.config
@@ -34,5 +34,6 @@
"listXssMatchSets"
],
"customRetryPolicy" : "software.amazon.awssdk.services.dynamodb.DynamoDbRetryPolicy",
- "enableEndpointDiscoveryMethodRequired": true
+ "enableEndpointDiscoveryMethodRequired": true,
+ "useSraAuth": true
}
diff --git a/services/dynamodb/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/dynamodb/src/main/resources/codegen-resources/endpoint-rule-set.json
deleted file mode 100644
index a8016a5a4b64..000000000000
--- a/services/dynamodb/src/main/resources/codegen-resources/endpoint-rule-set.json
+++ /dev/null
@@ -1,336 +0,0 @@
-{
- "version": "1.1",
- "parameters": {
- "Region": {
- "builtIn": "AWS::Region",
- "required": true,
- "documentation": "The AWS region used to dispatch the request.",
- "type": "String"
- },
- "UseDualStack": {
- "builtIn": "AWS::UseDualStack",
- "required": true,
- "default": false,
- "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
- "type": "Boolean"
- },
- "UseFIPS": {
- "builtIn": "AWS::UseFIPS",
- "required": true,
- "default": false,
- "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
- "type": "Boolean"
- }
- },
- "rules": [
- {
- "conditions": [
- {
- "fn": "aws.partition",
- "argv": [
- {
- "ref": "Region"
- }
- ],
- "assign": "PartitionResult"
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [
- {
- "fn": "booleanEquals",
- "argv": [
- {
- "ref": "UseFIPS"
- },
- true
- ]
- },
- {
- "fn": "booleanEquals",
- "argv": [
- {
- "ref": "UseDualStack"
- },
- true
- ]
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [
- {
- "fn": "booleanEquals",
- "argv": [
- true,
- {
- "fn": "getAttr",
- "argv": [
- {
- "ref": "PartitionResult"
- },
- "supportsFIPS"
- ]
- }
- ]
- },
- {
- "fn": "booleanEquals",
- "argv": [
- true,
- {
- "fn": "getAttr",
- "argv": [
- {
- "ref": "PartitionResult"
- },
- "supportsDualStack"
- ]
- }
- ]
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [],
- "endpoint": {
- "url": "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
- "properties": {
- "authSchemes": [
- {
- "name": "sigv4",
- "signingRegion": "{Region}",
- "signingName": "dynamodb"
- }
- ]
- },
- "headers": {}
- },
- "type": "endpoint"
- }
- ]
- },
- {
- "conditions": [],
- "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
- "type": "error"
- }
- ]
- },
- {
- "conditions": [
- {
- "fn": "booleanEquals",
- "argv": [
- {
- "ref": "UseFIPS"
- },
- true
- ]
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [
- {
- "fn": "booleanEquals",
- "argv": [
- true,
- {
- "fn": "getAttr",
- "argv": [
- {
- "ref": "PartitionResult"
- },
- "supportsFIPS"
- ]
- }
- ]
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [],
- "type": "tree",
- "rules": [
- {
- "conditions": [
- {
- "fn": "stringEquals",
- "argv": [
- "aws-us-gov",
- {
- "fn": "getAttr",
- "argv": [
- {
- "ref": "PartitionResult"
- },
- "name"
- ]
- }
- ]
- }
- ],
- "endpoint": {
- "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}",
- "properties": {
- "authSchemes": [
- {
- "name": "sigv4",
- "signingRegion": "{Region}",
- "signingName": "dynamodb"
- }
- ]
- },
- "headers": {}
- },
- "type": "endpoint"
- },
- {
- "conditions": [],
- "endpoint": {
- "url": "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}",
- "properties": {
- "authSchemes": [
- {
- "name": "sigv4",
- "signingRegion": "{Region}",
- "signingName": "dynamodb"
- }
- ]
- },
- "headers": {}
- },
- "type": "endpoint"
- }
- ]
- }
- ]
- },
- {
- "conditions": [],
- "error": "FIPS is enabled but this partition does not support FIPS",
- "type": "error"
- }
- ]
- },
- {
- "conditions": [
- {
- "fn": "booleanEquals",
- "argv": [
- {
- "ref": "UseDualStack"
- },
- true
- ]
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [
- {
- "fn": "booleanEquals",
- "argv": [
- true,
- {
- "fn": "getAttr",
- "argv": [
- {
- "ref": "PartitionResult"
- },
- "supportsDualStack"
- ]
- }
- ]
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [],
- "endpoint": {
- "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}",
- "properties": {
- "authSchemes": [
- {
- "name": "sigv4",
- "signingRegion": "{Region}",
- "signingName": "dynamodb"
- }
- ]
- },
- "headers": {}
- },
- "type": "endpoint"
- }
- ]
- },
- {
- "conditions": [],
- "error": "DualStack is enabled but this partition does not support DualStack",
- "type": "error"
- }
- ]
- },
- {
- "conditions": [],
- "type": "tree",
- "rules": [
- {
- "conditions": [
- {
- "fn": "stringEquals",
- "argv": [
- {
- "ref": "Region"
- },
- "local"
- ]
- }
- ],
- "endpoint": {
- "url": "https://localhost:8000",
- "properties": {
- "authSchemes": [
- {
- "name": "sigv4",
- "signingRegion": "us-east-1",
- "signingName": "dynamodb"
- }
- ]
- },
- "headers": {}
- },
- "type": "endpoint"
- },
- {
- "conditions": [],
- "endpoint": {
- "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}",
- "properties": {
- "authSchemes": [
- {
- "name": "sigv4",
- "signingRegion": "{Region}",
- "signingName": "dynamodb"
- }
- ]
- },
- "headers": {}
- },
- "type": "endpoint"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/services/ebs/pom.xml b/services/ebs/pom.xml
index 418bedff3484..bb7eb0b5723e 100644
--- a/services/ebs/pom.xml
+++ b/services/ebs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ebs
AWS Java SDK :: Services :: EBS
diff --git a/services/ec2/pom.xml b/services/ec2/pom.xml
index 9c7fe28732bd..4c3a5467b5de 100644
--- a/services/ec2/pom.xml
+++ b/services/ec2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ec2
AWS Java SDK :: Services :: Amazon EC2
diff --git a/services/ec2/src/main/resources/codegen-resources/service-2.json b/services/ec2/src/main/resources/codegen-resources/service-2.json
index 0f258463db8a..6519a9a1f3c8 100644
--- a/services/ec2/src/main/resources/codegen-resources/service-2.json
+++ b/services/ec2/src/main/resources/codegen-resources/service-2.json
@@ -666,7 +666,7 @@
},
"input":{"shape":"CreateDhcpOptionsRequest"},
"output":{"shape":"CreateDhcpOptionsResult"},
- "documentation":"Creates a custom set of DHCP options. After you create a DHCP option set, you associate it with a VPC. After you associate a DHCP option set with a VPC, all existing and newly launched instances in the VPC use this set of DHCP options.
The following are the individual DHCP options you can specify. For more information, see DHCP options sets in the Amazon VPC User Guide.
-
domain-name
- If you're using AmazonProvidedDNS in us-east-1
, specify ec2.internal
. If you're using AmazonProvidedDNS in any other Region, specify region.compute.internal
. Otherwise, specify a custom domain name. This value is used to complete unqualified DNS hostnames.
Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP option set is associated with a VPC that has instances running operating systems that treat the value as a single domain, specify only one domain name.
-
domain-name-servers
- The IP addresses of up to four DNS servers, or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, separate the IP addresses using commas. To have your instances receive custom DNS hostnames as specified in domain-name
, you must specify a custom DNS server.
-
ntp-servers
- The IP addresses of up to eight Network Time Protocol (NTP) servers (four IPv4 addresses and four IPv6 addresses).
-
netbios-name-servers
- The IP addresses of up to four NetBIOS name servers.
-
netbios-node-type
- The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2. Broadcast and multicast are not supported. For more information about NetBIOS node types, see RFC 2132.
-
ipv6-preferred-lease-time
- A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed.
"
+ "documentation":"Creates a custom set of DHCP options. After you create a DHCP option set, you associate it with a VPC. After you associate a DHCP option set with a VPC, all existing and newly launched instances in the VPC use this set of DHCP options.
The following are the individual DHCP options you can specify. For more information, see DHCP options sets in the Amazon VPC User Guide.
-
domain-name
- If you're using AmazonProvidedDNS in us-east-1
, specify ec2.internal
. If you're using AmazonProvidedDNS in any other Region, specify region.compute.internal
. Otherwise, specify a custom domain name. This value is used to complete unqualified DNS hostnames.
Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP option set is associated with a VPC that has instances running operating systems that treat the value as a single domain, specify only one domain name.
-
domain-name-servers
- The IP addresses of up to four DNS servers, or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, separate the IP addresses using commas. To have your instances receive custom DNS hostnames as specified in domain-name
, you must specify a custom DNS server.
-
ntp-servers
- The IP addresses of up to eight Network Time Protocol (NTP) servers (four IPv4 addresses and four IPv6 addresses).
-
netbios-name-servers
- The IP addresses of up to four NetBIOS name servers.
-
netbios-node-type
- The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2. Broadcast and multicast are not supported. For more information about NetBIOS node types, see RFC 2132.
-
ipv6-address-preferred-lease-time
- A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed.
"
},
"CreateEgressOnlyInternetGateway":{
"name":"CreateEgressOnlyInternetGateway",
@@ -816,7 +816,7 @@
},
"input":{"shape":"CreateLaunchTemplateRequest"},
"output":{"shape":"CreateLaunchTemplateResult"},
- "documentation":"Creates a launch template.
A launch template contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify a launch template instead of providing the launch parameters in the request. For more information, see Launch an instance from a launch template in the Amazon Elastic Compute Cloud User Guide.
If you want to clone an existing launch template as the basis for creating a new launch template, you can use the Amazon EC2 console. The API, SDKs, and CLI do not support cloning a template. For more information, see Create a launch template from an existing launch template in the Amazon Elastic Compute Cloud User Guide.
"
+ "documentation":"Creates a launch template.
A launch template contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify a launch template instead of providing the launch parameters in the request. For more information, see Launch an instance from a launch template in the Amazon Elastic Compute Cloud User Guide.
To clone an existing launch template as the basis for a new launch template, use the Amazon EC2 console. The API, SDKs, and CLI do not support cloning a template. For more information, see Create a launch template from an existing launch template in the Amazon Elastic Compute Cloud User Guide.
"
},
"CreateLaunchTemplateVersion":{
"name":"CreateLaunchTemplateVersion",
@@ -826,7 +826,7 @@
},
"input":{"shape":"CreateLaunchTemplateVersionRequest"},
"output":{"shape":"CreateLaunchTemplateVersionResult"},
- "documentation":"Creates a new version of a launch template. You can specify an existing version of launch template from which to base the new version.
Launch template versions are numbered in the order in which they are created. You cannot specify, change, or replace the numbering of launch template versions.
Launch templates are immutable; after you create a launch template, you can't modify it. Instead, you can create a new version of the launch template that includes any changes you require.
For more information, see Modify a launch template (manage launch template versions) in the Amazon Elastic Compute Cloud User Guide.
"
+ "documentation":"Creates a new version of a launch template. You must specify an existing launch template, either by name or ID. You can determine whether the new version inherits parameters from a source version, and add or overwrite parameters as needed.
Launch template versions are numbered in the order in which they are created. You can't specify, change, or replace the numbering of launch template versions.
Launch templates are immutable; after you create a launch template, you can't modify it. Instead, you can create a new version of the launch template that includes the changes that you require.
For more information, see Modify a launch template (manage launch template versions) in the Amazon Elastic Compute Cloud User Guide.
"
},
"CreateLocalGatewayRoute":{
"name":"CreateLocalGatewayRoute",
@@ -2603,7 +2603,7 @@
},
"input":{"shape":"DescribeImagesRequest"},
"output":{"shape":"DescribeImagesResult"},
- "documentation":"Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.
The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions.
Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
+ "documentation":"Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.
The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions.
Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found.
We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
},
"DescribeImportImageTasks":{
"name":"DescribeImportImageTasks",
@@ -2723,7 +2723,7 @@
},
"input":{"shape":"DescribeInstancesRequest"},
"output":{"shape":"DescribeInstancesResult"},
- "documentation":"Describes the specified instances or all instances.
If you specify instance IDs, the output includes information for only the specified instances. If you specify filters, the output includes information for only those instances that meet the filter criteria. If you do not specify instance IDs or filters, the output includes information for all instances, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully.
If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the output.
Recently terminated instances might appear in the returned results. This interval is usually less than one hour.
If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works normally.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
+ "documentation":"Describes the specified instances or all instances.
If you specify instance IDs, the output includes information for only the specified instances. If you specify filters, the output includes information for only those instances that meet the filter criteria. If you do not specify instance IDs or filters, the output includes information for all instances, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully.
If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the output.
Recently terminated instances might appear in the returned results. This interval is usually less than one hour.
If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works normally.
We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
},
"DescribeInternetGateways":{
"name":"DescribeInternetGateways",
@@ -3023,7 +3023,7 @@
},
"input":{"shape":"DescribeNetworkInterfacesRequest"},
"output":{"shape":"DescribeNetworkInterfacesResult"},
- "documentation":"Describes one or more of your network interfaces.
If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id
, mac-address
, private-dns-name
, private-ip-address
, private-dns-name
, subnet-id
, or vpc-id
.
"
+ "documentation":"Describes one or more of your network interfaces.
If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id
, mac-address
, private-dns-name
, private-ip-address
, private-dns-name
, subnet-id
, or vpc-id
.
We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.
"
},
"DescribePlacementGroups":{
"name":"DescribePlacementGroups",
@@ -3213,7 +3213,7 @@
},
"input":{"shape":"DescribeSnapshotsRequest"},
"output":{"shape":"DescribeSnapshotsResult"},
- "documentation":"Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.
The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions.
The create volume permissions fall into the following categories:
-
public: The owner of the snapshot granted create volume permissions for the snapshot to the all
group. All Amazon Web Services accounts have create volume permissions for these snapshots.
-
explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account.
-
implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns.
The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.
If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.
If you specify one or more snapshot owners using the OwnerIds
option, only snapshots from the specified owners and for which you have access are returned. The results can include the Amazon Web Services account IDs of the specified owners, amazon
for snapshots owned by Amazon, or self
for snapshots that you own.
If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots), self
for snapshots for which you own or have explicit permissions, or all
for public snapshots.
If you are describing a long list of snapshots, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination.
To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.
For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide.
"
+ "documentation":"Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.
The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions.
The create volume permissions fall into the following categories:
-
public: The owner of the snapshot granted create volume permissions for the snapshot to the all
group. All Amazon Web Services accounts have create volume permissions for these snapshots.
-
explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account.
-
implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns.
The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.
If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.
If you specify one or more snapshot owners using the OwnerIds
option, only snapshots from the specified owners and for which you have access are returned. The results can include the Amazon Web Services account IDs of the specified owners, amazon
for snapshots owned by Amazon, or self
for snapshots that you own.
If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots), self
for snapshots for which you own or have explicit permissions, or all
for public snapshots.
If you are describing a long list of snapshots, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination.
To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.
For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide.
We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.
"
},
"DescribeSpotDatafeedSubscription":{
"name":"DescribeSpotDatafeedSubscription",
@@ -3313,7 +3313,7 @@
},
"input":{"shape":"DescribeTagsRequest"},
"output":{"shape":"DescribeTagsResult"},
- "documentation":"Describes the specified tags for your EC2 resources.
For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
+ "documentation":"Describes the specified tags for your EC2 resources.
For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide.
We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
},
"DescribeTrafficMirrorFilters":{
"name":"DescribeTrafficMirrorFilters",
@@ -3533,7 +3533,7 @@
},
"input":{"shape":"DescribeVolumesRequest"},
"output":{"shape":"DescribeVolumesResult"},
- "documentation":"Describes the specified EBS volumes or all of your EBS volumes.
If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination.
For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
+ "documentation":"Describes the specified EBS volumes or all of your EBS volumes.
If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination.
For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide.
We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.
The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
"
},
"DescribeVolumesModifications":{
"name":"DescribeVolumesModifications",
@@ -3812,6 +3812,16 @@
"output":{"shape":"DisableImageDeprecationResult"},
"documentation":"Cancels the deprecation of the specified AMI.
For more information, see Deprecate an AMI in the Amazon EC2 User Guide.
"
},
+ "DisableImageDeregistrationProtection":{
+ "name":"DisableImageDeregistrationProtection",
+ "http":{
+ "method":"POST",
+ "requestUri":"/"
+ },
+ "input":{"shape":"DisableImageDeregistrationProtectionRequest"},
+ "output":{"shape":"DisableImageDeregistrationProtectionResult"},
+ "documentation":"Disables deregistration protection for an AMI. When deregistration protection is disabled, the AMI can be deregistered.
If you chose to include a 24-hour cooldown period when you enabled deregistration protection for the AMI, then, when you disable deregistration protection, you won’t immediately be able to deregister the AMI.
For more information, see Protect an AMI from deregistration in the Amazon EC2 User Guide.
"
+ },
"DisableIpamOrganizationAdminAccount":{
"name":"DisableIpamOrganizationAdminAccount",
"http":{
@@ -4109,6 +4119,16 @@
"output":{"shape":"EnableImageDeprecationResult"},
"documentation":"Enables deprecation of the specified AMI at the specified date and time.
For more information, see Deprecate an AMI in the Amazon EC2 User Guide.
"
},
+ "EnableImageDeregistrationProtection":{
+ "name":"EnableImageDeregistrationProtection",
+ "http":{
+ "method":"POST",
+ "requestUri":"/"
+ },
+ "input":{"shape":"EnableImageDeregistrationProtectionRequest"},
+ "output":{"shape":"EnableImageDeregistrationProtectionResult"},
+ "documentation":"Enables deregistration protection for an AMI. When deregistration protection is enabled, the AMI can't be deregistered.
To allow the AMI to be deregistered, you must first disable deregistration protection using DisableImageDeregistrationProtection.
For more information, see Protect an AMI from deregistration in the Amazon EC2 User Guide.
"
+ },
"EnableIpamOrganizationAdminAccount":{
"name":"EnableIpamOrganizationAdminAccount",
"http":{
@@ -8535,12 +8555,12 @@
},
"CertificateS3ObjectKey":{
"shape":"String",
- "documentation":"The key of the Amazon S3 object ey where the certificate, certificate chain, and encrypted private key bundle is stored. The object key is formated as follows: role_arn
/certificate_arn
.
",
+ "documentation":"The key of the Amazon S3 object where the certificate, certificate chain, and encrypted private key bundle are stored. The object key is formatted as follows: role_arn
/certificate_arn
.
",
"locationName":"certificateS3ObjectKey"
},
"EncryptionKmsKeyId":{
"shape":"String",
- "documentation":"The ID of the KMS customer master key (CMK) used to encrypt the private key.
",
+ "documentation":"The ID of the KMS key used to encrypt the private key.
",
"locationName":"encryptionKmsKeyId"
}
},
@@ -13432,7 +13452,7 @@
},
"TagSpecifications":{
"shape":"TagSpecificationList",
- "documentation":"The tags to apply to the launch template on creation. To tag the launch template, the resource type must be launch-template
.
To specify the tags for the resources that are created when an instance is launched, you must use the TagSpecifications
parameter in the launch template data structure.
",
+ "documentation":"The tags to apply to the launch template on creation. To tag the launch template, the resource type must be launch-template
.
To specify the tags for the resources that are created when an instance is launched, you must use the TagSpecifications
parameter in the launch template data structure.
",
"locationName":"TagSpecification"
}
}
@@ -13466,15 +13486,15 @@
},
"LaunchTemplateId":{
"shape":"LaunchTemplateId",
- "documentation":"The ID of the launch template.
You must specify either the LaunchTemplateId
or the LaunchTemplateName
, but not both.
"
+ "documentation":"The ID of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"LaunchTemplateName":{
"shape":"LaunchTemplateName",
- "documentation":"The name of the launch template.
You must specify the LaunchTemplateName
or the LaunchTemplateId
, but not both.
"
+ "documentation":"The name of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"SourceVersion":{
"shape":"String",
- "documentation":"The version number of the launch template version on which to base the new version. The new version inherits the same launch parameters as the source version, except for parameters that you specify in LaunchTemplateData
. Snapshots applied to the block device mapping are ignored when creating a new version unless they are explicitly included.
"
+ "documentation":"The version of the launch template on which to base the new version. Snapshots applied to the block device mapping are ignored when creating a new version unless they are explicitly included.
If you specify this parameter, the new version inherits the launch parameters from the source version. If you specify additional launch parameters for the new version, they overwrite any corresponding launch parameters inherited from the source version.
If you omit this parameter, the new version contains only the launch parameters that you specify for the new version.
"
},
"VersionDescription":{
"shape":"VersionDescription",
@@ -17132,11 +17152,11 @@
},
"LaunchTemplateId":{
"shape":"LaunchTemplateId",
- "documentation":"The ID of the launch template.
You must specify either the LaunchTemplateId
or the LaunchTemplateName
, but not both.
"
+ "documentation":"The ID of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"LaunchTemplateName":{
"shape":"LaunchTemplateName",
- "documentation":"The name of the launch template.
You must specify either the LaunchTemplateName
or the LaunchTemplateId
, but not both.
"
+ "documentation":"The name of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
}
}
},
@@ -17160,11 +17180,11 @@
},
"LaunchTemplateId":{
"shape":"LaunchTemplateId",
- "documentation":"The ID of the launch template.
You must specify either the LaunchTemplateId
or the LaunchTemplateName
, but not both.
"
+ "documentation":"The ID of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"LaunchTemplateName":{
"shape":"LaunchTemplateName",
- "documentation":"The name of the launch template.
You must specify either the LaunchTemplateName
or the LaunchTemplateId
, but not both.
"
+ "documentation":"The name of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"Versions":{
"shape":"VersionStringList",
@@ -21617,11 +21637,11 @@
},
"LaunchTemplateId":{
"shape":"LaunchTemplateId",
- "documentation":"The ID of the launch template.
To describe one or more versions of a specified launch template, you must specify either the LaunchTemplateId
or the LaunchTemplateName
, but not both.
To describe all the latest or default launch template versions in your account, you must omit this parameter.
"
+ "documentation":"The ID of the launch template.
To describe one or more versions of a specified launch template, you must specify either the launch template ID or the launch template name, but not both.
To describe all the latest or default launch template versions in your account, you must omit this parameter.
"
},
"LaunchTemplateName":{
"shape":"LaunchTemplateName",
- "documentation":"The name of the launch template.
To describe one or more versions of a specified launch template, you must specify either the LaunchTemplateName
or the LaunchTemplateId
, but not both.
To describe all the latest or default launch template versions in your account, you must omit this parameter.
"
+ "documentation":"The name of the launch template.
To describe one or more versions of a specified launch template, you must specify either the launch template name or the launch template ID, but not both.
To describe all the latest or default launch template versions in your account, you must omit this parameter.
"
},
"Versions":{
"shape":"VersionStringList",
@@ -22579,7 +22599,7 @@
"members":{
"NetworkInterfaces":{
"shape":"NetworkInterfaceList",
- "documentation":"Information about one or more network interfaces.
",
+ "documentation":"Information about the network interfaces.
",
"locationName":"networkInterfaceSet"
},
"NextToken":{
@@ -23901,7 +23921,7 @@
},
"Filters":{
"shape":"FilterList",
- "documentation":"The filters.
-
key
- The tag key.
-
resource-id
- The ID of the resource.
-
resource-type
- The resource type (customer-gateway
| dedicated-host
| dhcp-options
| elastic-ip
| fleet
| fpga-image
| host-reservation
| image
| instance
| internet-gateway
| key-pair
| launch-template
| natgateway
| network-acl
| network-interface
| placement-group
| reserved-instances
| route-table
| security-group
| snapshot
| spot-instances-request
| subnet
| volume
| vpc
| vpc-endpoint
| vpc-endpoint-service
| vpc-peering-connection
| vpn-connection
| vpn-gateway
).
-
tag
:<key> - The key/value combination of the tag. For example, specify \"tag:Owner\" for the filter name and \"TeamA\" for the filter value to find resources with the tag \"Owner=TeamA\".
-
value
- The tag value.
",
+ "documentation":"The filters.
-
key
- The tag key.
-
resource-id
- The ID of the resource.
-
resource-type
- The resource type. For a list of possible values, see TagSpecification.
-
tag
:<key> - The key/value combination of the tag. For example, specify \"tag:Owner\" for the filter name and \"TeamA\" for the filter value to find resources with the tag \"Owner=TeamA\".
-
value
- The tag value.
",
"locationName":"Filter"
},
"MaxResults":{
@@ -26162,6 +26182,30 @@
}
}
},
+ "DisableImageDeregistrationProtectionRequest":{
+ "type":"structure",
+ "required":["ImageId"],
+ "members":{
+ "ImageId":{
+ "shape":"ImageId",
+ "documentation":"The ID of the AMI.
"
+ },
+ "DryRun":{
+ "shape":"Boolean",
+ "documentation":"Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation
. Otherwise, it is UnauthorizedOperation
.
"
+ }
+ }
+ },
+ "DisableImageDeregistrationProtectionResult":{
+ "type":"structure",
+ "members":{
+ "Return":{
+ "shape":"String",
+ "documentation":"Returns true
if the request succeeds; otherwise, it returns an error.
",
+ "locationName":"return"
+ }
+ }
+ },
"DisableImageRequest":{
"type":"structure",
"required":["ImageId"],
@@ -28030,6 +28074,34 @@
}
}
},
+ "EnableImageDeregistrationProtectionRequest":{
+ "type":"structure",
+ "required":["ImageId"],
+ "members":{
+ "ImageId":{
+ "shape":"ImageId",
+ "documentation":"The ID of the AMI.
"
+ },
+ "WithCooldown":{
+ "shape":"Boolean",
+ "documentation":"If true
, enforces deregistration protection for 24 hours after deregistration protection is disabled.
"
+ },
+ "DryRun":{
+ "shape":"Boolean",
+ "documentation":"Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation
. Otherwise, it is UnauthorizedOperation
.
"
+ }
+ }
+ },
+ "EnableImageDeregistrationProtectionResult":{
+ "type":"structure",
+ "members":{
+ "Return":{
+ "shape":"String",
+ "documentation":"Returns true
if the request succeeds; otherwise, it returns an error.
",
+ "locationName":"return"
+ }
+ }
+ },
"EnableImageRequest":{
"type":"structure",
"required":["ImageId"],
@@ -33034,6 +33106,16 @@
"shape":"String",
"documentation":"The ID of the instance that the AMI was created from if the AMI was created using CreateImage. This field only appears if the AMI was created using CreateImage.
",
"locationName":"sourceInstanceId"
+ },
+ "DeregistrationProtection":{
+ "shape":"String",
+ "documentation":"Indicates whether deregistration protection is enabled for the AMI.
",
+ "locationName":"deregistrationProtection"
+ },
+ "LastLaunchedTime":{
+ "shape":"String",
+ "documentation":"The date and time, in ISO 8601 date-time format, when the AMI was last used to launch an EC2 instance. When the AMI is used to launch an instance, there is a 24-hour delay before that usage is reported.
lastLaunchedTime
data is available starting April 2017.
",
+ "locationName":"lastLaunchedTime"
}
},
"documentation":"Describes an image.
"
@@ -33105,6 +33187,11 @@
"shape":"AttributeValue",
"documentation":"If v2.0
, it indicates that IMDSv2 is specified in the AMI. Instances launched from this AMI will have HttpTokens
automatically set to required
so that, by default, the instance requires that IMDSv2 is used when requesting instance metadata. In addition, HttpPutResponseHopLimit
is set to 2
. For more information, see Configure the AMI in the Amazon EC2 User Guide.
",
"locationName":"imdsSupport"
+ },
+ "DeregistrationProtection":{
+ "shape":"AttributeValue",
+ "documentation":"Indicates whether deregistration protection is enabled for the AMI.
",
+ "locationName":"deregistrationProtection"
}
},
"documentation":"Describes an image attribute.
"
@@ -33123,7 +33210,8 @@
"tpmSupport",
"uefiData",
"lastLaunchedTime",
- "imdsSupport"
+ "imdsSupport",
+ "deregistrationProtection"
]
},
"ImageBlockPublicAccessDisabledState":{
@@ -40321,18 +40409,18 @@
"members":{
"LaunchTemplateId":{
"shape":"LaunchTemplateId",
- "documentation":"The ID of the launch template.
You must specify the LaunchTemplateId
or the LaunchTemplateName
, but not both.
"
+ "documentation":"The ID of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"LaunchTemplateName":{
"shape":"String",
- "documentation":"The name of the launch template.
You must specify the LaunchTemplateName
or the LaunchTemplateId
, but not both.
"
+ "documentation":"The name of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"Version":{
"shape":"String",
- "documentation":"The launch template version number, $Latest
, or $Default
.
If the value is $Latest
, Amazon EC2 uses the latest version of the launch template.
If the value is $Default
, Amazon EC2 uses the default version of the launch template.
Default: The default version of the launch template.
"
+ "documentation":"The launch template version number, $Latest
, or $Default
.
A value of $Latest
uses the latest version of the launch template.
A value of $Default
uses the default version of the launch template.
Default: The default version of the launch template.
"
}
},
- "documentation":"The launch template to use. You must specify either the launch template ID or launch template name in the request, but not both.
"
+ "documentation":"Describes the launch template to use.
"
},
"LaunchTemplateSpotMarketOptions":{
"type":"structure",
@@ -42835,11 +42923,11 @@
},
"LaunchTemplateId":{
"shape":"LaunchTemplateId",
- "documentation":"The ID of the launch template.
You must specify either the LaunchTemplateId
or the LaunchTemplateName
, but not both.
"
+ "documentation":"The ID of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"LaunchTemplateName":{
"shape":"LaunchTemplateName",
- "documentation":"The name of the launch template.
You must specify either the LaunchTemplateName
or the LaunchTemplateId
, but not both.
"
+ "documentation":"The name of the launch template.
You must specify either the launch template ID or the launch template name, but not both.
"
},
"DefaultVersion":{
"shape":"String",
@@ -51730,7 +51818,7 @@
},
"LaunchTemplate":{
"shape":"LaunchTemplateSpecification",
- "documentation":"The launch template to use to launch the instances. Any parameters that you specify in RunInstances override the same parameters in the launch template. You can specify either the name or ID of a launch template, but not both.
"
+ "documentation":"The launch template. Any additional parameters that you specify for the new instance overwrite the corresponding parameters included in the launch template.
"
},
"InstanceMarketOptions":{
"shape":"InstanceMarketOptionsRequest",
diff --git a/services/ec2instanceconnect/pom.xml b/services/ec2instanceconnect/pom.xml
index b5450330ae3b..74906d451043 100644
--- a/services/ec2instanceconnect/pom.xml
+++ b/services/ec2instanceconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ec2instanceconnect
AWS Java SDK :: Services :: EC2 Instance Connect
diff --git a/services/ecr/pom.xml b/services/ecr/pom.xml
index 51625cec22c0..9d916dc9ad62 100644
--- a/services/ecr/pom.xml
+++ b/services/ecr/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ecr
AWS Java SDK :: Services :: Amazon EC2 Container Registry
diff --git a/services/ecrpublic/pom.xml b/services/ecrpublic/pom.xml
index 6997cddf8306..9eaa72b5f8c6 100644
--- a/services/ecrpublic/pom.xml
+++ b/services/ecrpublic/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ecrpublic
AWS Java SDK :: Services :: ECR PUBLIC
diff --git a/services/ecs/pom.xml b/services/ecs/pom.xml
index 71751aaa29ba..589f88d1980c 100644
--- a/services/ecs/pom.xml
+++ b/services/ecs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ecs
AWS Java SDK :: Services :: Amazon EC2 Container Service
diff --git a/services/efs/pom.xml b/services/efs/pom.xml
index fe2bb4566302..0bfc1a321ba8 100644
--- a/services/efs/pom.xml
+++ b/services/efs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
efs
AWS Java SDK :: Services :: Amazon Elastic File System
diff --git a/services/eks/pom.xml b/services/eks/pom.xml
index 7e1a75b7261e..dc072ab08a56 100644
--- a/services/eks/pom.xml
+++ b/services/eks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
eks
AWS Java SDK :: Services :: EKS
diff --git a/services/eksauth/pom.xml b/services/eksauth/pom.xml
index ee82609c837d..a052e894b57a 100644
--- a/services/eksauth/pom.xml
+++ b/services/eksauth/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
eksauth
AWS Java SDK :: Services :: EKS Auth
diff --git a/services/elasticache/pom.xml b/services/elasticache/pom.xml
index b6ab8acd3131..e94a1976033f 100644
--- a/services/elasticache/pom.xml
+++ b/services/elasticache/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
elasticache
AWS Java SDK :: Services :: Amazon ElastiCache
diff --git a/services/elasticbeanstalk/pom.xml b/services/elasticbeanstalk/pom.xml
index 415f2e6ef271..543e8d302367 100644
--- a/services/elasticbeanstalk/pom.xml
+++ b/services/elasticbeanstalk/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
elasticbeanstalk
AWS Java SDK :: Services :: AWS Elastic Beanstalk
diff --git a/services/elasticinference/pom.xml b/services/elasticinference/pom.xml
index 16cdf8adf210..0ac185e352ac 100644
--- a/services/elasticinference/pom.xml
+++ b/services/elasticinference/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
elasticinference
AWS Java SDK :: Services :: Elastic Inference
diff --git a/services/elasticloadbalancing/pom.xml b/services/elasticloadbalancing/pom.xml
index 24ffa0a8249f..521e31c168ab 100644
--- a/services/elasticloadbalancing/pom.xml
+++ b/services/elasticloadbalancing/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
elasticloadbalancing
AWS Java SDK :: Services :: Elastic Load Balancing
diff --git a/services/elasticloadbalancingv2/pom.xml b/services/elasticloadbalancingv2/pom.xml
index ef5bd2a13755..8f45b1a2bcd8 100644
--- a/services/elasticloadbalancingv2/pom.xml
+++ b/services/elasticloadbalancingv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
elasticloadbalancingv2
AWS Java SDK :: Services :: Elastic Load Balancing V2
diff --git a/services/elasticsearch/pom.xml b/services/elasticsearch/pom.xml
index 62df50bc8643..8e6e7ee85f73 100644
--- a/services/elasticsearch/pom.xml
+++ b/services/elasticsearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
elasticsearch
AWS Java SDK :: Services :: Amazon Elasticsearch Service
diff --git a/services/elastictranscoder/pom.xml b/services/elastictranscoder/pom.xml
index bd6f0b2f73d8..5a1cfb5cdedf 100644
--- a/services/elastictranscoder/pom.xml
+++ b/services/elastictranscoder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
elastictranscoder
AWS Java SDK :: Services :: Amazon Elastic Transcoder
diff --git a/services/emr/pom.xml b/services/emr/pom.xml
index cb306f68929d..a6b82b42df15 100644
--- a/services/emr/pom.xml
+++ b/services/emr/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
emr
AWS Java SDK :: Services :: Amazon EMR
diff --git a/services/emrcontainers/pom.xml b/services/emrcontainers/pom.xml
index addb116d2618..7d441a83e2b0 100644
--- a/services/emrcontainers/pom.xml
+++ b/services/emrcontainers/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
emrcontainers
AWS Java SDK :: Services :: EMR Containers
diff --git a/services/emrserverless/pom.xml b/services/emrserverless/pom.xml
index 39ee6630a613..ad143e557689 100644
--- a/services/emrserverless/pom.xml
+++ b/services/emrserverless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
emrserverless
AWS Java SDK :: Services :: EMR Serverless
diff --git a/services/entityresolution/pom.xml b/services/entityresolution/pom.xml
index 8eb7d74ef6f3..7c44f78760e0 100644
--- a/services/entityresolution/pom.xml
+++ b/services/entityresolution/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
entityresolution
AWS Java SDK :: Services :: Entity Resolution
diff --git a/services/eventbridge/pom.xml b/services/eventbridge/pom.xml
index 3d7578244937..dee3336c2328 100644
--- a/services/eventbridge/pom.xml
+++ b/services/eventbridge/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
eventbridge
AWS Java SDK :: Services :: EventBridge
diff --git a/services/evidently/pom.xml b/services/evidently/pom.xml
index 63bbab04c744..5be0bfce2d19 100644
--- a/services/evidently/pom.xml
+++ b/services/evidently/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
evidently
AWS Java SDK :: Services :: Evidently
diff --git a/services/finspace/pom.xml b/services/finspace/pom.xml
index a1e98bc295fb..b68846e48274 100644
--- a/services/finspace/pom.xml
+++ b/services/finspace/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
finspace
AWS Java SDK :: Services :: Finspace
diff --git a/services/finspacedata/pom.xml b/services/finspacedata/pom.xml
index 5f0555be46df..e5072579f76c 100644
--- a/services/finspacedata/pom.xml
+++ b/services/finspacedata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
finspacedata
AWS Java SDK :: Services :: Finspace Data
diff --git a/services/firehose/pom.xml b/services/firehose/pom.xml
index 41f20f69360e..43f1235eef9b 100644
--- a/services/firehose/pom.xml
+++ b/services/firehose/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
firehose
AWS Java SDK :: Services :: Amazon Kinesis Firehose
diff --git a/services/fis/pom.xml b/services/fis/pom.xml
index 250e2ce1c99f..227bbd5fda3b 100644
--- a/services/fis/pom.xml
+++ b/services/fis/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
fis
AWS Java SDK :: Services :: Fis
diff --git a/services/fms/pom.xml b/services/fms/pom.xml
index 4e280d145d59..5b09390f30e0 100644
--- a/services/fms/pom.xml
+++ b/services/fms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
fms
AWS Java SDK :: Services :: FMS
diff --git a/services/forecast/pom.xml b/services/forecast/pom.xml
index 586b733ffe9f..d3439e513388 100644
--- a/services/forecast/pom.xml
+++ b/services/forecast/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
forecast
AWS Java SDK :: Services :: Forecast
diff --git a/services/forecastquery/pom.xml b/services/forecastquery/pom.xml
index 3d14d4eea511..9afc941ad9d0 100644
--- a/services/forecastquery/pom.xml
+++ b/services/forecastquery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
forecastquery
AWS Java SDK :: Services :: Forecastquery
diff --git a/services/frauddetector/pom.xml b/services/frauddetector/pom.xml
index d5780813430a..faefee8547c4 100644
--- a/services/frauddetector/pom.xml
+++ b/services/frauddetector/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
frauddetector
AWS Java SDK :: Services :: FraudDetector
diff --git a/services/freetier/pom.xml b/services/freetier/pom.xml
index 4e01dc9fcc17..fc053ec623ca 100644
--- a/services/freetier/pom.xml
+++ b/services/freetier/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
freetier
AWS Java SDK :: Services :: Free Tier
diff --git a/services/fsx/pom.xml b/services/fsx/pom.xml
index 517bfa60bcca..22fe58142236 100644
--- a/services/fsx/pom.xml
+++ b/services/fsx/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
fsx
AWS Java SDK :: Services :: FSx
diff --git a/services/gamelift/pom.xml b/services/gamelift/pom.xml
index d4b1a3ca56f5..0d17249b8a43 100644
--- a/services/gamelift/pom.xml
+++ b/services/gamelift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
gamelift
AWS Java SDK :: Services :: AWS GameLift
diff --git a/services/glacier/pom.xml b/services/glacier/pom.xml
index ef6d2ba60260..f7250d4a6d17 100644
--- a/services/glacier/pom.xml
+++ b/services/glacier/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
glacier
AWS Java SDK :: Services :: Amazon Glacier
diff --git a/services/globalaccelerator/pom.xml b/services/globalaccelerator/pom.xml
index b081e6a6f065..a7d2626701d2 100644
--- a/services/globalaccelerator/pom.xml
+++ b/services/globalaccelerator/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
globalaccelerator
AWS Java SDK :: Services :: Global Accelerator
diff --git a/services/glue/pom.xml b/services/glue/pom.xml
index d425606f1a6d..28197f7352e1 100644
--- a/services/glue/pom.xml
+++ b/services/glue/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
glue
diff --git a/services/grafana/pom.xml b/services/grafana/pom.xml
index 84409a078172..66fd6b39bbdd 100644
--- a/services/grafana/pom.xml
+++ b/services/grafana/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
grafana
AWS Java SDK :: Services :: Grafana
diff --git a/services/greengrass/pom.xml b/services/greengrass/pom.xml
index ec202155f3e0..157adc079ca5 100644
--- a/services/greengrass/pom.xml
+++ b/services/greengrass/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
greengrass
AWS Java SDK :: Services :: AWS Greengrass
diff --git a/services/greengrassv2/pom.xml b/services/greengrassv2/pom.xml
index 0b4de0dc5031..317bb58f2348 100644
--- a/services/greengrassv2/pom.xml
+++ b/services/greengrassv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
greengrassv2
AWS Java SDK :: Services :: Greengrass V2
diff --git a/services/groundstation/pom.xml b/services/groundstation/pom.xml
index 3b71bad5588e..975971a885df 100644
--- a/services/groundstation/pom.xml
+++ b/services/groundstation/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
groundstation
AWS Java SDK :: Services :: GroundStation
diff --git a/services/guardduty/pom.xml b/services/guardduty/pom.xml
index 8ec89579f114..1116b7a5f6ca 100644
--- a/services/guardduty/pom.xml
+++ b/services/guardduty/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
guardduty
diff --git a/services/health/pom.xml b/services/health/pom.xml
index fb7274ff6c58..dfbe96f4500b 100644
--- a/services/health/pom.xml
+++ b/services/health/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
health
AWS Java SDK :: Services :: AWS Health APIs and Notifications
diff --git a/services/healthlake/pom.xml b/services/healthlake/pom.xml
index 1678139bdfed..d5c626301d63 100644
--- a/services/healthlake/pom.xml
+++ b/services/healthlake/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
healthlake
AWS Java SDK :: Services :: Health Lake
diff --git a/services/honeycode/pom.xml b/services/honeycode/pom.xml
index 7c2339ce2cb8..250169a04ae7 100644
--- a/services/honeycode/pom.xml
+++ b/services/honeycode/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
honeycode
AWS Java SDK :: Services :: Honeycode
diff --git a/services/iam/pom.xml b/services/iam/pom.xml
index 2fddbf035b8e..d79e0a100df7 100644
--- a/services/iam/pom.xml
+++ b/services/iam/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iam
AWS Java SDK :: Services :: AWS IAM
diff --git a/services/identitystore/pom.xml b/services/identitystore/pom.xml
index 7d0effd5e475..23383324316b 100644
--- a/services/identitystore/pom.xml
+++ b/services/identitystore/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
identitystore
AWS Java SDK :: Services :: Identitystore
diff --git a/services/imagebuilder/pom.xml b/services/imagebuilder/pom.xml
index 8847912112c6..5931fd39f235 100644
--- a/services/imagebuilder/pom.xml
+++ b/services/imagebuilder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
imagebuilder
AWS Java SDK :: Services :: Imagebuilder
diff --git a/services/inspector/pom.xml b/services/inspector/pom.xml
index b7768a415a98..203a28178037 100644
--- a/services/inspector/pom.xml
+++ b/services/inspector/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
inspector
AWS Java SDK :: Services :: Amazon Inspector Service
diff --git a/services/inspector2/pom.xml b/services/inspector2/pom.xml
index 7b0f36acc15d..626cb27cfc9c 100644
--- a/services/inspector2/pom.xml
+++ b/services/inspector2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
inspector2
AWS Java SDK :: Services :: Inspector2
diff --git a/services/inspectorscan/pom.xml b/services/inspectorscan/pom.xml
index 5a97d167032d..9ef82226427b 100644
--- a/services/inspectorscan/pom.xml
+++ b/services/inspectorscan/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
inspectorscan
AWS Java SDK :: Services :: Inspector Scan
diff --git a/services/internetmonitor/pom.xml b/services/internetmonitor/pom.xml
index 246eb57241a5..aaf02ff83dac 100644
--- a/services/internetmonitor/pom.xml
+++ b/services/internetmonitor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
internetmonitor
AWS Java SDK :: Services :: Internet Monitor
diff --git a/services/iot/pom.xml b/services/iot/pom.xml
index 9eac0db6ddc3..5fb4425084fe 100644
--- a/services/iot/pom.xml
+++ b/services/iot/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iot
AWS Java SDK :: Services :: AWS IoT
diff --git a/services/iot1clickdevices/pom.xml b/services/iot1clickdevices/pom.xml
index 62d07de56ea9..a36208d6af0f 100644
--- a/services/iot1clickdevices/pom.xml
+++ b/services/iot1clickdevices/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iot1clickdevices
AWS Java SDK :: Services :: IoT 1Click Devices Service
diff --git a/services/iot1clickprojects/pom.xml b/services/iot1clickprojects/pom.xml
index 8b03b0001b08..3d7a871ea2c6 100644
--- a/services/iot1clickprojects/pom.xml
+++ b/services/iot1clickprojects/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iot1clickprojects
AWS Java SDK :: Services :: IoT 1Click Projects
diff --git a/services/iotanalytics/pom.xml b/services/iotanalytics/pom.xml
index 34acf7687523..49510ad59537 100644
--- a/services/iotanalytics/pom.xml
+++ b/services/iotanalytics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotanalytics
AWS Java SDK :: Services :: IoTAnalytics
diff --git a/services/iotdataplane/pom.xml b/services/iotdataplane/pom.xml
index d5d1cdeca7f7..add0aa9402ca 100644
--- a/services/iotdataplane/pom.xml
+++ b/services/iotdataplane/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotdataplane
AWS Java SDK :: Services :: AWS IoT Data Plane
diff --git a/services/iotdeviceadvisor/pom.xml b/services/iotdeviceadvisor/pom.xml
index 17dc54012bb3..db24892c7627 100644
--- a/services/iotdeviceadvisor/pom.xml
+++ b/services/iotdeviceadvisor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotdeviceadvisor
AWS Java SDK :: Services :: Iot Device Advisor
diff --git a/services/iotevents/pom.xml b/services/iotevents/pom.xml
index eae938d066ac..791fbe2cd7df 100644
--- a/services/iotevents/pom.xml
+++ b/services/iotevents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotevents
AWS Java SDK :: Services :: IoT Events
diff --git a/services/ioteventsdata/pom.xml b/services/ioteventsdata/pom.xml
index 359233449360..e618e31c0682 100644
--- a/services/ioteventsdata/pom.xml
+++ b/services/ioteventsdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ioteventsdata
AWS Java SDK :: Services :: IoT Events Data
diff --git a/services/iotfleethub/pom.xml b/services/iotfleethub/pom.xml
index f807036dcf05..c8850c40d2cd 100644
--- a/services/iotfleethub/pom.xml
+++ b/services/iotfleethub/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotfleethub
AWS Java SDK :: Services :: Io T Fleet Hub
diff --git a/services/iotfleetwise/pom.xml b/services/iotfleetwise/pom.xml
index 35edd538738b..ba6a8b1f8220 100644
--- a/services/iotfleetwise/pom.xml
+++ b/services/iotfleetwise/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotfleetwise
AWS Java SDK :: Services :: Io T Fleet Wise
diff --git a/services/iotjobsdataplane/pom.xml b/services/iotjobsdataplane/pom.xml
index daf19a3babb0..d5f0f7ddfd41 100644
--- a/services/iotjobsdataplane/pom.xml
+++ b/services/iotjobsdataplane/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotjobsdataplane
AWS Java SDK :: Services :: IoT Jobs Data Plane
diff --git a/services/iotsecuretunneling/pom.xml b/services/iotsecuretunneling/pom.xml
index e233fa104cd4..bd5b1ecb8bd0 100644
--- a/services/iotsecuretunneling/pom.xml
+++ b/services/iotsecuretunneling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotsecuretunneling
AWS Java SDK :: Services :: IoTSecureTunneling
diff --git a/services/iotsitewise/pom.xml b/services/iotsitewise/pom.xml
index d0d2b3fda315..0631c24d9ce1 100644
--- a/services/iotsitewise/pom.xml
+++ b/services/iotsitewise/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotsitewise
AWS Java SDK :: Services :: Io T Site Wise
diff --git a/services/iotthingsgraph/pom.xml b/services/iotthingsgraph/pom.xml
index e837dbeab8f2..c8412a1f3784 100644
--- a/services/iotthingsgraph/pom.xml
+++ b/services/iotthingsgraph/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotthingsgraph
AWS Java SDK :: Services :: IoTThingsGraph
diff --git a/services/iottwinmaker/pom.xml b/services/iottwinmaker/pom.xml
index d61efc048aa8..2da1fb5017d3 100644
--- a/services/iottwinmaker/pom.xml
+++ b/services/iottwinmaker/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iottwinmaker
AWS Java SDK :: Services :: Io T Twin Maker
diff --git a/services/iotwireless/pom.xml b/services/iotwireless/pom.xml
index 5c97f9091c22..e59dd1712ecf 100644
--- a/services/iotwireless/pom.xml
+++ b/services/iotwireless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
iotwireless
AWS Java SDK :: Services :: IoT Wireless
diff --git a/services/ivs/pom.xml b/services/ivs/pom.xml
index fa72837ccba7..c05475959950 100644
--- a/services/ivs/pom.xml
+++ b/services/ivs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ivs
AWS Java SDK :: Services :: Ivs
diff --git a/services/ivschat/pom.xml b/services/ivschat/pom.xml
index 53a635e5c1cd..333e7bf57b43 100644
--- a/services/ivschat/pom.xml
+++ b/services/ivschat/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ivschat
AWS Java SDK :: Services :: Ivschat
diff --git a/services/ivsrealtime/pom.xml b/services/ivsrealtime/pom.xml
index e03b78788a05..156a18b39135 100644
--- a/services/ivsrealtime/pom.xml
+++ b/services/ivsrealtime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ivsrealtime
AWS Java SDK :: Services :: IVS Real Time
diff --git a/services/kafka/pom.xml b/services/kafka/pom.xml
index a2eae18c4187..4d7d159a8a45 100644
--- a/services/kafka/pom.xml
+++ b/services/kafka/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kafka
AWS Java SDK :: Services :: Kafka
diff --git a/services/kafkaconnect/pom.xml b/services/kafkaconnect/pom.xml
index 9bd4385e5903..23ce7ad04880 100644
--- a/services/kafkaconnect/pom.xml
+++ b/services/kafkaconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kafkaconnect
AWS Java SDK :: Services :: Kafka Connect
diff --git a/services/kendra/pom.xml b/services/kendra/pom.xml
index b1dbe30c3ee4..d53ff2bf67df 100644
--- a/services/kendra/pom.xml
+++ b/services/kendra/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kendra
AWS Java SDK :: Services :: Kendra
diff --git a/services/kendraranking/pom.xml b/services/kendraranking/pom.xml
index a0bd93de6ff1..23e006899261 100644
--- a/services/kendraranking/pom.xml
+++ b/services/kendraranking/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kendraranking
AWS Java SDK :: Services :: Kendra Ranking
diff --git a/services/keyspaces/pom.xml b/services/keyspaces/pom.xml
index a90433c0871c..2a73c5f02866 100644
--- a/services/keyspaces/pom.xml
+++ b/services/keyspaces/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
keyspaces
AWS Java SDK :: Services :: Keyspaces
diff --git a/services/kinesis/pom.xml b/services/kinesis/pom.xml
index 00343e803697..eafec5164d79 100644
--- a/services/kinesis/pom.xml
+++ b/services/kinesis/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kinesis
AWS Java SDK :: Services :: Amazon Kinesis
diff --git a/services/kinesisanalytics/pom.xml b/services/kinesisanalytics/pom.xml
index bc558491aa6a..49fa04a6e439 100644
--- a/services/kinesisanalytics/pom.xml
+++ b/services/kinesisanalytics/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kinesisanalytics
AWS Java SDK :: Services :: Amazon Kinesis Analytics
diff --git a/services/kinesisanalyticsv2/pom.xml b/services/kinesisanalyticsv2/pom.xml
index 30633eb7f277..8756e43c49ed 100644
--- a/services/kinesisanalyticsv2/pom.xml
+++ b/services/kinesisanalyticsv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kinesisanalyticsv2
AWS Java SDK :: Services :: Kinesis Analytics V2
diff --git a/services/kinesisvideo/pom.xml b/services/kinesisvideo/pom.xml
index 17b7965bd0c5..ab60a8cf53f7 100644
--- a/services/kinesisvideo/pom.xml
+++ b/services/kinesisvideo/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
kinesisvideo
diff --git a/services/kinesisvideoarchivedmedia/pom.xml b/services/kinesisvideoarchivedmedia/pom.xml
index 9f614636fc28..c7eb28d9400b 100644
--- a/services/kinesisvideoarchivedmedia/pom.xml
+++ b/services/kinesisvideoarchivedmedia/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kinesisvideoarchivedmedia
AWS Java SDK :: Services :: Kinesis Video Archived Media
diff --git a/services/kinesisvideomedia/pom.xml b/services/kinesisvideomedia/pom.xml
index eded59999369..f73773443009 100644
--- a/services/kinesisvideomedia/pom.xml
+++ b/services/kinesisvideomedia/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kinesisvideomedia
AWS Java SDK :: Services :: Kinesis Video Media
diff --git a/services/kinesisvideosignaling/pom.xml b/services/kinesisvideosignaling/pom.xml
index 9ec660fb1535..3152718b7f82 100644
--- a/services/kinesisvideosignaling/pom.xml
+++ b/services/kinesisvideosignaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kinesisvideosignaling
AWS Java SDK :: Services :: Kinesis Video Signaling
diff --git a/services/kinesisvideowebrtcstorage/pom.xml b/services/kinesisvideowebrtcstorage/pom.xml
index c1a92a335157..f200583de8a6 100644
--- a/services/kinesisvideowebrtcstorage/pom.xml
+++ b/services/kinesisvideowebrtcstorage/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kinesisvideowebrtcstorage
AWS Java SDK :: Services :: Kinesis Video Web RTC Storage
diff --git a/services/kms/pom.xml b/services/kms/pom.xml
index f31b7464068b..f89943e19ed5 100644
--- a/services/kms/pom.xml
+++ b/services/kms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
kms
AWS Java SDK :: Services :: AWS KMS
diff --git a/services/lakeformation/pom.xml b/services/lakeformation/pom.xml
index d68d12e34aaa..e5499c15c1aa 100644
--- a/services/lakeformation/pom.xml
+++ b/services/lakeformation/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lakeformation
AWS Java SDK :: Services :: LakeFormation
diff --git a/services/lambda/pom.xml b/services/lambda/pom.xml
index 988f8dd794e1..392ae86b5d8a 100644
--- a/services/lambda/pom.xml
+++ b/services/lambda/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lambda
AWS Java SDK :: Services :: AWS Lambda
diff --git a/services/launchwizard/pom.xml b/services/launchwizard/pom.xml
index 644582b03082..09f27184930d 100644
--- a/services/launchwizard/pom.xml
+++ b/services/launchwizard/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
launchwizard
AWS Java SDK :: Services :: Launch Wizard
diff --git a/services/lexmodelbuilding/pom.xml b/services/lexmodelbuilding/pom.xml
index c0f012447a42..4588e7d754e1 100644
--- a/services/lexmodelbuilding/pom.xml
+++ b/services/lexmodelbuilding/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lexmodelbuilding
AWS Java SDK :: Services :: Amazon Lex Model Building
diff --git a/services/lexmodelsv2/pom.xml b/services/lexmodelsv2/pom.xml
index 23ec74ca45ad..983c025eab2c 100644
--- a/services/lexmodelsv2/pom.xml
+++ b/services/lexmodelsv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lexmodelsv2
AWS Java SDK :: Services :: Lex Models V2
diff --git a/services/lexruntime/pom.xml b/services/lexruntime/pom.xml
index 0021d48a6b25..469f66647b40 100644
--- a/services/lexruntime/pom.xml
+++ b/services/lexruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lexruntime
AWS Java SDK :: Services :: Amazon Lex Runtime
diff --git a/services/lexruntimev2/pom.xml b/services/lexruntimev2/pom.xml
index 2c192a70f58b..8290fc2fba8b 100644
--- a/services/lexruntimev2/pom.xml
+++ b/services/lexruntimev2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lexruntimev2
AWS Java SDK :: Services :: Lex Runtime V2
diff --git a/services/licensemanager/pom.xml b/services/licensemanager/pom.xml
index 22e6b7c19441..df91839db9e2 100644
--- a/services/licensemanager/pom.xml
+++ b/services/licensemanager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
licensemanager
AWS Java SDK :: Services :: License Manager
diff --git a/services/licensemanagerlinuxsubscriptions/pom.xml b/services/licensemanagerlinuxsubscriptions/pom.xml
index aee7f41e96ce..03391ae5147f 100644
--- a/services/licensemanagerlinuxsubscriptions/pom.xml
+++ b/services/licensemanagerlinuxsubscriptions/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
licensemanagerlinuxsubscriptions
AWS Java SDK :: Services :: License Manager Linux Subscriptions
diff --git a/services/licensemanagerusersubscriptions/pom.xml b/services/licensemanagerusersubscriptions/pom.xml
index 21fd3e8df907..3f8008d33a13 100644
--- a/services/licensemanagerusersubscriptions/pom.xml
+++ b/services/licensemanagerusersubscriptions/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
licensemanagerusersubscriptions
AWS Java SDK :: Services :: License Manager User Subscriptions
diff --git a/services/lightsail/pom.xml b/services/lightsail/pom.xml
index ca4a497659c1..ce836dd9ca5f 100644
--- a/services/lightsail/pom.xml
+++ b/services/lightsail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lightsail
AWS Java SDK :: Services :: Amazon Lightsail
diff --git a/services/location/pom.xml b/services/location/pom.xml
index 218fa93439f4..dca617704d45 100644
--- a/services/location/pom.xml
+++ b/services/location/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
location
AWS Java SDK :: Services :: Location
diff --git a/services/lookoutequipment/pom.xml b/services/lookoutequipment/pom.xml
index 25e5b10ed274..b3314740f859 100644
--- a/services/lookoutequipment/pom.xml
+++ b/services/lookoutequipment/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lookoutequipment
AWS Java SDK :: Services :: Lookout Equipment
diff --git a/services/lookoutmetrics/pom.xml b/services/lookoutmetrics/pom.xml
index 1dfbf8746413..8a4557a1f382 100644
--- a/services/lookoutmetrics/pom.xml
+++ b/services/lookoutmetrics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lookoutmetrics
AWS Java SDK :: Services :: Lookout Metrics
diff --git a/services/lookoutvision/pom.xml b/services/lookoutvision/pom.xml
index 7132177dc581..292f0d323feb 100644
--- a/services/lookoutvision/pom.xml
+++ b/services/lookoutvision/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
lookoutvision
AWS Java SDK :: Services :: Lookout Vision
diff --git a/services/m2/pom.xml b/services/m2/pom.xml
index aa6e21834553..08a9c779ee95 100644
--- a/services/m2/pom.xml
+++ b/services/m2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
m2
AWS Java SDK :: Services :: M2
diff --git a/services/machinelearning/pom.xml b/services/machinelearning/pom.xml
index 4f6dc6b803a4..701e51125962 100644
--- a/services/machinelearning/pom.xml
+++ b/services/machinelearning/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
machinelearning
AWS Java SDK :: Services :: Amazon Machine Learning
diff --git a/services/macie2/pom.xml b/services/macie2/pom.xml
index e34ab13e0ebf..72d460c7cf4a 100644
--- a/services/macie2/pom.xml
+++ b/services/macie2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
macie2
AWS Java SDK :: Services :: Macie2
diff --git a/services/managedblockchain/pom.xml b/services/managedblockchain/pom.xml
index 9719c3169e15..1a82d817c942 100644
--- a/services/managedblockchain/pom.xml
+++ b/services/managedblockchain/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
managedblockchain
AWS Java SDK :: Services :: ManagedBlockchain
diff --git a/services/managedblockchainquery/pom.xml b/services/managedblockchainquery/pom.xml
index 971b8bdf1f31..382e27e1999b 100644
--- a/services/managedblockchainquery/pom.xml
+++ b/services/managedblockchainquery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
managedblockchainquery
AWS Java SDK :: Services :: Managed Blockchain Query
diff --git a/services/marketplaceagreement/pom.xml b/services/marketplaceagreement/pom.xml
index 24d6f005d76b..969ca4e5583a 100644
--- a/services/marketplaceagreement/pom.xml
+++ b/services/marketplaceagreement/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
marketplaceagreement
AWS Java SDK :: Services :: Marketplace Agreement
diff --git a/services/marketplacecatalog/pom.xml b/services/marketplacecatalog/pom.xml
index 2bdf68454c05..6f5a267702a9 100644
--- a/services/marketplacecatalog/pom.xml
+++ b/services/marketplacecatalog/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
marketplacecatalog
AWS Java SDK :: Services :: Marketplace Catalog
diff --git a/services/marketplacecommerceanalytics/pom.xml b/services/marketplacecommerceanalytics/pom.xml
index 58a998c42a05..d49e8928a9a9 100644
--- a/services/marketplacecommerceanalytics/pom.xml
+++ b/services/marketplacecommerceanalytics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
marketplacecommerceanalytics
AWS Java SDK :: Services :: AWS Marketplace Commerce Analytics
diff --git a/services/marketplacedeployment/pom.xml b/services/marketplacedeployment/pom.xml
index 30f981582cc9..d67920c01279 100644
--- a/services/marketplacedeployment/pom.xml
+++ b/services/marketplacedeployment/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
marketplacedeployment
AWS Java SDK :: Services :: Marketplace Deployment
diff --git a/services/marketplaceentitlement/pom.xml b/services/marketplaceentitlement/pom.xml
index 563743e1d241..3cd6b64114e0 100644
--- a/services/marketplaceentitlement/pom.xml
+++ b/services/marketplaceentitlement/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
marketplaceentitlement
AWS Java SDK :: Services :: AWS Marketplace Entitlement
diff --git a/services/marketplacemetering/pom.xml b/services/marketplacemetering/pom.xml
index c19b76ecac09..cb2d6dfcbf08 100644
--- a/services/marketplacemetering/pom.xml
+++ b/services/marketplacemetering/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
marketplacemetering
AWS Java SDK :: Services :: AWS Marketplace Metering Service
diff --git a/services/mediaconnect/pom.xml b/services/mediaconnect/pom.xml
index 533d57d08f88..baf29551b4af 100644
--- a/services/mediaconnect/pom.xml
+++ b/services/mediaconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
mediaconnect
AWS Java SDK :: Services :: MediaConnect
diff --git a/services/mediaconvert/pom.xml b/services/mediaconvert/pom.xml
index 40fed44c43c7..646dc7417a1c 100644
--- a/services/mediaconvert/pom.xml
+++ b/services/mediaconvert/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
mediaconvert
diff --git a/services/medialive/pom.xml b/services/medialive/pom.xml
index f44b594363a9..b03b81869f1f 100644
--- a/services/medialive/pom.xml
+++ b/services/medialive/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
medialive
diff --git a/services/mediapackage/pom.xml b/services/mediapackage/pom.xml
index 4593e0b7d8a9..f0122c67730b 100644
--- a/services/mediapackage/pom.xml
+++ b/services/mediapackage/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
mediapackage
diff --git a/services/mediapackagev2/pom.xml b/services/mediapackagev2/pom.xml
index f43a8388b818..73992945507a 100644
--- a/services/mediapackagev2/pom.xml
+++ b/services/mediapackagev2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
mediapackagev2
AWS Java SDK :: Services :: Media Package V2
diff --git a/services/mediapackagevod/pom.xml b/services/mediapackagevod/pom.xml
index 3587595f34c8..7db118b3bdad 100644
--- a/services/mediapackagevod/pom.xml
+++ b/services/mediapackagevod/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
mediapackagevod
AWS Java SDK :: Services :: MediaPackage Vod
diff --git a/services/mediastore/pom.xml b/services/mediastore/pom.xml
index 0ac3fceb1572..be2a73460b91 100644
--- a/services/mediastore/pom.xml
+++ b/services/mediastore/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
mediastore
diff --git a/services/mediastoredata/pom.xml b/services/mediastoredata/pom.xml
index b73ddd12e49c..96ab4c56e3db 100644
--- a/services/mediastoredata/pom.xml
+++ b/services/mediastoredata/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
mediastoredata
diff --git a/services/mediatailor/pom.xml b/services/mediatailor/pom.xml
index 97a5b0007f90..94730665cfa2 100644
--- a/services/mediatailor/pom.xml
+++ b/services/mediatailor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
mediatailor
AWS Java SDK :: Services :: MediaTailor
diff --git a/services/medicalimaging/pom.xml b/services/medicalimaging/pom.xml
index f4fdc1eeaba3..459d6316213d 100644
--- a/services/medicalimaging/pom.xml
+++ b/services/medicalimaging/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
medicalimaging
AWS Java SDK :: Services :: Medical Imaging
diff --git a/services/memorydb/pom.xml b/services/memorydb/pom.xml
index b0ca52794345..d231c83f142d 100644
--- a/services/memorydb/pom.xml
+++ b/services/memorydb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
memorydb
AWS Java SDK :: Services :: Memory DB
diff --git a/services/mgn/pom.xml b/services/mgn/pom.xml
index b375cd09a282..4818c6c7fa6d 100644
--- a/services/mgn/pom.xml
+++ b/services/mgn/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
mgn
AWS Java SDK :: Services :: Mgn
diff --git a/services/migrationhub/pom.xml b/services/migrationhub/pom.xml
index 8e78e7f7afe7..a11a24d3140a 100644
--- a/services/migrationhub/pom.xml
+++ b/services/migrationhub/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
migrationhub
diff --git a/services/migrationhubconfig/pom.xml b/services/migrationhubconfig/pom.xml
index eb01e0ea9af4..490e3bff4ddd 100644
--- a/services/migrationhubconfig/pom.xml
+++ b/services/migrationhubconfig/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
migrationhubconfig
AWS Java SDK :: Services :: MigrationHub Config
diff --git a/services/migrationhuborchestrator/pom.xml b/services/migrationhuborchestrator/pom.xml
index 3fb9f2c585bd..7d45104ef500 100644
--- a/services/migrationhuborchestrator/pom.xml
+++ b/services/migrationhuborchestrator/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
migrationhuborchestrator
AWS Java SDK :: Services :: Migration Hub Orchestrator
diff --git a/services/migrationhubrefactorspaces/pom.xml b/services/migrationhubrefactorspaces/pom.xml
index 18bf1a4ba3d9..062958d2439a 100644
--- a/services/migrationhubrefactorspaces/pom.xml
+++ b/services/migrationhubrefactorspaces/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
migrationhubrefactorspaces
AWS Java SDK :: Services :: Migration Hub Refactor Spaces
diff --git a/services/migrationhubstrategy/pom.xml b/services/migrationhubstrategy/pom.xml
index 47ecf021f0f2..4ab6dc0ef96b 100644
--- a/services/migrationhubstrategy/pom.xml
+++ b/services/migrationhubstrategy/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
migrationhubstrategy
AWS Java SDK :: Services :: Migration Hub Strategy
diff --git a/services/mobile/pom.xml b/services/mobile/pom.xml
index 6ffd984e4c6a..b53e2e8ecf5c 100644
--- a/services/mobile/pom.xml
+++ b/services/mobile/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
mobile
diff --git a/services/mq/pom.xml b/services/mq/pom.xml
index b70b9c348c8f..f27b762cf29b 100644
--- a/services/mq/pom.xml
+++ b/services/mq/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
mq
diff --git a/services/mturk/pom.xml b/services/mturk/pom.xml
index 3df74e0abe85..1da9e1cea6c6 100644
--- a/services/mturk/pom.xml
+++ b/services/mturk/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
mturk
AWS Java SDK :: Services :: Amazon Mechanical Turk Requester
diff --git a/services/mwaa/pom.xml b/services/mwaa/pom.xml
index 94b5f1a99108..bcb5a51a8bd4 100644
--- a/services/mwaa/pom.xml
+++ b/services/mwaa/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
mwaa
AWS Java SDK :: Services :: MWAA
diff --git a/services/neptune/pom.xml b/services/neptune/pom.xml
index 66242e716f91..3a81e5cb53e4 100644
--- a/services/neptune/pom.xml
+++ b/services/neptune/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
neptune
AWS Java SDK :: Services :: Neptune
diff --git a/services/neptunedata/pom.xml b/services/neptunedata/pom.xml
index fcba242bd501..518198d8299c 100644
--- a/services/neptunedata/pom.xml
+++ b/services/neptunedata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
neptunedata
AWS Java SDK :: Services :: Neptunedata
diff --git a/services/neptunegraph/pom.xml b/services/neptunegraph/pom.xml
index 5f12f512923f..4f9dd49e489c 100644
--- a/services/neptunegraph/pom.xml
+++ b/services/neptunegraph/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
neptunegraph
AWS Java SDK :: Services :: Neptune Graph
diff --git a/services/networkfirewall/pom.xml b/services/networkfirewall/pom.xml
index f1ca7c8a2415..a8f0208acecc 100644
--- a/services/networkfirewall/pom.xml
+++ b/services/networkfirewall/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
networkfirewall
AWS Java SDK :: Services :: Network Firewall
diff --git a/services/networkmanager/pom.xml b/services/networkmanager/pom.xml
index e6c692e03f23..203764a0b3eb 100644
--- a/services/networkmanager/pom.xml
+++ b/services/networkmanager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
networkmanager
AWS Java SDK :: Services :: NetworkManager
diff --git a/services/networkmonitor/pom.xml b/services/networkmonitor/pom.xml
index 2bd50e770ba5..9087b3ef5eaf 100644
--- a/services/networkmonitor/pom.xml
+++ b/services/networkmonitor/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
networkmonitor
AWS Java SDK :: Services :: Network Monitor
diff --git a/services/nimble/pom.xml b/services/nimble/pom.xml
index 0ab04b9d4802..da9dc95ba1c6 100644
--- a/services/nimble/pom.xml
+++ b/services/nimble/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
nimble
AWS Java SDK :: Services :: Nimble
diff --git a/services/oam/pom.xml b/services/oam/pom.xml
index 2624c6e51a72..8873a30bc1c3 100644
--- a/services/oam/pom.xml
+++ b/services/oam/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
oam
AWS Java SDK :: Services :: OAM
diff --git a/services/omics/pom.xml b/services/omics/pom.xml
index 3b03278443ba..acb6c3548ba4 100644
--- a/services/omics/pom.xml
+++ b/services/omics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
omics
AWS Java SDK :: Services :: Omics
diff --git a/services/opensearch/pom.xml b/services/opensearch/pom.xml
index 250ab698aa03..513f47c5109f 100644
--- a/services/opensearch/pom.xml
+++ b/services/opensearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
opensearch
AWS Java SDK :: Services :: Open Search
diff --git a/services/opensearchserverless/pom.xml b/services/opensearchserverless/pom.xml
index 9915b9cbcfdb..17e4876b2262 100644
--- a/services/opensearchserverless/pom.xml
+++ b/services/opensearchserverless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
opensearchserverless
AWS Java SDK :: Services :: Open Search Serverless
diff --git a/services/opsworks/pom.xml b/services/opsworks/pom.xml
index 18d77d6d446f..91ab316e24d2 100644
--- a/services/opsworks/pom.xml
+++ b/services/opsworks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
opsworks
AWS Java SDK :: Services :: AWS OpsWorks
diff --git a/services/opsworkscm/pom.xml b/services/opsworkscm/pom.xml
index daf03384f46b..0681683e2c76 100644
--- a/services/opsworkscm/pom.xml
+++ b/services/opsworkscm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
opsworkscm
AWS Java SDK :: Services :: AWS OpsWorks for Chef Automate
diff --git a/services/organizations/pom.xml b/services/organizations/pom.xml
index 4ef3c95f11f2..c6ab21ab7f97 100644
--- a/services/organizations/pom.xml
+++ b/services/organizations/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
organizations
AWS Java SDK :: Services :: AWS Organizations
diff --git a/services/osis/pom.xml b/services/osis/pom.xml
index 4a719b2e4c2d..ef773362320c 100644
--- a/services/osis/pom.xml
+++ b/services/osis/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
osis
AWS Java SDK :: Services :: OSIS
diff --git a/services/outposts/pom.xml b/services/outposts/pom.xml
index 57d292cb6b3e..369b88afeede 100644
--- a/services/outposts/pom.xml
+++ b/services/outposts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
outposts
AWS Java SDK :: Services :: Outposts
diff --git a/services/panorama/pom.xml b/services/panorama/pom.xml
index 037876fd299e..83e61c78839c 100644
--- a/services/panorama/pom.xml
+++ b/services/panorama/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
panorama
AWS Java SDK :: Services :: Panorama
diff --git a/services/paymentcryptography/pom.xml b/services/paymentcryptography/pom.xml
index e66dce121207..e8612c5731fd 100644
--- a/services/paymentcryptography/pom.xml
+++ b/services/paymentcryptography/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
paymentcryptography
AWS Java SDK :: Services :: Payment Cryptography
diff --git a/services/paymentcryptographydata/pom.xml b/services/paymentcryptographydata/pom.xml
index 95284dbd5580..0d517b0706ee 100644
--- a/services/paymentcryptographydata/pom.xml
+++ b/services/paymentcryptographydata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
paymentcryptographydata
AWS Java SDK :: Services :: Payment Cryptography Data
diff --git a/services/pcaconnectorad/pom.xml b/services/pcaconnectorad/pom.xml
index a97b4439224a..b1ce0fe1185b 100644
--- a/services/pcaconnectorad/pom.xml
+++ b/services/pcaconnectorad/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
pcaconnectorad
AWS Java SDK :: Services :: Pca Connector Ad
diff --git a/services/personalize/pom.xml b/services/personalize/pom.xml
index b70cf2df1c52..83c140142066 100644
--- a/services/personalize/pom.xml
+++ b/services/personalize/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
personalize
AWS Java SDK :: Services :: Personalize
diff --git a/services/personalizeevents/pom.xml b/services/personalizeevents/pom.xml
index 7459c3ce8501..74b4f471370e 100644
--- a/services/personalizeevents/pom.xml
+++ b/services/personalizeevents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
personalizeevents
AWS Java SDK :: Services :: Personalize Events
diff --git a/services/personalizeruntime/pom.xml b/services/personalizeruntime/pom.xml
index fb10fa5b3e28..40983a49bb77 100644
--- a/services/personalizeruntime/pom.xml
+++ b/services/personalizeruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
personalizeruntime
AWS Java SDK :: Services :: Personalize Runtime
diff --git a/services/pi/pom.xml b/services/pi/pom.xml
index 2b7c21169c87..730da3fbc9e6 100644
--- a/services/pi/pom.xml
+++ b/services/pi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
pi
AWS Java SDK :: Services :: PI
diff --git a/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json
index 2a013d4fe262..59d8979adddb 100644
--- a/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json
+++ b/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json
@@ -40,7 +40,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -83,7 +82,8 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [
@@ -96,7 +96,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -110,7 +109,6 @@
"assign": "PartitionResult"
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -133,7 +131,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -168,7 +165,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [],
@@ -179,14 +175,16 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [
@@ -200,14 +198,12 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
- true,
{
"fn": "getAttr",
"argv": [
@@ -216,11 +212,11 @@
},
"supportsFIPS"
]
- }
+ },
+ true
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [],
@@ -231,14 +227,16 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [
@@ -252,7 +250,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -272,7 +269,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [],
@@ -283,14 +279,16 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
@@ -301,9 +299,11 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
diff --git a/services/pi/src/main/resources/codegen-resources/service-2.json b/services/pi/src/main/resources/codegen-resources/service-2.json
index d80c7e263126..5d997fdb2841 100644
--- a/services/pi/src/main/resources/codegen-resources/service-2.json
+++ b/services/pi/src/main/resources/codegen-resources/service-2.json
@@ -117,7 +117,7 @@
{"shape":"InternalServiceError"},
{"shape":"NotAuthorizedException"}
],
- "documentation":"Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group.
Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.
"
+ "documentation":"Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide specific dimension groups and dimensions, and provide filtering criteria for each group. You must specify an aggregate function for each metric.
Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.
"
},
"ListAvailableResourceDimensions":{
"name":"ListAvailableResourceDimensions",
@@ -807,7 +807,7 @@
},
"MetricQueries":{
"shape":"MetricQueryList",
- "documentation":"An array of one or more queries to perform. Each query must specify a Performance Insights metric, and can optionally specify aggregation and filtering criteria.
"
+ "documentation":"An array of one or more queries to perform. Each query must specify a Performance Insights metric and specify an aggregate function, and you can provide filtering criteria. You must append the aggregate function to the metric. For example, to find the average for the metric db.load
you must use db.load.avg
. Valid values for aggregate functions include .avg
, .min
, .max
, and .sum
.
"
},
"StartTime":{
"shape":"ISOTimestamp",
@@ -1153,7 +1153,7 @@
"members":{
"Metric":{
"shape":"RequestString",
- "documentation":"The name of a Performance Insights metric to be measured.
Valid values for Metric
are:
-
db.load.avg
- A scaled representation of the number of active sessions for the database engine.
-
db.sampledload.avg
- The raw number of active sessions for the database engine.
-
The counter metrics listed in Performance Insights operating system counters in the Amazon Aurora User Guide.
If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg
and db.sampledload.avg
are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg
showing the scaled values, db.sampledload.avg
showing the raw values, and db.sampledload.avg
less than db.load.avg
. For most use cases, you can query db.load.avg
only.
"
+ "documentation":"The name of a Performance Insights metric to be measured.
Valid values for Metric
are:
If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg
and db.sampledload.avg
are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg
showing the scaled values, db.sampledload.avg
showing the raw values, and db.sampledload.avg
less than db.load.avg
. For most use cases, you can query db.load.avg
only.
"
},
"GroupBy":{
"shape":"DimensionGroup",
@@ -1164,7 +1164,7 @@
"documentation":"One or more filters to apply in the request. Restrictions:
-
Any number of filters by the same dimension, as specified in the GroupBy
parameter.
-
A single filter for any other dimension in this dimension group.
"
}
},
- "documentation":"A single query to be processed. You must provide the metric to query. If no other parameters are specified, Performance Insights returns all data points for the specified metric. Optionally, you can request that the data points be aggregated by dimension group (GroupBy
), and return only those data points that match your criteria (Filter
).
"
+ "documentation":"A single query to be processed. You must provide the metric to query and append an aggregate function to the metric. For example, to find the average for the metric db.load
you must use db.load.avg
. Valid values for aggregate functions include .avg
, .min
, .max
, and .sum
. If no other parameters are specified, Performance Insights returns all data points for the specified metric. Optionally, you can request that the data points be aggregated by dimension group (GroupBy
), and return only those data points that match your criteria (Filter
).
"
},
"MetricQueryFilterMap":{
"type":"map",
@@ -1303,7 +1303,7 @@
"members":{
"Metric":{
"shape":"String",
- "documentation":"The name of a Performance Insights metric to be measured.
Valid values for Metric
are:
-
db.load.avg
- A scaled representation of the number of active sessions for the database engine.
-
db.sampledload.avg
- The raw number of active sessions for the database engine.
-
The counter metrics listed in Performance Insights operating system counters in the Amazon Aurora User Guide.
If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg
and db.sampledload.avg
are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg
showing the scaled values, db.sampledload.avg
showing the raw values, and db.sampledload.avg
less than db.load.avg
. For most use cases, you can query db.load.avg
only.
"
+ "documentation":"The name of a Performance Insights metric to be measured.
Valid values for Metric
are:
If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg
and db.sampledload.avg
are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg
showing the scaled values, db.sampledload.avg
showing the raw values, and db.sampledload.avg
less than db.load.avg
. For most use cases, you can query db.load.avg
only.
"
},
"Dimensions":{
"shape":"DimensionMap",
diff --git a/services/pinpoint/pom.xml b/services/pinpoint/pom.xml
index b54aad6c349b..2e322991dace 100644
--- a/services/pinpoint/pom.xml
+++ b/services/pinpoint/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
pinpoint
AWS Java SDK :: Services :: Amazon Pinpoint
diff --git a/services/pinpointemail/pom.xml b/services/pinpointemail/pom.xml
index 9df61f193386..b51da0779b27 100644
--- a/services/pinpointemail/pom.xml
+++ b/services/pinpointemail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
pinpointemail
AWS Java SDK :: Services :: Pinpoint Email
diff --git a/services/pinpointsmsvoice/pom.xml b/services/pinpointsmsvoice/pom.xml
index d67b511840a3..83b95e2bd549 100644
--- a/services/pinpointsmsvoice/pom.xml
+++ b/services/pinpointsmsvoice/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
pinpointsmsvoice
AWS Java SDK :: Services :: Pinpoint SMS Voice
diff --git a/services/pinpointsmsvoicev2/pom.xml b/services/pinpointsmsvoicev2/pom.xml
index 0e62b9ad033a..eee3aab15016 100644
--- a/services/pinpointsmsvoicev2/pom.xml
+++ b/services/pinpointsmsvoicev2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
pinpointsmsvoicev2
AWS Java SDK :: Services :: Pinpoint SMS Voice V2
diff --git a/services/pipes/pom.xml b/services/pipes/pom.xml
index 9d601cbb8146..49b0b241ca96 100644
--- a/services/pipes/pom.xml
+++ b/services/pipes/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
pipes
AWS Java SDK :: Services :: Pipes
diff --git a/services/polly/pom.xml b/services/polly/pom.xml
index 28156dac2853..15cb707f77e4 100644
--- a/services/polly/pom.xml
+++ b/services/polly/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
polly
AWS Java SDK :: Services :: Amazon Polly
diff --git a/services/pom.xml b/services/pom.xml
index 59c30a61f1f1..a153696edccd 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
services
AWS Java SDK :: Services
diff --git a/services/pricing/pom.xml b/services/pricing/pom.xml
index c263551c62de..b8fefa9bae0f 100644
--- a/services/pricing/pom.xml
+++ b/services/pricing/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
pricing
diff --git a/services/privatenetworks/pom.xml b/services/privatenetworks/pom.xml
index f8422f76faed..e0f6edc4df8c 100644
--- a/services/privatenetworks/pom.xml
+++ b/services/privatenetworks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
privatenetworks
AWS Java SDK :: Services :: Private Networks
diff --git a/services/proton/pom.xml b/services/proton/pom.xml
index ac71858a902a..fd330d9abac9 100644
--- a/services/proton/pom.xml
+++ b/services/proton/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
proton
AWS Java SDK :: Services :: Proton
diff --git a/services/qbusiness/pom.xml b/services/qbusiness/pom.xml
index 5713520af108..b0c41787941e 100644
--- a/services/qbusiness/pom.xml
+++ b/services/qbusiness/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
qbusiness
AWS Java SDK :: Services :: Q Business
diff --git a/services/qconnect/pom.xml b/services/qconnect/pom.xml
index 5a42fc2235e9..49c8b8096c7a 100644
--- a/services/qconnect/pom.xml
+++ b/services/qconnect/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
qconnect
AWS Java SDK :: Services :: Q Connect
diff --git a/services/qldb/pom.xml b/services/qldb/pom.xml
index 1babedec7c3d..209728186720 100644
--- a/services/qldb/pom.xml
+++ b/services/qldb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
qldb
AWS Java SDK :: Services :: QLDB
diff --git a/services/qldbsession/pom.xml b/services/qldbsession/pom.xml
index 4fb7be26ad69..b4267170faeb 100644
--- a/services/qldbsession/pom.xml
+++ b/services/qldbsession/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
qldbsession
AWS Java SDK :: Services :: QLDB Session
diff --git a/services/quicksight/pom.xml b/services/quicksight/pom.xml
index 2a30ef0827a0..f98492f8921d 100644
--- a/services/quicksight/pom.xml
+++ b/services/quicksight/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
quicksight
AWS Java SDK :: Services :: QuickSight
diff --git a/services/ram/pom.xml b/services/ram/pom.xml
index 0525054fa6a0..3dcff48d862c 100644
--- a/services/ram/pom.xml
+++ b/services/ram/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ram
AWS Java SDK :: Services :: RAM
diff --git a/services/rbin/pom.xml b/services/rbin/pom.xml
index 2fe2e0e210fc..02b96e6e9914 100644
--- a/services/rbin/pom.xml
+++ b/services/rbin/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
rbin
AWS Java SDK :: Services :: Rbin
diff --git a/services/rds/pom.xml b/services/rds/pom.xml
index ee88ce9b3a40..6c1863812576 100644
--- a/services/rds/pom.xml
+++ b/services/rds/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
rds
AWS Java SDK :: Services :: Amazon RDS
diff --git a/services/rds/src/main/resources/codegen-resources/service-2.json b/services/rds/src/main/resources/codegen-resources/service-2.json
index 55711448b8d2..cd9417644dbf 100644
--- a/services/rds/src/main/resources/codegen-resources/service-2.json
+++ b/services/rds/src/main/resources/codegen-resources/service-2.json
@@ -12034,7 +12034,7 @@
"members":{
"ResourceArn":{
"shape":"String",
- "documentation":"The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance. For example, arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db
.
"
+ "documentation":"The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance. For example, arn:aws:rds:us-east-1:12345667890:db:my-orcl-db
.
"
},
"AuditPolicyState":{
"shape":"AuditPolicyState",
diff --git a/services/rdsdata/pom.xml b/services/rdsdata/pom.xml
index b7dae457b670..744d91f089b4 100644
--- a/services/rdsdata/pom.xml
+++ b/services/rdsdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
rdsdata
AWS Java SDK :: Services :: RDS Data
diff --git a/services/redshift/pom.xml b/services/redshift/pom.xml
index c83ce4e98af3..14d3b6cbc391 100644
--- a/services/redshift/pom.xml
+++ b/services/redshift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
redshift
AWS Java SDK :: Services :: Amazon Redshift
diff --git a/services/redshiftdata/pom.xml b/services/redshiftdata/pom.xml
index 056d864323d9..9d89c6930b0e 100644
--- a/services/redshiftdata/pom.xml
+++ b/services/redshiftdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
redshiftdata
AWS Java SDK :: Services :: Redshift Data
diff --git a/services/redshiftserverless/pom.xml b/services/redshiftserverless/pom.xml
index 8f7b144dcd06..dc719367e9fc 100644
--- a/services/redshiftserverless/pom.xml
+++ b/services/redshiftserverless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
redshiftserverless
AWS Java SDK :: Services :: Redshift Serverless
diff --git a/services/rekognition/pom.xml b/services/rekognition/pom.xml
index a5419c3b41d2..4fe7ad33a084 100644
--- a/services/rekognition/pom.xml
+++ b/services/rekognition/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
rekognition
AWS Java SDK :: Services :: Amazon Rekognition
diff --git a/services/repostspace/pom.xml b/services/repostspace/pom.xml
index ad5628306650..33323128419d 100644
--- a/services/repostspace/pom.xml
+++ b/services/repostspace/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
repostspace
AWS Java SDK :: Services :: Repostspace
diff --git a/services/resiliencehub/pom.xml b/services/resiliencehub/pom.xml
index 396245c939a4..1690a06a2d6c 100644
--- a/services/resiliencehub/pom.xml
+++ b/services/resiliencehub/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
resiliencehub
AWS Java SDK :: Services :: Resiliencehub
diff --git a/services/resourceexplorer2/pom.xml b/services/resourceexplorer2/pom.xml
index ee169965fffc..edd967e25e9c 100644
--- a/services/resourceexplorer2/pom.xml
+++ b/services/resourceexplorer2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
resourceexplorer2
AWS Java SDK :: Services :: Resource Explorer 2
diff --git a/services/resourcegroups/pom.xml b/services/resourcegroups/pom.xml
index a4e356458c4a..b799394c357c 100644
--- a/services/resourcegroups/pom.xml
+++ b/services/resourcegroups/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
resourcegroups
diff --git a/services/resourcegroupstaggingapi/pom.xml b/services/resourcegroupstaggingapi/pom.xml
index 073630ff07fe..eabe52e9d9a1 100644
--- a/services/resourcegroupstaggingapi/pom.xml
+++ b/services/resourcegroupstaggingapi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
resourcegroupstaggingapi
AWS Java SDK :: Services :: AWS Resource Groups Tagging API
diff --git a/services/robomaker/pom.xml b/services/robomaker/pom.xml
index b372b64309fe..fe0def424d29 100644
--- a/services/robomaker/pom.xml
+++ b/services/robomaker/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
robomaker
AWS Java SDK :: Services :: RoboMaker
diff --git a/services/rolesanywhere/pom.xml b/services/rolesanywhere/pom.xml
index b23904698b27..7542d64df0ab 100644
--- a/services/rolesanywhere/pom.xml
+++ b/services/rolesanywhere/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
rolesanywhere
AWS Java SDK :: Services :: Roles Anywhere
diff --git a/services/route53/pom.xml b/services/route53/pom.xml
index 15333c5496d1..0b4cea202138 100644
--- a/services/route53/pom.xml
+++ b/services/route53/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
route53
AWS Java SDK :: Services :: Amazon Route53
diff --git a/services/route53domains/pom.xml b/services/route53domains/pom.xml
index 09ad992bc745..c4153ee5e9db 100644
--- a/services/route53domains/pom.xml
+++ b/services/route53domains/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
route53domains
AWS Java SDK :: Services :: Amazon Route53 Domains
diff --git a/services/route53profiles/pom.xml b/services/route53profiles/pom.xml
index 059b894b83b5..29bbacc97edb 100644
--- a/services/route53profiles/pom.xml
+++ b/services/route53profiles/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
route53profiles
AWS Java SDK :: Services :: Route53 Profiles
diff --git a/services/route53recoverycluster/pom.xml b/services/route53recoverycluster/pom.xml
index a37cb0f9a034..d10e71b9814e 100644
--- a/services/route53recoverycluster/pom.xml
+++ b/services/route53recoverycluster/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
route53recoverycluster
AWS Java SDK :: Services :: Route53 Recovery Cluster
diff --git a/services/route53recoverycontrolconfig/pom.xml b/services/route53recoverycontrolconfig/pom.xml
index 53d67b756a4b..d7358a113894 100644
--- a/services/route53recoverycontrolconfig/pom.xml
+++ b/services/route53recoverycontrolconfig/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
route53recoverycontrolconfig
AWS Java SDK :: Services :: Route53 Recovery Control Config
diff --git a/services/route53recoveryreadiness/pom.xml b/services/route53recoveryreadiness/pom.xml
index c6f81ce2f07a..ec9835513b07 100644
--- a/services/route53recoveryreadiness/pom.xml
+++ b/services/route53recoveryreadiness/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
route53recoveryreadiness
AWS Java SDK :: Services :: Route53 Recovery Readiness
diff --git a/services/route53resolver/pom.xml b/services/route53resolver/pom.xml
index 87799940bc89..ea3ddc65d8ef 100644
--- a/services/route53resolver/pom.xml
+++ b/services/route53resolver/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
route53resolver
AWS Java SDK :: Services :: Route53Resolver
diff --git a/services/rum/pom.xml b/services/rum/pom.xml
index 8808ad85f25d..96faf902a9d8 100644
--- a/services/rum/pom.xml
+++ b/services/rum/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
rum
AWS Java SDK :: Services :: RUM
diff --git a/services/s3/pom.xml b/services/s3/pom.xml
index cc374743abbb..0dcee94335b3 100644
--- a/services/s3/pom.xml
+++ b/services/s3/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
s3
AWS Java SDK :: Services :: Amazon S3
diff --git a/services/s3control/pom.xml b/services/s3control/pom.xml
index 77a7e24d106e..ac6ebc8086aa 100644
--- a/services/s3control/pom.xml
+++ b/services/s3control/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
s3control
AWS Java SDK :: Services :: Amazon S3 Control
diff --git a/services/s3outposts/pom.xml b/services/s3outposts/pom.xml
index 4663e0860b88..f2e4aa633f3c 100644
--- a/services/s3outposts/pom.xml
+++ b/services/s3outposts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
s3outposts
AWS Java SDK :: Services :: S3 Outposts
diff --git a/services/sagemaker/pom.xml b/services/sagemaker/pom.xml
index 6692997087b6..069857e2841a 100644
--- a/services/sagemaker/pom.xml
+++ b/services/sagemaker/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
sagemaker
diff --git a/services/sagemakera2iruntime/pom.xml b/services/sagemakera2iruntime/pom.xml
index 2e305cc2d47b..049b886c3b57 100644
--- a/services/sagemakera2iruntime/pom.xml
+++ b/services/sagemakera2iruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sagemakera2iruntime
AWS Java SDK :: Services :: SageMaker A2I Runtime
diff --git a/services/sagemakeredge/pom.xml b/services/sagemakeredge/pom.xml
index 138735e41480..0f2937cf7561 100644
--- a/services/sagemakeredge/pom.xml
+++ b/services/sagemakeredge/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sagemakeredge
AWS Java SDK :: Services :: Sagemaker Edge
diff --git a/services/sagemakerfeaturestoreruntime/pom.xml b/services/sagemakerfeaturestoreruntime/pom.xml
index df416efb7b58..5530bc20ad1e 100644
--- a/services/sagemakerfeaturestoreruntime/pom.xml
+++ b/services/sagemakerfeaturestoreruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sagemakerfeaturestoreruntime
AWS Java SDK :: Services :: Sage Maker Feature Store Runtime
diff --git a/services/sagemakergeospatial/pom.xml b/services/sagemakergeospatial/pom.xml
index 25d572d452a7..0e68d387dc79 100644
--- a/services/sagemakergeospatial/pom.xml
+++ b/services/sagemakergeospatial/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sagemakergeospatial
AWS Java SDK :: Services :: Sage Maker Geospatial
diff --git a/services/sagemakermetrics/pom.xml b/services/sagemakermetrics/pom.xml
index 67a597a8faf6..7d1f25c3927f 100644
--- a/services/sagemakermetrics/pom.xml
+++ b/services/sagemakermetrics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sagemakermetrics
AWS Java SDK :: Services :: Sage Maker Metrics
diff --git a/services/sagemakerruntime/pom.xml b/services/sagemakerruntime/pom.xml
index faf077d90466..5d8fb8ec4ef1 100644
--- a/services/sagemakerruntime/pom.xml
+++ b/services/sagemakerruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sagemakerruntime
AWS Java SDK :: Services :: SageMaker Runtime
diff --git a/services/savingsplans/pom.xml b/services/savingsplans/pom.xml
index 12a92644809f..66461ea452ec 100644
--- a/services/savingsplans/pom.xml
+++ b/services/savingsplans/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
savingsplans
AWS Java SDK :: Services :: Savingsplans
diff --git a/services/scheduler/pom.xml b/services/scheduler/pom.xml
index 7ed37d802b06..767252963022 100644
--- a/services/scheduler/pom.xml
+++ b/services/scheduler/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
scheduler
AWS Java SDK :: Services :: Scheduler
diff --git a/services/schemas/pom.xml b/services/schemas/pom.xml
index ec8efedab10c..8ca44f768eea 100644
--- a/services/schemas/pom.xml
+++ b/services/schemas/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
schemas
AWS Java SDK :: Services :: Schemas
diff --git a/services/secretsmanager/pom.xml b/services/secretsmanager/pom.xml
index e1665385436a..00418bc93e17 100644
--- a/services/secretsmanager/pom.xml
+++ b/services/secretsmanager/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
secretsmanager
AWS Java SDK :: Services :: AWS Secrets Manager
diff --git a/services/securityhub/pom.xml b/services/securityhub/pom.xml
index 055a14db6c68..79bfd73e0a93 100644
--- a/services/securityhub/pom.xml
+++ b/services/securityhub/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
securityhub
AWS Java SDK :: Services :: SecurityHub
diff --git a/services/securitylake/pom.xml b/services/securitylake/pom.xml
index 0cc3e0211333..463ebf3f2fe8 100644
--- a/services/securitylake/pom.xml
+++ b/services/securitylake/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
securitylake
AWS Java SDK :: Services :: Security Lake
diff --git a/services/serverlessapplicationrepository/pom.xml b/services/serverlessapplicationrepository/pom.xml
index 231f23f0ee69..23525f4c492d 100644
--- a/services/serverlessapplicationrepository/pom.xml
+++ b/services/serverlessapplicationrepository/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
serverlessapplicationrepository
diff --git a/services/servicecatalog/pom.xml b/services/servicecatalog/pom.xml
index 91e621dfa921..3f2fe9716807 100644
--- a/services/servicecatalog/pom.xml
+++ b/services/servicecatalog/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
servicecatalog
AWS Java SDK :: Services :: AWS Service Catalog
diff --git a/services/servicecatalogappregistry/pom.xml b/services/servicecatalogappregistry/pom.xml
index c8918672a5c5..9241ee6c8dc7 100644
--- a/services/servicecatalogappregistry/pom.xml
+++ b/services/servicecatalogappregistry/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
servicecatalogappregistry
AWS Java SDK :: Services :: Service Catalog App Registry
diff --git a/services/servicediscovery/pom.xml b/services/servicediscovery/pom.xml
index 7dbafb2482eb..15424554f7d4 100644
--- a/services/servicediscovery/pom.xml
+++ b/services/servicediscovery/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
servicediscovery
diff --git a/services/servicequotas/pom.xml b/services/servicequotas/pom.xml
index 0afc74c9ed6a..43e05b0f9ca7 100644
--- a/services/servicequotas/pom.xml
+++ b/services/servicequotas/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
servicequotas
AWS Java SDK :: Services :: Service Quotas
diff --git a/services/ses/pom.xml b/services/ses/pom.xml
index bbaa018ba44c..68c2a6aed9be 100644
--- a/services/ses/pom.xml
+++ b/services/ses/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ses
AWS Java SDK :: Services :: Amazon SES
diff --git a/services/sesv2/pom.xml b/services/sesv2/pom.xml
index c4dfbcc6ae61..967ada0d5af2 100644
--- a/services/sesv2/pom.xml
+++ b/services/sesv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sesv2
AWS Java SDK :: Services :: SESv2
diff --git a/services/sfn/pom.xml b/services/sfn/pom.xml
index 570dfa4236e6..2c2907b5e3e5 100644
--- a/services/sfn/pom.xml
+++ b/services/sfn/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sfn
AWS Java SDK :: Services :: AWS Step Functions
diff --git a/services/shield/pom.xml b/services/shield/pom.xml
index 75fdbd3fe078..f4953c5f807f 100644
--- a/services/shield/pom.xml
+++ b/services/shield/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
shield
AWS Java SDK :: Services :: AWS Shield
diff --git a/services/signer/pom.xml b/services/signer/pom.xml
index 260c4157e6e9..9d1e5d5cff75 100644
--- a/services/signer/pom.xml
+++ b/services/signer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
signer
AWS Java SDK :: Services :: Signer
diff --git a/services/simspaceweaver/pom.xml b/services/simspaceweaver/pom.xml
index fef10104e4af..51911dc0b84d 100644
--- a/services/simspaceweaver/pom.xml
+++ b/services/simspaceweaver/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
simspaceweaver
AWS Java SDK :: Services :: Sim Space Weaver
diff --git a/services/sms/pom.xml b/services/sms/pom.xml
index 2340c3d12fa8..3fd390d5f2cd 100644
--- a/services/sms/pom.xml
+++ b/services/sms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sms
AWS Java SDK :: Services :: AWS Server Migration
diff --git a/services/snowball/pom.xml b/services/snowball/pom.xml
index b89da48fc95d..1f98353fa22f 100644
--- a/services/snowball/pom.xml
+++ b/services/snowball/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
snowball
AWS Java SDK :: Services :: Amazon Snowball
diff --git a/services/snowdevicemanagement/pom.xml b/services/snowdevicemanagement/pom.xml
index dab752bfc7f8..c4862ee13357 100644
--- a/services/snowdevicemanagement/pom.xml
+++ b/services/snowdevicemanagement/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
snowdevicemanagement
AWS Java SDK :: Services :: Snow Device Management
diff --git a/services/sns/pom.xml b/services/sns/pom.xml
index 162b9686af17..68567757898c 100644
--- a/services/sns/pom.xml
+++ b/services/sns/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sns
AWS Java SDK :: Services :: Amazon SNS
diff --git a/services/sqs/pom.xml b/services/sqs/pom.xml
index 16121965ce50..d6f3137cefd0 100644
--- a/services/sqs/pom.xml
+++ b/services/sqs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sqs
AWS Java SDK :: Services :: Amazon SQS
diff --git a/services/ssm/pom.xml b/services/ssm/pom.xml
index 6849a23add12..a5e485c8104a 100644
--- a/services/ssm/pom.xml
+++ b/services/ssm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ssm
AWS Java SDK :: Services :: AWS Simple Systems Management (SSM)
diff --git a/services/ssmcontacts/pom.xml b/services/ssmcontacts/pom.xml
index b60e4782aba2..a4c878324b90 100644
--- a/services/ssmcontacts/pom.xml
+++ b/services/ssmcontacts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ssmcontacts
AWS Java SDK :: Services :: SSM Contacts
diff --git a/services/ssmincidents/pom.xml b/services/ssmincidents/pom.xml
index 60874b9c57d0..5109c91eb500 100644
--- a/services/ssmincidents/pom.xml
+++ b/services/ssmincidents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ssmincidents
AWS Java SDK :: Services :: SSM Incidents
diff --git a/services/ssmsap/pom.xml b/services/ssmsap/pom.xml
index 493471a7236a..4f0698c46ffc 100644
--- a/services/ssmsap/pom.xml
+++ b/services/ssmsap/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ssmsap
AWS Java SDK :: Services :: Ssm Sap
diff --git a/services/sso/pom.xml b/services/sso/pom.xml
index 2cd12b6ab9b9..901d9e7172a5 100644
--- a/services/sso/pom.xml
+++ b/services/sso/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sso
AWS Java SDK :: Services :: SSO
diff --git a/services/ssoadmin/pom.xml b/services/ssoadmin/pom.xml
index ede08abc6d84..95ef22868a05 100644
--- a/services/ssoadmin/pom.xml
+++ b/services/ssoadmin/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ssoadmin
AWS Java SDK :: Services :: SSO Admin
diff --git a/services/ssooidc/pom.xml b/services/ssooidc/pom.xml
index d5b38b0a1939..ede62c4afc17 100644
--- a/services/ssooidc/pom.xml
+++ b/services/ssooidc/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
ssooidc
AWS Java SDK :: Services :: SSO OIDC
diff --git a/services/storagegateway/pom.xml b/services/storagegateway/pom.xml
index bf7a779e4ef0..dcbeb5359ce5 100644
--- a/services/storagegateway/pom.xml
+++ b/services/storagegateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
storagegateway
AWS Java SDK :: Services :: AWS Storage Gateway
diff --git a/services/sts/pom.xml b/services/sts/pom.xml
index f12c3fc66a4b..d21f745255f1 100644
--- a/services/sts/pom.xml
+++ b/services/sts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
sts
AWS Java SDK :: Services :: AWS STS
diff --git a/services/sts/src/it/java/software/amazon/awssdk/services/sts/AssumeRoleIntegrationTest.java b/services/sts/src/it/java/software/amazon/awssdk/services/sts/AssumeRoleIntegrationTest.java
index c845bb770cf8..6d14f30b3269 100644
--- a/services/sts/src/it/java/software/amazon/awssdk/services/sts/AssumeRoleIntegrationTest.java
+++ b/services/sts/src/it/java/software/amazon/awssdk/services/sts/AssumeRoleIntegrationTest.java
@@ -178,6 +178,7 @@ public void profileCredentialsProviderCanAssumeRoles() throws InterruptedExcepti
assertThat(awsCredentials.accessKeyId()).isNotBlank();
assertThat(awsCredentials.secretAccessKey()).isNotBlank();
+ assertThat(awsCredentials.accountId()).isPresent();
((SdkAutoCloseable) awsCredentialsProvider).close();
}
@@ -210,6 +211,7 @@ public void profileCredentialProviderCanAssumeRolesWithEnvironmentCredentialSour
assertThat(awsCredentials.accessKeyId()).isNotBlank();
assertThat(awsCredentials.secretAccessKey()).isNotBlank();
+ assertThat(awsCredentials.accountId()).isPresent();
((SdkAutoCloseable) awsCredentialsProvider).close();
});
}
@@ -247,6 +249,7 @@ public void profileCredentialProviderWithEnvironmentCredentialSourceAndSystemPro
assertThat(awsCredentials.accessKeyId()).isNotBlank();
assertThat(awsCredentials.secretAccessKey()).isNotBlank();
+ assertThat(awsCredentials.accountId()).isPresent();
((SdkAutoCloseable) awsCredentialsProvider).close();
});
} finally {
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/SessionCredentialsHolder.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/SessionCredentialsHolder.java
new file mode 100644
index 000000000000..5b6a8b66c241
--- /dev/null
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/SessionCredentialsHolder.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 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.sts.auth;
+
+import java.time.Instant;
+import software.amazon.awssdk.annotations.SdkInternalApi;
+import software.amazon.awssdk.annotations.ThreadSafe;
+import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
+import software.amazon.awssdk.services.sts.model.Credentials;
+
+/**
+ * Holder class used to atomically store a session with its expiration time.
+ */
+@SdkInternalApi
+@ThreadSafe
+final class SessionCredentialsHolder {
+ private final AwsSessionCredentials sessionCredentials;
+ private final Instant sessionCredentialsExpiration;
+
+ SessionCredentialsHolder(Builder b) {
+ Credentials credentials = b.credentials;
+ this.sessionCredentials = AwsSessionCredentials.builder()
+ .accessKeyId(credentials.accessKeyId())
+ .secretAccessKey(credentials.secretAccessKey())
+ .sessionToken(credentials.sessionToken())
+ .accountId(b.accountId)
+ .build();
+ this.sessionCredentialsExpiration = credentials.expiration();
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public AwsSessionCredentials getSessionCredentials() {
+ return sessionCredentials;
+ }
+
+ public Instant getSessionCredentialsExpiration() {
+ return sessionCredentialsExpiration;
+ }
+
+ public static class Builder {
+ private Credentials credentials;
+ private String accountId;
+
+ public Builder credentials(Credentials credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+ public Builder accountId(String accountId) {
+ this.accountId = accountId;
+ return this;
+ }
+
+ public SessionCredentialsHolder build() {
+ return new SessionCredentialsHolder(this);
+ }
+ }
+}
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProvider.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProvider.java
index b7e1e3003c4d..3cdc5ff2a437 100644
--- a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProvider.java
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProvider.java
@@ -15,7 +15,8 @@
package software.amazon.awssdk.services.sts.auth;
-import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.toAwsSessionCredentials;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.accountIdFromArn;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.fromStsCredentials;
import java.util.function.Consumer;
import java.util.function.Supplier;
@@ -26,6 +27,8 @@
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;
+import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
+import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.Validate;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
@@ -70,7 +73,17 @@ public static Builder builder() {
protected AwsSessionCredentials getUpdatedCredentials(StsClient stsClient) {
AssumeRoleRequest assumeRoleRequest = assumeRoleRequestSupplier.get();
Validate.notNull(assumeRoleRequest, "Assume role request must not be null.");
- return toAwsSessionCredentials(stsClient.assumeRole(assumeRoleRequest).credentials(), PROVIDER_NAME);
+ AssumeRoleResponse assumeRoleResponse = stsClient.assumeRole(assumeRoleRequest);
+ return fromStsCredentials(assumeRoleResponse.credentials(),
+ PROVIDER_NAME,
+ accountIdFromArn(assumeRoleResponse.assumedRoleUser()));
+ }
+
+ @Override
+ public String toString() {
+ return ToString.builder("StsAssumeRoleCredentialsProvider")
+ .add("refreshRequest", assumeRoleRequestSupplier)
+ .build();
}
@Override
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProvider.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProvider.java
index 761e0dcb044e..6d99b555e311 100644
--- a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProvider.java
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProvider.java
@@ -15,7 +15,8 @@
package software.amazon.awssdk.services.sts.auth;
-import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.toAwsSessionCredentials;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.accountIdFromArn;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.fromStsCredentials;
import java.util.function.Consumer;
import java.util.function.Supplier;
@@ -26,6 +27,7 @@
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithSamlRequest;
+import software.amazon.awssdk.services.sts.model.AssumeRoleWithSamlResponse;
import software.amazon.awssdk.utils.Validate;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
@@ -71,7 +73,10 @@ public static Builder builder() {
protected AwsSessionCredentials getUpdatedCredentials(StsClient stsClient) {
AssumeRoleWithSamlRequest assumeRoleWithSamlRequest = assumeRoleWithSamlRequestSupplier.get();
Validate.notNull(assumeRoleWithSamlRequest, "Assume role with saml request must not be null.");
- return toAwsSessionCredentials(stsClient.assumeRoleWithSAML(assumeRoleWithSamlRequest).credentials(), PROVIDER_NAME);
+ AssumeRoleWithSamlResponse assumeRoleResponse = stsClient.assumeRoleWithSAML(assumeRoleWithSamlRequest);
+ return fromStsCredentials(assumeRoleResponse.credentials(),
+ PROVIDER_NAME,
+ accountIdFromArn(assumeRoleResponse.assumedRoleUser()));
}
@Override
@@ -83,7 +88,7 @@ public Builder toBuilder() {
String providerName() {
return PROVIDER_NAME;
}
-
+
/**
* A builder (created by {@link StsAssumeRoleWithSamlCredentialsProvider#builder()}) for creating a
* {@link StsAssumeRoleWithSamlCredentialsProvider}.
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProvider.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProvider.java
index d5e5a20f5b97..4cbb325f7458 100644
--- a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProvider.java
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProvider.java
@@ -15,7 +15,8 @@
package software.amazon.awssdk.services.sts.auth;
-import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.toAwsSessionCredentials;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.accountIdFromArn;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.fromStsCredentials;
import static software.amazon.awssdk.utils.Validate.notNull;
import java.util.function.Consumer;
@@ -27,6 +28,7 @@
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityRequest;
+import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityResponse;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
@@ -71,7 +73,10 @@ public static Builder builder() {
protected AwsSessionCredentials getUpdatedCredentials(StsClient stsClient) {
AssumeRoleWithWebIdentityRequest request = assumeRoleWithWebIdentityRequest.get();
notNull(request, "AssumeRoleWithWebIdentityRequest can't be null");
- return toAwsSessionCredentials(stsClient.assumeRoleWithWebIdentity(request).credentials(), PROVIDER_NAME);
+ AssumeRoleWithWebIdentityResponse assumeRoleResponse = stsClient.assumeRoleWithWebIdentity(request);
+ return fromStsCredentials(assumeRoleResponse.credentials(),
+ PROVIDER_NAME,
+ accountIdFromArn(assumeRoleResponse.assumedRoleUser()));
}
@Override
@@ -83,7 +88,7 @@ public Builder toBuilder() {
String providerName() {
return PROVIDER_NAME;
}
-
+
/**
* A builder (created by {@link StsAssumeRoleWithWebIdentityCredentialsProvider#builder()}) for creating a
* {@link StsAssumeRoleWithWebIdentityCredentialsProvider}.
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProvider.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProvider.java
index 77c57147aea9..da28815b686e 100644
--- a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProvider.java
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProvider.java
@@ -15,7 +15,7 @@
package software.amazon.awssdk.services.sts.auth;
-import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.toAwsSessionCredentials;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.fromStsCredentials;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.NotThreadSafe;
@@ -24,7 +24,10 @@
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.services.sts.StsClient;
+import software.amazon.awssdk.services.sts.endpoints.internal.Arn;
+import software.amazon.awssdk.services.sts.model.FederatedUser;
import software.amazon.awssdk.services.sts.model.GetFederationTokenRequest;
+import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
import software.amazon.awssdk.utils.Validate;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
@@ -68,7 +71,19 @@ public static Builder builder() {
@Override
protected AwsSessionCredentials getUpdatedCredentials(StsClient stsClient) {
- return toAwsSessionCredentials(stsClient.getFederationToken(getFederationTokenRequest).credentials(), PROVIDER_NAME);
+ GetFederationTokenResponse federationToken = stsClient.getFederationToken(getFederationTokenRequest);
+ return fromStsCredentials(federationToken.credentials(),
+ PROVIDER_NAME,
+ accountIdFromArn(federationToken.federatedUser()));
+ }
+
+ private String accountIdFromArn(FederatedUser federatedUser) {
+ if (federatedUser == null) {
+ return null;
+ }
+ return Arn.parse(federatedUser.arn())
+ .map(Arn::accountId)
+ .orElse(null);
}
@Override
@@ -80,7 +95,7 @@ public Builder toBuilder() {
String providerName() {
return PROVIDER_NAME;
}
-
+
/**
* A builder (created by {@link StsGetFederationTokenCredentialsProvider#builder()}) for creating a
* {@link StsGetFederationTokenCredentialsProvider}.
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProvider.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProvider.java
index e7942671879c..8ca66114d2be 100644
--- a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProvider.java
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProvider.java
@@ -15,7 +15,7 @@
package software.amazon.awssdk.services.sts.auth;
-import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.toAwsSessionCredentials;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.fromStsCredentials;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.NotThreadSafe;
@@ -25,6 +25,7 @@
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.GetSessionTokenRequest;
+import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
import software.amazon.awssdk.utils.Validate;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
@@ -46,7 +47,7 @@ public class StsGetSessionTokenCredentialsProvider
extends StsCredentialsProvider
implements ToCopyableBuilder {
private static final String PROVIDER_NAME = "StsGetSessionTokenCredentialsProvider";
-
+
private final GetSessionTokenRequest getSessionTokenRequest;
/**
@@ -68,7 +69,8 @@ public static Builder builder() {
@Override
protected AwsSessionCredentials getUpdatedCredentials(StsClient stsClient) {
- return toAwsSessionCredentials(stsClient.getSessionToken(getSessionTokenRequest).credentials(), PROVIDER_NAME);
+ GetSessionTokenResponse sessionToken = stsClient.getSessionToken(getSessionTokenRequest);
+ return fromStsCredentials(sessionToken.credentials(), PROVIDER_NAME);
}
@Override
@@ -80,7 +82,7 @@ public Builder toBuilder() {
String providerName() {
return PROVIDER_NAME;
}
-
+
/**
* A builder (created by {@link StsGetSessionTokenCredentialsProvider#builder()}) for creating a
* {@link StsGetSessionTokenCredentialsProvider}.
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenFileCredentialsProvider.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenFileCredentialsProvider.java
index c1710327fcb8..c812da56e21e 100644
--- a/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenFileCredentialsProvider.java
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenFileCredentialsProvider.java
@@ -15,7 +15,8 @@
package software.amazon.awssdk.services.sts.auth;
-import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.toAwsSessionCredentials;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.accountIdFromArn;
+import static software.amazon.awssdk.services.sts.internal.StsAuthUtils.fromStsCredentials;
import static software.amazon.awssdk.utils.StringUtils.trim;
import static software.amazon.awssdk.utils.Validate.notNull;
@@ -32,6 +33,7 @@
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.internal.AssumeRoleWithWebIdentityRequestSupplier;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityRequest;
+import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityResponse;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
@@ -137,7 +139,10 @@ public AwsCredentials resolveCredentials() {
protected AwsSessionCredentials getUpdatedCredentials(StsClient stsClient) {
AssumeRoleWithWebIdentityRequest request = assumeRoleWithWebIdentityRequest.get();
notNull(request, "AssumeRoleWithWebIdentityRequest can't be null");
- return toAwsSessionCredentials(stsClient.assumeRoleWithWebIdentity(request).credentials(), PROVIDER_NAME);
+ AssumeRoleWithWebIdentityResponse assumeRoleWithWebIdentityResponse = stsClient.assumeRoleWithWebIdentity(request);
+ return fromStsCredentials(assumeRoleWithWebIdentityResponse.credentials(),
+ PROVIDER_NAME,
+ accountIdFromArn(assumeRoleWithWebIdentityResponse.assumedRoleUser()));
}
@Override
@@ -149,7 +154,7 @@ public Builder toBuilder() {
String providerName() {
return PROVIDER_NAME;
}
-
+
public static final class Builder extends BaseBuilder {
private String roleArn;
private String roleSessionName;
diff --git a/services/sts/src/main/java/software/amazon/awssdk/services/sts/internal/StsAuthUtils.java b/services/sts/src/main/java/software/amazon/awssdk/services/sts/internal/StsAuthUtils.java
index 1de31d7f55ee..e854495e0124 100644
--- a/services/sts/src/main/java/software/amazon/awssdk/services/sts/internal/StsAuthUtils.java
+++ b/services/sts/src/main/java/software/amazon/awssdk/services/sts/internal/StsAuthUtils.java
@@ -17,20 +17,37 @@
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
+import software.amazon.awssdk.services.sts.endpoints.internal.Arn;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
import software.amazon.awssdk.services.sts.model.Credentials;
@SdkInternalApi
public final class StsAuthUtils {
+
private StsAuthUtils() {
}
- public static AwsSessionCredentials toAwsSessionCredentials(Credentials credentials, String provider) {
+ public static String accountIdFromArn(AssumedRoleUser assumedRoleUser) {
+ if (assumedRoleUser == null) {
+ return null;
+ }
+ return Arn.parse(assumedRoleUser.arn())
+ .map(Arn::accountId)
+ .orElse(null);
+ }
+
+ public static AwsSessionCredentials fromStsCredentials(Credentials credentials, String provider) {
+ return fromStsCredentials(credentials, provider, null);
+ }
+
+ public static AwsSessionCredentials fromStsCredentials(Credentials credentials, String provider, String accountId) {
return AwsSessionCredentials.builder()
.accessKeyId(credentials.accessKeyId())
.secretAccessKey(credentials.secretAccessKey())
.sessionToken(credentials.sessionToken())
.expirationTime(credentials.expiration())
.providerName(provider)
+ .accountId(accountId)
.build();
}
}
diff --git a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProviderTest.java b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProviderTest.java
index 2c8a4878b6aa..e4d7b6c6bc5c 100644
--- a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProviderTest.java
+++ b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleCredentialsProviderTest.java
@@ -18,6 +18,7 @@
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;
import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
import software.amazon.awssdk.services.sts.model.Credentials;
/**
@@ -32,7 +33,10 @@ protected AssumeRoleRequest getRequest() {
@Override
protected AssumeRoleResponse getResponse(Credentials credentials) {
- return AssumeRoleResponse.builder().credentials(credentials).build();
+ return AssumeRoleResponse.builder()
+ .credentials(credentials)
+ .assumedRoleUser(AssumedRoleUser.builder().arn(ARN).build())
+ .build();
}
@Override
diff --git a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProviderTest.java b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProviderTest.java
index 624f4380e670..fb4729f98f79 100644
--- a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProviderTest.java
+++ b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithSamlCredentialsProviderTest.java
@@ -19,6 +19,7 @@
import software.amazon.awssdk.services.sts.auth.StsAssumeRoleWithSamlCredentialsProvider.Builder;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithSamlRequest;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithSamlResponse;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
import software.amazon.awssdk.services.sts.model.Credentials;
/**
@@ -35,7 +36,10 @@ protected AssumeRoleWithSamlRequest getRequest() {
@Override
protected AssumeRoleWithSamlResponse getResponse(Credentials credentials) {
- return AssumeRoleWithSamlResponse.builder().credentials(credentials).build();
+ return AssumeRoleWithSamlResponse.builder()
+ .credentials(credentials)
+ .assumedRoleUser(AssumedRoleUser.builder().arn(ARN).build())
+ .build();
}
@Override
diff --git a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProviderTest.java b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProviderTest.java
index dfdcddd8fd45..d037597897a2 100644
--- a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProviderTest.java
+++ b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsAssumeRoleWithWebIdentityCredentialsProviderTest.java
@@ -19,6 +19,7 @@
import software.amazon.awssdk.services.sts.auth.StsAssumeRoleWithWebIdentityCredentialsProvider.Builder;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityRequest;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityResponse;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
import software.amazon.awssdk.services.sts.model.Credentials;
/**
@@ -34,7 +35,10 @@ protected AssumeRoleWithWebIdentityRequest getRequest() {
@Override
protected AssumeRoleWithWebIdentityResponse getResponse(Credentials credentials) {
- return AssumeRoleWithWebIdentityResponse.builder().credentials(credentials).build();
+ return AssumeRoleWithWebIdentityResponse.builder()
+ .credentials(credentials)
+ .assumedRoleUser(AssumedRoleUser.builder().arn(ARN).build())
+ .build();
}
@Override
diff --git a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsCredentialsProviderTestBase.java b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsCredentialsProviderTestBase.java
index f16f564a0a43..dc35f7907b5d 100644
--- a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsCredentialsProviderTestBase.java
+++ b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsCredentialsProviderTestBase.java
@@ -29,6 +29,7 @@
import org.mockito.junit.jupiter.MockitoExtension;
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.services.sts.StsClient;
+import software.amazon.awssdk.services.sts.endpoints.internal.Arn;
import software.amazon.awssdk.services.sts.model.Credentials;
/**
@@ -36,6 +37,8 @@
*/
@ExtendWith(MockitoExtension.class)
public abstract class StsCredentialsProviderTestBase {
+
+ protected static final String ARN = "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE";
@Mock
protected StsClient stsClient;
@@ -102,7 +105,6 @@ public void callClientWithCredentialsProvider(Instant credentialsExpirationDate,
Credentials credentials = Credentials.builder().accessKeyId("a").secretAccessKey("b").sessionToken("c").expiration(credentialsExpirationDate).build();
RequestT request = getRequest();
ResponseT response = getResponse(credentials);
-
when(callClient(stsClient, request)).thenReturn(response);
StsCredentialsProvider.BaseBuilder, ? extends StsCredentialsProvider> credentialsProviderBuilder = createCredentialsProviderBuilder(request);
@@ -130,6 +132,10 @@ public void callClientWithCredentialsProvider(Instant credentialsExpirationDate,
assertThat(providedCredentials.secretAccessKey()).isEqualTo("b");
assertThat(providedCredentials.sessionToken()).isEqualTo("c");
assertThat(providedCredentials.providerName()).isPresent().contains(providerName());
+ if (!(credentialsProvider instanceof StsGetSessionTokenCredentialsProvider)) {
+ assertThat(providedCredentials.accountId().isPresent());
+ assertThat(providedCredentials.accountId().get()).isEqualTo("123456789012");
+ }
}
}
}
diff --git a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProviderTest.java b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProviderTest.java
index 9d04a3c17baf..bdc50a817aaa 100644
--- a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProviderTest.java
+++ b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetFederationTokenCredentialsProviderTest.java
@@ -17,7 +17,9 @@
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.auth.StsGetFederationTokenCredentialsProvider.Builder;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
import software.amazon.awssdk.services.sts.model.Credentials;
+import software.amazon.awssdk.services.sts.model.FederatedUser;
import software.amazon.awssdk.services.sts.model.GetFederationTokenRequest;
import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
@@ -34,7 +36,10 @@ protected GetFederationTokenRequest getRequest() {
@Override
protected GetFederationTokenResponse getResponse(Credentials credentials) {
- return GetFederationTokenResponse.builder().credentials(credentials).build();
+ return GetFederationTokenResponse.builder()
+ .credentials(credentials)
+ .federatedUser(FederatedUser.builder().arn(ARN).build())
+ .build();
}
@Override
diff --git a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProviderTest.java b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProviderTest.java
index 3dd7aaac267f..18f9feadf796 100644
--- a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProviderTest.java
+++ b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsGetSessionTokenCredentialsProviderTest.java
@@ -17,6 +17,7 @@
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.auth.StsGetSessionTokenCredentialsProvider.Builder;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
import software.amazon.awssdk.services.sts.model.Credentials;
import software.amazon.awssdk.services.sts.model.GetSessionTokenRequest;
import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
@@ -34,7 +35,9 @@ protected GetSessionTokenRequest getRequest() {
@Override
protected GetSessionTokenResponse getResponse(Credentials credentials) {
- return GetSessionTokenResponse.builder().credentials(credentials).build();
+ return GetSessionTokenResponse.builder()
+ .credentials(credentials)
+ .build();
}
@Override
diff --git a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenCredentialsProviderBaseTest.java b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenCredentialsProviderBaseTest.java
index eb08a86f7b6a..cb3ca75140bf 100644
--- a/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenCredentialsProviderBaseTest.java
+++ b/services/sts/src/test/java/software/amazon/awssdk/services/sts/auth/StsWebIdentityTokenCredentialsProviderBaseTest.java
@@ -29,13 +29,14 @@
import software.amazon.awssdk.services.sts.auth.StsWebIdentityTokenFileCredentialsProvider.Builder;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityRequest;
import software.amazon.awssdk.services.sts.model.AssumeRoleWithWebIdentityResponse;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
import software.amazon.awssdk.services.sts.model.Credentials;
import software.amazon.awssdk.testutils.EnvironmentVariableHelper;
import software.amazon.awssdk.utils.IoUtils;
/**
- * Validate the functionality of {@link StsWebIdentityTokenFileCredentialsProvider}. Inherits tests from {@link
- * StsCredentialsProviderTestBase}.
+ * Validate the functionality of {@link StsWebIdentityTokenFileCredentialsProvider}. Inherits tests from
+ * {@link StsCredentialsProviderTestBase}.
*/
public class StsWebIdentityTokenCredentialsProviderBaseTest
extends StsCredentialsProviderTestBase {
@@ -44,7 +45,7 @@ public class StsWebIdentityTokenCredentialsProviderBaseTest
@BeforeEach
- public void setUp() {
+ public void setUp() {
String webIdentityTokenPath = Paths.get("src/test/resources/token.jwt").toAbsolutePath().toString();
ENVIRONMENT_VARIABLE_HELPER.set(SdkSystemSetting.AWS_ROLE_ARN.environmentVariable(), "someRole");
ENVIRONMENT_VARIABLE_HELPER.set(SdkSystemSetting.AWS_WEB_IDENTITY_TOKEN_FILE.environmentVariable(), webIdentityTokenPath);
@@ -52,7 +53,7 @@ public void setUp() {
}
@AfterEach
- public void cleanUp(){
+ public void cleanUp() {
ENVIRONMENT_VARIABLE_HELPER.reset();
}
@@ -64,7 +65,10 @@ protected AssumeRoleWithWebIdentityRequest getRequest() {
@Override
protected AssumeRoleWithWebIdentityResponse getResponse(Credentials credentials) {
- return AssumeRoleWithWebIdentityResponse.builder().credentials(credentials).build();
+ return AssumeRoleWithWebIdentityResponse.builder()
+ .credentials(credentials)
+ .assumedRoleUser(AssumedRoleUser.builder().arn(ARN).build())
+ .build();
}
@Override
diff --git a/services/supplychain/pom.xml b/services/supplychain/pom.xml
index f5c9afa787c4..6b08204fcbb8 100644
--- a/services/supplychain/pom.xml
+++ b/services/supplychain/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
supplychain
AWS Java SDK :: Services :: Supply Chain
diff --git a/services/support/pom.xml b/services/support/pom.xml
index 0bbed5093abc..b5ce7588fbfc 100644
--- a/services/support/pom.xml
+++ b/services/support/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
support
AWS Java SDK :: Services :: AWS Support
diff --git a/services/supportapp/pom.xml b/services/supportapp/pom.xml
index 0c9f85a00f3e..666c74637602 100644
--- a/services/supportapp/pom.xml
+++ b/services/supportapp/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
supportapp
AWS Java SDK :: Services :: Support App
diff --git a/services/swf/pom.xml b/services/swf/pom.xml
index da9d27082cb4..fd9ea65db879 100644
--- a/services/swf/pom.xml
+++ b/services/swf/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
swf
AWS Java SDK :: Services :: Amazon SWF
diff --git a/services/synthetics/pom.xml b/services/synthetics/pom.xml
index 52afd6dff92e..077d43c45f99 100644
--- a/services/synthetics/pom.xml
+++ b/services/synthetics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
synthetics
AWS Java SDK :: Services :: Synthetics
diff --git a/services/textract/pom.xml b/services/textract/pom.xml
index ac5fc28b7ec1..167943f658e7 100644
--- a/services/textract/pom.xml
+++ b/services/textract/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
textract
AWS Java SDK :: Services :: Textract
diff --git a/services/timestreaminfluxdb/pom.xml b/services/timestreaminfluxdb/pom.xml
index 43cda7e24eab..02657d2b6fa7 100644
--- a/services/timestreaminfluxdb/pom.xml
+++ b/services/timestreaminfluxdb/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
timestreaminfluxdb
AWS Java SDK :: Services :: Timestream Influx DB
diff --git a/services/timestreamquery/pom.xml b/services/timestreamquery/pom.xml
index d3de7cbd319b..f2f994fe3139 100644
--- a/services/timestreamquery/pom.xml
+++ b/services/timestreamquery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
timestreamquery
AWS Java SDK :: Services :: Timestream Query
diff --git a/services/timestreamwrite/pom.xml b/services/timestreamwrite/pom.xml
index 263d2f1d82c2..67a044e4f45b 100644
--- a/services/timestreamwrite/pom.xml
+++ b/services/timestreamwrite/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
timestreamwrite
AWS Java SDK :: Services :: Timestream Write
diff --git a/services/tnb/pom.xml b/services/tnb/pom.xml
index 2aeb702e1bc8..1b507434391f 100644
--- a/services/tnb/pom.xml
+++ b/services/tnb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
tnb
AWS Java SDK :: Services :: Tnb
diff --git a/services/transcribe/pom.xml b/services/transcribe/pom.xml
index faa9de2543e8..87bc481b7b2d 100644
--- a/services/transcribe/pom.xml
+++ b/services/transcribe/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
transcribe
AWS Java SDK :: Services :: Transcribe
diff --git a/services/transcribestreaming/pom.xml b/services/transcribestreaming/pom.xml
index 44a8dcbbdb3e..2709dafa970b 100644
--- a/services/transcribestreaming/pom.xml
+++ b/services/transcribestreaming/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
transcribestreaming
AWS Java SDK :: Services :: AWS Transcribe Streaming
diff --git a/services/transfer/pom.xml b/services/transfer/pom.xml
index 20ab85f321f8..3b0519fea0b7 100644
--- a/services/transfer/pom.xml
+++ b/services/transfer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
transfer
AWS Java SDK :: Services :: Transfer
diff --git a/services/translate/pom.xml b/services/translate/pom.xml
index 7bda4152a380..24ab611216e2 100644
--- a/services/translate/pom.xml
+++ b/services/translate/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
translate
diff --git a/services/trustedadvisor/pom.xml b/services/trustedadvisor/pom.xml
index cced68ac73eb..e7ce95724fc7 100644
--- a/services/trustedadvisor/pom.xml
+++ b/services/trustedadvisor/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
trustedadvisor
AWS Java SDK :: Services :: Trusted Advisor
diff --git a/services/verifiedpermissions/pom.xml b/services/verifiedpermissions/pom.xml
index 38f18bcfbb76..8ae7a6fe71e1 100644
--- a/services/verifiedpermissions/pom.xml
+++ b/services/verifiedpermissions/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
verifiedpermissions
AWS Java SDK :: Services :: Verified Permissions
diff --git a/services/voiceid/pom.xml b/services/voiceid/pom.xml
index c6a64eee4a41..df17add10a76 100644
--- a/services/voiceid/pom.xml
+++ b/services/voiceid/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
voiceid
AWS Java SDK :: Services :: Voice ID
diff --git a/services/vpclattice/pom.xml b/services/vpclattice/pom.xml
index c283f972810b..b706feb54042 100644
--- a/services/vpclattice/pom.xml
+++ b/services/vpclattice/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
vpclattice
AWS Java SDK :: Services :: VPC Lattice
diff --git a/services/waf/pom.xml b/services/waf/pom.xml
index eb6365e1f3cf..1127f33149a6 100644
--- a/services/waf/pom.xml
+++ b/services/waf/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
waf
AWS Java SDK :: Services :: AWS WAF
diff --git a/services/wafv2/pom.xml b/services/wafv2/pom.xml
index 4dc6b4152f77..8883e889e6e0 100644
--- a/services/wafv2/pom.xml
+++ b/services/wafv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
wafv2
AWS Java SDK :: Services :: WAFV2
diff --git a/services/wellarchitected/pom.xml b/services/wellarchitected/pom.xml
index 085f2630dff6..a8e8b9661a14 100644
--- a/services/wellarchitected/pom.xml
+++ b/services/wellarchitected/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
wellarchitected
AWS Java SDK :: Services :: Well Architected
diff --git a/services/wisdom/pom.xml b/services/wisdom/pom.xml
index 579fd41bf151..c948ad487981 100644
--- a/services/wisdom/pom.xml
+++ b/services/wisdom/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
wisdom
AWS Java SDK :: Services :: Wisdom
diff --git a/services/workdocs/pom.xml b/services/workdocs/pom.xml
index 259560030d9a..9f54ec21a19a 100644
--- a/services/workdocs/pom.xml
+++ b/services/workdocs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
workdocs
AWS Java SDK :: Services :: Amazon WorkDocs
diff --git a/services/worklink/pom.xml b/services/worklink/pom.xml
index c53a4848bf92..f63f44842887 100644
--- a/services/worklink/pom.xml
+++ b/services/worklink/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
worklink
AWS Java SDK :: Services :: WorkLink
diff --git a/services/workmail/pom.xml b/services/workmail/pom.xml
index 8ca82117ac2b..7837a49cda88 100644
--- a/services/workmail/pom.xml
+++ b/services/workmail/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
workmail
diff --git a/services/workmailmessageflow/pom.xml b/services/workmailmessageflow/pom.xml
index 37d724b73518..826d13b10174 100644
--- a/services/workmailmessageflow/pom.xml
+++ b/services/workmailmessageflow/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
workmailmessageflow
AWS Java SDK :: Services :: WorkMailMessageFlow
diff --git a/services/workspaces/pom.xml b/services/workspaces/pom.xml
index 4ff36e053236..26b4c3a57ffa 100644
--- a/services/workspaces/pom.xml
+++ b/services/workspaces/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
workspaces
AWS Java SDK :: Services :: Amazon WorkSpaces
diff --git a/services/workspacesthinclient/pom.xml b/services/workspacesthinclient/pom.xml
index 0e0506c2b33c..c9d08142cd43 100644
--- a/services/workspacesthinclient/pom.xml
+++ b/services/workspacesthinclient/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
workspacesthinclient
AWS Java SDK :: Services :: Work Spaces Thin Client
diff --git a/services/workspacesweb/pom.xml b/services/workspacesweb/pom.xml
index 52907afc716d..72d41b9e2cd7 100644
--- a/services/workspacesweb/pom.xml
+++ b/services/workspacesweb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
workspacesweb
AWS Java SDK :: Services :: Work Spaces Web
diff --git a/services/workspacesweb/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/workspacesweb/src/main/resources/codegen-resources/endpoint-rule-set.json
index 7124ded3a94b..2398c28612fd 100644
--- a/services/workspacesweb/src/main/resources/codegen-resources/endpoint-rule-set.json
+++ b/services/workspacesweb/src/main/resources/codegen-resources/endpoint-rule-set.json
@@ -40,7 +40,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -83,7 +82,8 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [
@@ -96,7 +96,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -110,7 +109,6 @@
"assign": "PartitionResult"
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -133,7 +131,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -168,7 +165,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [],
@@ -179,14 +175,16 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [
@@ -200,14 +198,12 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
- true,
{
"fn": "getAttr",
"argv": [
@@ -216,11 +212,11 @@
},
"supportsFIPS"
]
- }
+ },
+ true
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [],
@@ -231,14 +227,16 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [
@@ -252,7 +250,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [
@@ -272,7 +269,6 @@
]
}
],
- "type": "tree",
"rules": [
{
"conditions": [],
@@ -283,14 +279,16 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
@@ -301,9 +299,11 @@
},
"type": "endpoint"
}
- ]
+ ],
+ "type": "tree"
}
- ]
+ ],
+ "type": "tree"
},
{
"conditions": [],
diff --git a/services/workspacesweb/src/main/resources/codegen-resources/service-2.json b/services/workspacesweb/src/main/resources/codegen-resources/service-2.json
index 3c4785fbd2e6..3e85985f70bd 100644
--- a/services/workspacesweb/src/main/resources/codegen-resources/service-2.json
+++ b/services/workspacesweb/src/main/resources/codegen-resources/service-2.json
@@ -1028,6 +1028,7 @@
{"shape":"ResourceNotFoundException"},
{"shape":"AccessDeniedException"},
{"shape":"ThrottlingException"},
+ {"shape":"ServiceQuotaExceededException"},
{"shape":"ValidationException"},
{"shape":"ConflictException"}
],
@@ -1359,6 +1360,10 @@
"type":"structure",
"required":["browserSettingsArn"],
"members":{
+ "additionalEncryptionContext":{
+ "shape":"EncryptionContextMap",
+ "documentation":"The additional encryption context of the browser settings.
"
+ },
"associatedPortalArns":{
"shape":"ArnList",
"documentation":"A list of web portal ARNs that this browser settings is associated with.
"
@@ -1370,6 +1375,10 @@
"browserSettingsArn":{
"shape":"ARN",
"documentation":"The ARN of the browser settings.
"
+ },
+ "customerManagedKey":{
+ "shape":"keyArn",
+ "documentation":"The customer managed key used to encrypt sensitive information in the browser settings.
"
}
},
"documentation":"The browser settings resource that can be associated with a web portal. Once associated with a web portal, browser settings control how the browser will behave once a user starts a streaming session for the web portal.
"
@@ -1503,18 +1512,21 @@
"type":"string",
"max":253,
"min":0,
- "pattern":"^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$"
+ "pattern":"^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
+ "sensitive":true
},
"CookieName":{
"type":"string",
"max":4096,
- "min":0
+ "min":0,
+ "sensitive":true
},
"CookiePath":{
"type":"string",
"max":2000,
"min":0,
- "pattern":"^/(\\S)*$"
+ "pattern":"^/(\\S)*$",
+ "sensitive":true
},
"CookieSpecification":{
"type":"structure",
@@ -1571,7 +1583,7 @@
},
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"customerManagedKey":{
@@ -1605,12 +1617,12 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"identityProviderDetails":{
"shape":"IdentityProviderDetails",
- "documentation":"The identity provider details. The following list describes the provider detail keys for each identity provider type.
"
+ "documentation":"The identity provider details. The following list describes the provider detail keys for each identity provider type.
"
},
"identityProviderName":{
"shape":"IdentityProviderName",
@@ -1646,7 +1658,7 @@
},
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"customerManagedKey":{
@@ -1691,7 +1703,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"securityGroupIds":{
@@ -1731,11 +1743,11 @@
},
"authenticationType":{
"shape":"AuthenticationType",
- "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM_Identity_Center
web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
+ "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM Identity Center
web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
},
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"customerManagedKey":{
@@ -1746,6 +1758,14 @@
"shape":"DisplayName",
"documentation":"The name of the web portal. This is not visible to users who log into the web portal.
"
},
+ "instanceType":{
+ "shape":"InstanceType",
+ "documentation":"The type and resources of the underlying instance.
"
+ },
+ "maxConcurrentSessions":{
+ "shape":"MaxConcurrentSessions",
+ "documentation":"The maximum number of concurrent sessions for the portal.
"
+ },
"tags":{
"shape":"TagList",
"documentation":"The tags to add to the web portal. A tag is a key-value pair.
"
@@ -1779,7 +1799,7 @@
},
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"tags":{
@@ -1804,7 +1824,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"kinesisStreamArn":{
@@ -1843,7 +1863,7 @@
},
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"cookieSynchronizationConfiguration":{
@@ -2409,7 +2429,7 @@
},
"identityProviderDetails":{
"shape":"IdentityProviderDetails",
- "documentation":"The identity provider details. The following list describes the provider detail keys for each identity provider type.
"
+ "documentation":"The identity provider details. The following list describes the provider detail keys for each identity provider type.
"
},
"identityProviderName":{
"shape":"IdentityProviderName",
@@ -2475,6 +2495,14 @@
"max":60,
"min":0
},
+ "InstanceType":{
+ "type":"string",
+ "enum":[
+ "standard.regular",
+ "standard.large",
+ "standard.xlarge"
+ ]
+ },
"InternalServerException":{
"type":"structure",
"members":{
@@ -2495,6 +2523,10 @@
"type":"structure",
"required":["ipAccessSettingsArn"],
"members":{
+ "additionalEncryptionContext":{
+ "shape":"EncryptionContextMap",
+ "documentation":"The additional encryption context of the IP access settings.
"
+ },
"associatedPortalArns":{
"shape":"ArnList",
"documentation":"A list of web portal ARNs that this IP access settings resource is associated with.
"
@@ -2503,6 +2535,10 @@
"shape":"Timestamp",
"documentation":"The creation date timestamp of the IP access settings.
"
},
+ "customerManagedKey":{
+ "shape":"keyArn",
+ "documentation":"The customer managed key used to encrypt sensitive information in the IP access settings.
"
+ },
"description":{
"shape":"Description",
"documentation":"The description of the IP access settings.
"
@@ -2894,6 +2930,12 @@
}
}
},
+ "MaxConcurrentSessions":{
+ "type":"integer",
+ "box":true,
+ "max":5000,
+ "min":1
+ },
"MaxResults":{
"type":"integer",
"box":true,
@@ -2955,9 +2997,13 @@
"type":"structure",
"required":["portalArn"],
"members":{
+ "additionalEncryptionContext":{
+ "shape":"EncryptionContextMap",
+ "documentation":"The additional encryption context of the portal.
"
+ },
"authenticationType":{
"shape":"AuthenticationType",
- "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM_Identity_Center
web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
+ "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM Identity Center
web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
},
"browserSettingsArn":{
"shape":"ARN",
@@ -2971,14 +3017,26 @@
"shape":"Timestamp",
"documentation":"The creation date of the web portal.
"
},
+ "customerManagedKey":{
+ "shape":"keyArn",
+ "documentation":"The customer managed key used to encrypt sensitive information in the portal.
"
+ },
"displayName":{
"shape":"DisplayName",
"documentation":"The name of the web portal.
"
},
+ "instanceType":{
+ "shape":"InstanceType",
+ "documentation":"The type and resources of the underlying instance.
"
+ },
"ipAccessSettingsArn":{
"shape":"ARN",
"documentation":"The ARN of the IP access settings.
"
},
+ "maxConcurrentSessions":{
+ "shape":"MaxConcurrentSessions",
+ "documentation":"The maximum number of concurrent sessions for the portal.
"
+ },
"networkSettingsArn":{
"shape":"ARN",
"documentation":"The ARN of the network settings that is associated with the web portal.
"
@@ -3042,7 +3100,7 @@
"members":{
"authenticationType":{
"shape":"AuthenticationType",
- "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM_Identity_Center
web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
+ "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM Identity Center
web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
},
"browserSettingsArn":{
"shape":"ARN",
@@ -3060,10 +3118,18 @@
"shape":"DisplayName",
"documentation":"The name of the web portal.
"
},
+ "instanceType":{
+ "shape":"InstanceType",
+ "documentation":"The type and resources of the underlying instance.
"
+ },
"ipAccessSettingsArn":{
"shape":"ARN",
"documentation":"The ARN of the IP access settings.
"
},
+ "maxConcurrentSessions":{
+ "shape":"MaxConcurrentSessions",
+ "documentation":"The maximum number of concurrent sessions for the portal.
"
+ },
"networkSettingsArn":{
"shape":"ARN",
"documentation":"The ARN of the network settings that is associated with the web portal.
"
@@ -3252,7 +3318,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"resourceArn":{
@@ -3393,7 +3459,7 @@
},
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
}
}
@@ -3414,7 +3480,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"identityProviderArn":{
@@ -3425,7 +3491,7 @@
},
"identityProviderDetails":{
"shape":"IdentityProviderDetails",
- "documentation":"The details of the identity provider. The following list describes the provider detail keys for each identity provider type.
"
+ "documentation":"The details of the identity provider. The following list describes the provider detail keys for each identity provider type.
"
},
"identityProviderName":{
"shape":"IdentityProviderName",
@@ -3453,7 +3519,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"description":{
@@ -3492,7 +3558,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"networkSettingsArn":{
@@ -3531,12 +3597,20 @@
"members":{
"authenticationType":{
"shape":"AuthenticationType",
- "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM_Identity_Center
web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
+ "documentation":"The type of authentication integration points used when signing into the web portal. Defaults to Standard
.
Standard
web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider
to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.
IAM Identity Center
web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.
"
},
"displayName":{
"shape":"DisplayName",
"documentation":"The name of the web portal. This is not visible to users who log into the web portal.
"
},
+ "instanceType":{
+ "shape":"InstanceType",
+ "documentation":"The type and resources of the underlying instance.
"
+ },
+ "maxConcurrentSessions":{
+ "shape":"MaxConcurrentSessions",
+ "documentation":"The maximum number of concurrent sessions for the portal.
"
+ },
"portalArn":{
"shape":"ARN",
"documentation":"The ARN of the web portal.
",
@@ -3568,7 +3642,7 @@
},
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"trustStoreArn":{
@@ -3595,7 +3669,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"kinesisStreamArn":{
@@ -3626,7 +3700,7 @@
"members":{
"clientToken":{
"shape":"ClientToken",
- "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the AWS SDK.
",
+ "documentation":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.
If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.
",
"idempotencyToken":true
},
"cookieSynchronizationConfiguration":{
@@ -3721,6 +3795,10 @@
"type":"structure",
"required":["userSettingsArn"],
"members":{
+ "additionalEncryptionContext":{
+ "shape":"EncryptionContextMap",
+ "documentation":"The additional encryption context of the user settings.
"
+ },
"associatedPortalArns":{
"shape":"ArnList",
"documentation":"A list of web portal ARNs that this user settings is associated with.
"
@@ -3733,6 +3811,10 @@
"shape":"EnabledType",
"documentation":"Specifies whether the user can copy text from the streaming session to the local device.
"
},
+ "customerManagedKey":{
+ "shape":"keyArn",
+ "documentation":"The customer managed key used to encrypt sensitive information in the user settings.
"
+ },
"disconnectTimeoutInMinutes":{
"shape":"DisconnectTimeoutInMinutes",
"documentation":"The amount of time that a streaming session remains active after users disconnect.
"
diff --git a/services/xray/pom.xml b/services/xray/pom.xml
index 74c77d69d3f0..735fa85e7818 100644
--- a/services/xray/pom.xml
+++ b/services/xray/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.36
+ 2.25.37
xray
AWS Java SDK :: Services :: AWS X-Ray
diff --git a/test/auth-tests/pom.xml b/test/auth-tests/pom.xml
index a8d08228cb3d..68648bced433 100644
--- a/test/auth-tests/pom.xml
+++ b/test/auth-tests/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/bundle-logging-bridge-binding-test/pom.xml b/test/bundle-logging-bridge-binding-test/pom.xml
index 685f75dd45bb..778ab4c56a29 100644
--- a/test/bundle-logging-bridge-binding-test/pom.xml
+++ b/test/bundle-logging-bridge-binding-test/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/codegen-generated-classes-test/pom.xml b/test/codegen-generated-classes-test/pom.xml
index 6d762d414a2a..21447a9f86be 100644
--- a/test/codegen-generated-classes-test/pom.xml
+++ b/test/codegen-generated-classes-test/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config
index 71e2ca8b3532..d0d5e2fdf88c 100644
--- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config
+++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config
@@ -1,4 +1,5 @@
{
"skipEndpointTestGeneration": true,
+ "useSraAuth": true,
"enableGenerateCompiledEndpointRules": false
}
diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/endpoint-rule-set.json b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/endpoint-rule-set.json
index cf58fb6fe996..78c391c26449 100644
--- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/endpoint-rule-set.json
+++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/endpoint-rule-set.json
@@ -27,6 +27,16 @@
"documentation": "Override the endpoint used to send this request",
"type": "String"
},
+ "awsAccountId": {
+ "type": "String",
+ "builtIn": "AWS::Auth::AccountId",
+ "required": false
+ },
+ "awsAccountEndpointMode": {
+ "type": "String",
+ "builtIn": "AWS::Auth::AccountIdEndpointMode",
+ "required": false
+ },
"StaticStringParam": {
"type": "String",
"required": false
diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/accountidendpointrouting/AccountIdParameterTests.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/accountidendpointrouting/AccountIdParameterTests.java
new file mode 100644
index 000000000000..9ae0911b2715
--- /dev/null
+++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/accountidendpointrouting/AccountIdParameterTests.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright 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.accountidendpointrouting;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.net.URI;
+import java.util.concurrent.CompletableFuture;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
+import org.mockito.ArgumentCaptor;
+import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
+import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
+import software.amazon.awssdk.awscore.endpoints.AccountIdEndpointMode;
+import software.amazon.awssdk.endpoints.Endpoint;
+import software.amazon.awssdk.http.SdkHttpClient;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersClient;
+import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.RestJsonEndpointProvidersEndpointParams;
+import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.RestJsonEndpointProvidersEndpointProvider;
+
+class AccountIdParameterTests {
+
+ private RestJsonEndpointProvidersEndpointProvider mockEndpointProvider;
+ private SdkHttpClient mockHttpClient;
+
+ @BeforeEach
+ void setup() {
+ mockEndpointProvider = mock(RestJsonEndpointProvidersEndpointProvider.class);
+ mockHttpClient = mock(SdkHttpClient.class);
+ when(mockHttpClient.clientName()).thenReturn("MockHttpClient");
+ when(mockHttpClient.prepareRequest(any())).thenThrow(new RuntimeException("boom"));
+ when(mockEndpointProvider.resolveEndpoint(any(RestJsonEndpointProvidersEndpointParams.class)))
+ .thenReturn(CompletableFuture.completedFuture(Endpoint.builder()
+ .url(URI.create("https://my-service.com"))
+ .build()));
+ }
+
+ @Test
+ void accountId_isResolvedToValue_whenEndpointResolverIsCalled_NOTWORKING() {
+ RestJsonEndpointProvidersClient client =
+ RestJsonEndpointProvidersClient.builder()
+ .endpointProvider(mockEndpointProvider)
+ .httpClient(mockHttpClient)
+ .region(Region.US_WEST_2)
+ .credentialsProvider(credentialsWithAccountId())
+ .build();
+
+ assertThatThrownBy(() -> client.operationWithNoInputOrOutput(r -> {})).hasMessageContaining("boom");
+
+ ArgumentCaptor paramsCaptor =
+ ArgumentCaptor.forClass(RestJsonEndpointProvidersEndpointParams.class);
+ verify(mockEndpointProvider).resolveEndpoint(paramsCaptor.capture());
+
+ RestJsonEndpointProvidersEndpointParams resolvedEndpointParams = paramsCaptor.getValue();
+ assertThat(resolvedEndpointParams.awsAccountId()).isNotNull().isEqualTo("accountId");
+ assertThat(resolvedEndpointParams.awsAccountEndpointMode()).isNotNull().isEqualTo(AccountIdEndpointMode.PREFERRED.name());
+ }
+
+ @ParameterizedTest
+ @EnumSource(AccountIdEndpointMode.class)
+ void accountId_isResolvedToValue_whenEndpointResolverIsCalled(AccountIdEndpointMode accountIdEndpointMode) {
+ RestJsonEndpointProvidersClient client =
+ RestJsonEndpointProvidersClient.builder()
+ .endpointProvider(mockEndpointProvider)
+ .httpClient(mockHttpClient)
+ .region(Region.US_WEST_2)
+ .credentialsProvider(credentialsWithAccountId())
+ .accountIdEndpointMode(accountIdEndpointMode)
+ .build();
+
+ assertThatThrownBy(() -> client.operationWithNoInputOrOutput(r -> {})).hasMessageContaining("boom");
+
+ ArgumentCaptor paramsCaptor =
+ ArgumentCaptor.forClass(RestJsonEndpointProvidersEndpointParams.class);
+ verify(mockEndpointProvider).resolveEndpoint(paramsCaptor.capture());
+
+ RestJsonEndpointProvidersEndpointParams resolvedEndpointParams = paramsCaptor.getValue();
+ assertThat(resolvedEndpointParams.awsAccountId()).isNotNull().isEqualTo("accountId");
+ assertThat(resolvedEndpointParams.awsAccountEndpointMode()).isNotNull().isEqualTo(accountIdEndpointMode.name());
+ }
+
+ private static AwsCredentialsProvider credentialsWithAccountId() {
+ return () -> AwsSessionCredentials.builder()
+ .accessKeyId("akid")
+ .secretAccessKey("skid")
+ .sessionToken("token")
+ .accountId("accountId")
+ .build();
+ }
+}
diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/AwsEndpointProviderUtilsTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/AwsEndpointProviderUtilsTest.java
index c55826322113..b48e27c99e5f 100644
--- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/AwsEndpointProviderUtilsTest.java
+++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/AwsEndpointProviderUtilsTest.java
@@ -134,13 +134,6 @@ public void endpointBuiltIn_doesNotIncludeQueryParams() {
assertThat(AwsEndpointProviderUtils.endpointBuiltIn(attrs).toString()).isEqualTo("https://example.com/path");
}
- @Test
- public void useGlobalEndpointBuiltIn_returnsAttrValue() {
- ExecutionAttributes attrs = new ExecutionAttributes();
- attrs.putAttribute(AwsExecutionAttribute.USE_GLOBAL_ENDPOINT, true);
- assertThat(AwsEndpointProviderUtils.useGlobalEndpointBuiltIn(attrs)).isEqualTo(true);
- }
-
@Test
public void setUri_combinesPathsCorrectly() {
URI clientEndpoint = URI.create("https://override.example.com/a");
diff --git a/test/crt-unavailable-tests/pom.xml b/test/crt-unavailable-tests/pom.xml
index b02f77657dc7..2837de708104 100644
--- a/test/crt-unavailable-tests/pom.xml
+++ b/test/crt-unavailable-tests/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/http-client-tests/pom.xml b/test/http-client-tests/pom.xml
index 71a1d74fa487..7fd832ed22db 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.25.36
+ 2.25.37
../../pom.xml
http-client-tests
diff --git a/test/module-path-tests/pom.xml b/test/module-path-tests/pom.xml
index 4f8fbab98ad6..50c6b7c4b535 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.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/old-client-version-compatibility-test/pom.xml b/test/old-client-version-compatibility-test/pom.xml
index ab131f4c01e3..9aca65affed4 100644
--- a/test/old-client-version-compatibility-test/pom.xml
+++ b/test/old-client-version-compatibility-test/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
diff --git a/test/protocol-tests-core/pom.xml b/test/protocol-tests-core/pom.xml
index d7d0c024a6fb..8292a857cec7 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.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml
index 7015cf48e682..fc7eb81b1907 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.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/region-testing/pom.xml b/test/region-testing/pom.xml
index e678ccc73698..8b4e5da96599 100644
--- a/test/region-testing/pom.xml
+++ b/test/region-testing/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/ruleset-testing-core/pom.xml b/test/ruleset-testing-core/pom.xml
index 6bab2fe1eb55..ffcddf8dd168 100644
--- a/test/ruleset-testing-core/pom.xml
+++ b/test/ruleset-testing-core/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/s3-benchmarks/pom.xml b/test/s3-benchmarks/pom.xml
index c83a963c3ae5..fcffcc98faad 100644
--- a/test/s3-benchmarks/pom.xml
+++ b/test/s3-benchmarks/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/sdk-benchmarks/pom.xml b/test/sdk-benchmarks/pom.xml
index c02050ffaa78..bdc84d9ac041 100644
--- a/test/sdk-benchmarks/pom.xml
+++ b/test/sdk-benchmarks/pom.xml
@@ -19,7 +19,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.36
+ 2.25.37
../../pom.xml
diff --git a/test/sdk-native-image-test/pom.xml b/test/sdk-native-image-test/pom.xml
index fae194c07c00..494cf973d82c 100644
--- a/test/sdk-native-image-test/pom.xml
+++ b/test/sdk-native-image-test/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/service-test-utils/pom.xml b/test/service-test-utils/pom.xml
index 13a9042a1bf3..85fa415e33d3 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.25.36
+ 2.25.37
../../pom.xml
service-test-utils
diff --git a/test/stability-tests/pom.xml b/test/stability-tests/pom.xml
index b368b99d84fa..aeabd030a343 100644
--- a/test/stability-tests/pom.xml
+++ b/test/stability-tests/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/test-utils/pom.xml b/test/test-utils/pom.xml
index 809fc1bd6737..194336f014cf 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.25.36
+ 2.25.37
../../pom.xml
test-utils
diff --git a/test/tests-coverage-reporting/pom.xml b/test/tests-coverage-reporting/pom.xml
index a4344d8eeed3..d781220c3743 100644
--- a/test/tests-coverage-reporting/pom.xml
+++ b/test/tests-coverage-reporting/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/third-party/pom.xml b/third-party/pom.xml
index 8f857f1e2870..cff7f1e3f54b 100644
--- a/third-party/pom.xml
+++ b/third-party/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
third-party
diff --git a/third-party/third-party-jackson-core/pom.xml b/third-party/third-party-jackson-core/pom.xml
index 6e09a08d12a3..b772beb61f50 100644
--- a/third-party/third-party-jackson-core/pom.xml
+++ b/third-party/third-party-jackson-core/pom.xml
@@ -20,7 +20,7 @@
third-party
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/third-party/third-party-jackson-dataformat-cbor/pom.xml b/third-party/third-party-jackson-dataformat-cbor/pom.xml
index fcb64a757fd1..7f9f65fef49d 100644
--- a/third-party/third-party-jackson-dataformat-cbor/pom.xml
+++ b/third-party/third-party-jackson-dataformat-cbor/pom.xml
@@ -20,7 +20,7 @@
third-party
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/third-party/third-party-slf4j-api/pom.xml b/third-party/third-party-slf4j-api/pom.xml
index f1a8d0b44741..5838279c93fe 100644
--- a/third-party/third-party-slf4j-api/pom.xml
+++ b/third-party/third-party-slf4j-api/pom.xml
@@ -20,7 +20,7 @@
third-party
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0
diff --git a/utils/pom.xml b/utils/pom.xml
index d342baed75f2..0a4df4d4c6ac 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.36
+ 2.25.37
4.0.0