Skip to content

Commit 38109db

Browse files
authored
chore: Add codegen intermediate model serialization (#3756)
1 parent 891d240 commit 38109db

23 files changed

+3198
-113
lines changed

tools/codegen/codespec/api_to_provider_spec_mapper.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ func ToCodeSpecModel(atlasAdminAPISpecFilePath, configPath string, resourceName
3131
if resourceName != nil { // only generate a specific resource
3232
resource, ok := configModel.Resources[*resourceName]
3333
if !ok {
34-
return nil, fmt.Errorf("resource %s not found in config file", *resourceName)
34+
log.Printf("Resource %s not found in config file, skipping model generation", *resourceName)
35+
return &Model{}, nil
3536
}
3637
resourceConfigsToIterate = map[string]config.Resource{
3738
*resourceName: resource,
@@ -44,7 +45,7 @@ func ToCodeSpecModel(atlasAdminAPISpecFilePath, configPath string, resourceName
4445

4546
var results []Resource
4647
for name, resourceConfig := range resourceConfigsToIterate {
47-
log.Printf("Generating resource: %s", name)
48+
log.Printf("Generating resource model: %s", name)
4849
// find resource operations, schemas, etc from OAS
4950
oasResource, err := getAPISpecResource(&apiSpec.Model, &resourceConfig, stringcase.SnakeCaseString(name))
5051
if err != nil {

tools/codegen/codespec/api_to_provider_spec_mapper_test.go

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ func TestConvertToProviderSpec(t *testing.T) {
4141
TFModelName: "BoolDefaultAttr",
4242
ComputedOptionalRequired: codespec.ComputedOptional,
4343
Bool: &codespec.BoolAttribute{Default: conversion.Pointer(false)},
44+
ReqBodyUsage: codespec.AllRequestBodies,
4445
},
4546
{
4647
TFSchemaName: "count",
4748
TFModelName: "Count",
4849
ComputedOptionalRequired: codespec.Optional,
4950
Int64: &codespec.Int64Attribute{},
5051
Description: conversion.StringPtr(testFieldDesc),
52+
ReqBodyUsage: codespec.AllRequestBodies,
5153
},
5254
{
5355
TFSchemaName: "create_date",
@@ -71,6 +73,7 @@ func TestConvertToProviderSpec(t *testing.T) {
7173
TFModelName: "NumDoubleDefaultAttr",
7274
Float64: &codespec.Float64Attribute{Default: conversion.Pointer(2.0)},
7375
ComputedOptionalRequired: codespec.ComputedOptional,
76+
ReqBodyUsage: codespec.AllRequestBodies,
7477
},
7578
{
7679
TFSchemaName: "str_computed_attr",
@@ -86,20 +89,23 @@ func TestConvertToProviderSpec(t *testing.T) {
8689
ComputedOptionalRequired: codespec.Required,
8790
String: &codespec.StringAttribute{},
8891
Description: conversion.StringPtr(testFieldDesc),
92+
ReqBodyUsage: codespec.AllRequestBodies,
8993
},
9094
{
9195
TFSchemaName: "str_req_attr2",
9296
TFModelName: "StrReqAttr2",
9397
ComputedOptionalRequired: codespec.Required,
9498
String: &codespec.StringAttribute{},
9599
Description: conversion.StringPtr(testFieldDesc),
100+
ReqBodyUsage: codespec.AllRequestBodies,
96101
},
97102
{
98103
TFSchemaName: "str_req_attr3",
99104
TFModelName: "StrReqAttr3",
100105
String: &codespec.StringAttribute{},
101106
ComputedOptionalRequired: codespec.Required,
102107
Description: conversion.StringPtr(testFieldDesc),
108+
ReqBodyUsage: codespec.AllRequestBodies,
103109
},
104110
},
105111
},
@@ -146,6 +152,7 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
146152
ComputedOptionalRequired: codespec.Optional,
147153
String: &codespec.StringAttribute{},
148154
Description: conversion.StringPtr("Always in updates"),
155+
ReqBodyUsage: codespec.AllRequestBodies,
149156
},
150157
{
151158
TFSchemaName: "cluster_name",
@@ -188,6 +195,7 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
188195
ComputedOptionalRequired: codespec.Required,
189196
Int64: &codespec.Int64Attribute{},
190197
Description: conversion.StringPtr(testFieldDesc),
198+
ReqBodyUsage: codespec.AllRequestBodies,
191199
},
192200
{
193201
TFSchemaName: "list_primitive_string_attr",
@@ -196,7 +204,8 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
196204
List: &codespec.ListAttribute{
197205
ElementType: codespec.String,
198206
},
199-
Description: conversion.StringPtr(testFieldDesc),
207+
Description: conversion.StringPtr(testFieldDesc),
208+
ReqBodyUsage: codespec.AllRequestBodies,
200209
},
201210
{
202211
TFSchemaName: "list_primitive_string_computed_attr",
@@ -211,7 +220,8 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
211220
},
212221
},
213222
},
214-
Description: conversion.StringPtr(testFieldDesc),
223+
Description: conversion.StringPtr(testFieldDesc),
224+
ReqBodyUsage: codespec.AllRequestBodies,
215225
},
216226
{
217227
TFSchemaName: "nested_map_object_attr",
@@ -269,6 +279,7 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
269279
ComputedOptionalRequired: codespec.Optional,
270280
String: &codespec.StringAttribute{},
271281
Description: conversion.StringPtr("Optional string"),
282+
ReqBodyUsage: codespec.AllRequestBodies,
272283
},
273284
{
274285
TFSchemaName: "set_primitive_string_attr",
@@ -277,8 +288,8 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
277288
Set: &codespec.SetAttribute{
278289
ElementType: codespec.String,
279290
},
280-
ReqBodyUsage: codespec.OmitAlways,
281291
Description: conversion.StringPtr(testFieldDesc),
292+
ReqBodyUsage: codespec.OmitAlways,
282293
},
283294
{
284295
TFSchemaName: "single_nested_attr",
@@ -306,8 +317,8 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
306317
},
307318
},
308319
},
309-
ReqBodyUsage: codespec.OmitAlways,
310320
Description: conversion.StringPtr(testFieldDesc),
321+
ReqBodyUsage: codespec.OmitAlways,
311322
},
312323
{
313324
TFSchemaName: "single_nested_attr_with_nested_maps",
@@ -337,8 +348,8 @@ func TestConvertToProviderSpec_nested(t *testing.T) {
337348
},
338349
},
339350
},
340-
ReqBodyUsage: codespec.OmitAlways,
341351
Description: conversion.StringPtr(testFieldDesc),
352+
ReqBodyUsage: codespec.OmitAlways,
342353
},
343354
},
344355
},
@@ -409,6 +420,7 @@ func TestConvertToProviderSpec_nested_schemaOverrides(t *testing.T) {
409420
ComputedOptionalRequired: codespec.Required,
410421
Int64: &codespec.Int64Attribute{},
411422
Description: conversion.StringPtr("Overridden inner_num_attr_alias description"),
423+
ReqBodyUsage: codespec.AllRequestBodies,
412424
},
413425
{
414426
TFSchemaName: "list_primitive_string_computed_attr",
@@ -423,14 +435,16 @@ func TestConvertToProviderSpec_nested_schemaOverrides(t *testing.T) {
423435
},
424436
},
425437
},
426-
Description: conversion.StringPtr(testFieldDesc),
438+
Description: conversion.StringPtr(testFieldDesc),
439+
ReqBodyUsage: codespec.AllRequestBodies,
427440
},
428441
{
429442
TFSchemaName: "optional_string_attr",
430443
TFModelName: "OptionalStringAttr",
431444
ComputedOptionalRequired: codespec.ComputedOptional,
432445
String: &codespec.StringAttribute{},
433446
Description: conversion.StringPtr("Optional string that has config override to optional/computed"),
447+
ReqBodyUsage: codespec.AllRequestBodies,
434448
},
435449
{
436450
TFSchemaName: "outer_object",
@@ -535,6 +549,7 @@ func TestConvertToProviderSpec_pathParamPresentInPostRequest(t *testing.T) {
535549
ComputedOptionalRequired: codespec.Optional,
536550
String: &codespec.StringAttribute{},
537551
Description: conversion.StringPtr(testFieldDesc),
552+
ReqBodyUsage: codespec.AllRequestBodies,
538553
},
539554
},
540555
},
@@ -581,6 +596,7 @@ func TestConvertToProviderSpec_singletonResourceNoDeleteOperation(t *testing.T)
581596
TFModelName: "Flag",
582597
ComputedOptionalRequired: codespec.Optional,
583598
Bool: &codespec.BoolAttribute{},
599+
ReqBodyUsage: codespec.AllRequestBodies,
584600
},
585601
{
586602
TFSchemaName: "group_id",

tools/codegen/codespec/computability.go

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)