Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions clients/client-dynamodb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"@aws-sdk/client-sso-oidc": "*",
"@aws-sdk/client-sts": "*",
"@aws-sdk/core": "*",
"@aws-sdk/core/account-id-endpoint": "*",
"@aws-sdk/credential-provider-node": "*",
"@aws-sdk/middleware-endpoint-discovery": "*",
"@aws-sdk/middleware-host-header": "*",
Expand Down
22 changes: 15 additions & 7 deletions clients/client-dynamodb/src/DynamoDBClient.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
// smithy-typescript generated code
import { AccountIdEndpointMode } from "@aws-sdk/core/account-id-endpoint";
import {
AccountIdEndpointMode,
AccountIdEndpointModeInputConfig,
AccountIdEndpointModeResolvedConfig,
resolveAccountIdEndpointModeConfig,
} from "@aws-sdk/core/account-id-endpoint";
import {
EndpointDiscoveryInputConfig,
EndpointDiscoveryResolvedConfig,
Expand Down Expand Up @@ -465,6 +470,7 @@ export type DynamoDBClientConfigType = Partial<__SmithyConfiguration<__HttpHandl
RetryInputConfig &
RegionInputConfig &
HostHeaderInputConfig &
AccountIdEndpointModeInputConfig &
EndpointInputConfig<EndpointParameters> &
HttpAuthSchemeInputConfig &
EndpointDiscoveryInputConfig &
Expand All @@ -486,6 +492,7 @@ export type DynamoDBClientResolvedConfigType = __SmithyResolvedConfiguration<__H
RetryResolvedConfig &
RegionResolvedConfig &
HostHeaderResolvedConfig &
AccountIdEndpointModeResolvedConfig &
EndpointResolvedConfig<EndpointParameters> &
HttpAuthSchemeResolvedConfig &
EndpointDiscoveryResolvedConfig &
Expand Down Expand Up @@ -535,14 +542,15 @@ export class DynamoDBClient extends __Client<
const _config_3 = resolveRetryConfig(_config_2);
const _config_4 = resolveRegionConfig(_config_3);
const _config_5 = resolveHostHeaderConfig(_config_4);
const _config_6 = resolveEndpointConfig(_config_5);
const _config_7 = resolveHttpAuthSchemeConfig(_config_6);
const _config_8 = resolveEndpointDiscoveryConfig(_config_7, {
const _config_6 = resolveAccountIdEndpointModeConfig(_config_5);
const _config_7 = resolveEndpointConfig(_config_6);
const _config_8 = resolveHttpAuthSchemeConfig(_config_7);
const _config_9 = resolveEndpointDiscoveryConfig(_config_8, {
endpointDiscoveryCommandCtor: DescribeEndpointsCommand,
});
const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []);
super(_config_9);
this.config = _config_9;
const _config_10 = resolveRuntimeExtensions(_config_9, configuration?.extensions || []);
super(_config_10);
this.config = _config_10;
this.middlewareStack.use(getUserAgentPlugin(this.config));
this.middlewareStack.use(getRetryPlugin(this.config));
this.middlewareStack.use(getContentLengthPlugin(this.config));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ public List<RuntimeClientPlugin> getClientPlugins() {
RuntimeClientPlugin.builder()
.withConventions(AwsDependency.RECURSION_DETECTION_MIDDLEWARE.dependency,
"RecursionDetection", HAS_MIDDLEWARE)
.build(),
// AccountIdEndpointMode field
RuntimeClientPlugin.builder()
.withConventions(AwsDependency.AWS_SDK_CORE_ACCOUNT_ID_ENDPOINT.dependency, "AccountIdEndpointMode", HAS_CONFIG)
.servicePredicate((m, s) -> isAwsService(s) || isSigV4Service(s))
.build()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
public enum AwsDependency implements Dependency {

AWS_SDK_CORE(NORMAL_DEPENDENCY, "@aws-sdk/core"),
AWS_SDK_CORE_ACCOUNT_ID_ENDPOINT(NORMAL_DEPENDENCY, "@aws-sdk/core/account-id-endpoint", AWS_SDK_CORE.version),
MIDDLEWARE_SIGNING(NORMAL_DEPENDENCY, "@aws-sdk/middleware-signing"),
MIDDLEWARE_TOKEN(NORMAL_DEPENDENCY, "@aws-sdk/middleware-token"),
CREDENTIAL_PROVIDER_NODE(NORMAL_DEPENDENCY, "@aws-sdk/credential-provider-node"),
Expand Down Expand Up @@ -146,11 +147,23 @@ private static final class SdkVersion {
VERSIONS = Collections.unmodifiableMap(versions);
}

private static String getBasePackageName(String packageName) {
if (packageName.startsWith("@aws-sdk/")) {
// For @aws-sdk scoped packages, consider everything up to the second slash as the base package
int secondSlashIndex = packageName.indexOf('/', "@aws-sdk/".length());
return secondSlashIndex == -1 ? packageName : packageName.substring(0, secondSlashIndex);
} else {
// For other packages, use the entire name
return packageName;
}
}

private static String expectVersion(String packageName) {
if (!VERSIONS.containsKey(packageName)) {
throw new IllegalArgumentException("No version for " + packageName);
String basePackageName = getBasePackageName(packageName);
if (!VERSIONS.containsKey(basePackageName)) {
throw new IllegalArgumentException("No version for " + basePackageName);
}
return VERSIONS.get(packageName);
return VERSIONS.get(basePackageName);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ export interface AccountIdEndpointModeResolvedConfig {
export const resolveAccountIdEndpointModeConfig = <T>(
input: T & AccountIdEndpointModeInputConfig & PreviouslyResolved
): T & AccountIdEndpointModeResolvedConfig => {
const accountIdEndpointModeProvider = normalizeProvider(
input.accountIdEndpointMode ?? DEFAULT_ACCOUNT_ID_ENDPOINT_MODE
);
return {
...input,
accountIdEndpointMode: async () => {
const accountIdEndpointModeProvider = normalizeProvider(
input.accountIdEndpointMode ?? DEFAULT_ACCOUNT_ID_ENDPOINT_MODE
);
const accIdMode = await accountIdEndpointModeProvider();
if (!validateAccountIdEndpointMode(accIdMode)) {
throw new Error(
Expand Down
Loading