Skip to content

Commit

Permalink
Merge pull request #27857 from hashicorp/f-aws_auditmanager_control
Browse files Browse the repository at this point in the history
New Resource: `aws_auditmanager_control`
  • Loading branch information
jar-b authored Dec 8, 2022
2 parents e5ac56b + 698be2e commit ffec8b6
Show file tree
Hide file tree
Showing 18 changed files with 1,429 additions and 88 deletions.
3 changes: 3 additions & 0 deletions .changelog/27857.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:new-resource
aws_auditmanager_control
```
103 changes: 58 additions & 45 deletions .ci/.semgrep-service-name0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1173,6 +1173,64 @@ rules:
patterns:
- pattern-regex: "(?i)Athena"
severity: WARNING
- id: auditmanager-in-func-name
languages:
- go
message: Do not use "AuditManager" in func name inside auditmanager package
paths:
include:
- internal/service/auditmanager
patterns:
- pattern: func $NAME( ... ) { ... }
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)AuditManager"
- pattern-not-regex: ^TestAcc.*
severity: WARNING
- id: auditmanager-in-test-name
languages:
- go
message: Include "AuditManager" in test name
paths:
include:
- internal/service/auditmanager/*_test.go
patterns:
- pattern: func $NAME( ... ) { ... }
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-not-regex: "^TestAccAuditManager"
- pattern-regex: ^TestAcc.*
severity: WARNING
- id: auditmanager-in-const-name
languages:
- go
message: Do not use "AuditManager" in const name inside auditmanager package
paths:
include:
- internal/service/auditmanager
patterns:
- pattern: const $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)AuditManager"
severity: WARNING
- id: auditmanager-in-var-name
languages:
- go
message: Do not use "AuditManager" in var name inside auditmanager package
paths:
include:
- internal/service/auditmanager
patterns:
- pattern: var $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)AuditManager"
severity: WARNING
- id: autoscaling-in-func-name
languages:
- go
Expand Down Expand Up @@ -3129,48 +3187,3 @@ rules:
- pattern-not-regex: .*uickConnect.*
- pattern-not-regex: ^TestAcc.*
severity: WARNING
- id: connect-in-test-name
languages:
- go
message: Include "Connect" in test name
paths:
include:
- internal/service/connect/*_test.go
patterns:
- pattern: func $NAME( ... ) { ... }
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-not-regex: "^TestAccConnect"
- pattern-regex: ^TestAcc.*
severity: WARNING
- id: connect-in-const-name
languages:
- go
message: Do not use "Connect" in const name inside connect package
paths:
include:
- internal/service/connect
patterns:
- pattern: const $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Connect"
- pattern-not-regex: .*uickConnect.*
severity: WARNING
- id: connect-in-var-name
languages:
- go
message: Do not use "Connect" in var name inside connect package
paths:
include:
- internal/service/connect
patterns:
- pattern: var $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Connect"
- pattern-not-regex: .*uickConnect.*
severity: WARNING
73 changes: 45 additions & 28 deletions .ci/.semgrep-service-name1.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,50 @@
# Generated by internal/generate/servicesemgrep/main.go; DO NOT EDIT.
rules:
- id: connect-in-test-name
languages:
- go
message: Include "Connect" in test name
paths:
include:
- internal/service/connect/*_test.go
patterns:
- pattern: func $NAME( ... ) { ... }
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-not-regex: "^TestAccConnect"
- pattern-regex: ^TestAcc.*
severity: WARNING
- id: connect-in-const-name
languages:
- go
message: Do not use "Connect" in const name inside connect package
paths:
include:
- internal/service/connect
patterns:
- pattern: const $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Connect"
- pattern-not-regex: .*uickConnect.*
severity: WARNING
- id: connect-in-var-name
languages:
- go
message: Do not use "Connect" in var name inside connect package
paths:
include:
- internal/service/connect
patterns:
- pattern: var $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Connect"
- pattern-not-regex: .*uickConnect.*
severity: WARNING
- id: controltower-in-func-name
languages:
- go
Expand Down Expand Up @@ -3131,31 +3176,3 @@ rules:
- pattern-not-regex: "^TestAccInspector2"
- pattern-regex: ^TestAcc.*
severity: WARNING
- id: inspector2-in-const-name
languages:
- go
message: Do not use "Inspector2" in const name inside inspector2 package
paths:
include:
- internal/service/inspector2
patterns:
- pattern: const $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Inspector2"
severity: WARNING
- id: inspector2-in-var-name
languages:
- go
message: Do not use "Inspector2" in var name inside inspector2 package
paths:
include:
- internal/service/inspector2
patterns:
- pattern: var $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Inspector2"
severity: WARNING
42 changes: 28 additions & 14 deletions .ci/.semgrep-service-name2.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# Generated by internal/generate/servicesemgrep/main.go; DO NOT EDIT.
rules:
- id: inspector2-in-const-name
languages:
- go
message: Do not use "Inspector2" in const name inside inspector2 package
paths:
include:
- internal/service/inspector2
patterns:
- pattern: const $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Inspector2"
severity: WARNING
- id: inspector2-in-var-name
languages:
- go
message: Do not use "Inspector2" in var name inside inspector2 package
paths:
include:
- internal/service/inspector2
patterns:
- pattern: var $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Inspector2"
severity: WARNING
- id: inspectorv2-in-func-name
languages:
- go
Expand Down Expand Up @@ -3143,17 +3171,3 @@ rules:
- pattern-not-regex: "^TestAccRedshift"
- pattern-regex: ^TestAcc.*
severity: WARNING
- id: redshift-in-const-name
languages:
- go
message: Do not use "Redshift" in const name inside redshift package
paths:
include:
- internal/service/redshift
patterns:
- pattern: const $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Redshift"
severity: WARNING
14 changes: 14 additions & 0 deletions .ci/.semgrep-service-name3.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Generated by internal/generate/servicesemgrep/main.go; DO NOT EDIT.
rules:
- id: redshift-in-const-name
languages:
- go
message: Do not use "Redshift" in const name inside redshift package
paths:
include:
- internal/service/redshift
patterns:
- pattern: const $NAME = ...
- metavariable-pattern:
metavariable: $NAME
patterns:
- pattern-regex: "(?i)Redshift"
severity: WARNING
- id: redshift-in-var-name
languages:
- go
Expand Down
1 change: 1 addition & 0 deletions .teamcity/components/generated/services_all.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ val services = mapOf(
"appstream" to ServiceSpec("AppStream 2.0", vpcLock = true, parallelismOverride = 10),
"appsync" to ServiceSpec("AppSync"),
"athena" to ServiceSpec("Athena"),
"auditmanager" to ServiceSpec("Audit Manager"),
"autoscaling" to ServiceSpec("Auto Scaling", vpcLock = true),
"autoscalingplans" to ServiceSpec("Auto Scaling Plans"),
"backup" to ServiceSpec("Backup"),
Expand Down
17 changes: 16 additions & 1 deletion internal/flex/framework.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,21 @@ func BoolToFrameworkLegacy(_ context.Context, v *bool) types.Bool {
return types.BoolValue(aws.ToBool(v))
}

// StringValueToFramework converts a string value to a Framework String value.
// An empty string is converted to a null String.
func StringValueToFramework[T ~string](_ context.Context, v T) types.String {
if v == "" {
return types.StringNull()
}
return types.StringValue(string(v))
}

// StringValueToFrameworkLegacy converts a string value to a Framework String value.
// An empty string is left as an empty String.
func StringValueToFrameworkLegacy[T ~string](_ context.Context, v T) types.String {
return types.StringValue(string(v))
}

// Int64ToFramework converts an int64 pointer to a Framework Int64 value.
// A nil int64 pointer is converted to a null Int64.
func Int64ToFramework(_ context.Context, v *int64) types.Int64 {
Expand All @@ -166,7 +181,7 @@ func Int64ToFramework(_ context.Context, v *int64) types.Int64 {
return types.Int64Value(aws.ToInt64(v))
}

// Int64ToFramework converts an int64 pointer to a Framework Int64 value.
// Int64ToFrameworkLegacy converts an int64 pointer to a Framework Int64 value.
// A nil int64 pointer is converted to a zero Int64.
func Int64ToFrameworkLegacy(_ context.Context, v *int64) types.Int64 {
return types.Int64Value(aws.ToInt64(v))
Expand Down
66 changes: 66 additions & 0 deletions internal/flex/framework_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -621,3 +621,69 @@ func TestStringToFrameworkWithTransform(t *testing.T) {
})
}
}

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

// AWS enums use custom types with an underlying string type
type custom string

type testCase struct {
input custom
expected types.String
}
tests := map[string]testCase{
"valid": {
input: "TEST",
expected: types.StringValue("TEST"),
},
"empty": {
input: "",
expected: types.StringNull(),
},
}

for name, test := range tests {
name, test := name, test
t.Run(name, func(t *testing.T) {
got := StringValueToFramework(context.Background(), test.input)

if diff := cmp.Diff(got, test.expected); diff != "" {
t.Errorf("unexpected diff (+wanted, -got): %s", diff)
}
})
}
}

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

// AWS enums use custom types with an underlying string type
type custom string

type testCase struct {
input custom
expected types.String
}
tests := map[string]testCase{
"valid": {
input: "TEST",
expected: types.StringValue("TEST"),
},
"empty": {
input: "",
expected: types.StringValue(""),
},
}

for name, test := range tests {
name, test := name, test
t.Run(name, func(t *testing.T) {
got := StringValueToFrameworkLegacy(context.Background(), test.input)

if diff := cmp.Diff(got, test.expected); diff != "" {
t.Errorf("unexpected diff (+wanted, -got): %s", diff)
}
})
}
}
9 changes: 9 additions & 0 deletions internal/framework/id_attribute.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,12 @@ func IDAttribute() schema.StringAttribute {
},
}
}

func ARNAttribute() schema.StringAttribute {
return schema.StringAttribute{
Computed: true,
PlanModifiers: []planmodifier.String{
stringplanmodifier.UseStateForUnknown(),
},
}
}
Loading

0 comments on commit ffec8b6

Please sign in to comment.