Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[New Resource]: aws_controltower_landing_zone #34595

Merged
merged 45 commits into from
Feb 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
208ac08
feat: implement `aws_controltower_landing_zone`
bschaatsbergen Nov 28, 2023
0aa0305
feat: implement `aws_controltower_landing_zone`
bschaatsbergen Nov 28, 2023
942d460
feat: add tags
bschaatsbergen Nov 28, 2023
18ba23d
chore: add landing zone test
bschaatsbergen Dec 8, 2023
ea38177
chore: add changelog
bschaatsbergen Dec 8, 2023
e58c446
chore: set to a working version
bschaatsbergen Dec 8, 2023
567a6ea
chore: create controltower_landing_zone.html.markdown resource doc
bschaatsbergen Dec 8, 2023
ea64e2d
Merge branch 'main' into HEAD
ewbankkit Jan 6, 2024
dc13b88
controltower: Regenerate tagging code.
ewbankkit Jan 6, 2024
006abd7
Fix semgrep 'ci.semgrep.aws.pointer-conversion-ResourceData-SetId'.
ewbankkit Jan 6, 2024
32e64b9
Fix semgrep 'ci.semgrep.pluginsdk.avoid-diag_Errorf'.
ewbankkit Jan 6, 2024
85e1183
Fix semgrep 'ci.typed-enum-conversion'.
ewbankkit Jan 6, 2024
4fb825d
Add 'FindLandingZoneByID'.
ewbankkit Jan 6, 2024
d99e4d2
Fix terrafmt error.
ewbankkit Jan 6, 2024
0dfb6e8
Fix 'ci.controltower-in-test-name'.
ewbankkit Jan 6, 2024
08fac46
r/aws_controltower_landing_zone: Add tagging support.
ewbankkit Jan 6, 2024
e23bb3c
r/aws_controltower_landing_zone: Tweak acceptance test configurations.
ewbankkit Jan 6, 2024
acbf939
Fix semgrep 'ci.semgrep.pluginsdk.return-diags-not-nil'.
ewbankkit Jan 6, 2024
3d8d1a0
Merge branch 'main' into HEAD
ewbankkit Jan 18, 2024
7963bdc
r/aws_controltower_landing_zone: Add Go structure representing JSON m…
ewbankkit Jan 19, 2024
e7cd81b
Add 'manifest' nested block.
ewbankkit Jan 19, 2024
9fd9764
Add types for nested structures.
ewbankkit Jan 19, 2024
e2a819a
Revert "Add types for nested structures."
ewbankkit Jan 19, 2024
1069ac5
Add 'flattenLandingZoneManifest'.
ewbankkit Jan 19, 2024
1ad4d59
r/aws_controltower_landing_zone: Set 'manifest' in state.
ewbankkit Jan 19, 2024
e0b96a8
r/aws_controltower_landing_zone: Add 'latest_available_version' attri…
ewbankkit Jan 19, 2024
abe363c
r/aws_controltower_landing_zone: Add 'drift_status' attribute.
ewbankkit Jan 19, 2024
683a44f
Document 'manifest' structure.
ewbankkit Jan 19, 2024
7a2af8f
r/aws_controltower_landing_zone: Allow 'manifest' and 'version' to be…
ewbankkit Jan 19, 2024
5753b41
r/aws_controltower_landing_zone: Tidy up acceptance tests.
ewbankkit Jan 19, 2024
7404dd2
Fix markdownlint 'MD007/ul-indent Unordered list indentation'.
ewbankkit Jan 19, 2024
f2c02cd
Fix terrafmt errors.
ewbankkit Jan 19, 2024
14ae8a9
Fix markdownlint 'MD007/ul-indent Unordered list indentation'.
ewbankkit Jan 19, 2024
94970b8
chore: rewrite back to use a manifest_json
bschaatsbergen Feb 1, 2024
2ff0a42
Fix semgrep 'ci.helper-schema-ResourceData-Set-extraneous-nil-check'.
ewbankkit Feb 4, 2024
4d4e35e
Fix terrafmt error.
ewbankkit Feb 4, 2024
3558e92
Merge branch 'main' into HEAD
ewbankkit Feb 4, 2024
9f037e4
r/aws_controltower_landing_zone: Normalize JSON.
ewbankkit Feb 4, 2024
8f22fa0
Add 'json.SmithyDocumentToString'.
ewbankkit Feb 4, 2024
5763799
r/aws_controltower_landing_zone: No need to call 'jsondecode' in tests.
ewbankkit Feb 4, 2024
3e971eb
r/aws_controltower_landing_zone: Call 'json.SmithyDocumentToString' i…
ewbankkit Feb 4, 2024
f1bee74
Add 'json.SmithyDocumentFromString'.
ewbankkit Feb 4, 2024
73676e4
r/aws_controltower_landing_zone: Call 'json.SmithyDocumentFromString'…
ewbankkit Feb 4, 2024
3a2f612
r/aws_controltower_landing_zone: Skip acceptance tests if landing zon…
ewbankkit Feb 4, 2024
139597a
Additional CHANGELOG entry.
ewbankkit Feb 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changelog/34595.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
```release-note:new-resource
aws_controltower_landing_zone
```

```release-note:note
resource/aws_controltower_landing_zone: Because we cannot easily test this functionality, it is best effort and we ask for community help in testing
```
39 changes: 39 additions & 0 deletions internal/json/smithy.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package json

import (
"encoding/json"

smithydocument "github.com/aws/smithy-go/document"
)

func SmithyDocumentFromString[T smithydocument.Marshaler](s string, f func(any) T) (T, error) {
var v map[string]interface{}

err := json.Unmarshal([]byte(s), &v)
if err != nil {
var zero T
return zero, err
}

return f(v), nil
}

// SmithyDocumentToString converts a [Smithy document](https://smithy.io/2.0/spec/simple-types.html#document) to a JSON string.
func SmithyDocumentToString(document smithydocument.Unmarshaler) (string, error) {
var v map[string]interface{}

err := document.UnmarshalSmithyDocument(&v)
if err != nil {
return "", err
}

bytes, err := json.Marshal(v)
if err != nil {
return "", err
}

return string(bytes), nil
}
24 changes: 24 additions & 0 deletions internal/service/controltower/controltower_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package controltower_test

import (
"testing"

"github.com/hashicorp/terraform-provider-aws/internal/acctest"
)

func TestAccControlTower_serial(t *testing.T) {
t.Parallel()

testCases := map[string]map[string]func(t *testing.T){
"LandingZone": {
"basic": testAccLandingZone_basic,
"disappears": testAccLandingZone_disappears,
"tags": testAccLandingZone_tags,
},
}

acctest.RunSerialTests2Levels(t, testCases, 0)
}
4 changes: 3 additions & 1 deletion internal/service/controltower/exports_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ package controltower

// Exports for use in tests only.
var (
ResourceControl = resourceControl
ResourceControl = resourceControl
ResourceLandingZone = resourceLandingZone

FindEnabledControlByTwoPartKey = findEnabledControlByTwoPartKey
FindLandingZoneByID = findLandingZoneByID
)
1 change: 1 addition & 0 deletions internal/service/controltower/generate.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// SPDX-License-Identifier: MPL-2.0

//go:generate go run ../../generate/servicepackage/main.go
//go:generate go run ../../generate/tags/main.go -AWSSDKVersion=2 -ServiceTagsMap -KVTValues -SkipTypesImp -ListTags -UpdateTags
// ONLY generate directives and package declaration! Do not add anything else to this file.

package controltower
Loading
Loading