Skip to content

Commit 57fdcda

Browse files
authored
Update Magic Modules (#158)
1 parent 5480a7f commit 57fdcda

12 files changed

+212
-7
lines changed

rules/magicmodules/google_bigquery_routine_invalid_routine_type.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (r *GoogleBigqueryRoutineInvalidRoutineTypeRule) Check(runner tflint.Runner
7474
var val string
7575
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
7676

77-
validateFunc := validation.StringInSlice([]string{"SCALAR_FUNCTION", "PROCEDURE", ""}, false)
77+
validateFunc := validation.StringInSlice([]string{"SCALAR_FUNCTION", "PROCEDURE", "TABLE_VALUED_FUNCTION", ""}, false)
7878

7979
err = runner.EnsureNoError(err, func() error {
8080
_, errors := validateFunc(val, r.attributeName)

rules/magicmodules/google_compute_backend_service_invalid_load_balancing_scheme.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (r *GoogleComputeBackendServiceInvalidLoadBalancingSchemeRule) Check(runner
7474
var val string
7575
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
7676

77-
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "INTERNAL_SELF_MANAGED", ""}, false)
77+
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "INTERNAL_SELF_MANAGED", "EXTERNAL_MANAGED", ""}, false)
7878

7979
err = runner.EnsureNoError(err, func() error {
8080
_, errors := validateFunc(val, r.attributeName)

rules/magicmodules/google_compute_forwarding_rule_invalid_load_balancing_scheme.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (r *GoogleComputeForwardingRuleInvalidLoadBalancingSchemeRule) Check(runner
7474
var val string
7575
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
7676

77-
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "INTERNAL", "INTERNAL_MANAGED", ""}, false)
77+
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "EXTERNAL_MANAGED", "INTERNAL", "INTERNAL_MANAGED", ""}, false)
7878

7979
err = runner.EnsureNoError(err, func() error {
8080
_, errors := validateFunc(val, r.attributeName)

rules/magicmodules/google_compute_global_forwarding_rule_invalid_load_balancing_scheme.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (r *GoogleComputeGlobalForwardingRuleInvalidLoadBalancingSchemeRule) Check(
7474
var val string
7575
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
7676

77-
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "INTERNAL_SELF_MANAGED", ""}, false)
77+
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "EXTERNAL_MANAGED", "INTERNAL_SELF_MANAGED", ""}, false)
7878

