Skip to content

Commit a13b7a4

Browse files
author
Steven Yuan
authored
codegen: Upgrade to smithy 1.25.0 (#1835)
* Upgrade to smithy 1.25.0 Update EC2 unboxed shapes to boxed shapes backfill customization Due to changes in smithy 2.0 nullability semantics around the `@box` trait, the generated code for `ec2.json` generated incorrect code. Instead of adding `@box` traits to certain members in the customization, the `@clientOptional` trait is added to members of all structure shapes. Chores: - Add mavenLocal to codegen build files - Update .gitignore to ignore .idea/ * Regenerate clients with break/fix's Due to prior bugs for `@box` members not being serialized as a pointer type and incorrect pagination serialization, the clients in this commit are regenerated with the break/fix's.
1 parent 296bfb3 commit a13b7a4

File tree

327 files changed

+2285
-1650
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

327 files changed

+2285
-1650
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ Gemfile.lock
99
/private/model/cli/gen-api/gen-api
1010
.gradle/
1111
build/
12+
.idea/

codegen/gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
smithyVersion=1.23.1
1+
smithyVersion=1.25.0
22
smithyGradleVersion=0.6.0

codegen/protocol-test-codegen/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ val smithyVersion: String by project
2020
buildscript {
2121
val smithyVersion: String by project
2222
repositories {
23+
mavenLocal()
2324
mavenCentral()
2425
}
2526
dependencies {

codegen/sdk-codegen/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ val smithyVersion: String by project
2424
buildscript {
2525
val smithyVersion: String by project
2626
repositories {
27+
mavenLocal()
2728
mavenCentral()
2829
}
2930
dependencies {
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package software.amazon.smithy.aws.go.codegen.customization;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
35
import java.util.Set;
46
import java.util.logging.Logger;
5-
import software.amazon.smithy.codegen.core.CodegenException;
6-
import software.amazon.smithy.go.codegen.CodegenUtils;
77
import software.amazon.smithy.go.codegen.GoSettings;
88
import software.amazon.smithy.go.codegen.integration.GoIntegration;
99
import software.amazon.smithy.model.Model;
10+
import software.amazon.smithy.model.transform.ModelTransformer;
11+
import software.amazon.smithy.model.shapes.MemberShape;
1012
import software.amazon.smithy.model.shapes.Shape;
1113
import software.amazon.smithy.model.shapes.ShapeId;
12-
import software.amazon.smithy.model.shapes.ShapeType;
13-
import software.amazon.smithy.model.traits.BoxTrait;
14+
import software.amazon.smithy.model.shapes.StructureShape;
15+
import software.amazon.smithy.model.traits.ClientOptionalTrait;
1416
import software.amazon.smithy.utils.SetUtils;
1517

1618
public class BackfillEc2UnboxedToBoxedShapes implements GoIntegration {
@@ -26,7 +28,7 @@ public class BackfillEc2UnboxedToBoxedShapes implements GoIntegration {
2628

2729
/**
2830
* /**
29-
* Updates the API model to customize all number and boolean unboxed shapes to be boxed.
31+
* Updates the API model to customize all structured members to be nullable.
3032
*
3133
* @param model API model
3234
* @param settings Go codegen settings
@@ -39,63 +41,12 @@ public Model preprocessModel(Model model, GoSettings settings) {
3941
return model;
4042
}
4143

42-
Model.Builder builder = model.toBuilder();
43-
44-
for (Shape shape : model.toSet()) {
45-
// Only consider number and boolean shapes that are unboxed
46-
if (shape.isMemberShape()) {
47-
continue;
48-
}
49-
if (!(CodegenUtils.isNumber(shape) || shape.getType() == ShapeType.BOOLEAN)) {
50-
continue;
44+
List<Shape> updates = new ArrayList<>();
45+
for (StructureShape struct : model.getStructureShapes()) {
46+
for (MemberShape member : struct.getAllMembers().values()) {
47+
updates.add(member.toBuilder().addTrait(new ClientOptionalTrait()).build());
5148
}
52-
if (shape.hasTrait(BoxTrait.class)) {
53-
continue;
54-
}
55-
56-
switch (shape.getType()) {
57-
case BYTE:
58-
shape = shape.asByteShape().get().toBuilder()
59-
.addTrait(new BoxTrait())
60-
.build();
61-
break;
62-
case SHORT:
63-
shape = shape.asShortShape().get().toBuilder()
64-
.addTrait(new BoxTrait())
65-
.build();
66-
break;
67-
case INTEGER:
68-
shape = shape.asIntegerShape().get().toBuilder()
69-
.addTrait(new BoxTrait())
70-
.build();
71-
break;
72-
case LONG:
73-
shape = shape.asLongShape().get().toBuilder()
74-
.addTrait(new BoxTrait())
75-
.build();
76-
break;
77-
case FLOAT:
78-
shape = shape.asFloatShape().get().toBuilder()
79-
.addTrait(new BoxTrait())
80-
.build();
81-
break;
82-
case DOUBLE:
83-
shape = shape.asDoubleShape().get().toBuilder()
84-
.addTrait(new BoxTrait())
85-
.build();
86-
break;
87-
case BOOLEAN:
88-
shape = shape.asBooleanShape().get().toBuilder()
89-
.addTrait(new BoxTrait())
90-
.build();
91-
break;
92-
default:
93-
throw new CodegenException("unexpected shape type for " + shape.getId() + ", " + shape.getType());
94-
}
95-
96-
builder.addShape(shape);
9749
}
98-
99-
return builder.build();
50+
return ModelTransformer.create().replaceShapes(model, updates);
10051
}
10152
}

service/acmpca/deserializers.go

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

service/acmpca/serializers.go

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

service/acmpca/types/types.go

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

service/acmpca/validators.go

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

service/appconfig/api_op_CreateDeploymentStrategy.go

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

service/appconfig/api_op_CreateExtension.go

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

service/appconfig/api_op_CreateExtensionAssociation.go

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

service/appconfig/api_op_CreateHostedConfigurationVersion.go

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

service/appconfig/api_op_DeleteExtension.go

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

service/appconfig/api_op_GetDeployment.go

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

service/appconfig/api_op_GetExtension.go

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

service/appconfig/api_op_ListApplications.go

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

service/appconfig/api_op_ListConfigurationProfiles.go

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

service/appconfig/api_op_ListDeploymentStrategies.go

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

0 commit comments

Comments
 (0)