diff --git a/clients/client-s3-control/src/runtimeConfig.shared.ts b/clients/client-s3-control/src/runtimeConfig.shared.ts index c4de7a5b6531..4f8038d86f95 100644 --- a/clients/client-s3-control/src/runtimeConfig.shared.ts +++ b/clients/client-s3-control/src/runtimeConfig.shared.ts @@ -14,5 +14,6 @@ export const getRuntimeConfig = (config: S3ControlClientConfig) => ({ logger: config?.logger ?? ({} as __Logger), regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, serviceId: config?.serviceId ?? "S3 Control", + signingEscapePath: config?.signingEscapePath ?? false, urlParser: config?.urlParser ?? parseUrl, }); diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddS3ControlDependency.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddS3ControlDependency.java index f45824baedce..e9bd143ae4b4 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddS3ControlDependency.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddS3ControlDependency.java @@ -18,9 +18,13 @@ import static software.amazon.smithy.typescript.codegen.integration.RuntimeClientPlugin.Convention.HAS_CONFIG; import static software.amazon.smithy.typescript.codegen.integration.RuntimeClientPlugin.Convention.HAS_MIDDLEWARE; +import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.function.Consumer; import software.amazon.smithy.aws.traits.ServiceTrait; +import software.amazon.smithy.codegen.core.SymbolProvider; import software.amazon.smithy.model.Model; import software.amazon.smithy.model.shapes.MemberShape; import software.amazon.smithy.model.shapes.OperationShape; @@ -28,10 +32,13 @@ import software.amazon.smithy.model.shapes.Shape; import software.amazon.smithy.model.traits.RequiredTrait; import software.amazon.smithy.model.transform.ModelTransformer; +import software.amazon.smithy.typescript.codegen.LanguageTarget; import software.amazon.smithy.typescript.codegen.TypeScriptSettings; +import software.amazon.smithy.typescript.codegen.TypeScriptWriter; import software.amazon.smithy.typescript.codegen.integration.RuntimeClientPlugin; import software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration; import software.amazon.smithy.utils.ListUtils; +import software.amazon.smithy.utils.MapUtils; import software.amazon.smithy.utils.SmithyInternalApi; /** @@ -81,6 +88,25 @@ public Model preprocessModel(Model model, TypeScriptSettings settings) { }); } + @Override + public Map> getRuntimeConfigWriters( + TypeScriptSettings settings, Model model, + SymbolProvider symbolProvider, LanguageTarget target + ) { + if (!isS3Control(settings.getService(model))) { + return Collections.emptyMap(); + } + switch (target) { + case SHARED: + return MapUtils.of("signingEscapePath", writer -> { + writer.write("false"); + }); + case NODE: + default: + return Collections.emptyMap(); + } + } + private static boolean isS3Control(ServiceShape service) { String serviceId = service.getTrait(ServiceTrait.class).map(ServiceTrait::getSdkId).orElse(""); return serviceId.equals("S3 Control");