Skip to content

Commit 0ac88f6

Browse files
authored
do NOT serialize empty lists in ec2query (#2630)
1 parent 0457ec5 commit 0ac88f6

17 files changed

+828
-31
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id": "2781886a-806d-48bd-a53e-5be2992aa455",
3+
"type": "bugfix",
4+
"description": "Fix serialization behavior of empty lists.",
5+
"modules": [
6+
"service/ec2"
7+
]
8+
}

codegen/gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
smithyVersion=1.47.0
1+
smithyVersion=1.49.0
22
smithyGradleVersion=0.7.0

codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/Ec2QueryShapeSerVisitor.java

+12
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
import java.util.Optional;
44
import java.util.function.Predicate;
55
import software.amazon.smithy.aws.traits.protocols.Ec2QueryNameTrait;
6+
import software.amazon.smithy.go.codegen.GoWriter;
67
import software.amazon.smithy.go.codegen.integration.ProtocolGenerator.GenerationContext;
8+
import software.amazon.smithy.go.codegen.knowledge.GoPointableIndex;
9+
import software.amazon.smithy.model.shapes.CollectionShape;
710
import software.amazon.smithy.model.shapes.MemberShape;
11+
import software.amazon.smithy.model.shapes.Shape;
812
import software.amazon.smithy.model.shapes.ShapeType;
913
import software.amazon.smithy.model.traits.TimestampFormatTrait.Format;
1014
import software.amazon.smithy.model.traits.XmlNameTrait;
@@ -51,6 +55,14 @@ protected String getSerializedLocationName(MemberShape memberShape, String defau
5155
.orElse(defaultValue));
5256
}
5357

58+
// EC2Query specifically does not serialize non-nil, empty lists
59+
protected void serializeCollection(GenerationContext context, CollectionShape shape) {
60+
context.getWriter().get()
61+
.write("if len(v) == 0 { return nil }");
62+
63+
super.serializeCollection(context, shape);
64+
}
65+
5466
@Override
5567
protected boolean isFlattened(GenerationContext context, MemberShape memberShape) {
5668
// All lists, sets, and maps are flattened in aws.ec2.

internal/protocoltest/ec2query/api_op_QueryLists_test.go

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/ec2query/serializers.go

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/restxml/api_op_GreetingWithErrors_test.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_EmptyInputOutput_test.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_NoInputOutput_test.go

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_OperationWithDefaults_test.go

+15-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_OptionalInputOutput_test.go

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_RecursiveShapes_test.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_RpcV2CborDenseMaps_test.go

+9-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_RpcV2CborLists_test.go

+9-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/smithyrpcv2cbor/api_op_RpcV2CborSparseMaps_test.go

+15-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)