diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt index c6e1924ea47..e149c10909a 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsBuiltins.kt @@ -6,6 +6,7 @@ package aws.sdk.kotlin.codegen.endpoints object AwsBuiltins { const val ACCOUNT_ID = "AWS::Auth::AccountId" + const val ACCOUNT_ID_ENDPOINT_MODE = "AWS::Auth::AccountIdEndpointMode" const val USE_FIPS = "AWS::UseFIPS" const val USE_DUAL_STACK = "AWS::UseDualStack" const val S3_ACCELERATE = "AWS::S3::Accelerate" diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt index 5c418be243e..c4c49adc48f 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt @@ -106,6 +106,14 @@ fun renderBindAwsBuiltins(ctx: ProtocolGenerator.GenerationContext, writer: Kotl AwsRuntimeTypes.Config.Endpoints.resolveAccountId, AccountIdEndpointBuiltinCustomization.AccountIdEndpointModeProp.propertyName, ) + + AwsBuiltins.ACCOUNT_ID_ENDPOINT_MODE -> { + writer.write( + "#L = config.#L.toString().lowercase()", // Spec specifies these enum values must be lowercase + it.defaultName(), + AccountIdEndpointBuiltinCustomization.AccountIdEndpointModeProp.propertyName, + ) + } } } } diff --git a/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltinsTest.kt b/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltinsTest.kt new file mode 100644 index 00000000000..2fa1877fe52 --- /dev/null +++ b/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltinsTest.kt @@ -0,0 +1,38 @@ +package aws.sdk.kotlin.codegen.endpoints + +import software.amazon.smithy.kotlin.codegen.core.KotlinWriter +import software.amazon.smithy.kotlin.codegen.test.* +import software.amazon.smithy.rulesengine.language.syntax.parameters.Parameter +import software.amazon.smithy.rulesengine.language.syntax.parameters.ParameterType +import kotlin.test.Test +import kotlin.test.assertTrue + +class BindAwsEndpointBuiltinsTest { + @Test + fun testRenderAccountIdEndpointModeBuiltin() { + val model = "".prependNamespaceAndService().toSmithyModel() + + val ctx = model.newTestContext().generationCtx + val writer = KotlinWriter(TestModelDefault.NAMESPACE) + val parameters = listOf( + Parameter + .builder() + .builtIn(AwsBuiltins.ACCOUNT_ID_ENDPOINT_MODE) + .type(ParameterType.STRING) + .name("accountIdEndpointMode") + .build(), + ) + + renderBindAwsBuiltins( + ctx, + writer, + parameters, + ) + + assertTrue( + writer + .rawString() + .contains("accountIdEndpointMode = config.accountIdEndpointMode.toString().lowercase()"), + ) + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6a4be30d30c..09b1b635bd2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,8 +12,8 @@ atomicfu-version = "0.25.0" binary-compatibility-validator-version = "0.16.3" # smithy-kotlin codegen and runtime are versioned separately -smithy-kotlin-runtime-version = "1.4.5" -smithy-kotlin-codegen-version = "0.34.5" +smithy-kotlin-runtime-version = "1.4.6" +smithy-kotlin-codegen-version = "0.34.6" # codegen smithy-version = "1.53.0"