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 00000000000..2b8c8460e2c
--- /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 5e7c97377b7..7b477cc3df0 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 5f33dce1133..1e2f92deee0 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 dff6431e44c..13da37d1d7e 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 7180601639a..7ba01efd69e 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 8aef420f4a0..82ae4b7717e 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 ea1d2442d4a..d8507c97a01 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 e8c672150ac..b7a7adfd9ec 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 d1d044a3e38..aa6e18499af 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 52c2ec149ad..696d35aa9c1 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 ef15454a042..22da5e9986f 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 1f980b0b358..48e0f521f93 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 2c5278ad120..0fdedff0764 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 17b9b24ae09..0ffad04e77b 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 8254e04c0ab..d02b633dfd2 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 00000000000..8961c5d0a18
--- /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 cb3a6260049..27d72e29881 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 ef95613e5ef..5f8aa868c2d 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 03c802ec303..de5dbeaf139 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 bb5ed72f070..055b74b73e5 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 ff7fa4fc16d..12f6542043b 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 64b608d0476..3ab3798c465 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 00000000000..7e6f0050dc4
--- /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 00000000000..529b7007621
--- /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 1c4c520fb6c..b3510f75aca 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 ce64b5f40e7..a14e163cae1 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 00000000000..ab23369e334
--- /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 f738df91fcb..ce3c0b0cd45 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 bf3ae020fbe..5a3228ab8c7 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 2e38b32ded6..42f643babc5 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 7b07dfb4f31..a55a579f6b1 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 a75cfafa340..02a141bd3bc 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 b687b7b8934..7e221830350 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 4f880510ca5..97d35332ada 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 6fa45ecbe4f..0e8083f20fa 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 1f08db5a905..e59f663c06c 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 43c388445c2..548062504a2 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 a8016a5a4b6..00000000000
--- 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 c845bb770cf..6d14f30b326 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 00000000000..5b6a8b66c24
--- /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 b7e1e3003c4..3cdc5ff2a43 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 761e0dcb044..6d99b555e31 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 d5e5a20f5b9..4cbb325f745 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 77c57147aea..da28815b686 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 e7942671879..8ca66114d2b 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 c1710327fcb..c812da56e21 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 1de31d7f55e..e854495e012 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 2c8a4878b6a..e4d7b6c6bc5 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 624f4380e67..fb4729f98f7 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 dfdcddd8fd4..d037597897a 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 f16f564a0a4..dc35f7907b5 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 9d04a3c17ba..bdc50a817aa 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 3dd7aaac267..18f9feadf79 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 eb08a86f7b6..cb3ca75140b 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 71e2ca8b353..d0d5e2fdf88 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 cf58fb6fe99..78c391c2644 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 00000000000..9ae0911b271
--- /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 c5582632211..b48e27c99e5 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 d2b5a93973e..bcc7d77af4e 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 615bcb63f1d..81905de526a 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 d76b0b250a4..95e249eb529 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 00000000000..06aafccf381
--- /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 88806cdc81a..41e066a5674 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 00000000000..b7c9111ac5e
--- /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 db0850939f3..16f78dc1216 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 00000000000..7ac5c581735
--- /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 7124ded3a94..2398c28612f 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 3c4785fbd2e..3e85985f70b 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 00000000000..1e67a7bdcd1
--- /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 55711448b8d..cd9417644db 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 00000000000..035f13efce7
--- /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 3f1edd88b2c..767d0eb3078 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 00000000000..b8393c1ed5d
--- /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 2a013d4fe26..59d8979addd 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 d80c7e26312..5d997fdb284 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 00000000000..0eb14ddee1c
--- /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 0f258463db8..6519a9a1f3c 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 00000000000..19b9166b37f
--- /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 e782a198751..5d545913e0e 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 00000000000..58bd721b97e
--- /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 e8b0ae033ec..8f920eff6d1 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 5bc66fe4d03..694f91927d2 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 00000000000..e5b5ee3ca5e
--- /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 f95a23a901c..27e464f5171 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 00000000000..c951dbd4f12
--- /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 b7c9111ac5e..00000000000
--- 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 b8393c1ed5d..00000000000
--- 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 f12f6e647d7..00000000000
--- 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 e5b5ee3ca5e..00000000000
--- 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 035f13efce7..00000000000
--- 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 06aafccf381..00000000000
--- 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 58bd721b97e..00000000000
--- 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 19b9166b37f..00000000000
--- 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 0eb14ddee1c..00000000000
--- 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 1e67a7bdcd1..00000000000
--- 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 7ac5c581735..00000000000
--- 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 a207cf261ad..e64f7ede65d 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 422dd23cd3f..0b1102b8319 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 b56b1a23f9f..454e94bf84e 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 789eaf9c99a..94c8ba97c4e 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 cc8a538288a..483e4d42c19 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 e980c836673..c9be3f36ee5 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 b01d05fc621..b7ecceaa63a 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 c9ef5f08811..5ff2ef4e898 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 21b5cfdc0d8..49ce2852501 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 5f020048ba7..f7194994ce9 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 f79670daecf..2fff36832df 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 21572861663..6db1f88c967 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 8797781f50e..a66e9bc0f17 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 5b3726e27bb..62cd64387ff 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 591f7abfeef..b38ac26f7d5 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 2451f01a60b..5a521b9ae0e 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 75778a7a2ae..85a024b9ae2 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 f1f4bc2a052..90eb5bd90bf 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 20ebb2e8208..e1233041ad5 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 95306ef95dd..e142273bb87 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 6940ddda269..d3e7af1164c 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 684e1ca72c3..8249529f123 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 483ad462d92..2404de74b22 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 b9ef091fa03..c794d857ed6 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 dd601afb33f..8f5f72d650a 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 3c0fce954ae..7246bd9cbe7 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 034b4288c1e..d71c6dce7d9 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 b1e1a86fb3d..1f3dfab0e44 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 d69813cbead..9dcb1447d82 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 eca71b6fae1..de9968b16ed 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 45adcb80785..47dfe7dba76 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 a1de6de14a5..e8c09f6481b 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 0749aee22eb..a236bfe75dc 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 0e0ab06d6fc..cb8c9e7e659 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 2f8975e61f6..242f11439a5 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 4d49793e9a1..b9e4b2f8851 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 65f746430ab..2fc8a8232a5 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 16e7508b73f..1b7f954f83d 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 b4002e3874a..ea7848e744b 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 63bdbdc292e..b980403bbe0 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 91ed879bab6..5c7198f6bd7 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 f3ac75ce4d3..bfa6fcf7e23 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 541e81c9451..7b9e953f050 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 096d1837972..eb05243ad68 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 a6b97b2c5ee..418a558a1d9 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 ddf59b2f9ea..15a3ebba5a9 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 03a222e38e5..4abfb0f7c59 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 fb5194b8dc7..123ddf0719f 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 223a3ca7f93..9a74fa57b42 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 2510de10757..d66ade4f062 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 3f6b42e6d15..f9446cf3c35 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 1404bbb2684..d502f71bbca 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 9c5d338f15d..efff18a2e4a 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 685c607ab07..01269ea5be0 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 d0eb38b262a..a9884755cc6 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 f92e6706e80..d5890de7d78 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 e6be8517522..e495ab8096d 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 28409405e9d..69e681e6de3 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 9dff5c787bb..58416c45c1c 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 5393f33a792..4f1e0933036 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 1607590879b..e1a863ccc9d 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 cbc67cce44d..1e2aa0d8ecc 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 e2cba2532f8..3dbc081ff4c 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 5799407f1f2..db2d9dd4f07 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 ac8887fc655..03bafa23c0b 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 a76df3ecb3c..cdfb3c6e6fb 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 cadc8a12714..ddef198652b 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 0a74b9d7010..6cfe1bef9c8 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 342aa085ef9..1add4de13cf 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 c36f0161425..862e59954a1 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 e2ec395c7d1..c37c0edce7d 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 52c8a1c8911..2f34c5c8d40 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 15458f24a1c..1aa9b43db15 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 585460608dd..1760e1cf829 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 bd5b172c81e..50be5c45a24 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 e548adb020f..0cc7868d39a 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 cfd1f96a2e1..1abd76e0093 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 0b3b80dbde5..7e154e66114 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 de09e255469..2de5b7e52c0 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 096db17aa65..2378ca8cf6c 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 ed899034e64..65f0f5453d1 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 7b89a1d97bc..2e3371b6766 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 52ed8fb56aa..87cb44052dc 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 953187209ae..0234ff808d6 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 88353d887d7..eb23dca97aa 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 c50faa51be5..5d29ebf4036 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 38a2e773e70..4b24841a08f 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 f13dabf0831..bd80bfcf026 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 330f09f1c26..c25b803adf6 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 f4b0d7739b5..8bb7146c900 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 630388c19bc..a08ed14ec2d 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 6e6bff53a8d..84244284736 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 0b5f58e7052..43deaf3e93e 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 a24c82f143b..acbf3e97441 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 5a98836f04d..2584a55bd64 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 f28b8f62aea..01c1d753762 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 507482c442e..20946bb9903 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 a977679acf1..09ff557bec0 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 7e117c69cb7..ddbd84ac09c 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 ea6b2473e1b..6d74f3738bf 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 ef8213de0df..1f756d0dc44 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 0cf8521beb6..2ddd963e822 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 69d4d9e22a2..86519911b1b 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 b1eca0ff410..4d4b5227459 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 875f6bae034..2ff51f4a560 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 491fe7a188f..aee3999d4ee 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 900f68312bb..287344e8f10 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 d7370d9d592..18f77f3e7bc 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 e04df1634e5..94773e6ae98 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 0132ce8fcfc..31f889916bd 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 8f4e0ef0774..55931e72d39 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 7f0a81ed0db..844f0da0eb8 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 c1242cc759a..e2a66b489d5 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 4aa3c74baf3..924e3938703 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 7abc44c24ba..638ed383141 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 cf90ef38a65..c5c9f55ba5c 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 4628ac65574..4f3b9612cee 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 5bfcc6481af..1f7ec39a22f 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 8e68d9033c6..72b5bdfd2d8 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 319c3a74bdd..c012570a8a7 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 4e5efab0508..584255c8679 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 eb72c766d92..20ca35953f2 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 12013db40ae..8294f7fc50b 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 2016f6fd2ae..7f53c109ebb 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 cafef867a05..96815303c79 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 ecfcff9738a..5ad4337c618 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 36fe00c8086..a37d1f6517b 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 ca6a3efe47e..373e45045c7 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 d0ce417e67d..cc6958c30d5 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 919055553dd..3db33888f0f 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 de1c0485003..e20ca70d575 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 d6a6c79cd07..5c86f9951b9 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 350b961deb8..fca099918fa 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 aac107eec85..61a2bbd2241 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 9dc46faed45..a54aad7cc04 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 8bb5bd8656a..58e99822364 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 e3778af99a1..881ca5a3fca 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 a0def8786f5..db4c3c51efd 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 0b828723237..84ae58cacdf 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 232ba20179e..8065d867927 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 9dccfb81fee..9ff4d93f1b3 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 1eebfc28d37..bc000427d7d 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 0079618b964..c3c558f0bbe 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 508042d5968..0867d444d3d 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 35f2941ef26..ccda3e7392b 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 c873e59eed1..9e330b00fea 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 197eb842ed9..01c6934a839 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 6eb5998a31b..d1b4e2a5fae 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 5a2c1197a85..b0d93a86b28 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 574c2af779c..243f4963b72 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 e87ede538e8..0f9e434bbd5 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 622c4fb0210..21b768e5a6f 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 50a2e45b952..33df78f9950 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 5657ec3f539..7167ec8af00 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 c54bf83a9c5..d1b216cce1b 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 9cbfc52c720..1d74883eea8 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 502d8582184..681320492c6 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 c8b14439d67..4978d3ec9a3 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 55b8c4ffc4d..c7b6c04a539 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 9ffb6b7fcd1..2bc932cd899 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 3d4c9895e86..312dde457c0 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 2e570c3cc90..cf1f881285c 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 3adfd42bc8a..759ac6b5bb1 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 e2bd538e748..4f758ad0df2 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 ced47d1ce19..f9659ccbbe2 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 a96093f39db..19fbdf453a4 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 81bc1493292..e8e958e57dd 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 07d807bd698..eea9917c9e4 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 0055ec16f41..1eac6bb07a6 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 b582b024762..02e104fc9b8 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 3b397b65184..832c94bb133 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 c093f911910..3416cf23b78 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 4762f137775..7e65f4dc7e0 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 a3cb4018070..9d3143bcb7f 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 045a8b333f9..fe736ab284d 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 32a7efa8037..a5a719d5c6f 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 7f6eb219553..bb7eb0b5723 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 bca9ad4ac30..4c3a5467b5d 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 9731d6c7183..74906d45104 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 f0c960c8642..9d916dc9ad6 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 58219fdcd56..9eaa72b5f8c 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 fb8adaf1c1e..589f88d1980 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 681e0acdcde..0bfc1a321ba 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 54d21ea9b36..dc072ab08a5 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 89608b7a054..a052e894b57 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 47807852cef..e94a1976033 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 c64e5af2924..543e8d30236 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 719402652c6..0ac185e352a 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 5a6235d7443..521e31c168a 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 f9e6bbffd8a..8f45b1a2bcd 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 5a338a187fe..8e6e7ee85f7 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 491a7eaac08..5a1cfb5cded 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 07f893cecfc..a6b82b42df1 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 6c437fa3036..7d441a83e2b 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 8d5d8745a68..ad143e55768 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 3e0c64a18b0..7c44f78760e 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 9758f2b9e60..dee3336c232 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 ccda301c3fe..5be0bfce2d1 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 214a7e3d99d..b68846e4827 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 3a380a81142..e5072579f76 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 547d8ace105..43f1235eef9 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 4bbeb441c6b..227bbd5fda3 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 a78de789781..5b09390f30e 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 ebc52c9ba20..d3439e51338 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 27f626b0458..9afc941ad9d 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 abcd32d474d..faefee8547c 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 b71a3481e4d..fc053ec623c 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 9c61d3d6512..22fe5814223 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 69449377d53..0d17249b8a4 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 b733c1c80a3..f7250d4a6d1 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 98a63e16481..a7d2626701d 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 b58db2a3d41..28197f7352e 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 d54a0098fd6..66fd6b39bbd 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 4d5ce904052..157adc079ca 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 dc1a4f75c94..317bb58f234 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 7b3ca82f0fd..975971a885d 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 cfe8d25e282..1116b7a5f6c 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 292bc9f25a3..dfbe96f4500 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 e4ad54c8829..d5c626301d6 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 be3b14e69d4..250169a04ae 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 ef97fb10744..d79e0a100df 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 084e0decb71..23383324316 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 ea29eeda91c..5931fd39f23 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 b7c3c7092ef..203a2817803 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 fe8fea143ae..626cb27cfc9 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 bb7942a7e6e..9ef82226427 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 a8c65abd541..aaf02ff83da 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 3d6b43dd9ab..5fb4425084f 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 fe5487b16ee..a36208d6af0 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 6238a3b870f..3d7a871ea2c 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 a40dc62de40..49510ad5953 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 2d44bcc0cd1..add0aa9402c 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 0cfe65fc89b..db24892c762 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 084cf6be9f8..791fbe2cd7d 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 7d0538b9c44..e618e31c068 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 156c3311be1..c8850c40d2c 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 853b5dbd574..ba6a8b1f822 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 57ee335c7dc..d5f0f7ddfd4 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 de709663516..bd5b1ecb8bd 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 e9dd9ded47a..0631c24d9ce 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 edbc0ff0434..c8412a1f378 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 d5cf944f2dc..2da1fb5017d 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 f65249ce750..e59dd1712ec 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 6440552ab4d..c0547595995 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 a2a7e7c0566..333e7bf57b4 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 2686acc5776..156a18b3913 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 2331f5f26f8..4d7d159a8a4 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 5b8e290b27d..23ce7ad0488 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 f812ebcd5ad..d53ff2bf67d 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 de20fa5b3ec..23e00689926 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 cbb6af2e1da..2a73c5f0286 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 7879c489009..eafec5164d7 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 969a7ec5792..49fa04a6e43 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 2462499047b..8756e43c49e 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 000bd1e600c..ab60a8cf53f 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 8b12ef2e949..c7eb28d9400 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 3240bb4a910..f7377344300 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 4ada4d9c8c4..3152718b7f8 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 e980a28ba12..f200583de8a 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 4a9ef364074..f89943e19ed 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 c49b1cdd2be..e5499c15c1a 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 300691696aa..392ae86b5d8 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 4bc9c1ea4a5..09f27184930 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 107b07c9b19..4588e7d754e 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 381eb39ae97..983c025eab2 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 a98002bfe95..469f66647b4 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 d2d43203315..8290fc2fba8 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 0189889c8e9..df91839db9e 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 3f637e92234..03391ae5147 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 89ac5c3c011..3f8008d33a1 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 972bb251553..ce836dd9ca5 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 091469dc626..dca617704d4 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 64e7d8631f1..b3314740f85 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 bd6bcc9556d..8a4557a1f38 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 2af90a23e1b..292f0d323fe 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 8bffe67a6b8..08a9c779ee9 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 71d32936f2a..701e5112596 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 7da0958415b..72d460c7cf4 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 e2ee63b9f5a..1a82d817c94 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 092dfc0d0fb..382e27e1999 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 e6a14f4f852..969ca4e5583 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 c0f01af7278..6f5a267702a 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 9d381608c25..d49e8928a9a 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 900e4b4fd4e..d67920c0127 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 8236ab5697c..3cd6b64114e 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 888834cbc5d..cb2d6dfcbf0 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 ed5bc0d7962..baf29551b4a 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 247ec55aa35..646dc7417a1 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 66645c253b6..b03b81869f1 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 b8c4d3768ea..f0122c67730 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 dc35faa7ea1..73992945507 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 7cc0f916320..7db118b3bda 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 c5fd298090a..be2a73460b9 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 40bae8ea617..96ab4c56e3d 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 dc05d1034db..94730665cfa 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 340748c3665..459d6316213 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 e8a58ab976f..d231c83f142 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 84fd670bd65..4818c6c7fa6 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 d979e5fb3fe..a11a24d3140 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 520fe0df189..490e3bff4dd 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 3929c56e71c..7d45104ef50 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 9284555de42..062958d2439 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 0baba646812..4ab6dc0ef96 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 6b4f95979d5..b53e2e8ecf5 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 e0517581e8b..f27b762cf29 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 b33a2398281..1da9e1cea6c 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 a1e4a145b64..bcb5a51a8bd 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 0e100415843..3a81e5cb53e 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 88ab9e7103e..518198d8299 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 23c1a037f88..4f9dd49e489 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 76ef7a4f62c..a8f0208acec 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 62e1897c296..203764a0b3e 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 acd36689948..9087b3ef5ea 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 d3e81ca76c7..da9dc95ba1c 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 e8419ba4d96..8873a30bc1c 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 702e1b4fb3f..acb6c3548ba 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 1e4e4afc119..513f47c5109 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 8b9788803c9..17e4876b226 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 35d491633fb..91ab316e24d 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 70456c53a7c..0681683e2c7 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 d243beedab5..c6ab21ab7f9 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 747fa85007d..ef773362320 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 17fdbed9fe8..369b88afeed 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 0b5bc770f95..83e61c78839 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 203dc1deda6..e8612c5731f 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 ed531d85c65..0d517b0706e 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 51c558e0d2f..b1ce0fe1185 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 905f6206bbc..83c14014206 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 3b867553696..74b4f471370 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 3adba90af83..40983a49bb7 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 fb26cd983d7..730da3fbc9e 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 e4800a71c7d..2e322991dac 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 38c291c6b72..b51da0779b2 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 4cd7d6832da..83b95e2bd54 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 bb4e95d985c..eee3aab1501 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 2a573704a3d..49b0b241ca9 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 8cddf28a4e9..15cb707f77e 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 06105f8dfd6..a153696edcc 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 10032a4a7ec..b8fefa9bae0 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 89f5d38a65a..e0f6edc4df8 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 2e863d1d9d5..fd330d9abac 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 2b81e166adf..b0c41787941 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 b942fcfc22c..49c8b8096c7 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 99ac4ebcadc..20972818672 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 2aa526ffa28..b4267170fae 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 7454123d280..f98492f8921 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 cd76a724a43..3dcff48d862 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 17d11ed461b..02b96e6e991 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 99a588c2d4f..6c186381257 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 23c34b7f70d..744d91f089b 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 8f9e19dda5f..14d3b6cbc39 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 e1c76708198..9d89c6930b0 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 b6677a7d8bb..dc719367e9f 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 1bce4bc381d..4fe7ad33a08 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 0cfa4419604..33323128419 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 0f9e6ee1414..1690a06a2d6 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 4374c997cde..edd967e25e9 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 8b44ce0878d..b799394c357 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 b6223810523..eabe52e9d9a 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 8ada74582f7..fe0def424d2 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 cb117743417..7542d64df0a 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 901662699de..0b4cea20213 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 a12a7ab5494..c4153ee5e9d 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 d575805795b..29bbacc97ed 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 92c8dbb52a2..d10e71b9814 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 c1e88e008fd..d7358a11389 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 e4df59eff6c..ec9835513b0 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 79d3774be06..ea3ddc65d8e 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 0a05b29b23c..96faf902a9d 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 b7b5ed94ab0..0dcee94335b 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 b2f1e672e06..ac6ebc8086a 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 9f2a36c76a4..f2e4aa633f3 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 30f0b09d67a..069857e2841 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 05a6a0e34d5..049b886c3b5 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 3093fa6e05a..0f2937cf756 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 4c1dd45b87a..5530bc20ad1 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 57c510e7e64..0e68d387dc7 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 20709529999..7d1f25c3927 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 7d0677a92ca..5d8fb8ec4ef 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 ddd97ce8009..66461ea452e 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 d325b7a40de..76725296302 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 674875fb241..8ca44f768ee 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 864d3484d01..00418bc93e1 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 791f852029e..79bfd73e0a9 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 8e0d33b91f1..463ebf3f2fe 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 a462c8ce96d..23525f4c492 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 ad5bfee07cd..3f2fe971680 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 df624abf9be..9241ee6c8dc 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 e36cb8d46e5..15424554f7d 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 8ea401c70e0..43e05b0f9ca 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 c56bf9aa975..68c2a6aed9b 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 d9cf2135e40..967ada0d5af 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 1cd478e1438..2c2907b5e3e 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 590d01b380d..f4953c5f807 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 e2d77d9ffce..9d1e5d5cff7 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 67b4bf556c0..51911dc0b84 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 1e82c45d21e..3fd390d5f2c 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 136551285a1..1f98353fa22 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 f8d87979e39..c4862ee1335 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 e4ba75221c6..68567757898 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 20e44eb2e2a..d6f3137cefd 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 c6cc9bbd204..a5e485c8104 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 b0d54a10c2c..a4c878324b9 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 da34cc5aa6f..5109c91eb50 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 2bc2154dcf8..4f0698c46ff 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 58c36aa10bc..901d9e7172a 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 898a2dce201..95ef22868a0 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 95365554182..ede62c4afc1 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 4d4a997502f..dcbeb5359ce 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 d425760fb7a..d21f745255f 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 b059e485bcd..6b08204fcbb 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 0f7c141f64c..b5ce7588fbf 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 8d4e2dedba4..666c7463760 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 b9ee8c39124..fd9ea65db87 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 2b78b1c4a86..077d43c45f9 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 1bdaff59a79..167943f658e 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 1451e974dd2..02657d2b6fa 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 a5a597f69df..f2f994fe313 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 45d63d2f1c9..67a044e4f45 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 e2cc11687b4..1b507434391 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 c086decdae7..87bc481b7b2 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 9ef09964500..2709dafa970 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 6813196d4c9..3b0519fea0b 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 5afa21c8201..24ab611216e 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 116ad0156ff..e7ce95724fc 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 26af9ffd0bb..8ae7a6fe71e 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 5d052d1b6ce..df17add10a7 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 3d68338ef2b..b706feb5404 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 540c9b2fbac..1127f33149a 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 33dbf315147..8883e889e6e 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 e655c1f3185..a8e8b9661a1 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 f330599cfa9..c948ad48798 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 e29af12fe10..9f54ec21a19 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 5537d07232e..f63f4484288 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 d8644d8b6a3..7837a49cda8 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 53f11a9de46..826d13b1017 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 de82ca1fe82..26b4c3a57ff 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 0a5ff5334eb..c9d08142cd4 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 ddc40ab8b75..72d41b9e2cd 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 e28c27d1e44..735fa85e781 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 22612849936..68648bced43 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 ec542788683..778ab4c56a2 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 2059207c124..21447a9f86b 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 b811e782e01..2837de70810 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 7c291f31bd9..7fd832ed22d 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 f10adfe8248..50c6b7c4b53 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 79a8a9eeb29..9aca65affed 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 c0bd7b2de5c..8292a857cec 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 71fddd6ea93..fc7eb81b190 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 7c94432e2b4..8b4e5da9659 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 061c0027d76..ffcddf8dd16 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 c9e355c1ae9..fcffcc98faa 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 d0dfe51dbfc..bdc84d9ac04 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 effbecb2839..494cf973d82 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 5919e96e218..85fa415e33d 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 b7ef2b2fad8..aeabd030a34 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 d09f264c2a0..194336f014c 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 fdadc176252..d781220c374 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 b115977d8a9..cff7f1e3f54 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 4db3a22f461..b772beb61f5 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 3e71c7c06c6..7f9f65fef49 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 ccbbe586615..5838279c93f 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 2adcd6d7d71..0a4df4d4c6a 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