Skip to content

Commit e421cf2

Browse files
wty-BryantTianyi Wang
and
Tianyi Wang
authored
Add context into endpoint param binding inputs (#498)
* Add accountID into endpoint2.0 param binding (#496) * Add accountID endpoint builtin and aid mode config * Modify endpoint builtin codegen --------- Co-authored-by: Tianyi Wang <[email protected]> * add changelog * fix changelog --------- Co-authored-by: Tianyi Wang <[email protected]>
1 parent bced1e1 commit e421cf2

File tree

5 files changed

+18
-6
lines changed

5 files changed

+18
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id": "df65633a-5ad4-4d44-824a-df6b784199e7",
3+
"type": "feature",
4+
"description": "Add ctx into endpoint param binding to support accountID-based endpoint routing downstream",
5+
"modules": [
6+
"."
7+
]
8+
}

codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/auth/AuthParametersResolverGenerator.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import static software.amazon.smithy.go.codegen.GoWriter.goTemplate;
1919

2020
import java.util.ArrayList;
21+
import software.amazon.smithy.go.codegen.GoStdlibTypes;
2122
import software.amazon.smithy.go.codegen.GoWriter;
2223
import software.amazon.smithy.go.codegen.integration.ProtocolGenerator;
2324
import software.amazon.smithy.utils.MapUtils;
@@ -42,7 +43,7 @@ public GoWriter.Writable generate() {
4243
loadResolvers();
4344

4445
return goTemplate("""
45-
func $name:L(operation string, input interface{}, options Options) $params:P {
46+
func $name:L(ctx $context:T, operation string, input interface{}, options Options) $params:P {
4647
params := &$params:T{
4748
Operation: operation,
4849
}
@@ -55,14 +56,15 @@ public GoWriter.Writable generate() {
5556
MapUtils.of(
5657
"name", FUNC_NAME,
5758
"params", AuthParametersGenerator.STRUCT_SYMBOL,
58-
"bindings", generateResolvers()
59+
"bindings", generateResolvers(),
60+
"context", GoStdlibTypes.Context.Context
5961
));
6062
}
6163

6264
private GoWriter.Writable generateResolvers() {
6365
return (writer) -> {
6466
for (var resolver: resolvers) {
65-
writer.write("$T(params, input, options)", resolver.resolver());
67+
writer.write("$T(ctx, params, input, options)", resolver.resolver());
6668
}
6769
};
6870
}

codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/auth/ResolveAuthSchemeMiddlewareGenerator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private GoWriter.Writable generateFields() {
6666

6767
private GoWriter.Writable generateBody() {
6868
return goTemplate("""
69-
params := $1L(m.operation, getOperationInput(ctx), m.options)
69+
params := $1L(ctx, m.operation, getOperationInput(ctx), m.options)
7070
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
7171
if err != nil {
7272
return out, metadata, $2T("resolve auth scheme: %w", err)

codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/endpoints/EndpointMiddlewareGenerator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ private GoWriter.Writable generateAssertResolver() {
126126

127127
private GoWriter.Writable generateResolveEndpoint() {
128128
return goTemplate("""
129-
params := bindEndpointParams(getOperationInput(ctx), m.options)
129+
params := bindEndpointParams(ctx, getOperationInput(ctx), m.options)
130130
endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
131131
if err != nil {
132132
return out, metadata, $1T("failed to resolve service endpoint, %w", err)

codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/endpoints/EndpointParameterBindingsGenerator.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.HashMap;
2323
import java.util.Map;
2424
import java.util.stream.Collectors;
25+
import software.amazon.smithy.go.codegen.GoStdlibTypes;
2526
import software.amazon.smithy.go.codegen.GoWriter;
2627
import software.amazon.smithy.go.codegen.integration.ProtocolGenerator;
2728
import software.amazon.smithy.rulesengine.language.syntax.parameters.Parameter;
@@ -56,7 +57,7 @@ public GoWriter.Writable generate() {
5657
bindEndpointParams(*EndpointParameters)
5758
}
5859
59-
func bindEndpointParams(input interface{}, options Options) *EndpointParameters {
60+
func bindEndpointParams(ctx $context:T, input interface{}, options Options) *EndpointParameters {
6061
params := &EndpointParameters{}
6162
6263
$builtinBindings:W
@@ -71,6 +72,7 @@ func bindEndpointParams(input interface{}, options Options) *EndpointParameters
7172
}
7273
""",
7374
MapUtils.of(
75+
"context", GoStdlibTypes.Context.Context,
7476
"builtinBindings", generateBuiltinBindings(),
7577
"clientContextBindings", generateClientContextBindings()
7678
));

0 commit comments

Comments
 (0)