Skip to content

Commit 6a91bd1

Browse files
committed
final generation change
1 parent 2f558d1 commit 6a91bd1

File tree

15 files changed

+164
-115
lines changed

15 files changed

+164
-115
lines changed

.vscode/launch.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"go.delveConfig": {
7+
"debugAdapter": "legacy",
8+
},
9+
"configurations": [
10+
11+
{
12+
"name": "Attach to Process",
13+
"type": "go",
14+
"request": "attach",
15+
"mode": "local",
16+
"processId": 0
17+
},
18+
19+
{
20+
"name": "Launch Package",
21+
"type": "go",
22+
"request": "launch",
23+
"mode": "auto",
24+
"program": "/Users/mtewold/go/src/github.com/aws-controllers-k8s/code-generator/cmd/ack-generate/main.go"
25+
}
26+
27+
]
28+
}

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"go.buildTags": "codegen",
3+
}

apiv2/converter.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
package apiv2
22

3-
/*
4-
* This MF will help me translate a file into another file
5-
6-
SDK V2 file is a bit tricky/fancy
7-
But ig we can get this ish done quilicky lili
8-
*/
93
import (
104
"encoding/json"
115
"errors"
@@ -170,6 +164,10 @@ func createApiShape(shape Shape) (*api.Shape, error) {
170164
ValueRef: api.ShapeRef{},
171165
Required: []string{},
172166
}
167+
val, ok := shape.Traits["smithy.api#default"]
168+
if ok {
169+
apiShape.DefaultValue = &val
170+
}
173171

174172
if isException {
175173
code, ok := shape.Traits["smithy.api#httpError"]

go.mod

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ require (
3232
github.com/Microsoft/go-winio v0.6.1 // indirect
3333
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
3434
github.com/aws/aws-sdk-go-v2 v1.32.6 // indirect
35-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect
36-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect
37-
github.com/aws/aws-sdk-go-v2/service/sqs v1.37.2 // indirect
3835
github.com/aws/smithy-go v1.22.1 // indirect
3936
github.com/beorn7/perks v1.0.1 // indirect
4037
github.com/blang/semver/v4 v4.0.0 // indirect

go.sum

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,6 @@ github.com/aws/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY
7777
github.com/aws/aws-sdk-go v1.49.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
7878
github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4=
7979
github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U=
80-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 h1:s/fF4+yDQDoElYhfIVvSNyeCydfbuTKzhxSXDXCPasU=
81-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25/go.mod h1:IgPfDv5jqFIzQSNbUEMoitNooSMXjRSDkhXv8jiROvU=
82-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 h1:ZntTCl5EsYnhN/IygQEUugpdwbhdkom9uHcbCftiGgA=
83-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25/go.mod h1:DBdPrgeocww+CSl1C8cEV8PN1mHMBhuCDLpXezyvWkE=
84-
github.com/aws/aws-sdk-go-v2/service/sqs v1.37.2 h1:mFLfxLZB/TVQwNJAYox4WaxpIu+dFVIcExrmRmRCOhw=
85-
github.com/aws/aws-sdk-go-v2/service/sqs v1.37.2/go.mod h1:GnvfTdlvcpD+or3oslHPOn4Mu6KaCwlCp+0p0oqWnrM=
8680
github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro=
8781
github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
8882
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=

pkg/api/shape.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ type ShapeRef struct {
8181
type Shape struct {
8282
API *API `json:"-"`
8383
ShapeName string
84-
Documentation string `json:"-"`
84+
Documentation string `json:"-"`
85+
DefaultValue *interface{} `json:"-"`
8586

8687
// References of struct members will include their originally modeled
8788
// member name for cross references.
@@ -1053,6 +1054,11 @@ func (s *Shape) IsEnum() bool {
10531054
return s.Type == "string" && len(s.Enum) > 0
10541055
}
10551056

1057+
// HasDefaultValue returns whether this shape has a default value
1058+
func (s *Shape) HasDefaultValue() bool {
1059+
return s.DefaultValue != nil
1060+
}
1061+
10561062
// IsRequired returns if member is a required field. Required fields are fields
10571063
// marked as required, hostLabels, or location of uri path.
10581064
func (s *Shape) IsRequired(member string) bool {

pkg/generate/code/compare.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -838,9 +838,6 @@ func fastCompareTypes(
838838
// For any other type, we can use the HasNilDifference function to
839839
// eliminate early on the case where one of the objects is nil and
840840
// other is not.
841-
// if memberShape.ShapeName == "ElasticLoadBalancing" {
842-
// fmt.Println(deltaVarName, firstResVarName, secondResVarName, fieldPath, memberShape.GoType(), memberShape.GoTypeElem())
843-
// }
844841
out += compareNil(
845842
compareConfig,
846843
memberShape,

pkg/generate/code/set_resource.go

Lines changed: 82 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -308,31 +308,9 @@ func SetResource(
308308
// ko.Status.VpnMemberships = field0
309309

310310
// This is for AWS-SDK-GO-V2
311-
if targetMemberShapeRef.Shape.IsEnum() {
312-
313-
out += fmt.Sprintf(
314-
"%sif %s != \"\" {\n", indent, sourceAdaptedVarName,
315-
)
316-
317-
// } else if targetMemberShapeRef.Shape.Type == "long" && strings.HasSuffix(targetMemberShapeRef.ShapeName, "Value") {
318-
319-
// out += fmt.Sprintf(
320-
// "%sif %s > 0 {\n", indent, sourceAdaptedVarName,
321-
// )
322-
323-
// else if targetMemberShapeRef.Shape.Type == "integer" {
311+
if !targetMemberShapeRef.Shape.IsEnum() && !targetMemberShape.HasDefaultValue() {
324312

325-
// out += fmt.Sprintf(
326-
// "%sif %s > 0 {\n", indent, sourceAdaptedVarName,
327-
// )
328-
// }
329-
330-
// } else if targetMemberShapeRef.Shape.Type == "boolean" && targetMemberShapeRef.Shape.GoType() == "bool" {
331-
332-
// out += fmt.Sprintf(
333-
// "%sif %s {\n", indent, sourceAdaptedVarName,
334-
// )
335-
} else {
313+
// if !sourceMemberShapeRef.Shape.IsEnum() && sourceMemberShapeRef.ShapeName != "Boolean" && sourceMemberShapeRef.Shape.ShapeName != "BooleanType" {
336314

337315
out += fmt.Sprintf(
338316
"%sif %s != nil {\n", indent, sourceAdaptedVarName,
@@ -344,8 +322,14 @@ func SetResource(
344322
)
345323

346324
switch targetMemberShape.Type {
347-
case "list", "structure", "map":
348-
{
325+
case "list", "map", "structure":
326+
if targetMemberShape.Type == "list" && targetMemberShape.MemberRef.Shape.Type == "string" {
327+
out += fmt.Sprintf("%s%s = aws.StringSlice(%s)\n", indent, qualifiedTargetVar, sourceAdaptedVarName)
328+
} else if targetMemberShape.Type == "map" &&
329+
targetMemberShape.KeyRef.Shape.Type == "string" &&
330+
targetMemberShape.ValueRef.Shape.Type == "string" {
331+
out += fmt.Sprintf("%s%s = aws.StringMap(%s)\n", indent, qualifiedTargetVar, sourceAdaptedVarName)
332+
} else {
349333

350334
memberVarName := fmt.Sprintf("f%d", memberIndex)
351335

@@ -389,17 +373,19 @@ func SetResource(
389373
indentLevel+1,
390374
)
391375
}
392-
out += fmt.Sprintf(
393-
"%s} else {\n", indent,
394-
)
376+
if !targetMemberShape.IsEnum() && !targetMemberShape.HasDefaultValue() {
377+
out += fmt.Sprintf(
378+
"%s} else {\n", indent,
379+
)
395380

396-
out += fmt.Sprintf(
397-
"%s%s%s.%s = nil\n", indent, indent,
398-
targetAdaptedVarName, f.Names.Camel,
399-
)
400-
out += fmt.Sprintf(
401-
"%s}\n", indent,
402-
)
381+
out += fmt.Sprintf(
382+
"%s%s%s.%s = nil\n", indent, indent,
383+
targetAdaptedVarName, f.Names.Camel,
384+
)
385+
out += fmt.Sprintf(
386+
"%s}\n", indent,
387+
)
388+
}
403389
}
404390
return out
405391
}
@@ -661,7 +647,13 @@ func setResourceReadMany(
661647
)
662648
switch sourceMemberShape.Type {
663649
case "list", "structure", "map":
664-
{
650+
if sourceMemberShape.Type == "list" && sourceMemberShape.MemberRef.Shape.Type == "string" {
651+
out += fmt.Sprintf("%s%s = aws.StringSlice(%s)\n", indent, qualifiedTargetVar, sourceAdaptedVarName)
652+
} else if sourceMemberShape.Type == "map" &&
653+
sourceMemberShape.KeyRef.Shape.Type == "string" &&
654+
sourceMemberShape.ValueRef.Shape.Type == "string" {
655+
out += fmt.Sprintf("%s%s = aws.StringMap(%s)\n", indent, qualifiedTargetVar, sourceAdaptedVarName)
656+
} else {
665657
memberVarName := fmt.Sprintf("f%d", memberIndex)
666658
out += varEmptyConstructorK8sType(
667659
cfg, r,
@@ -1735,11 +1727,11 @@ func SetResourceForStruct(
17351727
// "%sif %s != nil {\n", indent, sourceAdaptedVarName,
17361728
// )
17371729

1738-
if !sourceMemberShape.IsEnum() && sourceMemberShape.ShapeName != "Boolean" {
1739-
1730+
if !sourceMemberShape.IsEnum() && !sourceMemberShape.HasDefaultValue() {
17401731
out += fmt.Sprintf(
17411732
"%sif %s != nil {\n", indent, sourceAdaptedVarName,
17421733
)
1734+
17431735
// This is for edge case - in efs controller
17441736
// FileSystemSize.Value is int64 and rest of fields are *int64
17451737
}
@@ -1757,7 +1749,15 @@ func SetResourceForStruct(
17571749

17581750
switch sourceMemberShape.Type {
17591751
case "list", "structure", "map":
1760-
{
1752+
if sourceMemberShape.Type == "list" &&
1753+
!sourceMemberShape.MemberRef.Shape.IsEnum() &&
1754+
sourceMemberShape.MemberRef.Shape.Type == "string" {
1755+
out += fmt.Sprintf("%s%s = aws.StringSlice(%s)\n", indent, qualifiedTargetVar, sourceAdaptedVarName)
1756+
} else if sourceMemberShape.Type == "map" &&
1757+
sourceMemberShape.KeyRef.Shape.Type == "string" &&
1758+
sourceMemberShape.ValueRef.Shape.Type == "string" {
1759+
out += fmt.Sprintf("%s%s = aws.StringMap(%s)\n", indent, qualifiedTargetVar, sourceAdaptedVarName)
1760+
} else {
17611761
out += varEmptyConstructorK8sType(
17621762
cfg, r,
17631763
indexedVarName,
@@ -1792,7 +1792,7 @@ func SetResourceForStruct(
17921792
indentLevel+1,
17931793
)
17941794
}
1795-
if !sourceMemberShape.IsEnum() && sourceMemberShape.ShapeName != "Boolean" {
1795+
if !sourceMemberShape.IsEnum() && !sourceMemberShape.HasDefaultValue() {
17961796
out += fmt.Sprintf(
17971797
"%s}\n", indent,
17981798
)
@@ -1954,24 +1954,27 @@ func setResourceForSlice(
19541954
)
19551955
}
19561956
// This is for AWS-SDK-GO-V2
1957-
addressOfVar := ""
1957+
// addressOfVar := ""
19581958
switch targetShape.MemberRef.Shape.Type {
19591959
case "structure", "list", "map":
19601960
break
19611961
default:
19621962
// This is for AWS-SDK-GO-V2
1963-
1963+
19641964
}
19651965
// f0 = append(f0, elem0)
19661966

1967-
if sourceShape.ShapeName == "StringList" {
1968-
addressOfVar = "&"
1969-
}
1967+
// if !sourceShape.MemberRef.Shape.IsEnum() {
1968+
// addressOfVar = "&"
1969+
// }
1970+
// if sourceShape.Type == "list" {
1971+
// addressOfVar = "&"
1972+
// }
19701973

19711974
// This is for AWS-SDK-GO-V2
19721975
//out += fmt.Sprintf("%s\t%s = append(%s, %s%s)\n", indent, targetVarName, targetVarName, addressOfVar, elemVarName)
19731976

1974-
out += fmt.Sprintf("%s\t%s = append(%s, %s%s)\n", indent, targetVarName, targetVarName, addressOfVar, elemVarName)
1977+
out += fmt.Sprintf("%s\t%s = append(%s, %s)\n", indent, targetVarName, targetVarName, elemVarName)
19751978
out += fmt.Sprintf("%s}\n", indent)
19761979

19771980
return out
@@ -2072,24 +2075,40 @@ func setResourceForScalar(
20722075

20732076
}
20742077

2075-
// This is for AWS-SDK-GO-V2
2076-
if shape.IsEnum() {
2077-
out += fmt.Sprintf("%s%s = aws.String(string(%s))\n", indent, targetVar, strings.TrimPrefix(setTo, "*"))
2078-
// } else if shape.Type == "integer" {
2079-
2080-
// out += fmt.Sprintf("%s%s := int64(%s)\n", indent, "number", setTo)
2081-
// out += fmt.Sprintf("%s%s = &%s\n", indent, targetVar, "number")
2082-
2083-
// This is for edge case - in efs controller
2084-
// targetvar is int64 and rest of targetvar are *int64 - EFS controller
2085-
} else if shape.ShapeName == "Boolean" {
2086-
out += fmt.Sprintf("%s%s = &%s\n", indent, targetVar, setTo)
2087-
} else if shape.Type == "integer" {
2088-
out += fmt.Sprintf("%stemp := int64(*%s)\n", indent, setTo)
2089-
out += fmt.Sprintf("%s%s = &temp\n", indent, targetVar)
2090-
}else {
2078+
switch shape.Type {
2079+
case "list":
20912080
out += fmt.Sprintf("%s%s = %s\n", indent, targetVar, setTo)
2081+
case "integer":
2082+
out += fmt.Sprintf("%s%stemp := int64(*%s)\n", indent, shape.ShapeName, setTo)
2083+
out += fmt.Sprintf("%s%s = &%stemp\n", indent, targetVar, shape.ShapeName)
2084+
default:
2085+
if shape.HasDefaultValue() {
2086+
out += fmt.Sprintf("%s%s = &%s\n", indent, targetVar, setTo)
2087+
} else if shape.IsEnum() {
2088+
out += fmt.Sprintf("%s%s = aws.String(string(%s))\n", indent, targetVar, strings.TrimPrefix(setTo, "*"))
2089+
} else {
2090+
out += fmt.Sprintf("%s%s = %s\n", indent, targetVar, setTo)
2091+
}
20922092
}
2093+
2094+
// This is for AWS-SDK-GO-V2
2095+
// if shape.IsEnum() {
2096+
// out += fmt.Sprintf("%s%s = aws.String(string(%s))\n", indent, targetVar, strings.TrimPrefix(setTo, "*"))
2097+
// // } else if shape.Type == "integer" {
2098+
2099+
// // out += fmt.Sprintf("%s%s := int64(%s)\n", indent, "number", setTo)
2100+
// // out += fmt.Sprintf("%s%s = &%s\n", indent, targetVar, "number")
2101+
2102+
// // This is for edge case - in efs controller
2103+
// // targetvar is int64 and rest of targetvar are *int64 - EFS controller
2104+
// } else if shape.HasDefaultValue() {
2105+
// out += fmt.Sprintf("%s%s = &%s\n", indent, targetVar, setTo)
2106+
// } else if shape.Type == "integer" {
2107+
// out += fmt.Sprintf("%stemp := int64(*%s)\n", indent, setTo)
2108+
// out += fmt.Sprintf("%s%s = &temp\n", indent, targetVar)
2109+
// }else {
2110+
// out += fmt.Sprintf("%s%s = %s\n", indent, targetVar, setTo)
2111+
// }
20932112
return out
20942113
}
20952114

0 commit comments

Comments
 (0)