Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
c2f5541
`acmpca`
gdavison Nov 21, 2025
c161600
`amp`
gdavison Nov 21, 2025
a0c2ef8
`appflow`
gdavison Nov 21, 2025
3291ddf
`apprunner`
gdavison Nov 21, 2025
5694f2b
`batch`
gdavison Nov 21, 2025
731f7b9
`bcmdataexports`
gdavison Nov 21, 2025
d132206
`bedrock`
gdavison Nov 21, 2025
f1d87e9
`ce`
gdavison Nov 21, 2025
e3a0362
`chimesdkmediapipelines`
gdavison Nov 21, 2025
609316b
`cleanrooms`
gdavison Nov 21, 2025
09b386f
`cloudfront`
gdavison Nov 21, 2025
904a855
`cloudfrontkeyvaluestore`
gdavison Nov 21, 2025
9b04e87
`cloudtrail`
gdavison Nov 21, 2025
fc5d0f6
`cloudwatch`
gdavison Nov 21, 2025
4e1c3cb
`codeartifact`
gdavison Nov 21, 2025
a97cc5d
`codebuild`
gdavison Nov 21, 2025
ac44815
`codeconnections`
gdavison Nov 21, 2025
2f66add
`codegurureviewer`
gdavison Nov 21, 2025
9f950b6
`codepipeline`
gdavison Nov 21, 2025
435c73b
`codestarconnections`
gdavison Nov 21, 2025
e49e48a
`codestarconnections`
gdavison Nov 21, 2025
cd9f048
`cognitoidp`
gdavison Nov 21, 2025
f980aeb
`comprehend`
gdavison Nov 21, 2025
a84b168
`connect`
gdavison Nov 21, 2025
08b3fd9
`datasync`
gdavison Nov 21, 2025
3d04333
`devicefarm`
gdavison Nov 21, 2025
fbbd589
`dms`
gdavison Nov 21, 2025
5bf48c5
`docdbelastic`
gdavison Nov 21, 2025
598c81a
`dynamodb`
gdavison Nov 21, 2025
9b18c03
`ec2`
gdavison Nov 21, 2025
8bb66bf
`ecr`
gdavison Nov 21, 2025
6d41593
`ecs`
gdavison Nov 21, 2025
5935c63
`elbv2`
gdavison Nov 21, 2025
c1f169d
`events`
gdavison Nov 21, 2025
d98dca3
`globalaccelerator`
gdavison Nov 21, 2025
00fbc50
`glue`
gdavison Nov 21, 2025
1a66016
`iam`
gdavison Nov 21, 2025
ed8dd34
`imagebuilder`
gdavison Nov 21, 2025
795299b
`inspector`
gdavison Nov 21, 2025
6fb2a40
`inspector2`
gdavison Nov 21, 2025
ef59126
`iot`
gdavison Nov 21, 2025
976d6e7
`ivs`
gdavison Nov 21, 2025
711d776
`ivschat`
gdavison Nov 21, 2025
20025d3
`kinesis`
gdavison Nov 21, 2025
6c5cbf8
`kms`
gdavison Nov 21, 2025
05f4a56
`lambda`
gdavison Nov 21, 2025
6840127
`logs`
gdavison Nov 21, 2025
2c30f76
`networkfirewall`
gdavison Nov 21, 2025
e48b23b
`organizations`
gdavison Nov 21, 2025
1e398df
`rds`
gdavison Nov 21, 2025
1bdf82e
`redshift`
gdavison Nov 21, 2025
6785e4b
`resourceexplorer2`
gdavison Nov 21, 2025
a28e6b5
`route53resolver`
gdavison Nov 21, 2025
5fdccd3
`s3`
gdavison Nov 21, 2025
922f370
`s3control`
gdavison Nov 21, 2025
14f5afb
`s3tables`
gdavison Nov 21, 2025
24fa001
`sagemaker`
gdavison Nov 21, 2025
84a756d
`secretsmanager`
gdavison Nov 21, 2025
ccc11a5
`securityhub`
gdavison Nov 21, 2025
d1b8b45
`sfn`
gdavison Nov 21, 2025
80d8de0
`shield`
gdavison Nov 21, 2025
ea38eeb
`sns`
gdavison Nov 21, 2025
12c9e37
`sqs`
gdavison Nov 21, 2025
9f1e28c
`ssm`
gdavison Nov 21, 2025
4553f98
`ssmcontacts`
gdavison Nov 21, 2025
84cfc25
`ssoadmin`
gdavison Nov 21, 2025
1a73b25
`xray`
gdavison Nov 21, 2025
ebd4bdb
Uses `acctest.RandomWithPrefix` instead of `sdkacctest.RandomWithPref…
gdavison Nov 21, 2025
1db3bb6
Moves `generatorSeen` to `CommonArgs`
gdavison Nov 21, 2025
d9540eb
Moves configuring default `rName` generator to common
gdavison Nov 21, 2025
3ca2429
Allows VSCode "Find References"
gdavison Nov 21, 2025
8770a04
Moves checking for unset `name` to `common`
gdavison Nov 21, 2025
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
29 changes: 6 additions & 23 deletions internal/generate/identitytests/main.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

//go:build generate
//go:build ignore

package main

Expand Down Expand Up @@ -526,7 +526,6 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {
IdentityVersions: make(map[int64]*version.Version, 0),
}
skip := false
generatorSeen := false
tlsKey := false
var tlsKeyCN string

Expand Down Expand Up @@ -608,11 +607,6 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {
continue
}

// This needs better handling
if _, ok := args.Keyword["generator"]; ok {
generatorSeen = true
}

if attr, ok := args.Keyword["idAttrDuplicates"]; ok {
d.idAttrDuplicates = attr
d.GoImports = append(d.GoImports,
Expand Down Expand Up @@ -749,6 +743,10 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {

if d.HasResourceIdentity() {
if !skip {
if err := tests.Configure(&d.CommonArgs); err != nil {
v.errs = append(v.errs, fmt.Errorf("%s: %w", fmt.Sprintf("%s.%s", v.packageName, v.functionName), err))
return
}
if d.idAttrDuplicates != "" {
d.GoImports = append(d.GoImports,
common.GoImport{
Expand All @@ -759,29 +757,13 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {
},
)
}
if d.Name == "" {
v.errs = append(v.errs, fmt.Errorf("no name parameter set: %s", fmt.Sprintf("%s.%s", v.packageName, v.functionName)))
return
}
if d.HasV6_0NullValuesError {
d.PreIdentityVersion = v5_100_0
}
if !d.HasNoPreExistingResource && d.PreIdentityVersion == nil {
v.errs = append(v.errs, fmt.Errorf("preIdentityVersion is required when hasNoPreExistingResource is false: %s", fmt.Sprintf("%s.%s", v.packageName, v.functionName)))
return
}
if !generatorSeen {
d.Generator = "sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)"
d.GoImports = append(d.GoImports,
common.GoImport{
Path: "github.com/hashicorp/terraform-plugin-testing/helper/acctest",
Alias: "sdkacctest",
},
common.GoImport{
Path: "github.com/hashicorp/terraform-provider-aws/internal/acctest",
},
)
}
if d.IsARNIdentity() {
d.arnAttribute = d.IdentityAttributeName()
}
Expand All @@ -795,6 +777,7 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {
if d.IsSingletonIdentity() {
d.Serialize = true
}

v.identityResources = append(v.identityResources, d)
}
}
Expand Down
21 changes: 4 additions & 17 deletions internal/generate/tagstests/main.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

//go:build generate
//go:build ignore

package main

Expand Down Expand Up @@ -516,7 +516,6 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {
}
tagged := false
skip := false
generatorSeen := false
tlsKey := false
var tlsKeyCN string
hasIdentifierAttribute := false
Expand Down Expand Up @@ -582,11 +581,6 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {
continue
}

// This needs better handling
if _, ok := args.Keyword["generator"]; ok {
generatorSeen = true
}

if attr, ok := args.Keyword["tagsIdentifierAttribute"]; ok {
d.overrideIdentifierAttribute = attr
}
Expand Down Expand Up @@ -695,22 +689,14 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {

if tagged {
if !skip {
if d.Name == "" {
v.errs = append(v.errs, fmt.Errorf("no name parameter set: %s", fmt.Sprintf("%s.%s", v.packageName, v.functionName)))
if err := tests.Configure(&d.CommonArgs); err != nil {
v.errs = append(v.errs, fmt.Errorf("%s: %w", fmt.Sprintf("%s.%s", v.packageName, v.functionName), err))
return
}
if !hasIdentifierAttribute && len(d.overrideIdentifierAttribute) == 0 {
v.errs = append(v.errs, fmt.Errorf("@Tags specification for %s does not use identifierAttribute. Missing @Testing(tagsIdentifierAttribute) and possibly tagsResourceType", fmt.Sprintf("%s.%s", v.packageName, v.functionName)))
return
}
if !generatorSeen {
d.Generator = "acctest.RandomWithPrefix(t, acctest.ResourcePrefix)"
d.GoImports = append(d.GoImports,
common.GoImport{
Path: "github.com/hashicorp/terraform-provider-aws/internal/acctest",
},
)
}
if d.HasInherentRegionIdentity() {
if d.Implementation == common.ImplementationFramework {
if !slices.Contains(d.IdentityDuplicateAttrNames, "id") {
Expand All @@ -721,6 +707,7 @@ func (v *visitor) processFuncDecl(funcDecl *ast.FuncDecl) {
if d.IsSingletonIdentity() {
d.Serialize = true
}

v.taggedResources = append(v.taggedResources, d)
}
}
Expand Down
22 changes: 21 additions & 1 deletion internal/generate/tests/annotations.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
package tests

import (
"errors"
"fmt"
"strings"

Expand Down Expand Up @@ -51,7 +52,8 @@ type CommonArgs struct {
UseAlternateAccount bool
AlternateRegionProvider bool

Generator string
Generator string
generatorSeen bool

RequiredEnvVars []string

Expand Down Expand Up @@ -333,6 +335,7 @@ func ParseTestingAnnotations(args common.Args, stuff *CommonArgs) error {

// TF Variables
if attr, ok := args.Keyword["generator"]; ok {
stuff.generatorSeen = true
if attr != "false" {
if funcName, importSpec, err := common.ParseIdentifierSpec(attr); err != nil {
return fmt.Errorf("%s: %w", attr, err)
Expand Down Expand Up @@ -488,3 +491,20 @@ func endpointsConstOrQuote(region string) string {

return buf.String()
}

func Configure(d *CommonArgs) error {
if d.Name == "" {
return errors.New("no name parameter set")
}

if !d.generatorSeen {
d.Generator = "acctest.RandomWithPrefix(t, acctest.ResourcePrefix)"
d.GoImports = append(d.GoImports,
common.GoImport{
Path: "github.com/hashicorp/terraform-provider-aws/internal/acctest",
},
)
}

return nil
}
9 changes: 4 additions & 5 deletions internal/service/acmpca/certificate_identity_gen_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 4 additions & 5 deletions internal/service/appflow/flow_identity_gen_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading