public void customizeSupportedHttpAuthSchemes()

in codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/auth/http/integration/AwsSdkCustomizeSigV4Auth.java [157:246]


    public void customizeSupportedHttpAuthSchemes(
        SupportedHttpAuthSchemesIndex supportedHttpAuthSchemesIndex,
        Model model,
        TypeScriptSettings settings
    ) {
        ServiceShape service = settings.getService(model);
        if (isAwsService(service)) {
            HttpAuthScheme authScheme = supportedHttpAuthSchemesIndex.getHttpAuthScheme(SigV4Trait.ID).toBuilder()
                .removeConfigField("region")
                .removeConfigField("signingName")
                .removeConfigField("credentials")
                .addConfigField(SupportSigV4Auth.CREDENTIALS_CONFIG_FIELD.toBuilder()
                    .configFieldWriter(null)
                    .build())
                .propertiesExtractor(s -> w -> w
                    .write("""
                      (config: Partial<$T>, context) => ({
                        /**
                         * @internal
                         */
                        signingProperties: {
                          config,
                          context,
                        },
                      }),""", s))
                .addResolveConfigFunction(ResolveConfigFunction.builder()
                    .resolveConfigFunction(Symbol.builder()
                        .name("resolveAwsSdkSigV4Config")
                        .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                        .addDependency(AwsDependency.AWS_SDK_CORE)
                        .build())
                    .inputConfig(Symbol.builder()
                        .name("AwsSdkSigV4AuthInputConfig")
                        .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                        .addDependency(AwsDependency.AWS_SDK_CORE)
                        .build())
                    .previouslyResolved(Symbol.builder()
                        .name("AwsSdkSigV4PreviouslyResolved")
                        .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                        .addDependency(AwsDependency.AWS_SDK_CORE)
                        .build())
                    .resolvedConfig(Symbol.builder()
                        .name("AwsSdkSigV4AuthResolvedConfig")
                        .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                        .addDependency(AwsDependency.AWS_SDK_CORE)
                        .build())
                    .build())
                .putDefaultSigner(LanguageTarget.SHARED, w -> w
                    .addDependency(AwsDependency.AWS_SDK_CORE)
                    .addImport("AwsSdkSigV4Signer", null, AwsDependency.AWS_SDK_CORE)
                    .write("new AwsSdkSigV4Signer()"))
                .build();
            supportedHttpAuthSchemesIndex.putHttpAuthScheme(authScheme.getSchemeId(), authScheme);

            if (isSigV4AsymmetricService(model, settings)) {
                HttpAuthScheme authSchemeSigV4a = supportedHttpAuthSchemesIndex
                    .getHttpAuthScheme(SigV4Trait.ID)
                    .toBuilder()
                    .schemeId(SigV4ATrait.ID)
                    .addResolveConfigFunction(ResolveConfigFunction.builder()
                        .resolveConfigFunction(Symbol.builder()
                            .name("resolveAwsSdkSigV4AConfig")
                            .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                            .addDependency(AwsDependency.AWS_SDK_CORE)
                            .build())
                        .inputConfig(Symbol.builder()
                            .name("AwsSdkSigV4AAuthInputConfig")
                            .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                            .addDependency(AwsDependency.AWS_SDK_CORE)
                            .build())
                        .previouslyResolved(Symbol.builder()
                            .name("AwsSdkSigV4APreviouslyResolved")
                            .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                            .addDependency(AwsDependency.AWS_SDK_CORE)
                            .build())
                        .resolvedConfig(Symbol.builder()
                            .name("AwsSdkSigV4AAuthResolvedConfig")
                            .namespace(AwsDependency.AWS_SDK_CORE.getPackageName(), "/")
                            .addDependency(AwsDependency.AWS_SDK_CORE)
                            .build())
                        .build())
                    .putDefaultSigner(LanguageTarget.SHARED, w -> w
                        .addDependency(AwsDependency.AWS_SDK_CORE)
                        .addImport("AwsSdkSigV4ASigner", null, AwsDependency.AWS_SDK_CORE)
                        .write("new AwsSdkSigV4ASigner()"))
                    .build();
                supportedHttpAuthSchemesIndex.putHttpAuthScheme(authSchemeSigV4a.getSchemeId(), authSchemeSigV4a);
            }
        }
    }