7979
err = runner.EnsureNoError(err, func() error {
8080
_, errors := validateFunc(val, r.attributeName)

rules/magicmodules/google_compute_network_endpoint_group_invalid_network_endpoint_type.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (r *GoogleComputeNetworkEndpointGroupInvalidNetworkEndpointTypeRule) Check(
7474
var val string
7575
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
7676

77-
validateFunc := validation.StringInSlice([]string{"GCE_VM_IP_PORT", ""}, false)
77+
validateFunc := validation.StringInSlice([]string{"GCE_VM_IP_PORT", "NON_GCP_PRIVATE_IP_PORT", ""}, false)
7878

7979
err = runner.EnsureNoError(err, func() error {
8080
_, errors := validateFunc(val, r.attributeName)

rules/magicmodules/google_compute_region_backend_service_invalid_load_balancing_scheme.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (r *GoogleComputeRegionBackendServiceInvalidLoadBalancingSchemeRule) Check(
7474
var val string
7575
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
7676

77-
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "INTERNAL", "INTERNAL_MANAGED", ""}, false)
77+
validateFunc := validation.StringInSlice([]string{"EXTERNAL", "EXTERNAL_MANAGED", "INTERNAL", "INTERNAL_MANAGED", ""}, false)
7878

7979
err = runner.EnsureNoError(err, func() error {
8080
_, errors := validateFunc(val, r.attributeName)
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This file is automatically generated by Magic Modules and manual
8+
// changes will be clobbered when the file is regenerated.
9+
//
10+
// Please read more about how to change this file in
11+
// .github/CONTRIBUTING.md.
12+
//
13+
// ----------------------------------------------------------------------------
14+
15+
package magicmodules
16+
17+
import (
18+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
19+
"github.com/terraform-linters/tflint-plugin-sdk/hclext"
20+
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
21+
)
22+
23+
// GoogleDataFusionInstanceInvalidTypeRule checks the pattern is valid
24+
type GoogleDataFusionInstanceInvalidTypeRule struct {
25+
tflint.DefaultRule
26+
27+
resourceType string
28+
attributeName string
29+
}
30+
31+
// NewGoogleDataFusionInstanceInvalidTypeRule returns new rule with default attributes
32+
func NewGoogleDataFusionInstanceInvalidTypeRule() *GoogleDataFusionInstanceInvalidTypeRule {
33+
return &GoogleDataFusionInstanceInvalidTypeRule{
34+
resourceType: "google_data_fusion_instance",
35+
attributeName: "type",
36+
}
37+
}
38+
39+
// Name returns the rule name
40+
func (r *GoogleDataFusionInstanceInvalidTypeRule) Name() string {
41+
return "google_data_fusion_instance_invalid_type"
42+
}
43+
44+
// Enabled returns whether the rule is enabled by default
45+
func (r *GoogleDataFusionInstanceInvalidTypeRule) Enabled() bool {
46+
return true
47+
}
48+
49+
// Severity returns the rule severity
50+
func (r *GoogleDataFusionInstanceInvalidTypeRule) Severity() tflint.Severity {
51+
return tflint.ERROR
52+
}
53+
54+
// Link returns the rule reference link
55+
func (r *GoogleDataFusionInstanceInvalidTypeRule) Link() string {
56+
return ""
57+
}
58+
59+
// Check checks the pattern is valid
60+
func (r *GoogleDataFusionInstanceInvalidTypeRule) Check(runner tflint.Runner) error {
61+
resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{
62+
Attributes: []hclext.AttributeSchema{{Name: r.attributeName}},
63+
}, nil)
64+
if err != nil {
65+
return err
66+
}
67+
68+
for _, resource := range resources.Blocks {
69+
attribute, exists := resource.Body.Attributes[r.attributeName]
70+
if !exists {
71+
continue
72+
}
73+
74+
var val string
75+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
76+
77+
validateFunc := validation.StringInSlice([]string{"BASIC", "ENTERPRISE", "DEVELOPER"}, false)
78+
79+
err = runner.EnsureNoError(err, func() error {
80+
_, errors := validateFunc(val, r.attributeName)
81+
for _, err := range errors {
82+
runner.EmitIssue(r, err.Error(), attribute.Expr.Range())
83+
}
84+
return nil
85+
})
86+
if err != nil {
87+
return err
88+
}
89+
}
90+
91+
return nil
92+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This file is automatically generated by Magic Modules and manual
8+
// changes will be clobbered when the file is regenerated.
9+
//
10+
// Please read more about how to change this file in
11+
// .github/CONTRIBUTING.md.
12+
//
13+
// ----------------------------------------------------------------------------
14+
15+
package magicmodules
16+
17+
import (
18+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
19+
"github.com/terraform-linters/tflint-plugin-sdk/hclext"
20+
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
21+
)
22+
23+
// GoogleRedisInstanceInvalidReadReplicasModeRule checks the pattern is valid
24+
type GoogleRedisInstanceInvalidReadReplicasModeRule struct {
25+
tflint.DefaultRule
26+
27+
resourceType string
28+
attributeName string
29+
}
30+
31+
// NewGoogleRedisInstanceInvalidReadReplicasModeRule returns new rule with default attributes
32+
func NewGoogleRedisInstanceInvalidReadReplicasModeRule() *GoogleRedisInstanceInvalidReadReplicasModeRule {
33+
return &GoogleRedisInstanceInvalidReadReplicasModeRule{
34+
resourceType: "google_redis_instance",
35+
attributeName: "read_replicas_mode",
36+
}
37+
}
38+
39+
// Name returns the rule name
40+
func (r *GoogleRedisInstanceInvalidReadReplicasModeRule) Name() string {
41+
return "google_redis_instance_invalid_read_replicas_mode"
42+
}
43+
44+
// Enabled returns whether the rule is enabled by default
45+
func (r *GoogleRedisInstanceInvalidReadReplicasModeRule) Enabled() bool {
46+
return true
47+
}
48+
49+
// Severity returns the rule severity
50+
func (r *GoogleRedisInstanceInvalidReadReplicasModeRule) Severity() tflint.Severity {
51+
return tflint.ERROR
52+
}
53+
54+
// Link returns the rule reference link
55+
func (r *GoogleRedisInstanceInvalidReadReplicasModeRule) Link() string {
56+
return ""
57+
}
58+
59+
// Check checks the pattern is valid
60+
func (r *GoogleRedisInstanceInvalidReadReplicasModeRule) Check(runner tflint.Runner) error {
61+
resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{
62+
Attributes: []hclext.AttributeSchema{{Name: r.attributeName}},
63+
}, nil)
64+
if err != nil {
65+
return err
66+
}
67+
68+
for _, resource := range resources.Blocks {
69+
attribute, exists := resource.Body.Attributes[r.attributeName]
70+
if !exists {
71+
continue
72+
}
73+
74+
var val string
75+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
76+
77+
validateFunc := validation.StringInSlice([]string{"READ_REPLICAS_DISABLED", "READ_REPLICAS_ENABLED", ""}, false)
78+
79+
err = runner.EnsureNoError(err, func() error {
80+
_, errors := validateFunc(val, r.attributeName)
81+
for _, err := range errors {
82+
runner.EmitIssue(r, err.Error(), attribute.Expr.Range())
83+
}
84+
return nil
85+
})
86+
if err != nil {
87+
return err
88+
}
89+
}
90+
91+
return nil
92+
}

rules/magicmodules/product.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ var Products = map[string]Product{
5252
{Name: "Essential Contacts API", URL: "https://console.cloud.google.com/apis/api/essentialcontacts.googleapis.com/overview"},
5353
},
5454
},
55+
"google_cgc_snippet": {
56+
APIsRequired: []APIReference{
57+
{Name: "placeholder", URL: "placeholder"},
58+
},
59+
},
5560
"google_binary_authorization_attestor": {
5661
APIsRequired: []APIReference{},
5762
},
@@ -88,6 +93,11 @@ var Products = map[string]Product{
8893
{Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"},
8994
},
9095
},
96+
"google_apigee_endpoint_attachment": {
97+
APIsRequired: []APIReference{
98+
{Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"},
99+
},
100+
},
91101
"google_kms_key_ring": {
92102
APIsRequired: []APIReference{
93103
{Name: "Cloud Key Management Service (KMS) API", URL: "https://console.cloud.google.com/apis/library/cloudkms.googleapis.com/"},
@@ -293,6 +303,11 @@ var Products = map[string]Product{
293303
{Name: "Deployment Manager API", URL: "https://console.cloud.google.com/apis/library/deploymentmanager.googleapis.com/"},
294304
},
295305
},
306+
"google_data_fusion_instance": {
307+
APIsRequired: []APIReference{
308+
{Name: "Cloud Data Fusion API", URL: "https://console.cloud.google.com/apis/library/datafusion.googleapis.com"},
309+
},
310+
},
296311
"google_bigquery_reservation": {
297312
APIsRequired: []APIReference{
298313
{Name: "BigQueryReservation API", URL: "https://console.cloud.google.com/apis/api/bigqueryreservation.googleapis.com/"},

rules/magicmodules/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ var Rules = []tflint.Rule{
8888
NewGoogleDataCatalogEntryInvalidUserSpecifiedSystemRule(),
8989
NewGoogleDataCatalogEntryInvalidUserSpecifiedTypeRule(),
9090
NewGoogleDataCatalogTagTemplateInvalidTagTemplateIdRule(),
91+
NewGoogleDataFusionInstanceInvalidTypeRule(),
9192
NewGoogleDataLossPreventionJobTriggerInvalidStatusRule(),
9293
NewGoogleDatastoreIndexInvalidAncestorRule(),
9394
NewGoogleDeploymentManagerDeploymentInvalidCreatePolicyRule(),
@@ -123,6 +124,7 @@ var Rules = []tflint.Rule{
123124
NewGooglePubsubSchemaInvalidTypeRule(),
124125
NewGoogleRedisInstanceInvalidConnectModeRule(),
125126
NewGoogleRedisInstanceInvalidNameRule(),
127+
NewGoogleRedisInstanceInvalidReadReplicasModeRule(),
126128
NewGoogleRedisInstanceInvalidTierRule(),
127129
NewGoogleRedisInstanceInvalidTransitEncryptionModeRule(),
128130
NewGoogleSccSourceInvalidDisplayNameRule(),

rules/magicmodules/validation.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@ func validateRegexp(re string) schema.SchemaValidateFunc {
112112
}
113113
}
114114

115+
func validateEnum(values []string) schema.SchemaValidateFunc {
116+
return validation.StringInSlice(values, false)
117+
}
118+
115119
func validateRFC1918Network(min, max int) schema.SchemaValidateFunc {
116120
return func(i interface{}, k string) (s []string, es []error) {
117121

tools/magic-modules

Submodule magic-modules updated 626 files

0 commit comments

Comments
 (0)