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/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/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/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/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/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/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/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/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/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/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");
From e4f927f4b588c77ef5a33e8a2236c7b75982d6eb Mon Sep 17 00:00:00 2001
From: Anna-Karin Salander
Date: Tue, 23 Apr 2024 06:03:04 +0300
Subject: [PATCH 03/14] Fixes bugs in mapping of identity provider names for
user agent (#5132)
---
.../auth/credentials/SystemPropertyCredentialsProvider.java | 2 +-
.../credentials/SystemSettingsCredentialsProviderTest.java | 2 +-
.../core/internal/useragent/IdentityProviderNameMapping.java | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
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/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/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"),
From 098110c6095b69c16a9269459008156c1ae9d495 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:09:06 +0000
Subject: [PATCH 04/14] Agents for Amazon Bedrock Runtime Update: This release
introduces zero-setup file upload support for the RetrieveAndGenerate API.
This allows you to chat with your data without setting up a Knowledge Base.
---
...AgentsforAmazonBedrockRuntime-f33f4ae.json | 6 +
.../codegen-resources/service-2.json | 129 +++++++++++++++++-
2 files changed, 134 insertions(+), 1 deletion(-)
create mode 100644 .changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json
diff --git a/.changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json b/.changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json
new file mode 100644
index 000000000000..06aafccf3814
--- /dev/null
+++ b/.changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "Agents for Amazon Bedrock Runtime",
+ "contributor": "",
+ "description": "This release introduces zero-setup file upload support for the RetrieveAndGenerate API. This allows you to chat with your data without setting up a Knowledge Base."
+}
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":[
From 26d426a8afb6c1ae70128024d1fa7ed8a2b858e3 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:09:50 +0000
Subject: [PATCH 05/14] AWS Cost Explorer Service Update: Added additional
metadata that might be applicable to your reservation recommendations.
---
...eature-AWSCostExplorerService-3bcb1f5.json | 6 ++++++
.../codegen-resources/service-2.json | 20 +++++++++++--------
2 files changed, 18 insertions(+), 8 deletions(-)
create mode 100644 .changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json
diff --git a/.changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json b/.changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json
new file mode 100644
index 000000000000..b7c9111ac5ef
--- /dev/null
+++ b/.changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "AWS Cost Explorer Service",
+ "contributor": "",
+ "description": "Added additional metadata that might be applicable to your reservation recommendations."
+}
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",
From 5f4c2afcaba73dabb1c0905a5305efcf617e3b9d Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:09:55 +0000
Subject: [PATCH 06/14] Amazon WorkSpaces Web Update: Added InstanceType and
MaxConcurrentSessions parameters on CreatePortal and UpdatePortal Operations
as well as the ability to read Customer Managed Key & Additional Encryption
Context parameters on supported resources (Portal, BrowserSettings,
UserSettings, IPAccessSettings)
---
.../feature-AmazonWorkSpacesWeb-fcc8d43.json | 6 +
.../codegen-resources/endpoint-rule-set.json | 40 +++---
.../codegen-resources/service-2.json | 134 ++++++++++++++----
3 files changed, 134 insertions(+), 46 deletions(-)
create mode 100644 .changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json
diff --git a/.changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json b/.changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json
new file mode 100644
index 000000000000..7ac5c5817352
--- /dev/null
+++ b/.changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "Amazon WorkSpaces Web",
+ "contributor": "",
+ "description": "Added InstanceType and MaxConcurrentSessions parameters on CreatePortal and UpdatePortal Operations as well as the ability to read Customer Managed Key & Additional Encryption Context parameters on supported resources (Portal, BrowserSettings, UserSettings, IPAccessSettings)"
+}
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.
"
From 2e222a3c08f878f5ca89f1aac4597d73971e55e9 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:09:58 +0000
Subject: [PATCH 07/14] Amazon Relational Database Service Update: Fix the
example ARN for ModifyActivityStreamRequest
---
.../feature-AmazonRelationalDatabaseService-c553781.json | 6 ++++++
.../rds/src/main/resources/codegen-resources/service-2.json | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
create mode 100644 .changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json
diff --git a/.changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json b/.changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json
new file mode 100644
index 000000000000..1e67a7bdcd13
--- /dev/null
+++ b/.changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "Amazon Relational Database Service",
+ "contributor": "",
+ "description": "Fix the example ARN for ModifyActivityStreamRequest"
+}
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",
From 542fab66ba8fc9e51329d563e0118a2402451779 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:09:56 +0000
Subject: [PATCH 08/14] Agents for Amazon Bedrock Update: Introducing the
ability to create multiple data sources per knowledge base, specify S3
buckets as data sources from external accounts, and exposing levers to define
the deletion behavior of the underlying vector store data.
---
...eature-AgentsforAmazonBedrock-6a66002.json | 6 +++
.../codegen-resources/service-2.json | 39 ++++++++++++++++++-
2 files changed, 43 insertions(+), 2 deletions(-)
create mode 100644 .changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json
diff --git a/.changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json b/.changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json
new file mode 100644
index 000000000000..035f13efce70
--- /dev/null
+++ b/.changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "Agents for Amazon Bedrock",
+ "contributor": "",
+ "description": "Introducing the ability to create multiple data sources per knowledge base, specify S3 buckets as data sources from external accounts, and exposing levers to define the deletion behavior of the underlying vector store data."
+}
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.
"
From 969a5fa52896d9ef30eec3d1dd4c2b458c378935 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:09:57 +0000
Subject: [PATCH 09/14] AWS Performance Insights Update: Clarifies how
aggregation works for GetResourceMetrics in the Performance Insights API.
---
...eature-AWSPerformanceInsights-113aa2e.json | 6 +++
.../codegen-resources/endpoint-rule-set.json | 40 +++++++++----------
.../codegen-resources/service-2.json | 10 ++---
3 files changed, 31 insertions(+), 25 deletions(-)
create mode 100644 .changes/next-release/feature-AWSPerformanceInsights-113aa2e.json
diff --git a/.changes/next-release/feature-AWSPerformanceInsights-113aa2e.json b/.changes/next-release/feature-AWSPerformanceInsights-113aa2e.json
new file mode 100644
index 000000000000..b8393c1ed5d2
--- /dev/null
+++ b/.changes/next-release/feature-AWSPerformanceInsights-113aa2e.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "AWS Performance Insights",
+ "contributor": "",
+ "description": "Clarifies how aggregation works for GetResourceMetrics in the Performance Insights API."
+}
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",
From d5ca29ad8d3bee788a1060a0ee61246f0c881879 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:09:55 +0000
Subject: [PATCH 10/14] Amazon Elastic Compute Cloud Update: This release
introduces EC2 AMI Deregistration Protection, a new AMI property that can be
enabled by customers to protect an AMI against an unintended deregistration.
This release also enables the AMI owners to view the AMI 'LastLaunchedTime'
in DescribeImages API.
---
...ure-AmazonElasticComputeCloud-845b00e.json | 6 +
.../codegen-resources/service-2.json | 150 ++++++++++++++----
2 files changed, 125 insertions(+), 31 deletions(-)
create mode 100644 .changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json
diff --git a/.changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json b/.changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json
new file mode 100644
index 000000000000..0eb14ddee1c9
--- /dev/null
+++ b/.changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "Amazon Elastic Compute Cloud",
+ "contributor": "",
+ "description": "This release introduces EC2 AMI Deregistration Protection, a new AMI property that can be enabled by customers to protect an AMI against an unintended deregistration. This release also enables the AMI owners to view the AMI 'LastLaunchedTime' in DescribeImages API."
+}
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",
From 8fa7e6e335f00cc87d295aee1e0bfca95fe39458 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:10:00 +0000
Subject: [PATCH 11/14] Amazon Bedrock Runtime Update: This release introduces
Guardrails for Amazon Bedrock.
---
.../feature-AmazonBedrockRuntime-afe462c.json | 6 ++
.../codegen-resources/service-2.json | 98 ++++++++++++++++---
2 files changed, 89 insertions(+), 15 deletions(-)
create mode 100644 .changes/next-release/feature-AmazonBedrockRuntime-afe462c.json
diff --git a/.changes/next-release/feature-AmazonBedrockRuntime-afe462c.json b/.changes/next-release/feature-AmazonBedrockRuntime-afe462c.json
new file mode 100644
index 000000000000..19b9166b37fb
--- /dev/null
+++ b/.changes/next-release/feature-AmazonBedrockRuntime-afe462c.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "Amazon Bedrock Runtime",
+ "contributor": "",
+ "description": "This release introduces Guardrails for Amazon Bedrock."
+}
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.
"
}
From bbce5ca0fa6c4b1f69e0feb9701ea2c358c37646 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:10:00 +0000
Subject: [PATCH 12/14] Amazon Bedrock Update: This release introduces Model
Evaluation and Guardrails for Amazon Bedrock.
---
.../feature-AmazonBedrock-1b2e9b7.json | 6 +
.../codegen-resources/paginators-1.json | 12 +
.../codegen-resources/service-2.json | 2277 +++++++++++++++--
3 files changed, 2077 insertions(+), 218 deletions(-)
create mode 100644 .changes/next-release/feature-AmazonBedrock-1b2e9b7.json
diff --git a/.changes/next-release/feature-AmazonBedrock-1b2e9b7.json b/.changes/next-release/feature-AmazonBedrock-1b2e9b7.json
new file mode 100644
index 000000000000..58bd721b97ef
--- /dev/null
+++ b/.changes/next-release/feature-AmazonBedrock-1b2e9b7.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "Amazon Bedrock",
+ "contributor": "",
+ "description": "This release introduces Model Evaluation and Guardrails for Amazon 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.
"
}
From 7eb13d0680ec6f93ee363110bf28a6d53ce20bf8 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:11:16 +0000
Subject: [PATCH 13/14] Updated endpoints.json and partitions.json.
---
.../next-release/feature-AWSSDKforJavav2-0443982.json | 6 ++++++
.../awssdk/regions/internal/region/endpoints.json | 11 +++++++++++
2 files changed, 17 insertions(+)
create mode 100644 .changes/next-release/feature-AWSSDKforJavav2-0443982.json
diff --git a/.changes/next-release/feature-AWSSDKforJavav2-0443982.json b/.changes/next-release/feature-AWSSDKforJavav2-0443982.json
new file mode 100644
index 000000000000..e5b5ee3ca5e3
--- /dev/null
+++ b/.changes/next-release/feature-AWSSDKforJavav2-0443982.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "AWS SDK for Java v2",
+ "contributor": "",
+ "description": "Updated endpoint and partition metadata."
+}
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" : {
From a12b44bedec36b3c420ebf37c4733686acb6c42c Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Tue, 23 Apr 2024 18:12:27 +0000
Subject: [PATCH 14/14] Release 2.25.37. Updated CHANGELOG.md, README.md and
all pom.xml.
---
.changes/2.25.37.json | 72 +++++++++++++++++++
...eature-AWSCostExplorerService-3bcb1f5.json | 6 --
...eature-AWSPerformanceInsights-113aa2e.json | 6 --
.../feature-AWSSDKforJavaV2-aac00fa.json | 6 --
.../feature-AWSSDKforJavav2-0443982.json | 6 --
...eature-AgentsforAmazonBedrock-6a66002.json | 6 --
...AgentsforAmazonBedrockRuntime-f33f4ae.json | 6 --
.../feature-AmazonBedrock-1b2e9b7.json | 6 --
.../feature-AmazonBedrockRuntime-afe462c.json | 6 --
...ure-AmazonElasticComputeCloud-845b00e.json | 6 --
...azonRelationalDatabaseService-c553781.json | 6 --
.../feature-AmazonWorkSpacesWeb-fcc8d43.json | 6 --
CHANGELOG.md | 45 ++++++++++++
README.md | 8 +--
archetypes/archetype-app-quickstart/pom.xml | 2 +-
archetypes/archetype-lambda/pom.xml | 2 +-
archetypes/archetype-tools/pom.xml | 2 +-
archetypes/pom.xml | 2 +-
aws-sdk-java/pom.xml | 2 +-
bom-internal/pom.xml | 2 +-
bom/pom.xml | 2 +-
bundle-logging-bridge/pom.xml | 2 +-
bundle-sdk/pom.xml | 2 +-
bundle/pom.xml | 2 +-
codegen-lite-maven-plugin/pom.xml | 2 +-
codegen-lite/pom.xml | 2 +-
codegen-maven-plugin/pom.xml | 2 +-
codegen/pom.xml | 2 +-
core/annotations/pom.xml | 2 +-
core/arns/pom.xml | 2 +-
core/auth-crt/pom.xml | 2 +-
core/auth/pom.xml | 2 +-
core/aws-core/pom.xml | 2 +-
core/checksums-spi/pom.xml | 2 +-
core/checksums/pom.xml | 2 +-
core/crt-core/pom.xml | 2 +-
core/endpoints-spi/pom.xml | 2 +-
core/http-auth-aws-crt/pom.xml | 2 +-
core/http-auth-aws-eventstream/pom.xml | 2 +-
core/http-auth-aws/pom.xml | 2 +-
core/http-auth-spi/pom.xml | 2 +-
core/http-auth/pom.xml | 2 +-
core/identity-spi/pom.xml | 2 +-
core/imds/pom.xml | 2 +-
core/json-utils/pom.xml | 2 +-
core/metrics-spi/pom.xml | 2 +-
core/pom.xml | 2 +-
core/profiles/pom.xml | 2 +-
core/protocols/aws-cbor-protocol/pom.xml | 2 +-
core/protocols/aws-json-protocol/pom.xml | 2 +-
core/protocols/aws-query-protocol/pom.xml | 2 +-
core/protocols/aws-xml-protocol/pom.xml | 2 +-
core/protocols/pom.xml | 2 +-
core/protocols/protocol-core/pom.xml | 2 +-
core/regions/pom.xml | 2 +-
core/sdk-core/pom.xml | 2 +-
http-client-spi/pom.xml | 2 +-
http-clients/apache-client/pom.xml | 2 +-
http-clients/aws-crt-client/pom.xml | 2 +-
http-clients/netty-nio-client/pom.xml | 2 +-
http-clients/pom.xml | 2 +-
http-clients/url-connection-client/pom.xml | 2 +-
.../cloudwatch-metric-publisher/pom.xml | 2 +-
metric-publishers/pom.xml | 2 +-
pom.xml | 2 +-
release-scripts/pom.xml | 2 +-
services-custom/dynamodb-enhanced/pom.xml | 2 +-
services-custom/iam-policy-builder/pom.xml | 2 +-
services-custom/pom.xml | 2 +-
.../s3-event-notifications/pom.xml | 2 +-
services-custom/s3-transfer-manager/pom.xml | 2 +-
services/accessanalyzer/pom.xml | 2 +-
services/account/pom.xml | 2 +-
services/acm/pom.xml | 2 +-
services/acmpca/pom.xml | 2 +-
services/alexaforbusiness/pom.xml | 2 +-
services/amp/pom.xml | 2 +-
services/amplify/pom.xml | 2 +-
services/amplifybackend/pom.xml | 2 +-
services/amplifyuibuilder/pom.xml | 2 +-
services/apigateway/pom.xml | 2 +-
services/apigatewaymanagementapi/pom.xml | 2 +-
services/apigatewayv2/pom.xml | 2 +-
services/appconfig/pom.xml | 2 +-
services/appconfigdata/pom.xml | 2 +-
services/appfabric/pom.xml | 2 +-
services/appflow/pom.xml | 2 +-
services/appintegrations/pom.xml | 2 +-
services/applicationautoscaling/pom.xml | 2 +-
services/applicationcostprofiler/pom.xml | 2 +-
services/applicationdiscovery/pom.xml | 2 +-
services/applicationinsights/pom.xml | 2 +-
services/appmesh/pom.xml | 2 +-
services/apprunner/pom.xml | 2 +-
services/appstream/pom.xml | 2 +-
services/appsync/pom.xml | 2 +-
services/arczonalshift/pom.xml | 2 +-
services/artifact/pom.xml | 2 +-
services/athena/pom.xml | 2 +-
services/auditmanager/pom.xml | 2 +-
services/autoscaling/pom.xml | 2 +-
services/autoscalingplans/pom.xml | 2 +-
services/b2bi/pom.xml | 2 +-
services/backup/pom.xml | 2 +-
services/backupgateway/pom.xml | 2 +-
services/backupstorage/pom.xml | 2 +-
services/batch/pom.xml | 2 +-
services/bcmdataexports/pom.xml | 2 +-
services/bedrock/pom.xml | 2 +-
services/bedrockagent/pom.xml | 2 +-
services/bedrockagentruntime/pom.xml | 2 +-
services/bedrockruntime/pom.xml | 2 +-
services/billingconductor/pom.xml | 2 +-
services/braket/pom.xml | 2 +-
services/budgets/pom.xml | 2 +-
services/chatbot/pom.xml | 2 +-
services/chime/pom.xml | 2 +-
services/chimesdkidentity/pom.xml | 2 +-
services/chimesdkmediapipelines/pom.xml | 2 +-
services/chimesdkmeetings/pom.xml | 2 +-
services/chimesdkmessaging/pom.xml | 2 +-
services/chimesdkvoice/pom.xml | 2 +-
services/cleanrooms/pom.xml | 2 +-
services/cleanroomsml/pom.xml | 2 +-
services/cloud9/pom.xml | 2 +-
services/cloudcontrol/pom.xml | 2 +-
services/clouddirectory/pom.xml | 2 +-
services/cloudformation/pom.xml | 2 +-
services/cloudfront/pom.xml | 2 +-
services/cloudfrontkeyvaluestore/pom.xml | 2 +-
services/cloudhsm/pom.xml | 2 +-
services/cloudhsmv2/pom.xml | 2 +-
services/cloudsearch/pom.xml | 2 +-
services/cloudsearchdomain/pom.xml | 2 +-
services/cloudtrail/pom.xml | 2 +-
services/cloudtraildata/pom.xml | 2 +-
services/cloudwatch/pom.xml | 2 +-
services/cloudwatchevents/pom.xml | 2 +-
services/cloudwatchlogs/pom.xml | 2 +-
services/codeartifact/pom.xml | 2 +-
services/codebuild/pom.xml | 2 +-
services/codecatalyst/pom.xml | 2 +-
services/codecommit/pom.xml | 2 +-
services/codeconnections/pom.xml | 2 +-
services/codedeploy/pom.xml | 2 +-
services/codeguruprofiler/pom.xml | 2 +-
services/codegurureviewer/pom.xml | 2 +-
services/codegurusecurity/pom.xml | 2 +-
services/codepipeline/pom.xml | 2 +-
services/codestar/pom.xml | 2 +-
services/codestarconnections/pom.xml | 2 +-
services/codestarnotifications/pom.xml | 2 +-
services/cognitoidentity/pom.xml | 2 +-
services/cognitoidentityprovider/pom.xml | 2 +-
services/cognitosync/pom.xml | 2 +-
services/comprehend/pom.xml | 2 +-
services/comprehendmedical/pom.xml | 2 +-
services/computeoptimizer/pom.xml | 2 +-
services/config/pom.xml | 2 +-
services/connect/pom.xml | 2 +-
services/connectcampaigns/pom.xml | 2 +-
services/connectcases/pom.xml | 2 +-
services/connectcontactlens/pom.xml | 2 +-
services/connectparticipant/pom.xml | 2 +-
services/controlcatalog/pom.xml | 2 +-
services/controltower/pom.xml | 2 +-
services/costandusagereport/pom.xml | 2 +-
services/costexplorer/pom.xml | 2 +-
services/costoptimizationhub/pom.xml | 2 +-
services/customerprofiles/pom.xml | 2 +-
services/databasemigration/pom.xml | 2 +-
services/databrew/pom.xml | 2 +-
services/dataexchange/pom.xml | 2 +-
services/datapipeline/pom.xml | 2 +-
services/datasync/pom.xml | 2 +-
services/datazone/pom.xml | 2 +-
services/dax/pom.xml | 2 +-
services/deadline/pom.xml | 2 +-
services/detective/pom.xml | 2 +-
services/devicefarm/pom.xml | 2 +-
services/devopsguru/pom.xml | 2 +-
services/directconnect/pom.xml | 2 +-
services/directory/pom.xml | 2 +-
services/dlm/pom.xml | 2 +-
services/docdb/pom.xml | 2 +-
services/docdbelastic/pom.xml | 2 +-
services/drs/pom.xml | 2 +-
services/dynamodb/pom.xml | 2 +-
services/ebs/pom.xml | 2 +-
services/ec2/pom.xml | 2 +-
services/ec2instanceconnect/pom.xml | 2 +-
services/ecr/pom.xml | 2 +-
services/ecrpublic/pom.xml | 2 +-
services/ecs/pom.xml | 2 +-
services/efs/pom.xml | 2 +-
services/eks/pom.xml | 2 +-
services/eksauth/pom.xml | 2 +-
services/elasticache/pom.xml | 2 +-
services/elasticbeanstalk/pom.xml | 2 +-
services/elasticinference/pom.xml | 2 +-
services/elasticloadbalancing/pom.xml | 2 +-
services/elasticloadbalancingv2/pom.xml | 2 +-
services/elasticsearch/pom.xml | 2 +-
services/elastictranscoder/pom.xml | 2 +-
services/emr/pom.xml | 2 +-
services/emrcontainers/pom.xml | 2 +-
services/emrserverless/pom.xml | 2 +-
services/entityresolution/pom.xml | 2 +-
services/eventbridge/pom.xml | 2 +-
services/evidently/pom.xml | 2 +-
services/finspace/pom.xml | 2 +-
services/finspacedata/pom.xml | 2 +-
services/firehose/pom.xml | 2 +-
services/fis/pom.xml | 2 +-
services/fms/pom.xml | 2 +-
services/forecast/pom.xml | 2 +-
services/forecastquery/pom.xml | 2 +-
services/frauddetector/pom.xml | 2 +-
services/freetier/pom.xml | 2 +-
services/fsx/pom.xml | 2 +-
services/gamelift/pom.xml | 2 +-
services/glacier/pom.xml | 2 +-
services/globalaccelerator/pom.xml | 2 +-
services/glue/pom.xml | 2 +-
services/grafana/pom.xml | 2 +-
services/greengrass/pom.xml | 2 +-
services/greengrassv2/pom.xml | 2 +-
services/groundstation/pom.xml | 2 +-
services/guardduty/pom.xml | 2 +-
services/health/pom.xml | 2 +-
services/healthlake/pom.xml | 2 +-
services/honeycode/pom.xml | 2 +-
services/iam/pom.xml | 2 +-
services/identitystore/pom.xml | 2 +-
services/imagebuilder/pom.xml | 2 +-
services/inspector/pom.xml | 2 +-
services/inspector2/pom.xml | 2 +-
services/inspectorscan/pom.xml | 2 +-
services/internetmonitor/pom.xml | 2 +-
services/iot/pom.xml | 2 +-
services/iot1clickdevices/pom.xml | 2 +-
services/iot1clickprojects/pom.xml | 2 +-
services/iotanalytics/pom.xml | 2 +-
services/iotdataplane/pom.xml | 2 +-
services/iotdeviceadvisor/pom.xml | 2 +-
services/iotevents/pom.xml | 2 +-
services/ioteventsdata/pom.xml | 2 +-
services/iotfleethub/pom.xml | 2 +-
services/iotfleetwise/pom.xml | 2 +-
services/iotjobsdataplane/pom.xml | 2 +-
services/iotsecuretunneling/pom.xml | 2 +-
services/iotsitewise/pom.xml | 2 +-
services/iotthingsgraph/pom.xml | 2 +-
services/iottwinmaker/pom.xml | 2 +-
services/iotwireless/pom.xml | 2 +-
services/ivs/pom.xml | 2 +-
services/ivschat/pom.xml | 2 +-
services/ivsrealtime/pom.xml | 2 +-
services/kafka/pom.xml | 2 +-
services/kafkaconnect/pom.xml | 2 +-
services/kendra/pom.xml | 2 +-
services/kendraranking/pom.xml | 2 +-
services/keyspaces/pom.xml | 2 +-
services/kinesis/pom.xml | 2 +-
services/kinesisanalytics/pom.xml | 2 +-
services/kinesisanalyticsv2/pom.xml | 2 +-
services/kinesisvideo/pom.xml | 2 +-
services/kinesisvideoarchivedmedia/pom.xml | 2 +-
services/kinesisvideomedia/pom.xml | 2 +-
services/kinesisvideosignaling/pom.xml | 2 +-
services/kinesisvideowebrtcstorage/pom.xml | 2 +-
services/kms/pom.xml | 2 +-
services/lakeformation/pom.xml | 2 +-
services/lambda/pom.xml | 2 +-
services/launchwizard/pom.xml | 2 +-
services/lexmodelbuilding/pom.xml | 2 +-
services/lexmodelsv2/pom.xml | 2 +-
services/lexruntime/pom.xml | 2 +-
services/lexruntimev2/pom.xml | 2 +-
services/licensemanager/pom.xml | 2 +-
.../licensemanagerlinuxsubscriptions/pom.xml | 2 +-
.../licensemanagerusersubscriptions/pom.xml | 2 +-
services/lightsail/pom.xml | 2 +-
services/location/pom.xml | 2 +-
services/lookoutequipment/pom.xml | 2 +-
services/lookoutmetrics/pom.xml | 2 +-
services/lookoutvision/pom.xml | 2 +-
services/m2/pom.xml | 2 +-
services/machinelearning/pom.xml | 2 +-
services/macie2/pom.xml | 2 +-
services/managedblockchain/pom.xml | 2 +-
services/managedblockchainquery/pom.xml | 2 +-
services/marketplaceagreement/pom.xml | 2 +-
services/marketplacecatalog/pom.xml | 2 +-
services/marketplacecommerceanalytics/pom.xml | 2 +-
services/marketplacedeployment/pom.xml | 2 +-
services/marketplaceentitlement/pom.xml | 2 +-
services/marketplacemetering/pom.xml | 2 +-
services/mediaconnect/pom.xml | 2 +-
services/mediaconvert/pom.xml | 2 +-
services/medialive/pom.xml | 2 +-
services/mediapackage/pom.xml | 2 +-
services/mediapackagev2/pom.xml | 2 +-
services/mediapackagevod/pom.xml | 2 +-
services/mediastore/pom.xml | 2 +-
services/mediastoredata/pom.xml | 2 +-
services/mediatailor/pom.xml | 2 +-
services/medicalimaging/pom.xml | 2 +-
services/memorydb/pom.xml | 2 +-
services/mgn/pom.xml | 2 +-
services/migrationhub/pom.xml | 2 +-
services/migrationhubconfig/pom.xml | 2 +-
services/migrationhuborchestrator/pom.xml | 2 +-
services/migrationhubrefactorspaces/pom.xml | 2 +-
services/migrationhubstrategy/pom.xml | 2 +-
services/mobile/pom.xml | 2 +-
services/mq/pom.xml | 2 +-
services/mturk/pom.xml | 2 +-
services/mwaa/pom.xml | 2 +-
services/neptune/pom.xml | 2 +-
services/neptunedata/pom.xml | 2 +-
services/neptunegraph/pom.xml | 2 +-
services/networkfirewall/pom.xml | 2 +-
services/networkmanager/pom.xml | 2 +-
services/networkmonitor/pom.xml | 2 +-
services/nimble/pom.xml | 2 +-
services/oam/pom.xml | 2 +-
services/omics/pom.xml | 2 +-
services/opensearch/pom.xml | 2 +-
services/opensearchserverless/pom.xml | 2 +-
services/opsworks/pom.xml | 2 +-
services/opsworkscm/pom.xml | 2 +-
services/organizations/pom.xml | 2 +-
services/osis/pom.xml | 2 +-
services/outposts/pom.xml | 2 +-
services/panorama/pom.xml | 2 +-
services/paymentcryptography/pom.xml | 2 +-
services/paymentcryptographydata/pom.xml | 2 +-
services/pcaconnectorad/pom.xml | 2 +-
services/personalize/pom.xml | 2 +-
services/personalizeevents/pom.xml | 2 +-
services/personalizeruntime/pom.xml | 2 +-
services/pi/pom.xml | 2 +-
services/pinpoint/pom.xml | 2 +-
services/pinpointemail/pom.xml | 2 +-
services/pinpointsmsvoice/pom.xml | 2 +-
services/pinpointsmsvoicev2/pom.xml | 2 +-
services/pipes/pom.xml | 2 +-
services/polly/pom.xml | 2 +-
services/pom.xml | 2 +-
services/pricing/pom.xml | 2 +-
services/privatenetworks/pom.xml | 2 +-
services/proton/pom.xml | 2 +-
services/qbusiness/pom.xml | 2 +-
services/qconnect/pom.xml | 2 +-
services/qldb/pom.xml | 2 +-
services/qldbsession/pom.xml | 2 +-
services/quicksight/pom.xml | 2 +-
services/ram/pom.xml | 2 +-
services/rbin/pom.xml | 2 +-
services/rds/pom.xml | 2 +-
services/rdsdata/pom.xml | 2 +-
services/redshift/pom.xml | 2 +-
services/redshiftdata/pom.xml | 2 +-
services/redshiftserverless/pom.xml | 2 +-
services/rekognition/pom.xml | 2 +-
services/repostspace/pom.xml | 2 +-
services/resiliencehub/pom.xml | 2 +-
services/resourceexplorer2/pom.xml | 2 +-
services/resourcegroups/pom.xml | 2 +-
services/resourcegroupstaggingapi/pom.xml | 2 +-
services/robomaker/pom.xml | 2 +-
services/rolesanywhere/pom.xml | 2 +-
services/route53/pom.xml | 2 +-
services/route53domains/pom.xml | 2 +-
services/route53profiles/pom.xml | 2 +-
services/route53recoverycluster/pom.xml | 2 +-
services/route53recoverycontrolconfig/pom.xml | 2 +-
services/route53recoveryreadiness/pom.xml | 2 +-
services/route53resolver/pom.xml | 2 +-
services/rum/pom.xml | 2 +-
services/s3/pom.xml | 2 +-
services/s3control/pom.xml | 2 +-
services/s3outposts/pom.xml | 2 +-
services/sagemaker/pom.xml | 2 +-
services/sagemakera2iruntime/pom.xml | 2 +-
services/sagemakeredge/pom.xml | 2 +-
services/sagemakerfeaturestoreruntime/pom.xml | 2 +-
services/sagemakergeospatial/pom.xml | 2 +-
services/sagemakermetrics/pom.xml | 2 +-
services/sagemakerruntime/pom.xml | 2 +-
services/savingsplans/pom.xml | 2 +-
services/scheduler/pom.xml | 2 +-
services/schemas/pom.xml | 2 +-
services/secretsmanager/pom.xml | 2 +-
services/securityhub/pom.xml | 2 +-
services/securitylake/pom.xml | 2 +-
.../serverlessapplicationrepository/pom.xml | 2 +-
services/servicecatalog/pom.xml | 2 +-
services/servicecatalogappregistry/pom.xml | 2 +-
services/servicediscovery/pom.xml | 2 +-
services/servicequotas/pom.xml | 2 +-
services/ses/pom.xml | 2 +-
services/sesv2/pom.xml | 2 +-
services/sfn/pom.xml | 2 +-
services/shield/pom.xml | 2 +-
services/signer/pom.xml | 2 +-
services/simspaceweaver/pom.xml | 2 +-
services/sms/pom.xml | 2 +-
services/snowball/pom.xml | 2 +-
services/snowdevicemanagement/pom.xml | 2 +-
services/sns/pom.xml | 2 +-
services/sqs/pom.xml | 2 +-
services/ssm/pom.xml | 2 +-
services/ssmcontacts/pom.xml | 2 +-
services/ssmincidents/pom.xml | 2 +-
services/ssmsap/pom.xml | 2 +-
services/sso/pom.xml | 2 +-
services/ssoadmin/pom.xml | 2 +-
services/ssooidc/pom.xml | 2 +-
services/storagegateway/pom.xml | 2 +-
services/sts/pom.xml | 2 +-
services/supplychain/pom.xml | 2 +-
services/support/pom.xml | 2 +-
services/supportapp/pom.xml | 2 +-
services/swf/pom.xml | 2 +-
services/synthetics/pom.xml | 2 +-
services/textract/pom.xml | 2 +-
services/timestreaminfluxdb/pom.xml | 2 +-
services/timestreamquery/pom.xml | 2 +-
services/timestreamwrite/pom.xml | 2 +-
services/tnb/pom.xml | 2 +-
services/transcribe/pom.xml | 2 +-
services/transcribestreaming/pom.xml | 2 +-
services/transfer/pom.xml | 2 +-
services/translate/pom.xml | 2 +-
services/trustedadvisor/pom.xml | 2 +-
services/verifiedpermissions/pom.xml | 2 +-
services/voiceid/pom.xml | 2 +-
services/vpclattice/pom.xml | 2 +-
services/waf/pom.xml | 2 +-
services/wafv2/pom.xml | 2 +-
services/wellarchitected/pom.xml | 2 +-
services/wisdom/pom.xml | 2 +-
services/workdocs/pom.xml | 2 +-
services/worklink/pom.xml | 2 +-
services/workmail/pom.xml | 2 +-
services/workmailmessageflow/pom.xml | 2 +-
services/workspaces/pom.xml | 2 +-
services/workspacesthinclient/pom.xml | 2 +-
services/workspacesweb/pom.xml | 2 +-
services/xray/pom.xml | 2 +-
test/auth-tests/pom.xml | 2 +-
.../pom.xml | 2 +-
test/codegen-generated-classes-test/pom.xml | 2 +-
test/crt-unavailable-tests/pom.xml | 2 +-
test/http-client-tests/pom.xml | 2 +-
test/module-path-tests/pom.xml | 2 +-
.../pom.xml | 2 +-
test/protocol-tests-core/pom.xml | 2 +-
test/protocol-tests/pom.xml | 2 +-
test/region-testing/pom.xml | 2 +-
test/ruleset-testing-core/pom.xml | 2 +-
test/s3-benchmarks/pom.xml | 2 +-
test/sdk-benchmarks/pom.xml | 2 +-
test/sdk-native-image-test/pom.xml | 2 +-
test/service-test-utils/pom.xml | 2 +-
test/stability-tests/pom.xml | 2 +-
test/test-utils/pom.xml | 2 +-
test/tests-coverage-reporting/pom.xml | 2 +-
third-party/pom.xml | 2 +-
third-party/third-party-jackson-core/pom.xml | 2 +-
.../pom.xml | 2 +-
third-party/third-party-slf4j-api/pom.xml | 2 +-
utils/pom.xml | 2 +-
475 files changed, 582 insertions(+), 531 deletions(-)
create mode 100644 .changes/2.25.37.json
delete mode 100644 .changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json
delete mode 100644 .changes/next-release/feature-AWSPerformanceInsights-113aa2e.json
delete mode 100644 .changes/next-release/feature-AWSSDKforJavaV2-aac00fa.json
delete mode 100644 .changes/next-release/feature-AWSSDKforJavav2-0443982.json
delete mode 100644 .changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json
delete mode 100644 .changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json
delete mode 100644 .changes/next-release/feature-AmazonBedrock-1b2e9b7.json
delete mode 100644 .changes/next-release/feature-AmazonBedrockRuntime-afe462c.json
delete mode 100644 .changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json
delete mode 100644 .changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json
delete mode 100644 .changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json
diff --git a/.changes/2.25.37.json b/.changes/2.25.37.json
new file mode 100644
index 000000000000..c951dbd4f12c
--- /dev/null
+++ b/.changes/2.25.37.json
@@ -0,0 +1,72 @@
+{
+ "version": "2.25.37",
+ "date": "2024-04-23",
+ "entries": [
+ {
+ "type": "feature",
+ "category": "AWS Cost Explorer Service",
+ "contributor": "",
+ "description": "Added additional metadata that might be applicable to your reservation recommendations."
+ },
+ {
+ "type": "feature",
+ "category": "AWS Performance Insights",
+ "contributor": "",
+ "description": "Clarifies how aggregation works for GetResourceMetrics in the Performance Insights API."
+ },
+ {
+ "type": "feature",
+ "category": "AWS SDK for Java V2",
+ "contributor": "",
+ "description": "Source account Id from credentials to use in endpoint construction"
+ },
+ {
+ "type": "feature",
+ "category": "Agents for Amazon Bedrock",
+ "contributor": "",
+ "description": "Introducing the ability to create multiple data sources per knowledge base, specify S3 buckets as data sources from external accounts, and exposing levers to define the deletion behavior of the underlying vector store data."
+ },
+ {
+ "type": "feature",
+ "category": "Agents for Amazon Bedrock Runtime",
+ "contributor": "",
+ "description": "This release introduces zero-setup file upload support for the RetrieveAndGenerate API. This allows you to chat with your data without setting up a Knowledge Base."
+ },
+ {
+ "type": "feature",
+ "category": "Amazon Bedrock",
+ "contributor": "",
+ "description": "This release introduces Model Evaluation and Guardrails for Amazon Bedrock."
+ },
+ {
+ "type": "feature",
+ "category": "Amazon Bedrock Runtime",
+ "contributor": "",
+ "description": "This release introduces Guardrails for Amazon Bedrock."
+ },
+ {
+ "type": "feature",
+ "category": "Amazon Elastic Compute Cloud",
+ "contributor": "",
+ "description": "This release introduces EC2 AMI Deregistration Protection, a new AMI property that can be enabled by customers to protect an AMI against an unintended deregistration. This release also enables the AMI owners to view the AMI 'LastLaunchedTime' in DescribeImages API."
+ },
+ {
+ "type": "feature",
+ "category": "Amazon Relational Database Service",
+ "contributor": "",
+ "description": "Fix the example ARN for ModifyActivityStreamRequest"
+ },
+ {
+ "type": "feature",
+ "category": "Amazon WorkSpaces Web",
+ "contributor": "",
+ "description": "Added InstanceType and MaxConcurrentSessions parameters on CreatePortal and UpdatePortal Operations as well as the ability to read Customer Managed Key & Additional Encryption Context parameters on supported resources (Portal, BrowserSettings, UserSettings, IPAccessSettings)"
+ },
+ {
+ "type": "feature",
+ "category": "AWS SDK for Java v2",
+ "contributor": "",
+ "description": "Updated endpoint and partition metadata."
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json b/.changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json
deleted file mode 100644
index b7c9111ac5ef..000000000000
--- a/.changes/next-release/feature-AWSCostExplorerService-3bcb1f5.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "AWS Cost Explorer Service",
- "contributor": "",
- "description": "Added additional metadata that might be applicable to your reservation recommendations."
-}
diff --git a/.changes/next-release/feature-AWSPerformanceInsights-113aa2e.json b/.changes/next-release/feature-AWSPerformanceInsights-113aa2e.json
deleted file mode 100644
index b8393c1ed5d2..000000000000
--- a/.changes/next-release/feature-AWSPerformanceInsights-113aa2e.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "AWS Performance Insights",
- "contributor": "",
- "description": "Clarifies how aggregation works for GetResourceMetrics in the Performance Insights API."
-}
diff --git a/.changes/next-release/feature-AWSSDKforJavaV2-aac00fa.json b/.changes/next-release/feature-AWSSDKforJavaV2-aac00fa.json
deleted file mode 100644
index f12f6e647d7e..000000000000
--- a/.changes/next-release/feature-AWSSDKforJavaV2-aac00fa.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "AWS SDK for Java V2",
- "contributor": "",
- "description": "Source account Id from credentials to use in endpoint construction"
-}
diff --git a/.changes/next-release/feature-AWSSDKforJavav2-0443982.json b/.changes/next-release/feature-AWSSDKforJavav2-0443982.json
deleted file mode 100644
index e5b5ee3ca5e3..000000000000
--- a/.changes/next-release/feature-AWSSDKforJavav2-0443982.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "AWS SDK for Java v2",
- "contributor": "",
- "description": "Updated endpoint and partition metadata."
-}
diff --git a/.changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json b/.changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json
deleted file mode 100644
index 035f13efce70..000000000000
--- a/.changes/next-release/feature-AgentsforAmazonBedrock-6a66002.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "Agents for Amazon Bedrock",
- "contributor": "",
- "description": "Introducing the ability to create multiple data sources per knowledge base, specify S3 buckets as data sources from external accounts, and exposing levers to define the deletion behavior of the underlying vector store data."
-}
diff --git a/.changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json b/.changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json
deleted file mode 100644
index 06aafccf3814..000000000000
--- a/.changes/next-release/feature-AgentsforAmazonBedrockRuntime-f33f4ae.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "Agents for Amazon Bedrock Runtime",
- "contributor": "",
- "description": "This release introduces zero-setup file upload support for the RetrieveAndGenerate API. This allows you to chat with your data without setting up a Knowledge Base."
-}
diff --git a/.changes/next-release/feature-AmazonBedrock-1b2e9b7.json b/.changes/next-release/feature-AmazonBedrock-1b2e9b7.json
deleted file mode 100644
index 58bd721b97ef..000000000000
--- a/.changes/next-release/feature-AmazonBedrock-1b2e9b7.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "Amazon Bedrock",
- "contributor": "",
- "description": "This release introduces Model Evaluation and Guardrails for Amazon Bedrock."
-}
diff --git a/.changes/next-release/feature-AmazonBedrockRuntime-afe462c.json b/.changes/next-release/feature-AmazonBedrockRuntime-afe462c.json
deleted file mode 100644
index 19b9166b37fb..000000000000
--- a/.changes/next-release/feature-AmazonBedrockRuntime-afe462c.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "Amazon Bedrock Runtime",
- "contributor": "",
- "description": "This release introduces Guardrails for Amazon Bedrock."
-}
diff --git a/.changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json b/.changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json
deleted file mode 100644
index 0eb14ddee1c9..000000000000
--- a/.changes/next-release/feature-AmazonElasticComputeCloud-845b00e.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "Amazon Elastic Compute Cloud",
- "contributor": "",
- "description": "This release introduces EC2 AMI Deregistration Protection, a new AMI property that can be enabled by customers to protect an AMI against an unintended deregistration. This release also enables the AMI owners to view the AMI 'LastLaunchedTime' in DescribeImages API."
-}
diff --git a/.changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json b/.changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json
deleted file mode 100644
index 1e67a7bdcd13..000000000000
--- a/.changes/next-release/feature-AmazonRelationalDatabaseService-c553781.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "Amazon Relational Database Service",
- "contributor": "",
- "description": "Fix the example ARN for ModifyActivityStreamRequest"
-}
diff --git a/.changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json b/.changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json
deleted file mode 100644
index 7ac5c5817352..000000000000
--- a/.changes/next-release/feature-AmazonWorkSpacesWeb-fcc8d43.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "feature",
- "category": "Amazon WorkSpaces Web",
- "contributor": "",
- "description": "Added InstanceType and MaxConcurrentSessions parameters on CreatePortal and UpdatePortal Operations as well as the ability to read Customer Managed Key & Additional Encryption Context parameters on supported resources (Portal, BrowserSettings, UserSettings, IPAccessSettings)"
-}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a207cf261ad3..e64f7ede65d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,49 @@
#### 👋 _Looking for changelogs for older versions? You can find them in the [changelogs](./changelogs) directory._
+# __2.25.37__ __2024-04-23__
+## __AWS Cost Explorer Service__
+ - ### Features
+ - Added additional metadata that might be applicable to your reservation recommendations.
+
+## __AWS Performance Insights__
+ - ### Features
+ - Clarifies how aggregation works for GetResourceMetrics in the Performance Insights API.
+
+## __AWS SDK for Java V2__
+ - ### Features
+ - Source account Id from credentials to use in endpoint construction
+
+## __AWS SDK for Java v2__
+ - ### Features
+ - Updated endpoint and partition metadata.
+
+## __Agents for Amazon Bedrock__
+ - ### Features
+ - Introducing the ability to create multiple data sources per knowledge base, specify S3 buckets as data sources from external accounts, and exposing levers to define the deletion behavior of the underlying vector store data.
+
+## __Agents for Amazon Bedrock Runtime__
+ - ### Features
+ - This release introduces zero-setup file upload support for the RetrieveAndGenerate API. This allows you to chat with your data without setting up a Knowledge Base.
+
+## __Amazon Bedrock__
+ - ### Features
+ - This release introduces Model Evaluation and Guardrails for Amazon Bedrock.
+
+## __Amazon Bedrock Runtime__
+ - ### Features
+ - This release introduces Guardrails for Amazon Bedrock.
+
+## __Amazon Elastic Compute Cloud__
+ - ### Features
+ - This release introduces EC2 AMI Deregistration Protection, a new AMI property that can be enabled by customers to protect an AMI against an unintended deregistration. This release also enables the AMI owners to view the AMI 'LastLaunchedTime' in DescribeImages API.
+
+## __Amazon Relational Database Service__
+ - ### Features
+ - Fix the example ARN for ModifyActivityStreamRequest
+
+## __Amazon WorkSpaces Web__
+ - ### Features
+ - Added InstanceType and MaxConcurrentSessions parameters on CreatePortal and UpdatePortal Operations as well as the ability to read Customer Managed Key & Additional Encryption Context parameters on supported resources (Portal, BrowserSettings, UserSettings, IPAccessSettings)
+
# __2.25.36__ __2024-04-22__
## __AWS Cloud Map__
- ### Features
diff --git a/README.md b/README.md
index 422dd23cd3f6..0b1102b8319d 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,7 @@ To automatically manage module versions (currently all modules have the same ver
software.amazon.awssdk
bom
- 2.25.36
+ 2.25.37
pom
import
@@ -86,12 +86,12 @@ Alternatively you can add dependencies for the specific services you use only:
software.amazon.awssdk
ec2
- 2.25.36
+ 2.25.37
software.amazon.awssdk
s3
- 2.25.36
+ 2.25.37
```
@@ -103,7 +103,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please
software.amazon.awssdk
aws-sdk-java
- 2.25.36
+ 2.25.37
```
diff --git a/archetypes/archetype-app-quickstart/pom.xml b/archetypes/archetype-app-quickstart/pom.xml
index b56b1a23f9fe..454e94bf84e1 100644
--- a/archetypes/archetype-app-quickstart/pom.xml
+++ b/archetypes/archetype-app-quickstart/pom.xml
@@ -20,7 +20,7 @@
archetypes
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/archetypes/archetype-lambda/pom.xml b/archetypes/archetype-lambda/pom.xml
index 789eaf9c99af..94c8ba97c4e8 100644
--- a/archetypes/archetype-lambda/pom.xml
+++ b/archetypes/archetype-lambda/pom.xml
@@ -20,7 +20,7 @@
archetypes
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
archetype-lambda
diff --git a/archetypes/archetype-tools/pom.xml b/archetypes/archetype-tools/pom.xml
index cc8a538288ad..483e4d42c19c 100644
--- a/archetypes/archetype-tools/pom.xml
+++ b/archetypes/archetype-tools/pom.xml
@@ -20,7 +20,7 @@
archetypes
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/archetypes/pom.xml b/archetypes/pom.xml
index e980c8366737..c9be3f36ee58 100644
--- a/archetypes/pom.xml
+++ b/archetypes/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
archetypes
diff --git a/aws-sdk-java/pom.xml b/aws-sdk-java/pom.xml
index b01d05fc6212..b7ecceaa63a7 100644
--- a/aws-sdk-java/pom.xml
+++ b/aws-sdk-java/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
../pom.xml
aws-sdk-java
diff --git a/bom-internal/pom.xml b/bom-internal/pom.xml
index c9ef5f088115..5ff2ef4e8985 100644
--- a/bom-internal/pom.xml
+++ b/bom-internal/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/bom/pom.xml b/bom/pom.xml
index 21b5cfdc0d8f..49ce28525010 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
../pom.xml
bom
diff --git a/bundle-logging-bridge/pom.xml b/bundle-logging-bridge/pom.xml
index 5f020048ba75..f7194994ce93 100644
--- a/bundle-logging-bridge/pom.xml
+++ b/bundle-logging-bridge/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
bundle-logging-bridge
jar
diff --git a/bundle-sdk/pom.xml b/bundle-sdk/pom.xml
index f79670daecf6..2fff36832dfa 100644
--- a/bundle-sdk/pom.xml
+++ b/bundle-sdk/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
bundle-sdk
jar
diff --git a/bundle/pom.xml b/bundle/pom.xml
index 215728616630..6db1f88c967e 100644
--- a/bundle/pom.xml
+++ b/bundle/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
bundle
jar
diff --git a/codegen-lite-maven-plugin/pom.xml b/codegen-lite-maven-plugin/pom.xml
index 8797781f50e5..a66e9bc0f17d 100644
--- a/codegen-lite-maven-plugin/pom.xml
+++ b/codegen-lite-maven-plugin/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
../pom.xml
codegen-lite-maven-plugin
diff --git a/codegen-lite/pom.xml b/codegen-lite/pom.xml
index 5b3726e27bb3..62cd64387ff8 100644
--- a/codegen-lite/pom.xml
+++ b/codegen-lite/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
codegen-lite
AWS Java SDK :: Code Generator Lite
diff --git a/codegen-maven-plugin/pom.xml b/codegen-maven-plugin/pom.xml
index 591f7abfeef1..b38ac26f7d58 100644
--- a/codegen-maven-plugin/pom.xml
+++ b/codegen-maven-plugin/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
../pom.xml
codegen-maven-plugin
diff --git a/codegen/pom.xml b/codegen/pom.xml
index 2451f01a60be..5a521b9ae0ea 100644
--- a/codegen/pom.xml
+++ b/codegen/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
codegen
AWS Java SDK :: Code Generator
diff --git a/core/annotations/pom.xml b/core/annotations/pom.xml
index 75778a7a2ae7..85a024b9ae24 100644
--- a/core/annotations/pom.xml
+++ b/core/annotations/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/core/arns/pom.xml b/core/arns/pom.xml
index f1f4bc2a0528..90eb5bd90bf0 100644
--- a/core/arns/pom.xml
+++ b/core/arns/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/core/auth-crt/pom.xml b/core/auth-crt/pom.xml
index 20ebb2e82081..e1233041ad5e 100644
--- a/core/auth-crt/pom.xml
+++ b/core/auth-crt/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
auth-crt
diff --git a/core/auth/pom.xml b/core/auth/pom.xml
index 95306ef95dd7..e142273bb876 100644
--- a/core/auth/pom.xml
+++ b/core/auth/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
auth
diff --git a/core/aws-core/pom.xml b/core/aws-core/pom.xml
index 6940ddda2696..d3e7af1164cf 100644
--- a/core/aws-core/pom.xml
+++ b/core/aws-core/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
aws-core
diff --git a/core/checksums-spi/pom.xml b/core/checksums-spi/pom.xml
index 684e1ca72c32..8249529f1232 100644
--- a/core/checksums-spi/pom.xml
+++ b/core/checksums-spi/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
checksums-spi
diff --git a/core/checksums/pom.xml b/core/checksums/pom.xml
index 483ad462d926..2404de74b228 100644
--- a/core/checksums/pom.xml
+++ b/core/checksums/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
checksums
diff --git a/core/crt-core/pom.xml b/core/crt-core/pom.xml
index b9ef091fa033..c794d857ed61 100644
--- a/core/crt-core/pom.xml
+++ b/core/crt-core/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
crt-core
diff --git a/core/endpoints-spi/pom.xml b/core/endpoints-spi/pom.xml
index dd601afb33f4..8f5f72d650a0 100644
--- a/core/endpoints-spi/pom.xml
+++ b/core/endpoints-spi/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 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 3c0fce954ae4..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.37-SNAPSHOT
+ 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 034b4288c1e4..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.37-SNAPSHOT
+ 2.25.37
http-auth-aws-eventstream
diff --git a/core/http-auth-aws/pom.xml b/core/http-auth-aws/pom.xml
index b1e1a86fb3d0..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.37-SNAPSHOT
+ 2.25.37
http-auth-aws
diff --git a/core/http-auth-spi/pom.xml b/core/http-auth-spi/pom.xml
index d69813cbead5..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.37-SNAPSHOT
+ 2.25.37
http-auth-spi
diff --git a/core/http-auth/pom.xml b/core/http-auth/pom.xml
index eca71b6fae16..de9968b16ed1 100644
--- a/core/http-auth/pom.xml
+++ b/core/http-auth/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
http-auth
diff --git a/core/identity-spi/pom.xml b/core/identity-spi/pom.xml
index 45adcb80785e..47dfe7dba763 100644
--- a/core/identity-spi/pom.xml
+++ b/core/identity-spi/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
identity-spi
diff --git a/core/imds/pom.xml b/core/imds/pom.xml
index a1de6de14a53..e8c09f6481be 100644
--- a/core/imds/pom.xml
+++ b/core/imds/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
imds
diff --git a/core/json-utils/pom.xml b/core/json-utils/pom.xml
index 0749aee22ebc..a236bfe75dc1 100644
--- a/core/json-utils/pom.xml
+++ b/core/json-utils/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/core/metrics-spi/pom.xml b/core/metrics-spi/pom.xml
index 0e0ab06d6fc4..cb8c9e7e6598 100644
--- a/core/metrics-spi/pom.xml
+++ b/core/metrics-spi/pom.xml
@@ -5,7 +5,7 @@
core
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/core/pom.xml b/core/pom.xml
index 2f8975e61f69..242f11439a57 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -21,7 +21,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
core
diff --git a/core/profiles/pom.xml b/core/profiles/pom.xml
index 4d49793e9a15..b9e4b2f8851e 100644
--- a/core/profiles/pom.xml
+++ b/core/profiles/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
profiles
diff --git a/core/protocols/aws-cbor-protocol/pom.xml b/core/protocols/aws-cbor-protocol/pom.xml
index 65f746430aba..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.37-SNAPSHOT
+ 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 16e7508b73f0..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.37-SNAPSHOT
+ 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 b4002e3874a5..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.37-SNAPSHOT
+ 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 63bdbdc292ea..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.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/core/protocols/pom.xml b/core/protocols/pom.xml
index 91ed879bab60..5c7198f6bd7a 100644
--- a/core/protocols/pom.xml
+++ b/core/protocols/pom.xml
@@ -20,7 +20,7 @@
core
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/core/protocols/protocol-core/pom.xml b/core/protocols/protocol-core/pom.xml
index f3ac75ce4d34..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.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/core/regions/pom.xml b/core/regions/pom.xml
index 541e81c94516..7b9e953f050a 100644
--- a/core/regions/pom.xml
+++ b/core/regions/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
regions
diff --git a/core/sdk-core/pom.xml b/core/sdk-core/pom.xml
index 096d1837972e..eb05243ad684 100644
--- a/core/sdk-core/pom.xml
+++ b/core/sdk-core/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
core
- 2.25.37-SNAPSHOT
+ 2.25.37
sdk-core
AWS Java SDK :: SDK Core
diff --git a/http-client-spi/pom.xml b/http-client-spi/pom.xml
index a6b97b2c5ee2..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.37-SNAPSHOT
+ 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 ddf59b2f9ea2..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.37-SNAPSHOT
+ 2.25.37
apache-client
diff --git a/http-clients/aws-crt-client/pom.xml b/http-clients/aws-crt-client/pom.xml
index 03a222e38e55..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.37-SNAPSHOT
+ 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 fb5194b8dc7e..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.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/http-clients/pom.xml b/http-clients/pom.xml
index 223a3ca7f93b..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.37-SNAPSHOT
+ 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 2510de107570..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.37-SNAPSHOT
+ 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 3f6b42e6d15a..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.37-SNAPSHOT
+ 2.25.37
cloudwatch-metric-publisher
diff --git a/metric-publishers/pom.xml b/metric-publishers/pom.xml
index 1404bbb2684d..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.37-SNAPSHOT
+ 2.25.37
metric-publishers
diff --git a/pom.xml b/pom.xml
index 9c5d338f15d1..efff18a2e4a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
4.0.0
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
pom
AWS Java SDK :: Parent
The Amazon Web Services SDK for Java provides Java APIs
diff --git a/release-scripts/pom.xml b/release-scripts/pom.xml
index 685c607ab07b..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.37-SNAPSHOT
+ 2.25.37
../pom.xml
release-scripts
diff --git a/services-custom/dynamodb-enhanced/pom.xml b/services-custom/dynamodb-enhanced/pom.xml
index d0eb38b262a1..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.37-SNAPSHOT
+ 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 f92e6706e80b..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
iam-policy-builder
diff --git a/services-custom/pom.xml b/services-custom/pom.xml
index e6be85175226..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.37-SNAPSHOT
+ 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 28409405e9da..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.37-SNAPSHOT
+ 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 9dff5c787bba..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
s3-transfer-manager
diff --git a/services/accessanalyzer/pom.xml b/services/accessanalyzer/pom.xml
index 5393f33a7922..4f1e0933036a 100644
--- a/services/accessanalyzer/pom.xml
+++ b/services/accessanalyzer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
accessanalyzer
AWS Java SDK :: Services :: AccessAnalyzer
diff --git a/services/account/pom.xml b/services/account/pom.xml
index 1607590879bf..e1a863ccc9d9 100644
--- a/services/account/pom.xml
+++ b/services/account/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
account
AWS Java SDK :: Services :: Account
diff --git a/services/acm/pom.xml b/services/acm/pom.xml
index cbc67cce44d4..1e2aa0d8eccc 100644
--- a/services/acm/pom.xml
+++ b/services/acm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
acm
AWS Java SDK :: Services :: AWS Certificate Manager
diff --git a/services/acmpca/pom.xml b/services/acmpca/pom.xml
index e2cba2532f81..3dbc081ff4c7 100644
--- a/services/acmpca/pom.xml
+++ b/services/acmpca/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
acmpca
AWS Java SDK :: Services :: ACM PCA
diff --git a/services/alexaforbusiness/pom.xml b/services/alexaforbusiness/pom.xml
index 5799407f1f27..db2d9dd4f07f 100644
--- a/services/alexaforbusiness/pom.xml
+++ b/services/alexaforbusiness/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
alexaforbusiness
diff --git a/services/amp/pom.xml b/services/amp/pom.xml
index ac8887fc6558..03bafa23c0b0 100644
--- a/services/amp/pom.xml
+++ b/services/amp/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
amp
AWS Java SDK :: Services :: Amp
diff --git a/services/amplify/pom.xml b/services/amplify/pom.xml
index a76df3ecb3ce..cdfb3c6e6fb9 100644
--- a/services/amplify/pom.xml
+++ b/services/amplify/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
amplify
AWS Java SDK :: Services :: Amplify
diff --git a/services/amplifybackend/pom.xml b/services/amplifybackend/pom.xml
index cadc8a12714e..ddef198652bb 100644
--- a/services/amplifybackend/pom.xml
+++ b/services/amplifybackend/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
amplifybackend
AWS Java SDK :: Services :: Amplify Backend
diff --git a/services/amplifyuibuilder/pom.xml b/services/amplifyuibuilder/pom.xml
index 0a74b9d70106..6cfe1bef9c8d 100644
--- a/services/amplifyuibuilder/pom.xml
+++ b/services/amplifyuibuilder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
amplifyuibuilder
AWS Java SDK :: Services :: Amplify UI Builder
diff --git a/services/apigateway/pom.xml b/services/apigateway/pom.xml
index 342aa085ef9a..1add4de13cfe 100644
--- a/services/apigateway/pom.xml
+++ b/services/apigateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
apigateway
AWS Java SDK :: Services :: Amazon API Gateway
diff --git a/services/apigatewaymanagementapi/pom.xml b/services/apigatewaymanagementapi/pom.xml
index c36f01614259..862e59954a11 100644
--- a/services/apigatewaymanagementapi/pom.xml
+++ b/services/apigatewaymanagementapi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
apigatewaymanagementapi
AWS Java SDK :: Services :: ApiGatewayManagementApi
diff --git a/services/apigatewayv2/pom.xml b/services/apigatewayv2/pom.xml
index e2ec395c7d1e..c37c0edce7de 100644
--- a/services/apigatewayv2/pom.xml
+++ b/services/apigatewayv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
apigatewayv2
AWS Java SDK :: Services :: ApiGatewayV2
diff --git a/services/appconfig/pom.xml b/services/appconfig/pom.xml
index 52c8a1c89117..2f34c5c8d408 100644
--- a/services/appconfig/pom.xml
+++ b/services/appconfig/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
appconfig
AWS Java SDK :: Services :: AppConfig
diff --git a/services/appconfigdata/pom.xml b/services/appconfigdata/pom.xml
index 15458f24a1c5..1aa9b43db15d 100644
--- a/services/appconfigdata/pom.xml
+++ b/services/appconfigdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
appconfigdata
AWS Java SDK :: Services :: App Config Data
diff --git a/services/appfabric/pom.xml b/services/appfabric/pom.xml
index 585460608dd8..1760e1cf829d 100644
--- a/services/appfabric/pom.xml
+++ b/services/appfabric/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
appfabric
AWS Java SDK :: Services :: App Fabric
diff --git a/services/appflow/pom.xml b/services/appflow/pom.xml
index bd5b172c81e8..50be5c45a246 100644
--- a/services/appflow/pom.xml
+++ b/services/appflow/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
appflow
AWS Java SDK :: Services :: Appflow
diff --git a/services/appintegrations/pom.xml b/services/appintegrations/pom.xml
index e548adb020f4..0cc7868d39ae 100644
--- a/services/appintegrations/pom.xml
+++ b/services/appintegrations/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
appintegrations
AWS Java SDK :: Services :: App Integrations
diff --git a/services/applicationautoscaling/pom.xml b/services/applicationautoscaling/pom.xml
index cfd1f96a2e1f..1abd76e00935 100644
--- a/services/applicationautoscaling/pom.xml
+++ b/services/applicationautoscaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 0b3b80dbde52..7e154e661144 100644
--- a/services/applicationcostprofiler/pom.xml
+++ b/services/applicationcostprofiler/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
applicationcostprofiler
AWS Java SDK :: Services :: Application Cost Profiler
diff --git a/services/applicationdiscovery/pom.xml b/services/applicationdiscovery/pom.xml
index de09e2554690..2de5b7e52c06 100644
--- a/services/applicationdiscovery/pom.xml
+++ b/services/applicationdiscovery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 096db17aa65d..2378ca8cf6cc 100644
--- a/services/applicationinsights/pom.xml
+++ b/services/applicationinsights/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
applicationinsights
AWS Java SDK :: Services :: Application Insights
diff --git a/services/appmesh/pom.xml b/services/appmesh/pom.xml
index ed899034e641..65f0f5453d19 100644
--- a/services/appmesh/pom.xml
+++ b/services/appmesh/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
appmesh
AWS Java SDK :: Services :: App Mesh
diff --git a/services/apprunner/pom.xml b/services/apprunner/pom.xml
index 7b89a1d97bc8..2e3371b6766b 100644
--- a/services/apprunner/pom.xml
+++ b/services/apprunner/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
apprunner
AWS Java SDK :: Services :: App Runner
diff --git a/services/appstream/pom.xml b/services/appstream/pom.xml
index 52ed8fb56aa8..87cb44052dcc 100644
--- a/services/appstream/pom.xml
+++ b/services/appstream/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
appstream
AWS Java SDK :: Services :: Amazon AppStream
diff --git a/services/appsync/pom.xml b/services/appsync/pom.xml
index 953187209aeb..0234ff808d64 100644
--- a/services/appsync/pom.xml
+++ b/services/appsync/pom.xml
@@ -21,7 +21,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
appsync
diff --git a/services/arczonalshift/pom.xml b/services/arczonalshift/pom.xml
index 88353d887d7f..eb23dca97aad 100644
--- a/services/arczonalshift/pom.xml
+++ b/services/arczonalshift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
arczonalshift
AWS Java SDK :: Services :: ARC Zonal Shift
diff --git a/services/artifact/pom.xml b/services/artifact/pom.xml
index c50faa51be5a..5d29ebf40366 100644
--- a/services/artifact/pom.xml
+++ b/services/artifact/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
artifact
AWS Java SDK :: Services :: Artifact
diff --git a/services/athena/pom.xml b/services/athena/pom.xml
index 38a2e773e709..4b24841a08f6 100644
--- a/services/athena/pom.xml
+++ b/services/athena/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
athena
AWS Java SDK :: Services :: Amazon Athena
diff --git a/services/auditmanager/pom.xml b/services/auditmanager/pom.xml
index f13dabf0831b..bd80bfcf0263 100644
--- a/services/auditmanager/pom.xml
+++ b/services/auditmanager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
auditmanager
AWS Java SDK :: Services :: Audit Manager
diff --git a/services/autoscaling/pom.xml b/services/autoscaling/pom.xml
index 330f09f1c268..c25b803adf6d 100644
--- a/services/autoscaling/pom.xml
+++ b/services/autoscaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
autoscaling
AWS Java SDK :: Services :: Auto Scaling
diff --git a/services/autoscalingplans/pom.xml b/services/autoscalingplans/pom.xml
index f4b0d7739b52..8bb7146c900f 100644
--- a/services/autoscalingplans/pom.xml
+++ b/services/autoscalingplans/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
autoscalingplans
AWS Java SDK :: Services :: Auto Scaling Plans
diff --git a/services/b2bi/pom.xml b/services/b2bi/pom.xml
index 630388c19bce..a08ed14ec2d7 100644
--- a/services/b2bi/pom.xml
+++ b/services/b2bi/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
b2bi
AWS Java SDK :: Services :: B2 Bi
diff --git a/services/backup/pom.xml b/services/backup/pom.xml
index 6e6bff53a8d4..84244284736c 100644
--- a/services/backup/pom.xml
+++ b/services/backup/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
backup
AWS Java SDK :: Services :: Backup
diff --git a/services/backupgateway/pom.xml b/services/backupgateway/pom.xml
index 0b5f58e70525..43deaf3e93e0 100644
--- a/services/backupgateway/pom.xml
+++ b/services/backupgateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
backupgateway
AWS Java SDK :: Services :: Backup Gateway
diff --git a/services/backupstorage/pom.xml b/services/backupstorage/pom.xml
index a24c82f143b3..acbf3e974415 100644
--- a/services/backupstorage/pom.xml
+++ b/services/backupstorage/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
backupstorage
AWS Java SDK :: Services :: Backup Storage
diff --git a/services/batch/pom.xml b/services/batch/pom.xml
index 5a98836f04d8..2584a55bd64c 100644
--- a/services/batch/pom.xml
+++ b/services/batch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
batch
AWS Java SDK :: Services :: AWS Batch
diff --git a/services/bcmdataexports/pom.xml b/services/bcmdataexports/pom.xml
index f28b8f62aea9..01c1d7537620 100644
--- a/services/bcmdataexports/pom.xml
+++ b/services/bcmdataexports/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
bcmdataexports
AWS Java SDK :: Services :: BCM Data Exports
diff --git a/services/bedrock/pom.xml b/services/bedrock/pom.xml
index 507482c442ee..20946bb99033 100644
--- a/services/bedrock/pom.xml
+++ b/services/bedrock/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
bedrock
AWS Java SDK :: Services :: Bedrock
diff --git a/services/bedrockagent/pom.xml b/services/bedrockagent/pom.xml
index a977679acf1a..09ff557bec0e 100644
--- a/services/bedrockagent/pom.xml
+++ b/services/bedrockagent/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
bedrockagent
AWS Java SDK :: Services :: Bedrock Agent
diff --git a/services/bedrockagentruntime/pom.xml b/services/bedrockagentruntime/pom.xml
index 7e117c69cb7d..ddbd84ac09c5 100644
--- a/services/bedrockagentruntime/pom.xml
+++ b/services/bedrockagentruntime/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
bedrockagentruntime
AWS Java SDK :: Services :: Bedrock Agent Runtime
diff --git a/services/bedrockruntime/pom.xml b/services/bedrockruntime/pom.xml
index ea6b2473e1b5..6d74f3738bfd 100644
--- a/services/bedrockruntime/pom.xml
+++ b/services/bedrockruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
bedrockruntime
AWS Java SDK :: Services :: Bedrock Runtime
diff --git a/services/billingconductor/pom.xml b/services/billingconductor/pom.xml
index ef8213de0df4..1f756d0dc447 100644
--- a/services/billingconductor/pom.xml
+++ b/services/billingconductor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
billingconductor
AWS Java SDK :: Services :: Billingconductor
diff --git a/services/braket/pom.xml b/services/braket/pom.xml
index 0cf8521beb6a..2ddd963e8223 100644
--- a/services/braket/pom.xml
+++ b/services/braket/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
braket
AWS Java SDK :: Services :: Braket
diff --git a/services/budgets/pom.xml b/services/budgets/pom.xml
index 69d4d9e22a25..86519911b1b0 100644
--- a/services/budgets/pom.xml
+++ b/services/budgets/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
budgets
AWS Java SDK :: Services :: AWS Budgets
diff --git a/services/chatbot/pom.xml b/services/chatbot/pom.xml
index b1eca0ff410e..4d4b52274592 100644
--- a/services/chatbot/pom.xml
+++ b/services/chatbot/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
chatbot
AWS Java SDK :: Services :: Chatbot
diff --git a/services/chime/pom.xml b/services/chime/pom.xml
index 875f6bae0346..2ff51f4a560e 100644
--- a/services/chime/pom.xml
+++ b/services/chime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
chime
AWS Java SDK :: Services :: Chime
diff --git a/services/chimesdkidentity/pom.xml b/services/chimesdkidentity/pom.xml
index 491fe7a188f5..aee3999d4ee1 100644
--- a/services/chimesdkidentity/pom.xml
+++ b/services/chimesdkidentity/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
chimesdkidentity
AWS Java SDK :: Services :: Chime SDK Identity
diff --git a/services/chimesdkmediapipelines/pom.xml b/services/chimesdkmediapipelines/pom.xml
index 900f68312bb3..287344e8f10d 100644
--- a/services/chimesdkmediapipelines/pom.xml
+++ b/services/chimesdkmediapipelines/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 d7370d9d5928..18f77f3e7bcc 100644
--- a/services/chimesdkmeetings/pom.xml
+++ b/services/chimesdkmeetings/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
chimesdkmeetings
AWS Java SDK :: Services :: Chime SDK Meetings
diff --git a/services/chimesdkmessaging/pom.xml b/services/chimesdkmessaging/pom.xml
index e04df1634e51..94773e6ae980 100644
--- a/services/chimesdkmessaging/pom.xml
+++ b/services/chimesdkmessaging/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
chimesdkmessaging
AWS Java SDK :: Services :: Chime SDK Messaging
diff --git a/services/chimesdkvoice/pom.xml b/services/chimesdkvoice/pom.xml
index 0132ce8fcfc9..31f889916bd8 100644
--- a/services/chimesdkvoice/pom.xml
+++ b/services/chimesdkvoice/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
chimesdkvoice
AWS Java SDK :: Services :: Chime SDK Voice
diff --git a/services/cleanrooms/pom.xml b/services/cleanrooms/pom.xml
index 8f4e0ef07741..55931e72d393 100644
--- a/services/cleanrooms/pom.xml
+++ b/services/cleanrooms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cleanrooms
AWS Java SDK :: Services :: Clean Rooms
diff --git a/services/cleanroomsml/pom.xml b/services/cleanroomsml/pom.xml
index 7f0a81ed0db1..844f0da0eb85 100644
--- a/services/cleanroomsml/pom.xml
+++ b/services/cleanroomsml/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cleanroomsml
AWS Java SDK :: Services :: Clean Rooms ML
diff --git a/services/cloud9/pom.xml b/services/cloud9/pom.xml
index c1242cc759a2..e2a66b489d50 100644
--- a/services/cloud9/pom.xml
+++ b/services/cloud9/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
cloud9
diff --git a/services/cloudcontrol/pom.xml b/services/cloudcontrol/pom.xml
index 4aa3c74baf39..924e3938703e 100644
--- a/services/cloudcontrol/pom.xml
+++ b/services/cloudcontrol/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudcontrol
AWS Java SDK :: Services :: Cloud Control
diff --git a/services/clouddirectory/pom.xml b/services/clouddirectory/pom.xml
index 7abc44c24ba7..638ed3831419 100644
--- a/services/clouddirectory/pom.xml
+++ b/services/clouddirectory/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
clouddirectory
AWS Java SDK :: Services :: Amazon CloudDirectory
diff --git a/services/cloudformation/pom.xml b/services/cloudformation/pom.xml
index cf90ef38a657..c5c9f55ba5c6 100644
--- a/services/cloudformation/pom.xml
+++ b/services/cloudformation/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudformation
AWS Java SDK :: Services :: AWS CloudFormation
diff --git a/services/cloudfront/pom.xml b/services/cloudfront/pom.xml
index 4628ac655744..4f3b9612ceea 100644
--- a/services/cloudfront/pom.xml
+++ b/services/cloudfront/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudfront
AWS Java SDK :: Services :: Amazon CloudFront
diff --git a/services/cloudfrontkeyvaluestore/pom.xml b/services/cloudfrontkeyvaluestore/pom.xml
index 5bfcc6481af4..1f7ec39a22fb 100644
--- a/services/cloudfrontkeyvaluestore/pom.xml
+++ b/services/cloudfrontkeyvaluestore/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 8e68d9033c67..72b5bdfd2d8f 100644
--- a/services/cloudhsm/pom.xml
+++ b/services/cloudhsm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudhsm
AWS Java SDK :: Services :: AWS CloudHSM
diff --git a/services/cloudhsmv2/pom.xml b/services/cloudhsmv2/pom.xml
index 319c3a74bdd1..c012570a8a71 100644
--- a/services/cloudhsmv2/pom.xml
+++ b/services/cloudhsmv2/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
cloudhsmv2
diff --git a/services/cloudsearch/pom.xml b/services/cloudsearch/pom.xml
index 4e5efab05084..584255c86798 100644
--- a/services/cloudsearch/pom.xml
+++ b/services/cloudsearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudsearch
AWS Java SDK :: Services :: Amazon CloudSearch
diff --git a/services/cloudsearchdomain/pom.xml b/services/cloudsearchdomain/pom.xml
index eb72c766d92c..20ca35953f2f 100644
--- a/services/cloudsearchdomain/pom.xml
+++ b/services/cloudsearchdomain/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudsearchdomain
AWS Java SDK :: Services :: Amazon CloudSearch Domain
diff --git a/services/cloudtrail/pom.xml b/services/cloudtrail/pom.xml
index 12013db40ae5..8294f7fc50b1 100644
--- a/services/cloudtrail/pom.xml
+++ b/services/cloudtrail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudtrail
AWS Java SDK :: Services :: AWS CloudTrail
diff --git a/services/cloudtraildata/pom.xml b/services/cloudtraildata/pom.xml
index 2016f6fd2ae8..7f53c109ebba 100644
--- a/services/cloudtraildata/pom.xml
+++ b/services/cloudtraildata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudtraildata
AWS Java SDK :: Services :: Cloud Trail Data
diff --git a/services/cloudwatch/pom.xml b/services/cloudwatch/pom.xml
index cafef867a052..96815303c79f 100644
--- a/services/cloudwatch/pom.xml
+++ b/services/cloudwatch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudwatch
AWS Java SDK :: Services :: Amazon CloudWatch
diff --git a/services/cloudwatchevents/pom.xml b/services/cloudwatchevents/pom.xml
index ecfcff9738af..5ad4337c6189 100644
--- a/services/cloudwatchevents/pom.xml
+++ b/services/cloudwatchevents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudwatchevents
AWS Java SDK :: Services :: Amazon CloudWatch Events
diff --git a/services/cloudwatchlogs/pom.xml b/services/cloudwatchlogs/pom.xml
index 36fe00c8086a..a37d1f6517b1 100644
--- a/services/cloudwatchlogs/pom.xml
+++ b/services/cloudwatchlogs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cloudwatchlogs
AWS Java SDK :: Services :: Amazon CloudWatch Logs
diff --git a/services/codeartifact/pom.xml b/services/codeartifact/pom.xml
index ca6a3efe47ed..373e45045c77 100644
--- a/services/codeartifact/pom.xml
+++ b/services/codeartifact/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codeartifact
AWS Java SDK :: Services :: Codeartifact
diff --git a/services/codebuild/pom.xml b/services/codebuild/pom.xml
index d0ce417e67d7..cc6958c30d5f 100644
--- a/services/codebuild/pom.xml
+++ b/services/codebuild/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codebuild
AWS Java SDK :: Services :: AWS Code Build
diff --git a/services/codecatalyst/pom.xml b/services/codecatalyst/pom.xml
index 919055553ddd..3db33888f0f7 100644
--- a/services/codecatalyst/pom.xml
+++ b/services/codecatalyst/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codecatalyst
AWS Java SDK :: Services :: Code Catalyst
diff --git a/services/codecommit/pom.xml b/services/codecommit/pom.xml
index de1c0485003d..e20ca70d5750 100644
--- a/services/codecommit/pom.xml
+++ b/services/codecommit/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codecommit
AWS Java SDK :: Services :: AWS CodeCommit
diff --git a/services/codeconnections/pom.xml b/services/codeconnections/pom.xml
index d6a6c79cd073..5c86f9951b91 100644
--- a/services/codeconnections/pom.xml
+++ b/services/codeconnections/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codeconnections
AWS Java SDK :: Services :: Code Connections
diff --git a/services/codedeploy/pom.xml b/services/codedeploy/pom.xml
index 350b961deb86..fca099918fad 100644
--- a/services/codedeploy/pom.xml
+++ b/services/codedeploy/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codedeploy
AWS Java SDK :: Services :: AWS CodeDeploy
diff --git a/services/codeguruprofiler/pom.xml b/services/codeguruprofiler/pom.xml
index aac107eec85f..61a2bbd2241a 100644
--- a/services/codeguruprofiler/pom.xml
+++ b/services/codeguruprofiler/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codeguruprofiler
AWS Java SDK :: Services :: CodeGuruProfiler
diff --git a/services/codegurureviewer/pom.xml b/services/codegurureviewer/pom.xml
index 9dc46faed457..a54aad7cc045 100644
--- a/services/codegurureviewer/pom.xml
+++ b/services/codegurureviewer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codegurureviewer
AWS Java SDK :: Services :: CodeGuru Reviewer
diff --git a/services/codegurusecurity/pom.xml b/services/codegurusecurity/pom.xml
index 8bb5bd8656ac..58e998223643 100644
--- a/services/codegurusecurity/pom.xml
+++ b/services/codegurusecurity/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codegurusecurity
AWS Java SDK :: Services :: Code Guru Security
diff --git a/services/codepipeline/pom.xml b/services/codepipeline/pom.xml
index e3778af99a1a..881ca5a3fcad 100644
--- a/services/codepipeline/pom.xml
+++ b/services/codepipeline/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codepipeline
AWS Java SDK :: Services :: AWS CodePipeline
diff --git a/services/codestar/pom.xml b/services/codestar/pom.xml
index a0def8786f50..db4c3c51efd4 100644
--- a/services/codestar/pom.xml
+++ b/services/codestar/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codestar
AWS Java SDK :: Services :: AWS CodeStar
diff --git a/services/codestarconnections/pom.xml b/services/codestarconnections/pom.xml
index 0b8287232377..84ae58cacdfe 100644
--- a/services/codestarconnections/pom.xml
+++ b/services/codestarconnections/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codestarconnections
AWS Java SDK :: Services :: CodeStar connections
diff --git a/services/codestarnotifications/pom.xml b/services/codestarnotifications/pom.xml
index 232ba20179e3..8065d8679270 100644
--- a/services/codestarnotifications/pom.xml
+++ b/services/codestarnotifications/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
codestarnotifications
AWS Java SDK :: Services :: Codestar Notifications
diff --git a/services/cognitoidentity/pom.xml b/services/cognitoidentity/pom.xml
index 9dccfb81feea..9ff4d93f1b3a 100644
--- a/services/cognitoidentity/pom.xml
+++ b/services/cognitoidentity/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cognitoidentity
AWS Java SDK :: Services :: Amazon Cognito Identity
diff --git a/services/cognitoidentityprovider/pom.xml b/services/cognitoidentityprovider/pom.xml
index 1eebfc28d370..bc000427d7d0 100644
--- a/services/cognitoidentityprovider/pom.xml
+++ b/services/cognitoidentityprovider/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 0079618b9640..c3c558f0bbe5 100644
--- a/services/cognitosync/pom.xml
+++ b/services/cognitosync/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
cognitosync
AWS Java SDK :: Services :: Amazon Cognito Sync
diff --git a/services/comprehend/pom.xml b/services/comprehend/pom.xml
index 508042d5968f..0867d444d3d2 100644
--- a/services/comprehend/pom.xml
+++ b/services/comprehend/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
comprehend
diff --git a/services/comprehendmedical/pom.xml b/services/comprehendmedical/pom.xml
index 35f2941ef26d..ccda3e7392b1 100644
--- a/services/comprehendmedical/pom.xml
+++ b/services/comprehendmedical/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
comprehendmedical
AWS Java SDK :: Services :: ComprehendMedical
diff --git a/services/computeoptimizer/pom.xml b/services/computeoptimizer/pom.xml
index c873e59eed1e..9e330b00fead 100644
--- a/services/computeoptimizer/pom.xml
+++ b/services/computeoptimizer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
computeoptimizer
AWS Java SDK :: Services :: Compute Optimizer
diff --git a/services/config/pom.xml b/services/config/pom.xml
index 197eb842ed9e..01c6934a8394 100644
--- a/services/config/pom.xml
+++ b/services/config/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
config
AWS Java SDK :: Services :: AWS Config
diff --git a/services/connect/pom.xml b/services/connect/pom.xml
index 6eb5998a31b4..d1b4e2a5fae7 100644
--- a/services/connect/pom.xml
+++ b/services/connect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
connect
AWS Java SDK :: Services :: Connect
diff --git a/services/connectcampaigns/pom.xml b/services/connectcampaigns/pom.xml
index 5a2c1197a85e..b0d93a86b287 100644
--- a/services/connectcampaigns/pom.xml
+++ b/services/connectcampaigns/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
connectcampaigns
AWS Java SDK :: Services :: Connect Campaigns
diff --git a/services/connectcases/pom.xml b/services/connectcases/pom.xml
index 574c2af779cf..243f4963b721 100644
--- a/services/connectcases/pom.xml
+++ b/services/connectcases/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
connectcases
AWS Java SDK :: Services :: Connect Cases
diff --git a/services/connectcontactlens/pom.xml b/services/connectcontactlens/pom.xml
index e87ede538e8b..0f9e434bbd5d 100644
--- a/services/connectcontactlens/pom.xml
+++ b/services/connectcontactlens/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
connectcontactlens
AWS Java SDK :: Services :: Connect Contact Lens
diff --git a/services/connectparticipant/pom.xml b/services/connectparticipant/pom.xml
index 622c4fb0210b..21b768e5a6f7 100644
--- a/services/connectparticipant/pom.xml
+++ b/services/connectparticipant/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
connectparticipant
AWS Java SDK :: Services :: ConnectParticipant
diff --git a/services/controlcatalog/pom.xml b/services/controlcatalog/pom.xml
index 50a2e45b9529..33df78f99500 100644
--- a/services/controlcatalog/pom.xml
+++ b/services/controlcatalog/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
controlcatalog
AWS Java SDK :: Services :: Control Catalog
diff --git a/services/controltower/pom.xml b/services/controltower/pom.xml
index 5657ec3f5393..7167ec8af00f 100644
--- a/services/controltower/pom.xml
+++ b/services/controltower/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
controltower
AWS Java SDK :: Services :: Control Tower
diff --git a/services/costandusagereport/pom.xml b/services/costandusagereport/pom.xml
index c54bf83a9c59..d1b216cce1b3 100644
--- a/services/costandusagereport/pom.xml
+++ b/services/costandusagereport/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 9cbfc52c7208..1d74883eea81 100644
--- a/services/costexplorer/pom.xml
+++ b/services/costexplorer/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
costexplorer
diff --git a/services/costoptimizationhub/pom.xml b/services/costoptimizationhub/pom.xml
index 502d8582184a..681320492c60 100644
--- a/services/costoptimizationhub/pom.xml
+++ b/services/costoptimizationhub/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
costoptimizationhub
AWS Java SDK :: Services :: Cost Optimization Hub
diff --git a/services/customerprofiles/pom.xml b/services/customerprofiles/pom.xml
index c8b14439d679..4978d3ec9a3b 100644
--- a/services/customerprofiles/pom.xml
+++ b/services/customerprofiles/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
customerprofiles
AWS Java SDK :: Services :: Customer Profiles
diff --git a/services/databasemigration/pom.xml b/services/databasemigration/pom.xml
index 55b8c4ffc4dc..c7b6c04a5398 100644
--- a/services/databasemigration/pom.xml
+++ b/services/databasemigration/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 9ffb6b7fcd17..2bc932cd8995 100644
--- a/services/databrew/pom.xml
+++ b/services/databrew/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
databrew
AWS Java SDK :: Services :: Data Brew
diff --git a/services/dataexchange/pom.xml b/services/dataexchange/pom.xml
index 3d4c9895e862..312dde457c07 100644
--- a/services/dataexchange/pom.xml
+++ b/services/dataexchange/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
dataexchange
AWS Java SDK :: Services :: DataExchange
diff --git a/services/datapipeline/pom.xml b/services/datapipeline/pom.xml
index 2e570c3cc909..cf1f881285c4 100644
--- a/services/datapipeline/pom.xml
+++ b/services/datapipeline/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
datapipeline
AWS Java SDK :: Services :: AWS Data Pipeline
diff --git a/services/datasync/pom.xml b/services/datasync/pom.xml
index 3adfd42bc8ab..759ac6b5bb12 100644
--- a/services/datasync/pom.xml
+++ b/services/datasync/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
datasync
AWS Java SDK :: Services :: DataSync
diff --git a/services/datazone/pom.xml b/services/datazone/pom.xml
index e2bd538e748b..4f758ad0df27 100644
--- a/services/datazone/pom.xml
+++ b/services/datazone/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
datazone
AWS Java SDK :: Services :: Data Zone
diff --git a/services/dax/pom.xml b/services/dax/pom.xml
index ced47d1ce19a..f9659ccbbe26 100644
--- a/services/dax/pom.xml
+++ b/services/dax/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 a96093f39db2..19fbdf453a4e 100644
--- a/services/deadline/pom.xml
+++ b/services/deadline/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
deadline
AWS Java SDK :: Services :: Deadline
diff --git a/services/detective/pom.xml b/services/detective/pom.xml
index 81bc14932926..e8e958e57dd4 100644
--- a/services/detective/pom.xml
+++ b/services/detective/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
detective
AWS Java SDK :: Services :: Detective
diff --git a/services/devicefarm/pom.xml b/services/devicefarm/pom.xml
index 07d807bd698e..eea9917c9e42 100644
--- a/services/devicefarm/pom.xml
+++ b/services/devicefarm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
devicefarm
AWS Java SDK :: Services :: AWS Device Farm
diff --git a/services/devopsguru/pom.xml b/services/devopsguru/pom.xml
index 0055ec16f41c..1eac6bb07a60 100644
--- a/services/devopsguru/pom.xml
+++ b/services/devopsguru/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
devopsguru
AWS Java SDK :: Services :: Dev Ops Guru
diff --git a/services/directconnect/pom.xml b/services/directconnect/pom.xml
index b582b024762f..02e104fc9b84 100644
--- a/services/directconnect/pom.xml
+++ b/services/directconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
directconnect
AWS Java SDK :: Services :: AWS Direct Connect
diff --git a/services/directory/pom.xml b/services/directory/pom.xml
index 3b397b65184d..832c94bb1339 100644
--- a/services/directory/pom.xml
+++ b/services/directory/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
directory
AWS Java SDK :: Services :: AWS Directory Service
diff --git a/services/dlm/pom.xml b/services/dlm/pom.xml
index c093f911910c..3416cf23b787 100644
--- a/services/dlm/pom.xml
+++ b/services/dlm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
dlm
AWS Java SDK :: Services :: DLM
diff --git a/services/docdb/pom.xml b/services/docdb/pom.xml
index 4762f137775e..7e65f4dc7e0b 100644
--- a/services/docdb/pom.xml
+++ b/services/docdb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
docdb
AWS Java SDK :: Services :: DocDB
diff --git a/services/docdbelastic/pom.xml b/services/docdbelastic/pom.xml
index a3cb4018070f..9d3143bcb7f4 100644
--- a/services/docdbelastic/pom.xml
+++ b/services/docdbelastic/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
docdbelastic
AWS Java SDK :: Services :: Doc DB Elastic
diff --git a/services/drs/pom.xml b/services/drs/pom.xml
index 045a8b333f92..fe736ab284d1 100644
--- a/services/drs/pom.xml
+++ b/services/drs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
drs
AWS Java SDK :: Services :: Drs
diff --git a/services/dynamodb/pom.xml b/services/dynamodb/pom.xml
index 32a7efa8037d..a5a719d5c6f1 100644
--- a/services/dynamodb/pom.xml
+++ b/services/dynamodb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
dynamodb
AWS Java SDK :: Services :: Amazon DynamoDB
diff --git a/services/ebs/pom.xml b/services/ebs/pom.xml
index 7f6eb2195537..bb7eb0b5723e 100644
--- a/services/ebs/pom.xml
+++ b/services/ebs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ebs
AWS Java SDK :: Services :: EBS
diff --git a/services/ec2/pom.xml b/services/ec2/pom.xml
index bca9ad4ac301..4c3a5467b5de 100644
--- a/services/ec2/pom.xml
+++ b/services/ec2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ec2
AWS Java SDK :: Services :: Amazon EC2
diff --git a/services/ec2instanceconnect/pom.xml b/services/ec2instanceconnect/pom.xml
index 9731d6c7183a..74906d451043 100644
--- a/services/ec2instanceconnect/pom.xml
+++ b/services/ec2instanceconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ec2instanceconnect
AWS Java SDK :: Services :: EC2 Instance Connect
diff --git a/services/ecr/pom.xml b/services/ecr/pom.xml
index f0c960c8642a..9d916dc9ad62 100644
--- a/services/ecr/pom.xml
+++ b/services/ecr/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 58219fdcd56e..9eaa72b5f8c6 100644
--- a/services/ecrpublic/pom.xml
+++ b/services/ecrpublic/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ecrpublic
AWS Java SDK :: Services :: ECR PUBLIC
diff --git a/services/ecs/pom.xml b/services/ecs/pom.xml
index fb8adaf1c1e0..589f88d1980c 100644
--- a/services/ecs/pom.xml
+++ b/services/ecs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 681e0acdcde5..0bfc1a321ba8 100644
--- a/services/efs/pom.xml
+++ b/services/efs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 54d21ea9b36d..dc072ab08a56 100644
--- a/services/eks/pom.xml
+++ b/services/eks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
eks
AWS Java SDK :: Services :: EKS
diff --git a/services/eksauth/pom.xml b/services/eksauth/pom.xml
index 89608b7a054c..a052e894b57a 100644
--- a/services/eksauth/pom.xml
+++ b/services/eksauth/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
eksauth
AWS Java SDK :: Services :: EKS Auth
diff --git a/services/elasticache/pom.xml b/services/elasticache/pom.xml
index 47807852cef9..e94a1976033f 100644
--- a/services/elasticache/pom.xml
+++ b/services/elasticache/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
elasticache
AWS Java SDK :: Services :: Amazon ElastiCache
diff --git a/services/elasticbeanstalk/pom.xml b/services/elasticbeanstalk/pom.xml
index c64e5af2924d..543e8d302367 100644
--- a/services/elasticbeanstalk/pom.xml
+++ b/services/elasticbeanstalk/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
elasticbeanstalk
AWS Java SDK :: Services :: AWS Elastic Beanstalk
diff --git a/services/elasticinference/pom.xml b/services/elasticinference/pom.xml
index 719402652c68..0ac185e352ac 100644
--- a/services/elasticinference/pom.xml
+++ b/services/elasticinference/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
elasticinference
AWS Java SDK :: Services :: Elastic Inference
diff --git a/services/elasticloadbalancing/pom.xml b/services/elasticloadbalancing/pom.xml
index 5a6235d7443f..521e31c168ab 100644
--- a/services/elasticloadbalancing/pom.xml
+++ b/services/elasticloadbalancing/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
elasticloadbalancing
AWS Java SDK :: Services :: Elastic Load Balancing
diff --git a/services/elasticloadbalancingv2/pom.xml b/services/elasticloadbalancingv2/pom.xml
index f9e6bbffd8a0..8f45b1a2bcd8 100644
--- a/services/elasticloadbalancingv2/pom.xml
+++ b/services/elasticloadbalancingv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 5a338a187fea..8e6e7ee85f73 100644
--- a/services/elasticsearch/pom.xml
+++ b/services/elasticsearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
elasticsearch
AWS Java SDK :: Services :: Amazon Elasticsearch Service
diff --git a/services/elastictranscoder/pom.xml b/services/elastictranscoder/pom.xml
index 491a7eaac082..5a1cfb5cdedf 100644
--- a/services/elastictranscoder/pom.xml
+++ b/services/elastictranscoder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
elastictranscoder
AWS Java SDK :: Services :: Amazon Elastic Transcoder
diff --git a/services/emr/pom.xml b/services/emr/pom.xml
index 07f893cecfca..a6b82b42df15 100644
--- a/services/emr/pom.xml
+++ b/services/emr/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
emr
AWS Java SDK :: Services :: Amazon EMR
diff --git a/services/emrcontainers/pom.xml b/services/emrcontainers/pom.xml
index 6c437fa3036e..7d441a83e2b0 100644
--- a/services/emrcontainers/pom.xml
+++ b/services/emrcontainers/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
emrcontainers
AWS Java SDK :: Services :: EMR Containers
diff --git a/services/emrserverless/pom.xml b/services/emrserverless/pom.xml
index 8d5d8745a68d..ad143e557689 100644
--- a/services/emrserverless/pom.xml
+++ b/services/emrserverless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
emrserverless
AWS Java SDK :: Services :: EMR Serverless
diff --git a/services/entityresolution/pom.xml b/services/entityresolution/pom.xml
index 3e0c64a18b0e..7c44f78760e0 100644
--- a/services/entityresolution/pom.xml
+++ b/services/entityresolution/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
entityresolution
AWS Java SDK :: Services :: Entity Resolution
diff --git a/services/eventbridge/pom.xml b/services/eventbridge/pom.xml
index 9758f2b9e600..dee3336c2328 100644
--- a/services/eventbridge/pom.xml
+++ b/services/eventbridge/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
eventbridge
AWS Java SDK :: Services :: EventBridge
diff --git a/services/evidently/pom.xml b/services/evidently/pom.xml
index ccda301c3fe9..5be0bfce2d19 100644
--- a/services/evidently/pom.xml
+++ b/services/evidently/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
evidently
AWS Java SDK :: Services :: Evidently
diff --git a/services/finspace/pom.xml b/services/finspace/pom.xml
index 214a7e3d99d5..b68846e48274 100644
--- a/services/finspace/pom.xml
+++ b/services/finspace/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
finspace
AWS Java SDK :: Services :: Finspace
diff --git a/services/finspacedata/pom.xml b/services/finspacedata/pom.xml
index 3a380a81142d..e5072579f76c 100644
--- a/services/finspacedata/pom.xml
+++ b/services/finspacedata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
finspacedata
AWS Java SDK :: Services :: Finspace Data
diff --git a/services/firehose/pom.xml b/services/firehose/pom.xml
index 547d8ace105d..43f1235eef9b 100644
--- a/services/firehose/pom.xml
+++ b/services/firehose/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
firehose
AWS Java SDK :: Services :: Amazon Kinesis Firehose
diff --git a/services/fis/pom.xml b/services/fis/pom.xml
index 4bbeb441c6ba..227bbd5fda3b 100644
--- a/services/fis/pom.xml
+++ b/services/fis/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
fis
AWS Java SDK :: Services :: Fis
diff --git a/services/fms/pom.xml b/services/fms/pom.xml
index a78de7897811..5b09390f30e0 100644
--- a/services/fms/pom.xml
+++ b/services/fms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
fms
AWS Java SDK :: Services :: FMS
diff --git a/services/forecast/pom.xml b/services/forecast/pom.xml
index ebc52c9ba204..d3439e513388 100644
--- a/services/forecast/pom.xml
+++ b/services/forecast/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
forecast
AWS Java SDK :: Services :: Forecast
diff --git a/services/forecastquery/pom.xml b/services/forecastquery/pom.xml
index 27f626b04582..9afc941ad9d0 100644
--- a/services/forecastquery/pom.xml
+++ b/services/forecastquery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
forecastquery
AWS Java SDK :: Services :: Forecastquery
diff --git a/services/frauddetector/pom.xml b/services/frauddetector/pom.xml
index abcd32d474d0..faefee8547c4 100644
--- a/services/frauddetector/pom.xml
+++ b/services/frauddetector/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
frauddetector
AWS Java SDK :: Services :: FraudDetector
diff --git a/services/freetier/pom.xml b/services/freetier/pom.xml
index b71a3481e4dd..fc053ec623ca 100644
--- a/services/freetier/pom.xml
+++ b/services/freetier/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
freetier
AWS Java SDK :: Services :: Free Tier
diff --git a/services/fsx/pom.xml b/services/fsx/pom.xml
index 9c61d3d65129..22fe58142236 100644
--- a/services/fsx/pom.xml
+++ b/services/fsx/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
fsx
AWS Java SDK :: Services :: FSx
diff --git a/services/gamelift/pom.xml b/services/gamelift/pom.xml
index 69449377d536..0d17249b8a43 100644
--- a/services/gamelift/pom.xml
+++ b/services/gamelift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
gamelift
AWS Java SDK :: Services :: AWS GameLift
diff --git a/services/glacier/pom.xml b/services/glacier/pom.xml
index b733c1c80a3a..f7250d4a6d17 100644
--- a/services/glacier/pom.xml
+++ b/services/glacier/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
glacier
AWS Java SDK :: Services :: Amazon Glacier
diff --git a/services/globalaccelerator/pom.xml b/services/globalaccelerator/pom.xml
index 98a63e164810..a7d2626701d2 100644
--- a/services/globalaccelerator/pom.xml
+++ b/services/globalaccelerator/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
globalaccelerator
AWS Java SDK :: Services :: Global Accelerator
diff --git a/services/glue/pom.xml b/services/glue/pom.xml
index b58db2a3d410..28197f7352e1 100644
--- a/services/glue/pom.xml
+++ b/services/glue/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
glue
diff --git a/services/grafana/pom.xml b/services/grafana/pom.xml
index d54a0098fd6e..66fd6b39bbdd 100644
--- a/services/grafana/pom.xml
+++ b/services/grafana/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
grafana
AWS Java SDK :: Services :: Grafana
diff --git a/services/greengrass/pom.xml b/services/greengrass/pom.xml
index 4d5ce904052c..157adc079ca5 100644
--- a/services/greengrass/pom.xml
+++ b/services/greengrass/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
greengrass
AWS Java SDK :: Services :: AWS Greengrass
diff --git a/services/greengrassv2/pom.xml b/services/greengrassv2/pom.xml
index dc1a4f75c94d..317bb58f2348 100644
--- a/services/greengrassv2/pom.xml
+++ b/services/greengrassv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
greengrassv2
AWS Java SDK :: Services :: Greengrass V2
diff --git a/services/groundstation/pom.xml b/services/groundstation/pom.xml
index 7b3ca82f0fd4..975971a885df 100644
--- a/services/groundstation/pom.xml
+++ b/services/groundstation/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
groundstation
AWS Java SDK :: Services :: GroundStation
diff --git a/services/guardduty/pom.xml b/services/guardduty/pom.xml
index cfe8d25e282d..1116b7a5f6ca 100644
--- a/services/guardduty/pom.xml
+++ b/services/guardduty/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
guardduty
diff --git a/services/health/pom.xml b/services/health/pom.xml
index 292bc9f25a3c..dfbe96f4500b 100644
--- a/services/health/pom.xml
+++ b/services/health/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 e4ad54c8829e..d5c626301d63 100644
--- a/services/healthlake/pom.xml
+++ b/services/healthlake/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
healthlake
AWS Java SDK :: Services :: Health Lake
diff --git a/services/honeycode/pom.xml b/services/honeycode/pom.xml
index be3b14e69d4e..250169a04ae7 100644
--- a/services/honeycode/pom.xml
+++ b/services/honeycode/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
honeycode
AWS Java SDK :: Services :: Honeycode
diff --git a/services/iam/pom.xml b/services/iam/pom.xml
index ef97fb107442..d79e0a100df7 100644
--- a/services/iam/pom.xml
+++ b/services/iam/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iam
AWS Java SDK :: Services :: AWS IAM
diff --git a/services/identitystore/pom.xml b/services/identitystore/pom.xml
index 084e0decb713..23383324316b 100644
--- a/services/identitystore/pom.xml
+++ b/services/identitystore/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
identitystore
AWS Java SDK :: Services :: Identitystore
diff --git a/services/imagebuilder/pom.xml b/services/imagebuilder/pom.xml
index ea29eeda91c1..5931fd39f235 100644
--- a/services/imagebuilder/pom.xml
+++ b/services/imagebuilder/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
imagebuilder
AWS Java SDK :: Services :: Imagebuilder
diff --git a/services/inspector/pom.xml b/services/inspector/pom.xml
index b7c3c7092ef9..203a28178037 100644
--- a/services/inspector/pom.xml
+++ b/services/inspector/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
inspector
AWS Java SDK :: Services :: Amazon Inspector Service
diff --git a/services/inspector2/pom.xml b/services/inspector2/pom.xml
index fe8fea143ae0..626cb27cfc9c 100644
--- a/services/inspector2/pom.xml
+++ b/services/inspector2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
inspector2
AWS Java SDK :: Services :: Inspector2
diff --git a/services/inspectorscan/pom.xml b/services/inspectorscan/pom.xml
index bb7942a7e6e3..9ef82226427b 100644
--- a/services/inspectorscan/pom.xml
+++ b/services/inspectorscan/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
inspectorscan
AWS Java SDK :: Services :: Inspector Scan
diff --git a/services/internetmonitor/pom.xml b/services/internetmonitor/pom.xml
index a8c65abd5416..aaf02ff83dac 100644
--- a/services/internetmonitor/pom.xml
+++ b/services/internetmonitor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
internetmonitor
AWS Java SDK :: Services :: Internet Monitor
diff --git a/services/iot/pom.xml b/services/iot/pom.xml
index 3d6b43dd9aba..5fb4425084fe 100644
--- a/services/iot/pom.xml
+++ b/services/iot/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iot
AWS Java SDK :: Services :: AWS IoT
diff --git a/services/iot1clickdevices/pom.xml b/services/iot1clickdevices/pom.xml
index fe5487b16ee5..a36208d6af0f 100644
--- a/services/iot1clickdevices/pom.xml
+++ b/services/iot1clickdevices/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 6238a3b870ff..3d7a871ea2c6 100644
--- a/services/iot1clickprojects/pom.xml
+++ b/services/iot1clickprojects/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iot1clickprojects
AWS Java SDK :: Services :: IoT 1Click Projects
diff --git a/services/iotanalytics/pom.xml b/services/iotanalytics/pom.xml
index a40dc62de40a..49510ad59537 100644
--- a/services/iotanalytics/pom.xml
+++ b/services/iotanalytics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iotanalytics
AWS Java SDK :: Services :: IoTAnalytics
diff --git a/services/iotdataplane/pom.xml b/services/iotdataplane/pom.xml
index 2d44bcc0cd10..add0aa9402ca 100644
--- a/services/iotdataplane/pom.xml
+++ b/services/iotdataplane/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 0cfe65fc89b1..db24892c7627 100644
--- a/services/iotdeviceadvisor/pom.xml
+++ b/services/iotdeviceadvisor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iotdeviceadvisor
AWS Java SDK :: Services :: Iot Device Advisor
diff --git a/services/iotevents/pom.xml b/services/iotevents/pom.xml
index 084cf6be9f8a..791fbe2cd7df 100644
--- a/services/iotevents/pom.xml
+++ b/services/iotevents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iotevents
AWS Java SDK :: Services :: IoT Events
diff --git a/services/ioteventsdata/pom.xml b/services/ioteventsdata/pom.xml
index 7d0538b9c440..e618e31c0682 100644
--- a/services/ioteventsdata/pom.xml
+++ b/services/ioteventsdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ioteventsdata
AWS Java SDK :: Services :: IoT Events Data
diff --git a/services/iotfleethub/pom.xml b/services/iotfleethub/pom.xml
index 156c3311be1b..c8850c40d2cd 100644
--- a/services/iotfleethub/pom.xml
+++ b/services/iotfleethub/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 853b5dbd5747..ba6a8b1f8220 100644
--- a/services/iotfleetwise/pom.xml
+++ b/services/iotfleetwise/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 57ee335c7dc9..d5f0f7ddfd41 100644
--- a/services/iotjobsdataplane/pom.xml
+++ b/services/iotjobsdataplane/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 de7096635163..bd5b1ecb8bd0 100644
--- a/services/iotsecuretunneling/pom.xml
+++ b/services/iotsecuretunneling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iotsecuretunneling
AWS Java SDK :: Services :: IoTSecureTunneling
diff --git a/services/iotsitewise/pom.xml b/services/iotsitewise/pom.xml
index e9dd9ded47a7..0631c24d9ce1 100644
--- a/services/iotsitewise/pom.xml
+++ b/services/iotsitewise/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 edbc0ff04347..c8412a1f3784 100644
--- a/services/iotthingsgraph/pom.xml
+++ b/services/iotthingsgraph/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iotthingsgraph
AWS Java SDK :: Services :: IoTThingsGraph
diff --git a/services/iottwinmaker/pom.xml b/services/iottwinmaker/pom.xml
index d5cf944f2dc6..2da1fb5017d3 100644
--- a/services/iottwinmaker/pom.xml
+++ b/services/iottwinmaker/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 f65249ce750d..e59dd1712ecf 100644
--- a/services/iotwireless/pom.xml
+++ b/services/iotwireless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
iotwireless
AWS Java SDK :: Services :: IoT Wireless
diff --git a/services/ivs/pom.xml b/services/ivs/pom.xml
index 6440552ab4dc..c05475959950 100644
--- a/services/ivs/pom.xml
+++ b/services/ivs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ivs
AWS Java SDK :: Services :: Ivs
diff --git a/services/ivschat/pom.xml b/services/ivschat/pom.xml
index a2a7e7c05662..333e7bf57b43 100644
--- a/services/ivschat/pom.xml
+++ b/services/ivschat/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ivschat
AWS Java SDK :: Services :: Ivschat
diff --git a/services/ivsrealtime/pom.xml b/services/ivsrealtime/pom.xml
index 2686acc57760..156a18b39135 100644
--- a/services/ivsrealtime/pom.xml
+++ b/services/ivsrealtime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ivsrealtime
AWS Java SDK :: Services :: IVS Real Time
diff --git a/services/kafka/pom.xml b/services/kafka/pom.xml
index 2331f5f26f80..4d7d159a8a45 100644
--- a/services/kafka/pom.xml
+++ b/services/kafka/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kafka
AWS Java SDK :: Services :: Kafka
diff --git a/services/kafkaconnect/pom.xml b/services/kafkaconnect/pom.xml
index 5b8e290b27dc..23ce7ad04880 100644
--- a/services/kafkaconnect/pom.xml
+++ b/services/kafkaconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kafkaconnect
AWS Java SDK :: Services :: Kafka Connect
diff --git a/services/kendra/pom.xml b/services/kendra/pom.xml
index f812ebcd5ad1..d53ff2bf67df 100644
--- a/services/kendra/pom.xml
+++ b/services/kendra/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kendra
AWS Java SDK :: Services :: Kendra
diff --git a/services/kendraranking/pom.xml b/services/kendraranking/pom.xml
index de20fa5b3ec7..23e006899261 100644
--- a/services/kendraranking/pom.xml
+++ b/services/kendraranking/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kendraranking
AWS Java SDK :: Services :: Kendra Ranking
diff --git a/services/keyspaces/pom.xml b/services/keyspaces/pom.xml
index cbb6af2e1da0..2a73c5f02866 100644
--- a/services/keyspaces/pom.xml
+++ b/services/keyspaces/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
keyspaces
AWS Java SDK :: Services :: Keyspaces
diff --git a/services/kinesis/pom.xml b/services/kinesis/pom.xml
index 7879c489009f..eafec5164d79 100644
--- a/services/kinesis/pom.xml
+++ b/services/kinesis/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kinesis
AWS Java SDK :: Services :: Amazon Kinesis
diff --git a/services/kinesisanalytics/pom.xml b/services/kinesisanalytics/pom.xml
index 969a7ec57923..49fa04a6e439 100644
--- a/services/kinesisanalytics/pom.xml
+++ b/services/kinesisanalytics/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kinesisanalytics
AWS Java SDK :: Services :: Amazon Kinesis Analytics
diff --git a/services/kinesisanalyticsv2/pom.xml b/services/kinesisanalyticsv2/pom.xml
index 2462499047be..8756e43c49ed 100644
--- a/services/kinesisanalyticsv2/pom.xml
+++ b/services/kinesisanalyticsv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kinesisanalyticsv2
AWS Java SDK :: Services :: Kinesis Analytics V2
diff --git a/services/kinesisvideo/pom.xml b/services/kinesisvideo/pom.xml
index 000bd1e600c7..ab60a8cf53f7 100644
--- a/services/kinesisvideo/pom.xml
+++ b/services/kinesisvideo/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
kinesisvideo
diff --git a/services/kinesisvideoarchivedmedia/pom.xml b/services/kinesisvideoarchivedmedia/pom.xml
index 8b12ef2e9495..c7eb28d9400b 100644
--- a/services/kinesisvideoarchivedmedia/pom.xml
+++ b/services/kinesisvideoarchivedmedia/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 3240bb4a9102..f73773443009 100644
--- a/services/kinesisvideomedia/pom.xml
+++ b/services/kinesisvideomedia/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kinesisvideomedia
AWS Java SDK :: Services :: Kinesis Video Media
diff --git a/services/kinesisvideosignaling/pom.xml b/services/kinesisvideosignaling/pom.xml
index 4ada4d9c8c49..3152718b7f82 100644
--- a/services/kinesisvideosignaling/pom.xml
+++ b/services/kinesisvideosignaling/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kinesisvideosignaling
AWS Java SDK :: Services :: Kinesis Video Signaling
diff --git a/services/kinesisvideowebrtcstorage/pom.xml b/services/kinesisvideowebrtcstorage/pom.xml
index e980a28ba121..f200583de8a6 100644
--- a/services/kinesisvideowebrtcstorage/pom.xml
+++ b/services/kinesisvideowebrtcstorage/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 4a9ef3640747..f89943e19ed5 100644
--- a/services/kms/pom.xml
+++ b/services/kms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
kms
AWS Java SDK :: Services :: AWS KMS
diff --git a/services/lakeformation/pom.xml b/services/lakeformation/pom.xml
index c49b1cdd2beb..e5499c15c1aa 100644
--- a/services/lakeformation/pom.xml
+++ b/services/lakeformation/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lakeformation
AWS Java SDK :: Services :: LakeFormation
diff --git a/services/lambda/pom.xml b/services/lambda/pom.xml
index 300691696aa1..392ae86b5d8a 100644
--- a/services/lambda/pom.xml
+++ b/services/lambda/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lambda
AWS Java SDK :: Services :: AWS Lambda
diff --git a/services/launchwizard/pom.xml b/services/launchwizard/pom.xml
index 4bc9c1ea4a52..09f27184930d 100644
--- a/services/launchwizard/pom.xml
+++ b/services/launchwizard/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
launchwizard
AWS Java SDK :: Services :: Launch Wizard
diff --git a/services/lexmodelbuilding/pom.xml b/services/lexmodelbuilding/pom.xml
index 107b07c9b198..4588e7d754e1 100644
--- a/services/lexmodelbuilding/pom.xml
+++ b/services/lexmodelbuilding/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 381eb39ae979..983c025eab2c 100644
--- a/services/lexmodelsv2/pom.xml
+++ b/services/lexmodelsv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lexmodelsv2
AWS Java SDK :: Services :: Lex Models V2
diff --git a/services/lexruntime/pom.xml b/services/lexruntime/pom.xml
index a98002bfe952..469f66647b40 100644
--- a/services/lexruntime/pom.xml
+++ b/services/lexruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lexruntime
AWS Java SDK :: Services :: Amazon Lex Runtime
diff --git a/services/lexruntimev2/pom.xml b/services/lexruntimev2/pom.xml
index d2d43203315f..8290fc2fba8b 100644
--- a/services/lexruntimev2/pom.xml
+++ b/services/lexruntimev2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lexruntimev2
AWS Java SDK :: Services :: Lex Runtime V2
diff --git a/services/licensemanager/pom.xml b/services/licensemanager/pom.xml
index 0189889c8e92..df91839db9e2 100644
--- a/services/licensemanager/pom.xml
+++ b/services/licensemanager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
licensemanager
AWS Java SDK :: Services :: License Manager
diff --git a/services/licensemanagerlinuxsubscriptions/pom.xml b/services/licensemanagerlinuxsubscriptions/pom.xml
index 3f637e92234c..03391ae5147f 100644
--- a/services/licensemanagerlinuxsubscriptions/pom.xml
+++ b/services/licensemanagerlinuxsubscriptions/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 89ac5c3c0113..3f8008d33a13 100644
--- a/services/licensemanagerusersubscriptions/pom.xml
+++ b/services/licensemanagerusersubscriptions/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 972bb251553b..ce836dd9ca5f 100644
--- a/services/lightsail/pom.xml
+++ b/services/lightsail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lightsail
AWS Java SDK :: Services :: Amazon Lightsail
diff --git a/services/location/pom.xml b/services/location/pom.xml
index 091469dc626f..dca617704d45 100644
--- a/services/location/pom.xml
+++ b/services/location/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
location
AWS Java SDK :: Services :: Location
diff --git a/services/lookoutequipment/pom.xml b/services/lookoutequipment/pom.xml
index 64e7d8631f14..b3314740f859 100644
--- a/services/lookoutequipment/pom.xml
+++ b/services/lookoutequipment/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lookoutequipment
AWS Java SDK :: Services :: Lookout Equipment
diff --git a/services/lookoutmetrics/pom.xml b/services/lookoutmetrics/pom.xml
index bd6bcc9556d1..8a4557a1f382 100644
--- a/services/lookoutmetrics/pom.xml
+++ b/services/lookoutmetrics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lookoutmetrics
AWS Java SDK :: Services :: Lookout Metrics
diff --git a/services/lookoutvision/pom.xml b/services/lookoutvision/pom.xml
index 2af90a23e1bf..292f0d323feb 100644
--- a/services/lookoutvision/pom.xml
+++ b/services/lookoutvision/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
lookoutvision
AWS Java SDK :: Services :: Lookout Vision
diff --git a/services/m2/pom.xml b/services/m2/pom.xml
index 8bffe67a6b81..08a9c779ee95 100644
--- a/services/m2/pom.xml
+++ b/services/m2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
m2
AWS Java SDK :: Services :: M2
diff --git a/services/machinelearning/pom.xml b/services/machinelearning/pom.xml
index 71d32936f2af..701e51125962 100644
--- a/services/machinelearning/pom.xml
+++ b/services/machinelearning/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
machinelearning
AWS Java SDK :: Services :: Amazon Machine Learning
diff --git a/services/macie2/pom.xml b/services/macie2/pom.xml
index 7da0958415b9..72d460c7cf4a 100644
--- a/services/macie2/pom.xml
+++ b/services/macie2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
macie2
AWS Java SDK :: Services :: Macie2
diff --git a/services/managedblockchain/pom.xml b/services/managedblockchain/pom.xml
index e2ee63b9f5ab..1a82d817c942 100644
--- a/services/managedblockchain/pom.xml
+++ b/services/managedblockchain/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
managedblockchain
AWS Java SDK :: Services :: ManagedBlockchain
diff --git a/services/managedblockchainquery/pom.xml b/services/managedblockchainquery/pom.xml
index 092dfc0d0fb7..382e27e1999b 100644
--- a/services/managedblockchainquery/pom.xml
+++ b/services/managedblockchainquery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
managedblockchainquery
AWS Java SDK :: Services :: Managed Blockchain Query
diff --git a/services/marketplaceagreement/pom.xml b/services/marketplaceagreement/pom.xml
index e6a14f4f8524..969ca4e5583a 100644
--- a/services/marketplaceagreement/pom.xml
+++ b/services/marketplaceagreement/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
marketplaceagreement
AWS Java SDK :: Services :: Marketplace Agreement
diff --git a/services/marketplacecatalog/pom.xml b/services/marketplacecatalog/pom.xml
index c0f01af72789..6f5a267702a9 100644
--- a/services/marketplacecatalog/pom.xml
+++ b/services/marketplacecatalog/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
marketplacecatalog
AWS Java SDK :: Services :: Marketplace Catalog
diff --git a/services/marketplacecommerceanalytics/pom.xml b/services/marketplacecommerceanalytics/pom.xml
index 9d381608c25c..d49e8928a9a9 100644
--- a/services/marketplacecommerceanalytics/pom.xml
+++ b/services/marketplacecommerceanalytics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 900e4b4fd4e5..d67920c01279 100644
--- a/services/marketplacedeployment/pom.xml
+++ b/services/marketplacedeployment/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
marketplacedeployment
AWS Java SDK :: Services :: Marketplace Deployment
diff --git a/services/marketplaceentitlement/pom.xml b/services/marketplaceentitlement/pom.xml
index 8236ab5697c6..3cd6b64114e0 100644
--- a/services/marketplaceentitlement/pom.xml
+++ b/services/marketplaceentitlement/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
marketplaceentitlement
AWS Java SDK :: Services :: AWS Marketplace Entitlement
diff --git a/services/marketplacemetering/pom.xml b/services/marketplacemetering/pom.xml
index 888834cbc5d0..cb2d6dfcbf08 100644
--- a/services/marketplacemetering/pom.xml
+++ b/services/marketplacemetering/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 ed5bc0d7962e..baf29551b4af 100644
--- a/services/mediaconnect/pom.xml
+++ b/services/mediaconnect/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
mediaconnect
AWS Java SDK :: Services :: MediaConnect
diff --git a/services/mediaconvert/pom.xml b/services/mediaconvert/pom.xml
index 247ec55aa357..646dc7417a1c 100644
--- a/services/mediaconvert/pom.xml
+++ b/services/mediaconvert/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
mediaconvert
diff --git a/services/medialive/pom.xml b/services/medialive/pom.xml
index 66645c253b6a..b03b81869f1f 100644
--- a/services/medialive/pom.xml
+++ b/services/medialive/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
medialive
diff --git a/services/mediapackage/pom.xml b/services/mediapackage/pom.xml
index b8c4d3768eac..f0122c67730b 100644
--- a/services/mediapackage/pom.xml
+++ b/services/mediapackage/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
mediapackage
diff --git a/services/mediapackagev2/pom.xml b/services/mediapackagev2/pom.xml
index dc35faa7ea14..73992945507a 100644
--- a/services/mediapackagev2/pom.xml
+++ b/services/mediapackagev2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
mediapackagev2
AWS Java SDK :: Services :: Media Package V2
diff --git a/services/mediapackagevod/pom.xml b/services/mediapackagevod/pom.xml
index 7cc0f9163205..7db118b3bdad 100644
--- a/services/mediapackagevod/pom.xml
+++ b/services/mediapackagevod/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
mediapackagevod
AWS Java SDK :: Services :: MediaPackage Vod
diff --git a/services/mediastore/pom.xml b/services/mediastore/pom.xml
index c5fd298090a1..be2a73460b91 100644
--- a/services/mediastore/pom.xml
+++ b/services/mediastore/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
mediastore
diff --git a/services/mediastoredata/pom.xml b/services/mediastoredata/pom.xml
index 40bae8ea617c..96ab4c56e3db 100644
--- a/services/mediastoredata/pom.xml
+++ b/services/mediastoredata/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
mediastoredata
diff --git a/services/mediatailor/pom.xml b/services/mediatailor/pom.xml
index dc05d1034dba..94730665cfa2 100644
--- a/services/mediatailor/pom.xml
+++ b/services/mediatailor/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
mediatailor
AWS Java SDK :: Services :: MediaTailor
diff --git a/services/medicalimaging/pom.xml b/services/medicalimaging/pom.xml
index 340748c36650..459d6316213d 100644
--- a/services/medicalimaging/pom.xml
+++ b/services/medicalimaging/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
medicalimaging
AWS Java SDK :: Services :: Medical Imaging
diff --git a/services/memorydb/pom.xml b/services/memorydb/pom.xml
index e8a58ab976f1..d231c83f142d 100644
--- a/services/memorydb/pom.xml
+++ b/services/memorydb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
memorydb
AWS Java SDK :: Services :: Memory DB
diff --git a/services/mgn/pom.xml b/services/mgn/pom.xml
index 84fd670bd653..4818c6c7fa6d 100644
--- a/services/mgn/pom.xml
+++ b/services/mgn/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
mgn
AWS Java SDK :: Services :: Mgn
diff --git a/services/migrationhub/pom.xml b/services/migrationhub/pom.xml
index d979e5fb3fee..a11a24d3140a 100644
--- a/services/migrationhub/pom.xml
+++ b/services/migrationhub/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
migrationhub
diff --git a/services/migrationhubconfig/pom.xml b/services/migrationhubconfig/pom.xml
index 520fe0df1894..490e3bff4ddd 100644
--- a/services/migrationhubconfig/pom.xml
+++ b/services/migrationhubconfig/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
migrationhubconfig
AWS Java SDK :: Services :: MigrationHub Config
diff --git a/services/migrationhuborchestrator/pom.xml b/services/migrationhuborchestrator/pom.xml
index 3929c56e71cf..7d45104ef500 100644
--- a/services/migrationhuborchestrator/pom.xml
+++ b/services/migrationhuborchestrator/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
migrationhuborchestrator
AWS Java SDK :: Services :: Migration Hub Orchestrator
diff --git a/services/migrationhubrefactorspaces/pom.xml b/services/migrationhubrefactorspaces/pom.xml
index 9284555de428..062958d2439a 100644
--- a/services/migrationhubrefactorspaces/pom.xml
+++ b/services/migrationhubrefactorspaces/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 0baba646812a..4ab6dc0ef96b 100644
--- a/services/migrationhubstrategy/pom.xml
+++ b/services/migrationhubstrategy/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
migrationhubstrategy
AWS Java SDK :: Services :: Migration Hub Strategy
diff --git a/services/mobile/pom.xml b/services/mobile/pom.xml
index 6b4f95979d5d..b53e2e8ecf5c 100644
--- a/services/mobile/pom.xml
+++ b/services/mobile/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
mobile
diff --git a/services/mq/pom.xml b/services/mq/pom.xml
index e0517581e8be..f27b762cf29b 100644
--- a/services/mq/pom.xml
+++ b/services/mq/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
mq
diff --git a/services/mturk/pom.xml b/services/mturk/pom.xml
index b33a23982812..1da9e1cea6c6 100644
--- a/services/mturk/pom.xml
+++ b/services/mturk/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 a1e4a145b64d..bcb5a51a8bd4 100644
--- a/services/mwaa/pom.xml
+++ b/services/mwaa/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
mwaa
AWS Java SDK :: Services :: MWAA
diff --git a/services/neptune/pom.xml b/services/neptune/pom.xml
index 0e1004158430..3a81e5cb53e4 100644
--- a/services/neptune/pom.xml
+++ b/services/neptune/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
neptune
AWS Java SDK :: Services :: Neptune
diff --git a/services/neptunedata/pom.xml b/services/neptunedata/pom.xml
index 88ab9e7103eb..518198d8299c 100644
--- a/services/neptunedata/pom.xml
+++ b/services/neptunedata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
neptunedata
AWS Java SDK :: Services :: Neptunedata
diff --git a/services/neptunegraph/pom.xml b/services/neptunegraph/pom.xml
index 23c1a037f885..4f9dd49e489c 100644
--- a/services/neptunegraph/pom.xml
+++ b/services/neptunegraph/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
neptunegraph
AWS Java SDK :: Services :: Neptune Graph
diff --git a/services/networkfirewall/pom.xml b/services/networkfirewall/pom.xml
index 76ef7a4f62c4..a8f0208acecc 100644
--- a/services/networkfirewall/pom.xml
+++ b/services/networkfirewall/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
networkfirewall
AWS Java SDK :: Services :: Network Firewall
diff --git a/services/networkmanager/pom.xml b/services/networkmanager/pom.xml
index 62e1897c2964..203764a0b3eb 100644
--- a/services/networkmanager/pom.xml
+++ b/services/networkmanager/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
networkmanager
AWS Java SDK :: Services :: NetworkManager
diff --git a/services/networkmonitor/pom.xml b/services/networkmonitor/pom.xml
index acd366899481..9087b3ef5eaf 100644
--- a/services/networkmonitor/pom.xml
+++ b/services/networkmonitor/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
networkmonitor
AWS Java SDK :: Services :: Network Monitor
diff --git a/services/nimble/pom.xml b/services/nimble/pom.xml
index d3e81ca76c79..da9dc95ba1c6 100644
--- a/services/nimble/pom.xml
+++ b/services/nimble/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
nimble
AWS Java SDK :: Services :: Nimble
diff --git a/services/oam/pom.xml b/services/oam/pom.xml
index e8419ba4d960..8873a30bc1c3 100644
--- a/services/oam/pom.xml
+++ b/services/oam/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
oam
AWS Java SDK :: Services :: OAM
diff --git a/services/omics/pom.xml b/services/omics/pom.xml
index 702e1b4fb3f8..acb6c3548ba4 100644
--- a/services/omics/pom.xml
+++ b/services/omics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
omics
AWS Java SDK :: Services :: Omics
diff --git a/services/opensearch/pom.xml b/services/opensearch/pom.xml
index 1e4e4afc119f..513f47c5109f 100644
--- a/services/opensearch/pom.xml
+++ b/services/opensearch/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
opensearch
AWS Java SDK :: Services :: Open Search
diff --git a/services/opensearchserverless/pom.xml b/services/opensearchserverless/pom.xml
index 8b9788803c9b..17e4876b2262 100644
--- a/services/opensearchserverless/pom.xml
+++ b/services/opensearchserverless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
opensearchserverless
AWS Java SDK :: Services :: Open Search Serverless
diff --git a/services/opsworks/pom.xml b/services/opsworks/pom.xml
index 35d491633fb1..91ab316e24d2 100644
--- a/services/opsworks/pom.xml
+++ b/services/opsworks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
opsworks
AWS Java SDK :: Services :: AWS OpsWorks
diff --git a/services/opsworkscm/pom.xml b/services/opsworkscm/pom.xml
index 70456c53a7c6..0681683e2c76 100644
--- a/services/opsworkscm/pom.xml
+++ b/services/opsworkscm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 d243beedab50..c6ab21ab7f97 100644
--- a/services/organizations/pom.xml
+++ b/services/organizations/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
organizations
AWS Java SDK :: Services :: AWS Organizations
diff --git a/services/osis/pom.xml b/services/osis/pom.xml
index 747fa85007d6..ef773362320c 100644
--- a/services/osis/pom.xml
+++ b/services/osis/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
osis
AWS Java SDK :: Services :: OSIS
diff --git a/services/outposts/pom.xml b/services/outposts/pom.xml
index 17fdbed9fe89..369b88afeede 100644
--- a/services/outposts/pom.xml
+++ b/services/outposts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
outposts
AWS Java SDK :: Services :: Outposts
diff --git a/services/panorama/pom.xml b/services/panorama/pom.xml
index 0b5bc770f957..83e61c78839c 100644
--- a/services/panorama/pom.xml
+++ b/services/panorama/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
panorama
AWS Java SDK :: Services :: Panorama
diff --git a/services/paymentcryptography/pom.xml b/services/paymentcryptography/pom.xml
index 203dc1deda61..e8612c5731fd 100644
--- a/services/paymentcryptography/pom.xml
+++ b/services/paymentcryptography/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
paymentcryptography
AWS Java SDK :: Services :: Payment Cryptography
diff --git a/services/paymentcryptographydata/pom.xml b/services/paymentcryptographydata/pom.xml
index ed531d85c65f..0d517b0706ee 100644
--- a/services/paymentcryptographydata/pom.xml
+++ b/services/paymentcryptographydata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
paymentcryptographydata
AWS Java SDK :: Services :: Payment Cryptography Data
diff --git a/services/pcaconnectorad/pom.xml b/services/pcaconnectorad/pom.xml
index 51c558e0d2f6..b1ce0fe1185b 100644
--- a/services/pcaconnectorad/pom.xml
+++ b/services/pcaconnectorad/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
pcaconnectorad
AWS Java SDK :: Services :: Pca Connector Ad
diff --git a/services/personalize/pom.xml b/services/personalize/pom.xml
index 905f6206bbca..83c140142066 100644
--- a/services/personalize/pom.xml
+++ b/services/personalize/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
personalize
AWS Java SDK :: Services :: Personalize
diff --git a/services/personalizeevents/pom.xml b/services/personalizeevents/pom.xml
index 3b867553696d..74b4f471370e 100644
--- a/services/personalizeevents/pom.xml
+++ b/services/personalizeevents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
personalizeevents
AWS Java SDK :: Services :: Personalize Events
diff --git a/services/personalizeruntime/pom.xml b/services/personalizeruntime/pom.xml
index 3adba90af83d..40983a49bb77 100644
--- a/services/personalizeruntime/pom.xml
+++ b/services/personalizeruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
personalizeruntime
AWS Java SDK :: Services :: Personalize Runtime
diff --git a/services/pi/pom.xml b/services/pi/pom.xml
index fb26cd983d73..730da3fbc9e6 100644
--- a/services/pi/pom.xml
+++ b/services/pi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
pi
AWS Java SDK :: Services :: PI
diff --git a/services/pinpoint/pom.xml b/services/pinpoint/pom.xml
index e4800a71c7d1..2e322991dace 100644
--- a/services/pinpoint/pom.xml
+++ b/services/pinpoint/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
pinpoint
AWS Java SDK :: Services :: Amazon Pinpoint
diff --git a/services/pinpointemail/pom.xml b/services/pinpointemail/pom.xml
index 38c291c6b723..b51da0779b27 100644
--- a/services/pinpointemail/pom.xml
+++ b/services/pinpointemail/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
pinpointemail
AWS Java SDK :: Services :: Pinpoint Email
diff --git a/services/pinpointsmsvoice/pom.xml b/services/pinpointsmsvoice/pom.xml
index 4cd7d6832dac..83b95e2bd549 100644
--- a/services/pinpointsmsvoice/pom.xml
+++ b/services/pinpointsmsvoice/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
pinpointsmsvoice
AWS Java SDK :: Services :: Pinpoint SMS Voice
diff --git a/services/pinpointsmsvoicev2/pom.xml b/services/pinpointsmsvoicev2/pom.xml
index bb4e95d985c9..eee3aab15016 100644
--- a/services/pinpointsmsvoicev2/pom.xml
+++ b/services/pinpointsmsvoicev2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 2a573704a3d3..49b0b241ca96 100644
--- a/services/pipes/pom.xml
+++ b/services/pipes/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
pipes
AWS Java SDK :: Services :: Pipes
diff --git a/services/polly/pom.xml b/services/polly/pom.xml
index 8cddf28a4e90..15cb707f77e4 100644
--- a/services/polly/pom.xml
+++ b/services/polly/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
polly
AWS Java SDK :: Services :: Amazon Polly
diff --git a/services/pom.xml b/services/pom.xml
index 06105f8dfd6c..a153696edccd 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
aws-sdk-java-pom
- 2.25.37-SNAPSHOT
+ 2.25.37
services
AWS Java SDK :: Services
diff --git a/services/pricing/pom.xml b/services/pricing/pom.xml
index 10032a4a7ec9..b8fefa9bae0f 100644
--- a/services/pricing/pom.xml
+++ b/services/pricing/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
pricing
diff --git a/services/privatenetworks/pom.xml b/services/privatenetworks/pom.xml
index 89f5d38a65ab..e0f6edc4df8c 100644
--- a/services/privatenetworks/pom.xml
+++ b/services/privatenetworks/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
privatenetworks
AWS Java SDK :: Services :: Private Networks
diff --git a/services/proton/pom.xml b/services/proton/pom.xml
index 2e863d1d9d51..fd330d9abac9 100644
--- a/services/proton/pom.xml
+++ b/services/proton/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
proton
AWS Java SDK :: Services :: Proton
diff --git a/services/qbusiness/pom.xml b/services/qbusiness/pom.xml
index 2b81e166adf8..b0c41787941e 100644
--- a/services/qbusiness/pom.xml
+++ b/services/qbusiness/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
qbusiness
AWS Java SDK :: Services :: Q Business
diff --git a/services/qconnect/pom.xml b/services/qconnect/pom.xml
index b942fcfc22c0..49c8b8096c7a 100644
--- a/services/qconnect/pom.xml
+++ b/services/qconnect/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
qconnect
AWS Java SDK :: Services :: Q Connect
diff --git a/services/qldb/pom.xml b/services/qldb/pom.xml
index 99ac4ebcadca..209728186720 100644
--- a/services/qldb/pom.xml
+++ b/services/qldb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
qldb
AWS Java SDK :: Services :: QLDB
diff --git a/services/qldbsession/pom.xml b/services/qldbsession/pom.xml
index 2aa526ffa28e..b4267170faeb 100644
--- a/services/qldbsession/pom.xml
+++ b/services/qldbsession/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
qldbsession
AWS Java SDK :: Services :: QLDB Session
diff --git a/services/quicksight/pom.xml b/services/quicksight/pom.xml
index 7454123d2800..f98492f8921d 100644
--- a/services/quicksight/pom.xml
+++ b/services/quicksight/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
quicksight
AWS Java SDK :: Services :: QuickSight
diff --git a/services/ram/pom.xml b/services/ram/pom.xml
index cd76a724a431..3dcff48d862c 100644
--- a/services/ram/pom.xml
+++ b/services/ram/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ram
AWS Java SDK :: Services :: RAM
diff --git a/services/rbin/pom.xml b/services/rbin/pom.xml
index 17d11ed461b8..02b96e6e9914 100644
--- a/services/rbin/pom.xml
+++ b/services/rbin/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
rbin
AWS Java SDK :: Services :: Rbin
diff --git a/services/rds/pom.xml b/services/rds/pom.xml
index 99a588c2d4f0..6c1863812576 100644
--- a/services/rds/pom.xml
+++ b/services/rds/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
rds
AWS Java SDK :: Services :: Amazon RDS
diff --git a/services/rdsdata/pom.xml b/services/rdsdata/pom.xml
index 23c34b7f70dc..744d91f089b4 100644
--- a/services/rdsdata/pom.xml
+++ b/services/rdsdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
rdsdata
AWS Java SDK :: Services :: RDS Data
diff --git a/services/redshift/pom.xml b/services/redshift/pom.xml
index 8f9e19dda5fc..14d3b6cbc391 100644
--- a/services/redshift/pom.xml
+++ b/services/redshift/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
redshift
AWS Java SDK :: Services :: Amazon Redshift
diff --git a/services/redshiftdata/pom.xml b/services/redshiftdata/pom.xml
index e1c767081983..9d89c6930b0e 100644
--- a/services/redshiftdata/pom.xml
+++ b/services/redshiftdata/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
redshiftdata
AWS Java SDK :: Services :: Redshift Data
diff --git a/services/redshiftserverless/pom.xml b/services/redshiftserverless/pom.xml
index b6677a7d8bb5..dc719367e9fc 100644
--- a/services/redshiftserverless/pom.xml
+++ b/services/redshiftserverless/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
redshiftserverless
AWS Java SDK :: Services :: Redshift Serverless
diff --git a/services/rekognition/pom.xml b/services/rekognition/pom.xml
index 1bce4bc381db..4fe7ad33a084 100644
--- a/services/rekognition/pom.xml
+++ b/services/rekognition/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
rekognition
AWS Java SDK :: Services :: Amazon Rekognition
diff --git a/services/repostspace/pom.xml b/services/repostspace/pom.xml
index 0cfa4419604d..33323128419d 100644
--- a/services/repostspace/pom.xml
+++ b/services/repostspace/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
repostspace
AWS Java SDK :: Services :: Repostspace
diff --git a/services/resiliencehub/pom.xml b/services/resiliencehub/pom.xml
index 0f9e6ee1414a..1690a06a2d6c 100644
--- a/services/resiliencehub/pom.xml
+++ b/services/resiliencehub/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
resiliencehub
AWS Java SDK :: Services :: Resiliencehub
diff --git a/services/resourceexplorer2/pom.xml b/services/resourceexplorer2/pom.xml
index 4374c997cded..edd967e25e9c 100644
--- a/services/resourceexplorer2/pom.xml
+++ b/services/resourceexplorer2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
resourceexplorer2
AWS Java SDK :: Services :: Resource Explorer 2
diff --git a/services/resourcegroups/pom.xml b/services/resourcegroups/pom.xml
index 8b44ce0878d0..b799394c357c 100644
--- a/services/resourcegroups/pom.xml
+++ b/services/resourcegroups/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
resourcegroups
diff --git a/services/resourcegroupstaggingapi/pom.xml b/services/resourcegroupstaggingapi/pom.xml
index b62238105237..eabe52e9d9a1 100644
--- a/services/resourcegroupstaggingapi/pom.xml
+++ b/services/resourcegroupstaggingapi/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 8ada74582f75..fe0def424d29 100644
--- a/services/robomaker/pom.xml
+++ b/services/robomaker/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
robomaker
AWS Java SDK :: Services :: RoboMaker
diff --git a/services/rolesanywhere/pom.xml b/services/rolesanywhere/pom.xml
index cb117743417d..7542d64df0ab 100644
--- a/services/rolesanywhere/pom.xml
+++ b/services/rolesanywhere/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
rolesanywhere
AWS Java SDK :: Services :: Roles Anywhere
diff --git a/services/route53/pom.xml b/services/route53/pom.xml
index 901662699de6..0b4cea202138 100644
--- a/services/route53/pom.xml
+++ b/services/route53/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
route53
AWS Java SDK :: Services :: Amazon Route53
diff --git a/services/route53domains/pom.xml b/services/route53domains/pom.xml
index a12a7ab5494a..c4153ee5e9db 100644
--- a/services/route53domains/pom.xml
+++ b/services/route53domains/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
route53domains
AWS Java SDK :: Services :: Amazon Route53 Domains
diff --git a/services/route53profiles/pom.xml b/services/route53profiles/pom.xml
index d575805795b6..29bbacc97edb 100644
--- a/services/route53profiles/pom.xml
+++ b/services/route53profiles/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
route53profiles
AWS Java SDK :: Services :: Route53 Profiles
diff --git a/services/route53recoverycluster/pom.xml b/services/route53recoverycluster/pom.xml
index 92c8dbb52a29..d10e71b9814e 100644
--- a/services/route53recoverycluster/pom.xml
+++ b/services/route53recoverycluster/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
route53recoverycluster
AWS Java SDK :: Services :: Route53 Recovery Cluster
diff --git a/services/route53recoverycontrolconfig/pom.xml b/services/route53recoverycontrolconfig/pom.xml
index c1e88e008fd5..d7358a113894 100644
--- a/services/route53recoverycontrolconfig/pom.xml
+++ b/services/route53recoverycontrolconfig/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 e4df59eff6c9..ec9835513b07 100644
--- a/services/route53recoveryreadiness/pom.xml
+++ b/services/route53recoveryreadiness/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
route53recoveryreadiness
AWS Java SDK :: Services :: Route53 Recovery Readiness
diff --git a/services/route53resolver/pom.xml b/services/route53resolver/pom.xml
index 79d3774be068..ea3ddc65d8ef 100644
--- a/services/route53resolver/pom.xml
+++ b/services/route53resolver/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
route53resolver
AWS Java SDK :: Services :: Route53Resolver
diff --git a/services/rum/pom.xml b/services/rum/pom.xml
index 0a05b29b23c9..96faf902a9d8 100644
--- a/services/rum/pom.xml
+++ b/services/rum/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
rum
AWS Java SDK :: Services :: RUM
diff --git a/services/s3/pom.xml b/services/s3/pom.xml
index b7b5ed94ab01..0dcee94335b3 100644
--- a/services/s3/pom.xml
+++ b/services/s3/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
s3
AWS Java SDK :: Services :: Amazon S3
diff --git a/services/s3control/pom.xml b/services/s3control/pom.xml
index b2f1e672e069..ac6ebc8086aa 100644
--- a/services/s3control/pom.xml
+++ b/services/s3control/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
s3control
AWS Java SDK :: Services :: Amazon S3 Control
diff --git a/services/s3outposts/pom.xml b/services/s3outposts/pom.xml
index 9f2a36c76a4a..f2e4aa633f3c 100644
--- a/services/s3outposts/pom.xml
+++ b/services/s3outposts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
s3outposts
AWS Java SDK :: Services :: S3 Outposts
diff --git a/services/sagemaker/pom.xml b/services/sagemaker/pom.xml
index 30f0b09d67a3..069857e2841a 100644
--- a/services/sagemaker/pom.xml
+++ b/services/sagemaker/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
sagemaker
diff --git a/services/sagemakera2iruntime/pom.xml b/services/sagemakera2iruntime/pom.xml
index 05a6a0e34d5b..049b886c3b57 100644
--- a/services/sagemakera2iruntime/pom.xml
+++ b/services/sagemakera2iruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sagemakera2iruntime
AWS Java SDK :: Services :: SageMaker A2I Runtime
diff --git a/services/sagemakeredge/pom.xml b/services/sagemakeredge/pom.xml
index 3093fa6e05a5..0f2937cf7561 100644
--- a/services/sagemakeredge/pom.xml
+++ b/services/sagemakeredge/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sagemakeredge
AWS Java SDK :: Services :: Sagemaker Edge
diff --git a/services/sagemakerfeaturestoreruntime/pom.xml b/services/sagemakerfeaturestoreruntime/pom.xml
index 4c1dd45b87a9..5530bc20ad1e 100644
--- a/services/sagemakerfeaturestoreruntime/pom.xml
+++ b/services/sagemakerfeaturestoreruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 57c510e7e64c..0e68d387dc79 100644
--- a/services/sagemakergeospatial/pom.xml
+++ b/services/sagemakergeospatial/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sagemakergeospatial
AWS Java SDK :: Services :: Sage Maker Geospatial
diff --git a/services/sagemakermetrics/pom.xml b/services/sagemakermetrics/pom.xml
index 207095299995..7d1f25c3927f 100644
--- a/services/sagemakermetrics/pom.xml
+++ b/services/sagemakermetrics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sagemakermetrics
AWS Java SDK :: Services :: Sage Maker Metrics
diff --git a/services/sagemakerruntime/pom.xml b/services/sagemakerruntime/pom.xml
index 7d0677a92ca7..5d8fb8ec4ef1 100644
--- a/services/sagemakerruntime/pom.xml
+++ b/services/sagemakerruntime/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sagemakerruntime
AWS Java SDK :: Services :: SageMaker Runtime
diff --git a/services/savingsplans/pom.xml b/services/savingsplans/pom.xml
index ddd97ce80090..66461ea452ec 100644
--- a/services/savingsplans/pom.xml
+++ b/services/savingsplans/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
savingsplans
AWS Java SDK :: Services :: Savingsplans
diff --git a/services/scheduler/pom.xml b/services/scheduler/pom.xml
index d325b7a40deb..767252963022 100644
--- a/services/scheduler/pom.xml
+++ b/services/scheduler/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
scheduler
AWS Java SDK :: Services :: Scheduler
diff --git a/services/schemas/pom.xml b/services/schemas/pom.xml
index 674875fb2419..8ca44f768eea 100644
--- a/services/schemas/pom.xml
+++ b/services/schemas/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
schemas
AWS Java SDK :: Services :: Schemas
diff --git a/services/secretsmanager/pom.xml b/services/secretsmanager/pom.xml
index 864d3484d014..00418bc93e17 100644
--- a/services/secretsmanager/pom.xml
+++ b/services/secretsmanager/pom.xml
@@ -22,7 +22,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
secretsmanager
AWS Java SDK :: Services :: AWS Secrets Manager
diff --git a/services/securityhub/pom.xml b/services/securityhub/pom.xml
index 791f852029ec..79bfd73e0a93 100644
--- a/services/securityhub/pom.xml
+++ b/services/securityhub/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
securityhub
AWS Java SDK :: Services :: SecurityHub
diff --git a/services/securitylake/pom.xml b/services/securitylake/pom.xml
index 8e0d33b91f1a..463ebf3f2fe8 100644
--- a/services/securitylake/pom.xml
+++ b/services/securitylake/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
securitylake
AWS Java SDK :: Services :: Security Lake
diff --git a/services/serverlessapplicationrepository/pom.xml b/services/serverlessapplicationrepository/pom.xml
index a462c8ce96d4..23525f4c492d 100644
--- a/services/serverlessapplicationrepository/pom.xml
+++ b/services/serverlessapplicationrepository/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
serverlessapplicationrepository
diff --git a/services/servicecatalog/pom.xml b/services/servicecatalog/pom.xml
index ad5bfee07cd6..3f2fe9716807 100644
--- a/services/servicecatalog/pom.xml
+++ b/services/servicecatalog/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
servicecatalog
AWS Java SDK :: Services :: AWS Service Catalog
diff --git a/services/servicecatalogappregistry/pom.xml b/services/servicecatalogappregistry/pom.xml
index df624abf9bea..9241ee6c8dc7 100644
--- a/services/servicecatalogappregistry/pom.xml
+++ b/services/servicecatalogappregistry/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 e36cb8d46e56..15424554f7d4 100644
--- a/services/servicediscovery/pom.xml
+++ b/services/servicediscovery/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
servicediscovery
diff --git a/services/servicequotas/pom.xml b/services/servicequotas/pom.xml
index 8ea401c70e08..43e05b0f9ca7 100644
--- a/services/servicequotas/pom.xml
+++ b/services/servicequotas/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
servicequotas
AWS Java SDK :: Services :: Service Quotas
diff --git a/services/ses/pom.xml b/services/ses/pom.xml
index c56bf9aa9751..68c2a6aed9be 100644
--- a/services/ses/pom.xml
+++ b/services/ses/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ses
AWS Java SDK :: Services :: Amazon SES
diff --git a/services/sesv2/pom.xml b/services/sesv2/pom.xml
index d9cf2135e403..967ada0d5af2 100644
--- a/services/sesv2/pom.xml
+++ b/services/sesv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sesv2
AWS Java SDK :: Services :: SESv2
diff --git a/services/sfn/pom.xml b/services/sfn/pom.xml
index 1cd478e1438c..2c2907b5e3e5 100644
--- a/services/sfn/pom.xml
+++ b/services/sfn/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sfn
AWS Java SDK :: Services :: AWS Step Functions
diff --git a/services/shield/pom.xml b/services/shield/pom.xml
index 590d01b380dc..f4953c5f807f 100644
--- a/services/shield/pom.xml
+++ b/services/shield/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
shield
AWS Java SDK :: Services :: AWS Shield
diff --git a/services/signer/pom.xml b/services/signer/pom.xml
index e2d77d9ffced..9d1e5d5cff75 100644
--- a/services/signer/pom.xml
+++ b/services/signer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
signer
AWS Java SDK :: Services :: Signer
diff --git a/services/simspaceweaver/pom.xml b/services/simspaceweaver/pom.xml
index 67b4bf556c0e..51911dc0b84d 100644
--- a/services/simspaceweaver/pom.xml
+++ b/services/simspaceweaver/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
simspaceweaver
AWS Java SDK :: Services :: Sim Space Weaver
diff --git a/services/sms/pom.xml b/services/sms/pom.xml
index 1e82c45d21e3..3fd390d5f2cd 100644
--- a/services/sms/pom.xml
+++ b/services/sms/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sms
AWS Java SDK :: Services :: AWS Server Migration
diff --git a/services/snowball/pom.xml b/services/snowball/pom.xml
index 136551285a1f..1f98353fa22f 100644
--- a/services/snowball/pom.xml
+++ b/services/snowball/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
snowball
AWS Java SDK :: Services :: Amazon Snowball
diff --git a/services/snowdevicemanagement/pom.xml b/services/snowdevicemanagement/pom.xml
index f8d87979e390..c4862ee13357 100644
--- a/services/snowdevicemanagement/pom.xml
+++ b/services/snowdevicemanagement/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
snowdevicemanagement
AWS Java SDK :: Services :: Snow Device Management
diff --git a/services/sns/pom.xml b/services/sns/pom.xml
index e4ba75221c6b..68567757898c 100644
--- a/services/sns/pom.xml
+++ b/services/sns/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sns
AWS Java SDK :: Services :: Amazon SNS
diff --git a/services/sqs/pom.xml b/services/sqs/pom.xml
index 20e44eb2e2ae..d6f3137cefd0 100644
--- a/services/sqs/pom.xml
+++ b/services/sqs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sqs
AWS Java SDK :: Services :: Amazon SQS
diff --git a/services/ssm/pom.xml b/services/ssm/pom.xml
index c6cc9bbd2043..a5e485c8104a 100644
--- a/services/ssm/pom.xml
+++ b/services/ssm/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 b0d54a10c2cc..a4c878324b90 100644
--- a/services/ssmcontacts/pom.xml
+++ b/services/ssmcontacts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ssmcontacts
AWS Java SDK :: Services :: SSM Contacts
diff --git a/services/ssmincidents/pom.xml b/services/ssmincidents/pom.xml
index da34cc5aa6fc..5109c91eb500 100644
--- a/services/ssmincidents/pom.xml
+++ b/services/ssmincidents/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ssmincidents
AWS Java SDK :: Services :: SSM Incidents
diff --git a/services/ssmsap/pom.xml b/services/ssmsap/pom.xml
index 2bc2154dcf8a..4f0698c46ffc 100644
--- a/services/ssmsap/pom.xml
+++ b/services/ssmsap/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ssmsap
AWS Java SDK :: Services :: Ssm Sap
diff --git a/services/sso/pom.xml b/services/sso/pom.xml
index 58c36aa10bcb..901d9e7172a5 100644
--- a/services/sso/pom.xml
+++ b/services/sso/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sso
AWS Java SDK :: Services :: SSO
diff --git a/services/ssoadmin/pom.xml b/services/ssoadmin/pom.xml
index 898a2dce201e..95ef22868a05 100644
--- a/services/ssoadmin/pom.xml
+++ b/services/ssoadmin/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ssoadmin
AWS Java SDK :: Services :: SSO Admin
diff --git a/services/ssooidc/pom.xml b/services/ssooidc/pom.xml
index 953655541823..ede62c4afc17 100644
--- a/services/ssooidc/pom.xml
+++ b/services/ssooidc/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
ssooidc
AWS Java SDK :: Services :: SSO OIDC
diff --git a/services/storagegateway/pom.xml b/services/storagegateway/pom.xml
index 4d4a997502fd..dcbeb5359ce5 100644
--- a/services/storagegateway/pom.xml
+++ b/services/storagegateway/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
storagegateway
AWS Java SDK :: Services :: AWS Storage Gateway
diff --git a/services/sts/pom.xml b/services/sts/pom.xml
index d425760fb7a0..d21f745255f1 100644
--- a/services/sts/pom.xml
+++ b/services/sts/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
sts
AWS Java SDK :: Services :: AWS STS
diff --git a/services/supplychain/pom.xml b/services/supplychain/pom.xml
index b059e485bcdf..6b08204fcbb8 100644
--- a/services/supplychain/pom.xml
+++ b/services/supplychain/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
supplychain
AWS Java SDK :: Services :: Supply Chain
diff --git a/services/support/pom.xml b/services/support/pom.xml
index 0f7c141f64ce..b5ce7588fbfc 100644
--- a/services/support/pom.xml
+++ b/services/support/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
support
AWS Java SDK :: Services :: AWS Support
diff --git a/services/supportapp/pom.xml b/services/supportapp/pom.xml
index 8d4e2dedba4b..666c74637602 100644
--- a/services/supportapp/pom.xml
+++ b/services/supportapp/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
supportapp
AWS Java SDK :: Services :: Support App
diff --git a/services/swf/pom.xml b/services/swf/pom.xml
index b9ee8c39124a..fd9ea65db879 100644
--- a/services/swf/pom.xml
+++ b/services/swf/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
swf
AWS Java SDK :: Services :: Amazon SWF
diff --git a/services/synthetics/pom.xml b/services/synthetics/pom.xml
index 2b78b1c4a866..077d43c45f99 100644
--- a/services/synthetics/pom.xml
+++ b/services/synthetics/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
synthetics
AWS Java SDK :: Services :: Synthetics
diff --git a/services/textract/pom.xml b/services/textract/pom.xml
index 1bdaff59a796..167943f658e7 100644
--- a/services/textract/pom.xml
+++ b/services/textract/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
textract
AWS Java SDK :: Services :: Textract
diff --git a/services/timestreaminfluxdb/pom.xml b/services/timestreaminfluxdb/pom.xml
index 1451e974dd2d..02657d2b6fa7 100644
--- a/services/timestreaminfluxdb/pom.xml
+++ b/services/timestreaminfluxdb/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
timestreaminfluxdb
AWS Java SDK :: Services :: Timestream Influx DB
diff --git a/services/timestreamquery/pom.xml b/services/timestreamquery/pom.xml
index a5a597f69df3..f2f994fe3139 100644
--- a/services/timestreamquery/pom.xml
+++ b/services/timestreamquery/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
timestreamquery
AWS Java SDK :: Services :: Timestream Query
diff --git a/services/timestreamwrite/pom.xml b/services/timestreamwrite/pom.xml
index 45d63d2f1c9d..67a044e4f45b 100644
--- a/services/timestreamwrite/pom.xml
+++ b/services/timestreamwrite/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
timestreamwrite
AWS Java SDK :: Services :: Timestream Write
diff --git a/services/tnb/pom.xml b/services/tnb/pom.xml
index e2cc11687b4c..1b507434391f 100644
--- a/services/tnb/pom.xml
+++ b/services/tnb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
tnb
AWS Java SDK :: Services :: Tnb
diff --git a/services/transcribe/pom.xml b/services/transcribe/pom.xml
index c086decdae7a..87bc481b7b2d 100644
--- a/services/transcribe/pom.xml
+++ b/services/transcribe/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
transcribe
AWS Java SDK :: Services :: Transcribe
diff --git a/services/transcribestreaming/pom.xml b/services/transcribestreaming/pom.xml
index 9ef099645002..2709dafa970b 100644
--- a/services/transcribestreaming/pom.xml
+++ b/services/transcribestreaming/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
transcribestreaming
AWS Java SDK :: Services :: AWS Transcribe Streaming
diff --git a/services/transfer/pom.xml b/services/transfer/pom.xml
index 6813196d4c96..3b0519fea0b7 100644
--- a/services/transfer/pom.xml
+++ b/services/transfer/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
transfer
AWS Java SDK :: Services :: Transfer
diff --git a/services/translate/pom.xml b/services/translate/pom.xml
index 5afa21c82015..24ab611216e2 100644
--- a/services/translate/pom.xml
+++ b/services/translate/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
translate
diff --git a/services/trustedadvisor/pom.xml b/services/trustedadvisor/pom.xml
index 116ad0156ff5..e7ce95724fc7 100644
--- a/services/trustedadvisor/pom.xml
+++ b/services/trustedadvisor/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
trustedadvisor
AWS Java SDK :: Services :: Trusted Advisor
diff --git a/services/verifiedpermissions/pom.xml b/services/verifiedpermissions/pom.xml
index 26af9ffd0bb8..8ae7a6fe71e1 100644
--- a/services/verifiedpermissions/pom.xml
+++ b/services/verifiedpermissions/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
verifiedpermissions
AWS Java SDK :: Services :: Verified Permissions
diff --git a/services/voiceid/pom.xml b/services/voiceid/pom.xml
index 5d052d1b6ce3..df17add10a76 100644
--- a/services/voiceid/pom.xml
+++ b/services/voiceid/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
voiceid
AWS Java SDK :: Services :: Voice ID
diff --git a/services/vpclattice/pom.xml b/services/vpclattice/pom.xml
index 3d68338ef2b3..b706feb54042 100644
--- a/services/vpclattice/pom.xml
+++ b/services/vpclattice/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
vpclattice
AWS Java SDK :: Services :: VPC Lattice
diff --git a/services/waf/pom.xml b/services/waf/pom.xml
index 540c9b2fbace..1127f33149a6 100644
--- a/services/waf/pom.xml
+++ b/services/waf/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
waf
AWS Java SDK :: Services :: AWS WAF
diff --git a/services/wafv2/pom.xml b/services/wafv2/pom.xml
index 33dbf3151470..8883e889e6e0 100644
--- a/services/wafv2/pom.xml
+++ b/services/wafv2/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
wafv2
AWS Java SDK :: Services :: WAFV2
diff --git a/services/wellarchitected/pom.xml b/services/wellarchitected/pom.xml
index e655c1f3185a..a8e8b9661a14 100644
--- a/services/wellarchitected/pom.xml
+++ b/services/wellarchitected/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
wellarchitected
AWS Java SDK :: Services :: Well Architected
diff --git a/services/wisdom/pom.xml b/services/wisdom/pom.xml
index f330599cfa95..c948ad487981 100644
--- a/services/wisdom/pom.xml
+++ b/services/wisdom/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
wisdom
AWS Java SDK :: Services :: Wisdom
diff --git a/services/workdocs/pom.xml b/services/workdocs/pom.xml
index e29af12fe10b..9f54ec21a19a 100644
--- a/services/workdocs/pom.xml
+++ b/services/workdocs/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
workdocs
AWS Java SDK :: Services :: Amazon WorkDocs
diff --git a/services/worklink/pom.xml b/services/worklink/pom.xml
index 5537d07232e9..f63f44842887 100644
--- a/services/worklink/pom.xml
+++ b/services/worklink/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
worklink
AWS Java SDK :: Services :: WorkLink
diff --git a/services/workmail/pom.xml b/services/workmail/pom.xml
index d8644d8b6a34..7837a49cda88 100644
--- a/services/workmail/pom.xml
+++ b/services/workmail/pom.xml
@@ -20,7 +20,7 @@
services
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0
workmail
diff --git a/services/workmailmessageflow/pom.xml b/services/workmailmessageflow/pom.xml
index 53f11a9de46a..826d13b10174 100644
--- a/services/workmailmessageflow/pom.xml
+++ b/services/workmailmessageflow/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
workmailmessageflow
AWS Java SDK :: Services :: WorkMailMessageFlow
diff --git a/services/workspaces/pom.xml b/services/workspaces/pom.xml
index de82ca1fe825..26b4c3a57ffa 100644
--- a/services/workspaces/pom.xml
+++ b/services/workspaces/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
workspaces
AWS Java SDK :: Services :: Amazon WorkSpaces
diff --git a/services/workspacesthinclient/pom.xml b/services/workspacesthinclient/pom.xml
index 0a5ff5334ebf..c9d08142cd43 100644
--- a/services/workspacesthinclient/pom.xml
+++ b/services/workspacesthinclient/pom.xml
@@ -17,7 +17,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 ddc40ab8b751..72d41b9e2cd7 100644
--- a/services/workspacesweb/pom.xml
+++ b/services/workspacesweb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 2.25.37
workspacesweb
AWS Java SDK :: Services :: Work Spaces Web
diff --git a/services/xray/pom.xml b/services/xray/pom.xml
index e28c27d1e447..735fa85e7818 100644
--- a/services/xray/pom.xml
+++ b/services/xray/pom.xml
@@ -21,7 +21,7 @@
software.amazon.awssdk
services
- 2.25.37-SNAPSHOT
+ 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 22612849936c..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.37-SNAPSHOT
+ 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 ec5427886839..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.37-SNAPSHOT
+ 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 2059207c1243..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
diff --git a/test/crt-unavailable-tests/pom.xml b/test/crt-unavailable-tests/pom.xml
index b811e782e017..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.37-SNAPSHOT
+ 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 7c291f31bd9c..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.37-SNAPSHOT
+ 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 f10adfe8248a..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.37-SNAPSHOT
+ 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 79a8a9eeb297..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
diff --git a/test/protocol-tests-core/pom.xml b/test/protocol-tests-core/pom.xml
index c0bd7b2de5cd..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml
index 71fddd6ea937..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/region-testing/pom.xml b/test/region-testing/pom.xml
index 7c94432e2b41..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.37-SNAPSHOT
+ 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 061c0027d765..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/s3-benchmarks/pom.xml b/test/s3-benchmarks/pom.xml
index c9e355c1ae9e..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/sdk-benchmarks/pom.xml b/test/sdk-benchmarks/pom.xml
index d0dfe51dbfcd..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
diff --git a/test/sdk-native-image-test/pom.xml b/test/sdk-native-image-test/pom.xml
index effbecb28395..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.37-SNAPSHOT
+ 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 5919e96e2180..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
service-test-utils
diff --git a/test/stability-tests/pom.xml b/test/stability-tests/pom.xml
index b7ef2b2fad82..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/test/test-utils/pom.xml b/test/test-utils/pom.xml
index d09f264c2a03..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
test-utils
diff --git a/test/tests-coverage-reporting/pom.xml b/test/tests-coverage-reporting/pom.xml
index fdadc176252d..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.37-SNAPSHOT
+ 2.25.37
../../pom.xml
4.0.0
diff --git a/third-party/pom.xml b/third-party/pom.xml
index b115977d8a95..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.37-SNAPSHOT
+ 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 4db3a22f4618..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.37-SNAPSHOT
+ 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 3e71c7c06c6b..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.37-SNAPSHOT
+ 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 ccbbe5866150..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.37-SNAPSHOT
+ 2.25.37
4.0.0
diff --git a/utils/pom.xml b/utils/pom.xml
index 2adcd6d7d71a..0a4df4d4c6ac 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -20,7 +20,7 @@
aws-sdk-java-pom
software.amazon.awssdk
- 2.25.37-SNAPSHOT
+ 2.25.37
4.0.0