Skip to content

Commit 6c725b1

Browse files
authored
fix(codegen): render default endpoint resolver for machinelearning (#424)
1 parent 73e90ec commit 6c725b1

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/machinelearning/MachineLearningEndpointCustomization.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package aws.sdk.kotlin.codegen.customization.machinelearning
77

8-
import aws.sdk.kotlin.codegen.protocols.middleware.ResolveAwsEndpointMiddleware
98
import aws.sdk.kotlin.codegen.sdkId
109
import software.amazon.smithy.kotlin.codegen.KotlinSettings
1110
import software.amazon.smithy.kotlin.codegen.core.KotlinWriter
@@ -18,21 +17,22 @@ import software.amazon.smithy.model.shapes.OperationShape
1817
import software.amazon.smithy.model.shapes.ServiceShape
1918

2019
class MachineLearningEndpointCustomization : KotlinIntegration {
20+
// the default resolver middleware will still be present in the operation's execution stack, we just
21+
// need to ensure that the custom resolver runs _after_ the default
2122
override fun customizeMiddleware(
2223
ctx: ProtocolGenerator.GenerationContext,
2324
resolved: List<ProtocolMiddleware>
24-
): List<ProtocolMiddleware> =
25-
super
26-
.customizeMiddleware(ctx, resolved)
27-
.replace(endpointResolverMiddleware) { it is ResolveAwsEndpointMiddleware }
25+
): List<ProtocolMiddleware> = resolved + endpointResolverMiddleware
2826

2927
private val endpointResolverMiddleware = object : HttpFeatureMiddleware() {
3028
override val name: String = "ResolvePredictEndpoint"
29+
override val needsConfiguration: Boolean = false
3130

3231
override fun isEnabledFor(ctx: ProtocolGenerator.GenerationContext, op: OperationShape): Boolean =
3332
op.id.name == "Predict"
3433

35-
override fun renderConfigure(writer: KotlinWriter) {
34+
override fun render(ctx: ProtocolGenerator.GenerationContext, op: OperationShape, writer: KotlinWriter) {
35+
super.render(ctx, op, writer)
3636
writer.addImport(machineLearningSymbol("ResolvePredictEndpoint"))
3737
}
3838

0 commit comments

Comments
 (0)