Skip to content

Commit

Permalink
Update Magic Modules (#209)
Browse files Browse the repository at this point in the history
  • Loading branch information
wata727 authored Sep 7, 2022
1 parent f98e93d commit 8682cd8
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 110 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,44 +20,44 @@ import (
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
)

// GoogleCertificateManagerCertificateInvalidScopeRule checks the pattern is valid
type GoogleCertificateManagerCertificateInvalidScopeRule struct {
// GoogleApigeeOrganizationInvalidRetentionRule checks the pattern is valid
type GoogleApigeeOrganizationInvalidRetentionRule struct {
tflint.DefaultRule

resourceType string
attributeName string
}

// NewGoogleCertificateManagerCertificateInvalidScopeRule returns new rule with default attributes
func NewGoogleCertificateManagerCertificateInvalidScopeRule() *GoogleCertificateManagerCertificateInvalidScopeRule {
return &GoogleCertificateManagerCertificateInvalidScopeRule{
resourceType: "google_certificate_manager_certificate",
attributeName: "scope",
// NewGoogleApigeeOrganizationInvalidRetentionRule returns new rule with default attributes
func NewGoogleApigeeOrganizationInvalidRetentionRule() *GoogleApigeeOrganizationInvalidRetentionRule {
return &GoogleApigeeOrganizationInvalidRetentionRule{
resourceType: "google_apigee_organization",
attributeName: "retention",
}
}

// Name returns the rule name
func (r *GoogleCertificateManagerCertificateInvalidScopeRule) Name() string {
return "google_certificate_manager_certificate_invalid_scope"
func (r *GoogleApigeeOrganizationInvalidRetentionRule) Name() string {
return "google_apigee_organization_invalid_retention"
}

// Enabled returns whether the rule is enabled by default
func (r *GoogleCertificateManagerCertificateInvalidScopeRule) Enabled() bool {
func (r *GoogleApigeeOrganizationInvalidRetentionRule) Enabled() bool {
return true
}

// Severity returns the rule severity
func (r *GoogleCertificateManagerCertificateInvalidScopeRule) Severity() tflint.Severity {
func (r *GoogleApigeeOrganizationInvalidRetentionRule) Severity() tflint.Severity {
return tflint.ERROR
}

// Link returns the rule reference link
func (r *GoogleCertificateManagerCertificateInvalidScopeRule) Link() string {
func (r *GoogleApigeeOrganizationInvalidRetentionRule) Link() string {
return ""
}

// Check checks the pattern is valid
func (r *GoogleCertificateManagerCertificateInvalidScopeRule) Check(runner tflint.Runner) error {
func (r *GoogleApigeeOrganizationInvalidRetentionRule) Check(runner tflint.Runner) error {
resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{
Attributes: []hclext.AttributeSchema{{Name: r.attributeName}},
}, nil)
Expand All @@ -74,7 +74,7 @@ func (r *GoogleCertificateManagerCertificateInvalidScopeRule) Check(runner tflin
var val string
err := runner.EvaluateExpr(attribute.Expr, &val, nil)

validateFunc := validation.StringInSlice([]string{"DEFAULT", "EDGE_CACHE", ""}, false)
validateFunc := validation.StringInSlice([]string{"DELETION_RETENTION_UNSPECIFIED", "MINIMUM", ""}, false)

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

This file was deleted.

10 changes: 10 additions & 0 deletions rules/magicmodules/product.go
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,11 @@ var Products = map[string]Product{
{Name: "Cloud Spanner API", URL: "https://console.cloud.google.com/apis/library/spanner.googleapis.com/"},
},
},
"google_datastream_connection_profile": {
APIsRequired: []APIReference{
{Name: "Datastream API", URL: "https://console.cloud.google.com/apis/library/datastream.googleapis.com"},
},
},
"google_pubsub_topic": {
APIsRequired: []APIReference{
{Name: "Cloud Pub/Sub API", URL: "https://console.cloud.google.com/apis/library/pubsub.googleapis.com/"},
Expand Down Expand Up @@ -618,6 +623,11 @@ var Products = map[string]Product{
{Name: "BigQueryDataTransfer API", URL: "https://console.cloud.google.com/apis/api/bigquerydatatransfer.googleapis.com/"},
},
},
"google_cloudfunctions2_function": {
APIsRequired: []APIReference{
{Name: "Cloud Functions API", URL: "https://console.cloud.google.com/apis/library/cloudfunctions.googleapis.com/"},
},
},
"google_game_services_realm": {
APIsRequired: []APIReference{},
},
Expand Down
3 changes: 1 addition & 2 deletions rules/magicmodules/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ var Rules = []tflint.Rule{
NewGoogleActiveDirectoryDomainTrustInvalidTrustTypeRule(),
NewGoogleApigeeEnvironmentInvalidApiProxyTypeRule(),
NewGoogleApigeeEnvironmentInvalidDeploymentTypeRule(),
NewGoogleApigeeOrganizationInvalidRetentionRule(),
NewGoogleApigeeOrganizationInvalidRuntimeTypeRule(),
NewGoogleAppEngineDomainMappingInvalidOverrideStrategyRule(),
NewGoogleAppEngineFirewallRuleInvalidActionRule(),
Expand All @@ -33,8 +34,6 @@ var Rules = []tflint.Rule{
NewGoogleBigqueryRoutineInvalidLanguageRule(),
NewGoogleBigqueryRoutineInvalidRoutineTypeRule(),
NewGoogleBinaryAuthorizationPolicyInvalidGlobalPolicyEvaluationModeRule(),
NewGoogleCertificateManagerCertificateInvalidScopeRule(),
NewGoogleCertificateManagerCertificateMapEntryInvalidMatcherRule(),
NewGoogleCloudAssetFolderFeedInvalidContentTypeRule(),
NewGoogleCloudAssetOrganizationFeedInvalidContentTypeRule(),
NewGoogleCloudAssetProjectFeedInvalidContentTypeRule(),
Expand Down
4 changes: 3 additions & 1 deletion rules/magicmodules/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,9 @@ var rfc1918Networks = []string{
"192.168.0.0/16",
}

func validateGCPName(v interface{}, k string) (ws []string, errors []error) {
// validateGCEName ensures that a field matches the requirements for Compute Engine resource names
// https://cloud.google.com/compute/docs/naming-resources#resource-name-format
func validateGCEName(v interface{}, k string) (ws []string, errors []error) {
re := `^(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)$`
return validateRegexp(re)(v, k)
}
Expand Down
2 changes: 1 addition & 1 deletion tools/magic-modules
Submodule magic-modules updated 290 files

0 comments on commit 8682cd8

Please sign in to comment.