From 7d242ab1e25ae4b9b08cf2a774e057fde6a96d63 Mon Sep 17 00:00:00 2001 From: Kazuma Watanabe Date: Sun, 10 Sep 2023 16:03:46 +0000 Subject: [PATCH] Update Magic Modules --- ...e_apigee_target_server_invalid_protocol.go | 91 +++ .../google_biglake_table_invalid_type.go | 91 +++ ...ogle_compute_address_invalid_ip_version.go | 91 +++ ...pute_address_invalid_ipv6_endpoint_type.go | 91 +++ ...d_service_invalid_load_balancing_scheme.go | 2 +- ...ompute_backend_service_invalid_protocol.go | 2 +- ...pute_forwarding_rule_invalid_ip_version.go | 91 +++ ...ding_rule_invalid_load_balancing_scheme.go | 2 +- ...gion_ssl_policy_invalid_min_tls_version.go | 91 +++ ...mpute_region_ssl_policy_invalid_profile.go | 91 +++ ...le_data_pipeline_pipeline_invalid_state.go | 91 +++ ...gle_data_pipeline_pipeline_invalid_type.go | 91 +++ ...se_location_invalid_access_control_mode.go | 91 +++ ...arehouse_location_invalid_database_type.go | 91 +++ ...n_invalid_document_creator_default_role.go | 91 +++ ...lid_complex_data_type_reference_parsing.go | 91 +++ .../google_looker_instance_invalid_name.go | 90 +++ ...ooker_instance_invalid_platform_edition.go | 91 +++ ...ork_security_address_group_invalid_type.go | 91 +++ ...urity_policy_rule_invalid_basic_profile.go | 91 +++ ...e_network_services_gateway_invalid_type.go | 91 +++ rules/magicmodules/product.go | 758 +++++++++++------- rules/magicmodules/provider.go | 18 + tools/magic-modules | 2 +- 24 files changed, 2107 insertions(+), 314 deletions(-) create mode 100644 rules/magicmodules/google_apigee_target_server_invalid_protocol.go create mode 100644 rules/magicmodules/google_biglake_table_invalid_type.go create mode 100644 rules/magicmodules/google_compute_address_invalid_ip_version.go create mode 100644 rules/magicmodules/google_compute_address_invalid_ipv6_endpoint_type.go create mode 100644 rules/magicmodules/google_compute_forwarding_rule_invalid_ip_version.go create mode 100644 rules/magicmodules/google_compute_region_ssl_policy_invalid_min_tls_version.go create mode 100644 rules/magicmodules/google_compute_region_ssl_policy_invalid_profile.go create mode 100644 rules/magicmodules/google_data_pipeline_pipeline_invalid_state.go create mode 100644 rules/magicmodules/google_data_pipeline_pipeline_invalid_type.go create mode 100644 rules/magicmodules/google_document_ai_warehouse_location_invalid_access_control_mode.go create mode 100644 rules/magicmodules/google_document_ai_warehouse_location_invalid_database_type.go create mode 100644 rules/magicmodules/google_document_ai_warehouse_location_invalid_document_creator_default_role.go create mode 100644 rules/magicmodules/google_healthcare_fhir_store_invalid_complex_data_type_reference_parsing.go create mode 100644 rules/magicmodules/google_looker_instance_invalid_name.go create mode 100644 rules/magicmodules/google_looker_instance_invalid_platform_edition.go create mode 100644 rules/magicmodules/google_network_security_address_group_invalid_type.go create mode 100644 rules/magicmodules/google_network_security_gateway_security_policy_rule_invalid_basic_profile.go create mode 100644 rules/magicmodules/google_network_services_gateway_invalid_type.go diff --git a/rules/magicmodules/google_apigee_target_server_invalid_protocol.go b/rules/magicmodules/google_apigee_target_server_invalid_protocol.go new file mode 100644 index 0000000..e65af35 --- /dev/null +++ b/rules/magicmodules/google_apigee_target_server_invalid_protocol.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleApigeeTargetServerInvalidProtocolRule checks the pattern is valid +type GoogleApigeeTargetServerInvalidProtocolRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleApigeeTargetServerInvalidProtocolRule returns new rule with default attributes +func NewGoogleApigeeTargetServerInvalidProtocolRule() *GoogleApigeeTargetServerInvalidProtocolRule { + return &GoogleApigeeTargetServerInvalidProtocolRule{ + resourceType: "google_apigee_target_server", + attributeName: "protocol", + } +} + +// Name returns the rule name +func (r *GoogleApigeeTargetServerInvalidProtocolRule) Name() string { + return "google_apigee_target_server_invalid_protocol" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleApigeeTargetServerInvalidProtocolRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleApigeeTargetServerInvalidProtocolRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleApigeeTargetServerInvalidProtocolRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleApigeeTargetServerInvalidProtocolRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"HTTP", "HTTP2", "GRPC_TARGET", "GRPC", "EXTERNAL_CALLOUT", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_biglake_table_invalid_type.go b/rules/magicmodules/google_biglake_table_invalid_type.go new file mode 100644 index 0000000..1f23dd1 --- /dev/null +++ b/rules/magicmodules/google_biglake_table_invalid_type.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleBiglakeTableInvalidTypeRule checks the pattern is valid +type GoogleBiglakeTableInvalidTypeRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleBiglakeTableInvalidTypeRule returns new rule with default attributes +func NewGoogleBiglakeTableInvalidTypeRule() *GoogleBiglakeTableInvalidTypeRule { + return &GoogleBiglakeTableInvalidTypeRule{ + resourceType: "google_biglake_table", + attributeName: "type", + } +} + +// Name returns the rule name +func (r *GoogleBiglakeTableInvalidTypeRule) Name() string { + return "google_biglake_table_invalid_type" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleBiglakeTableInvalidTypeRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleBiglakeTableInvalidTypeRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleBiglakeTableInvalidTypeRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleBiglakeTableInvalidTypeRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"HIVE", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_compute_address_invalid_ip_version.go b/rules/magicmodules/google_compute_address_invalid_ip_version.go new file mode 100644 index 0000000..a0a55ac --- /dev/null +++ b/rules/magicmodules/google_compute_address_invalid_ip_version.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleComputeAddressInvalidIpVersionRule checks the pattern is valid +type GoogleComputeAddressInvalidIpVersionRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleComputeAddressInvalidIpVersionRule returns new rule with default attributes +func NewGoogleComputeAddressInvalidIpVersionRule() *GoogleComputeAddressInvalidIpVersionRule { + return &GoogleComputeAddressInvalidIpVersionRule{ + resourceType: "google_compute_address", + attributeName: "ip_version", + } +} + +// Name returns the rule name +func (r *GoogleComputeAddressInvalidIpVersionRule) Name() string { + return "google_compute_address_invalid_ip_version" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleComputeAddressInvalidIpVersionRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleComputeAddressInvalidIpVersionRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleComputeAddressInvalidIpVersionRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleComputeAddressInvalidIpVersionRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"IPV4", "IPV6", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_compute_address_invalid_ipv6_endpoint_type.go b/rules/magicmodules/google_compute_address_invalid_ipv6_endpoint_type.go new file mode 100644 index 0000000..670f22f --- /dev/null +++ b/rules/magicmodules/google_compute_address_invalid_ipv6_endpoint_type.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleComputeAddressInvalidIpv6EndpointTypeRule checks the pattern is valid +type GoogleComputeAddressInvalidIpv6EndpointTypeRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleComputeAddressInvalidIpv6EndpointTypeRule returns new rule with default attributes +func NewGoogleComputeAddressInvalidIpv6EndpointTypeRule() *GoogleComputeAddressInvalidIpv6EndpointTypeRule { + return &GoogleComputeAddressInvalidIpv6EndpointTypeRule{ + resourceType: "google_compute_address", + attributeName: "ipv6_endpoint_type", + } +} + +// Name returns the rule name +func (r *GoogleComputeAddressInvalidIpv6EndpointTypeRule) Name() string { + return "google_compute_address_invalid_ipv6_endpoint_type" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleComputeAddressInvalidIpv6EndpointTypeRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleComputeAddressInvalidIpv6EndpointTypeRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleComputeAddressInvalidIpv6EndpointTypeRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleComputeAddressInvalidIpv6EndpointTypeRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"VM", "NETLB", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_compute_backend_service_invalid_load_balancing_scheme.go b/rules/magicmodules/google_compute_backend_service_invalid_load_balancing_scheme.go index 8f54e80..3960da1 100644 --- a/rules/magicmodules/google_compute_backend_service_invalid_load_balancing_scheme.go +++ b/rules/magicmodules/google_compute_backend_service_invalid_load_balancing_scheme.go @@ -72,7 +72,7 @@ func (r *GoogleComputeBackendServiceInvalidLoadBalancingSchemeRule) Check(runner } err := runner.EvaluateExpr(attribute.Expr, func(val string) error { - validateFunc := validation.StringInSlice([]string{"EXTERNAL", "INTERNAL_SELF_MANAGED", "EXTERNAL_MANAGED", ""}, false) + validateFunc := validation.StringInSlice([]string{"EXTERNAL", "INTERNAL_SELF_MANAGED", "INTERNAL_MANAGED", "EXTERNAL_MANAGED", ""}, false) _, errors := validateFunc(val, r.attributeName) for _, err := range errors { diff --git a/rules/magicmodules/google_compute_backend_service_invalid_protocol.go b/rules/magicmodules/google_compute_backend_service_invalid_protocol.go index 87d1072..a02f8d7 100644 --- a/rules/magicmodules/google_compute_backend_service_invalid_protocol.go +++ b/rules/magicmodules/google_compute_backend_service_invalid_protocol.go @@ -72,7 +72,7 @@ func (r *GoogleComputeBackendServiceInvalidProtocolRule) Check(runner tflint.Run } err := runner.EvaluateExpr(attribute.Expr, func(val string) error { - validateFunc := validation.StringInSlice([]string{"HTTP", "HTTPS", "HTTP2", "TCP", "SSL", "GRPC", ""}, false) + validateFunc := validation.StringInSlice([]string{"HTTP", "HTTPS", "HTTP2", "TCP", "SSL", "GRPC", "UNSPECIFIED", ""}, false) _, errors := validateFunc(val, r.attributeName) for _, err := range errors { diff --git a/rules/magicmodules/google_compute_forwarding_rule_invalid_ip_version.go b/rules/magicmodules/google_compute_forwarding_rule_invalid_ip_version.go new file mode 100644 index 0000000..ea1c6c0 --- /dev/null +++ b/rules/magicmodules/google_compute_forwarding_rule_invalid_ip_version.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleComputeForwardingRuleInvalidIpVersionRule checks the pattern is valid +type GoogleComputeForwardingRuleInvalidIpVersionRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleComputeForwardingRuleInvalidIpVersionRule returns new rule with default attributes +func NewGoogleComputeForwardingRuleInvalidIpVersionRule() *GoogleComputeForwardingRuleInvalidIpVersionRule { + return &GoogleComputeForwardingRuleInvalidIpVersionRule{ + resourceType: "google_compute_forwarding_rule", + attributeName: "ip_version", + } +} + +// Name returns the rule name +func (r *GoogleComputeForwardingRuleInvalidIpVersionRule) Name() string { + return "google_compute_forwarding_rule_invalid_ip_version" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleComputeForwardingRuleInvalidIpVersionRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleComputeForwardingRuleInvalidIpVersionRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleComputeForwardingRuleInvalidIpVersionRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleComputeForwardingRuleInvalidIpVersionRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"IPV4", "IPV6", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_compute_global_forwarding_rule_invalid_load_balancing_scheme.go b/rules/magicmodules/google_compute_global_forwarding_rule_invalid_load_balancing_scheme.go index 85c5e3c..23a3459 100644 --- a/rules/magicmodules/google_compute_global_forwarding_rule_invalid_load_balancing_scheme.go +++ b/rules/magicmodules/google_compute_global_forwarding_rule_invalid_load_balancing_scheme.go @@ -72,7 +72,7 @@ func (r *GoogleComputeGlobalForwardingRuleInvalidLoadBalancingSchemeRule) Check( } err := runner.EvaluateExpr(attribute.Expr, func(val string) error { - validateFunc := validation.StringInSlice([]string{"EXTERNAL", "EXTERNAL_MANAGED", "INTERNAL_SELF_MANAGED", ""}, false) + validateFunc := validation.StringInSlice([]string{"EXTERNAL", "EXTERNAL_MANAGED", "INTERNAL_MANAGED", "INTERNAL_SELF_MANAGED", ""}, false) _, errors := validateFunc(val, r.attributeName) for _, err := range errors { diff --git a/rules/magicmodules/google_compute_region_ssl_policy_invalid_min_tls_version.go b/rules/magicmodules/google_compute_region_ssl_policy_invalid_min_tls_version.go new file mode 100644 index 0000000..02bc6d3 --- /dev/null +++ b/rules/magicmodules/google_compute_region_ssl_policy_invalid_min_tls_version.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule checks the pattern is valid +type GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleComputeRegionSslPolicyInvalidMinTlsVersionRule returns new rule with default attributes +func NewGoogleComputeRegionSslPolicyInvalidMinTlsVersionRule() *GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule { + return &GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule{ + resourceType: "google_compute_region_ssl_policy", + attributeName: "min_tls_version", + } +} + +// Name returns the rule name +func (r *GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule) Name() string { + return "google_compute_region_ssl_policy_invalid_min_tls_version" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleComputeRegionSslPolicyInvalidMinTlsVersionRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"TLS_1_0", "TLS_1_1", "TLS_1_2", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_compute_region_ssl_policy_invalid_profile.go b/rules/magicmodules/google_compute_region_ssl_policy_invalid_profile.go new file mode 100644 index 0000000..dec3ce7 --- /dev/null +++ b/rules/magicmodules/google_compute_region_ssl_policy_invalid_profile.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleComputeRegionSslPolicyInvalidProfileRule checks the pattern is valid +type GoogleComputeRegionSslPolicyInvalidProfileRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleComputeRegionSslPolicyInvalidProfileRule returns new rule with default attributes +func NewGoogleComputeRegionSslPolicyInvalidProfileRule() *GoogleComputeRegionSslPolicyInvalidProfileRule { + return &GoogleComputeRegionSslPolicyInvalidProfileRule{ + resourceType: "google_compute_region_ssl_policy", + attributeName: "profile", + } +} + +// Name returns the rule name +func (r *GoogleComputeRegionSslPolicyInvalidProfileRule) Name() string { + return "google_compute_region_ssl_policy_invalid_profile" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleComputeRegionSslPolicyInvalidProfileRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleComputeRegionSslPolicyInvalidProfileRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleComputeRegionSslPolicyInvalidProfileRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleComputeRegionSslPolicyInvalidProfileRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"COMPATIBLE", "MODERN", "RESTRICTED", "CUSTOM", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_data_pipeline_pipeline_invalid_state.go b/rules/magicmodules/google_data_pipeline_pipeline_invalid_state.go new file mode 100644 index 0000000..80d2ec6 --- /dev/null +++ b/rules/magicmodules/google_data_pipeline_pipeline_invalid_state.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleDataPipelinePipelineInvalidStateRule checks the pattern is valid +type GoogleDataPipelinePipelineInvalidStateRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleDataPipelinePipelineInvalidStateRule returns new rule with default attributes +func NewGoogleDataPipelinePipelineInvalidStateRule() *GoogleDataPipelinePipelineInvalidStateRule { + return &GoogleDataPipelinePipelineInvalidStateRule{ + resourceType: "google_data_pipeline_pipeline", + attributeName: "state", + } +} + +// Name returns the rule name +func (r *GoogleDataPipelinePipelineInvalidStateRule) Name() string { + return "google_data_pipeline_pipeline_invalid_state" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleDataPipelinePipelineInvalidStateRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleDataPipelinePipelineInvalidStateRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleDataPipelinePipelineInvalidStateRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleDataPipelinePipelineInvalidStateRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"STATE_UNSPECIFIED", "STATE_RESUMING", "STATE_ACTIVE", "STATE_STOPPING", "STATE_ARCHIVED", "STATE_PAUSED"}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_data_pipeline_pipeline_invalid_type.go b/rules/magicmodules/google_data_pipeline_pipeline_invalid_type.go new file mode 100644 index 0000000..52cdc6c --- /dev/null +++ b/rules/magicmodules/google_data_pipeline_pipeline_invalid_type.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleDataPipelinePipelineInvalidTypeRule checks the pattern is valid +type GoogleDataPipelinePipelineInvalidTypeRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleDataPipelinePipelineInvalidTypeRule returns new rule with default attributes +func NewGoogleDataPipelinePipelineInvalidTypeRule() *GoogleDataPipelinePipelineInvalidTypeRule { + return &GoogleDataPipelinePipelineInvalidTypeRule{ + resourceType: "google_data_pipeline_pipeline", + attributeName: "type", + } +} + +// Name returns the rule name +func (r *GoogleDataPipelinePipelineInvalidTypeRule) Name() string { + return "google_data_pipeline_pipeline_invalid_type" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleDataPipelinePipelineInvalidTypeRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleDataPipelinePipelineInvalidTypeRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleDataPipelinePipelineInvalidTypeRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleDataPipelinePipelineInvalidTypeRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"PIPELINE_TYPE_UNSPECIFIED", "PIPELINE_TYPE_BATCH", "PIPELINE_TYPE_STREAMING"}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_document_ai_warehouse_location_invalid_access_control_mode.go b/rules/magicmodules/google_document_ai_warehouse_location_invalid_access_control_mode.go new file mode 100644 index 0000000..6d51057 --- /dev/null +++ b/rules/magicmodules/google_document_ai_warehouse_location_invalid_access_control_mode.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule checks the pattern is valid +type GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule returns new rule with default attributes +func NewGoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule() *GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule { + return &GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule{ + resourceType: "google_document_ai_warehouse_location", + attributeName: "access_control_mode", + } +} + +// Name returns the rule name +func (r *GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule) Name() string { + return "google_document_ai_warehouse_location_invalid_access_control_mode" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"ACL_MODE_DOCUMENT_LEVEL_ACCESS_CONTROL_GCI", "ACL_MODE_DOCUMENT_LEVEL_ACCESS_CONTROL_BYOID", "ACL_MODE_UNIVERSAL_ACCESS"}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_document_ai_warehouse_location_invalid_database_type.go b/rules/magicmodules/google_document_ai_warehouse_location_invalid_database_type.go new file mode 100644 index 0000000..6c10224 --- /dev/null +++ b/rules/magicmodules/google_document_ai_warehouse_location_invalid_database_type.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule checks the pattern is valid +type GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule returns new rule with default attributes +func NewGoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule() *GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule { + return &GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule{ + resourceType: "google_document_ai_warehouse_location", + attributeName: "database_type", + } +} + +// Name returns the rule name +func (r *GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule) Name() string { + return "google_document_ai_warehouse_location_invalid_database_type" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"DB_INFRA_SPANNER", "DB_CLOUD_SQL_POSTGRES"}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_document_ai_warehouse_location_invalid_document_creator_default_role.go b/rules/magicmodules/google_document_ai_warehouse_location_invalid_document_creator_default_role.go new file mode 100644 index 0000000..d746b9b --- /dev/null +++ b/rules/magicmodules/google_document_ai_warehouse_location_invalid_document_creator_default_role.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule checks the pattern is valid +type GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule returns new rule with default attributes +func NewGoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule() *GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule { + return &GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule{ + resourceType: "google_document_ai_warehouse_location", + attributeName: "document_creator_default_role", + } +} + +// Name returns the rule name +func (r *GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule) Name() string { + return "google_document_ai_warehouse_location_invalid_document_creator_default_role" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"DOCUMENT_ADMIN", "DOCUMENT_EDITOR", "DOCUMENT_VIEWER", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_healthcare_fhir_store_invalid_complex_data_type_reference_parsing.go b/rules/magicmodules/google_healthcare_fhir_store_invalid_complex_data_type_reference_parsing.go new file mode 100644 index 0000000..1e61fe8 --- /dev/null +++ b/rules/magicmodules/google_healthcare_fhir_store_invalid_complex_data_type_reference_parsing.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule checks the pattern is valid +type GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule returns new rule with default attributes +func NewGoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule() *GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule { + return &GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule{ + resourceType: "google_healthcare_fhir_store", + attributeName: "complex_data_type_reference_parsing", + } +} + +// Name returns the rule name +func (r *GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule) Name() string { + return "google_healthcare_fhir_store_invalid_complex_data_type_reference_parsing" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"COMPLEX_DATA_TYPE_REFERENCE_PARSING_UNSPECIFIED", "DISABLED", "ENABLED", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_looker_instance_invalid_name.go b/rules/magicmodules/google_looker_instance_invalid_name.go new file mode 100644 index 0000000..d7cd30c --- /dev/null +++ b/rules/magicmodules/google_looker_instance_invalid_name.go @@ -0,0 +1,90 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleLookerInstanceInvalidNameRule checks the pattern is valid +type GoogleLookerInstanceInvalidNameRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleLookerInstanceInvalidNameRule returns new rule with default attributes +func NewGoogleLookerInstanceInvalidNameRule() *GoogleLookerInstanceInvalidNameRule { + return &GoogleLookerInstanceInvalidNameRule{ + resourceType: "google_looker_instance", + attributeName: "name", + } +} + +// Name returns the rule name +func (r *GoogleLookerInstanceInvalidNameRule) Name() string { + return "google_looker_instance_invalid_name" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleLookerInstanceInvalidNameRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleLookerInstanceInvalidNameRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleLookerInstanceInvalidNameRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleLookerInstanceInvalidNameRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validateRegexp(`^[a-z][a-z0-9-]{0,39}[a-z0-9]$`) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_looker_instance_invalid_platform_edition.go b/rules/magicmodules/google_looker_instance_invalid_platform_edition.go new file mode 100644 index 0000000..23d1ab5 --- /dev/null +++ b/rules/magicmodules/google_looker_instance_invalid_platform_edition.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleLookerInstanceInvalidPlatformEditionRule checks the pattern is valid +type GoogleLookerInstanceInvalidPlatformEditionRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleLookerInstanceInvalidPlatformEditionRule returns new rule with default attributes +func NewGoogleLookerInstanceInvalidPlatformEditionRule() *GoogleLookerInstanceInvalidPlatformEditionRule { + return &GoogleLookerInstanceInvalidPlatformEditionRule{ + resourceType: "google_looker_instance", + attributeName: "platform_edition", + } +} + +// Name returns the rule name +func (r *GoogleLookerInstanceInvalidPlatformEditionRule) Name() string { + return "google_looker_instance_invalid_platform_edition" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleLookerInstanceInvalidPlatformEditionRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleLookerInstanceInvalidPlatformEditionRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleLookerInstanceInvalidPlatformEditionRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleLookerInstanceInvalidPlatformEditionRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL", "LOOKER_MODELER", ""}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_network_security_address_group_invalid_type.go b/rules/magicmodules/google_network_security_address_group_invalid_type.go new file mode 100644 index 0000000..926d7e1 --- /dev/null +++ b/rules/magicmodules/google_network_security_address_group_invalid_type.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleNetworkSecurityAddressGroupInvalidTypeRule checks the pattern is valid +type GoogleNetworkSecurityAddressGroupInvalidTypeRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleNetworkSecurityAddressGroupInvalidTypeRule returns new rule with default attributes +func NewGoogleNetworkSecurityAddressGroupInvalidTypeRule() *GoogleNetworkSecurityAddressGroupInvalidTypeRule { + return &GoogleNetworkSecurityAddressGroupInvalidTypeRule{ + resourceType: "google_network_security_address_group", + attributeName: "type", + } +} + +// Name returns the rule name +func (r *GoogleNetworkSecurityAddressGroupInvalidTypeRule) Name() string { + return "google_network_security_address_group_invalid_type" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleNetworkSecurityAddressGroupInvalidTypeRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleNetworkSecurityAddressGroupInvalidTypeRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleNetworkSecurityAddressGroupInvalidTypeRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleNetworkSecurityAddressGroupInvalidTypeRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"IPV4", "IPV6"}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_network_security_gateway_security_policy_rule_invalid_basic_profile.go b/rules/magicmodules/google_network_security_gateway_security_policy_rule_invalid_basic_profile.go new file mode 100644 index 0000000..02a6717 --- /dev/null +++ b/rules/magicmodules/google_network_security_gateway_security_policy_rule_invalid_basic_profile.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule checks the pattern is valid +type GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule returns new rule with default attributes +func NewGoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule() *GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule { + return &GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule{ + resourceType: "google_network_security_gateway_security_policy_rule", + attributeName: "basic_profile", + } +} + +// Name returns the rule name +func (r *GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule) Name() string { + return "google_network_security_gateway_security_policy_rule_invalid_basic_profile" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"BASIC_PROFILE_UNSPECIFIED", "ALLOW", "DENY"}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/google_network_services_gateway_invalid_type.go b/rules/magicmodules/google_network_services_gateway_invalid_type.go new file mode 100644 index 0000000..742e327 --- /dev/null +++ b/rules/magicmodules/google_network_services_gateway_invalid_type.go @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package magicmodules + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/terraform-linters/tflint-plugin-sdk/hclext" + "github.com/terraform-linters/tflint-plugin-sdk/tflint" +) + +// GoogleNetworkServicesGatewayInvalidTypeRule checks the pattern is valid +type GoogleNetworkServicesGatewayInvalidTypeRule struct { + tflint.DefaultRule + + resourceType string + attributeName string +} + +// NewGoogleNetworkServicesGatewayInvalidTypeRule returns new rule with default attributes +func NewGoogleNetworkServicesGatewayInvalidTypeRule() *GoogleNetworkServicesGatewayInvalidTypeRule { + return &GoogleNetworkServicesGatewayInvalidTypeRule{ + resourceType: "google_network_services_gateway", + attributeName: "type", + } +} + +// Name returns the rule name +func (r *GoogleNetworkServicesGatewayInvalidTypeRule) Name() string { + return "google_network_services_gateway_invalid_type" +} + +// Enabled returns whether the rule is enabled by default +func (r *GoogleNetworkServicesGatewayInvalidTypeRule) Enabled() bool { + return true +} + +// Severity returns the rule severity +func (r *GoogleNetworkServicesGatewayInvalidTypeRule) Severity() tflint.Severity { + return tflint.ERROR +} + +// Link returns the rule reference link +func (r *GoogleNetworkServicesGatewayInvalidTypeRule) Link() string { + return "" +} + +// Check checks the pattern is valid +func (r *GoogleNetworkServicesGatewayInvalidTypeRule) Check(runner tflint.Runner) error { + resources, err := runner.GetResourceContent(r.resourceType, &hclext.BodySchema{ + Attributes: []hclext.AttributeSchema{{Name: r.attributeName}}, + }, nil) + if err != nil { + return err + } + + for _, resource := range resources.Blocks { + attribute, exists := resource.Body.Attributes[r.attributeName] + if !exists { + continue + } + + err := runner.EvaluateExpr(attribute.Expr, func(val string) error { + validateFunc := validation.StringInSlice([]string{"TYPE_UNSPECIFIED", "OPEN_MESH", "SECURE_WEB_GATEWAY"}, false) + + _, errors := validateFunc(val, r.attributeName) + for _, err := range errors { + if err := runner.EmitIssue(r, err.Error(), attribute.Expr.Range()); err != nil { + return err + } + } + return nil + }, nil) + if err != nil { + return err + } + } + + return nil +} diff --git a/rules/magicmodules/product.go b/rules/magicmodules/product.go index baa1fde..359e0e7 100644 --- a/rules/magicmodules/product.go +++ b/rules/magicmodules/product.go @@ -27,707 +27,747 @@ type APIReference struct { // Products is a list of Google API products defined in `magic-modules/products/*/api.yaml` var Products = map[string]Product{ - "google_folder_access_approval_settings": { + "google_compute_address": { APIsRequired: []APIReference{ - {Name: "Access Approval", URL: "https://console.cloud.google.com/apis/library/accessapproval.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_organization_access_approval_settings": { + "google_compute_autoscaler": { APIsRequired: []APIReference{ - {Name: "Access Approval", URL: "https://console.cloud.google.com/apis/library/accessapproval.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_project_access_approval_settings": { + "google_compute_backend_bucket": { APIsRequired: []APIReference{ - {Name: "Access Approval", URL: "https://console.cloud.google.com/apis/library/accessapproval.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_access_context_manager_access_level": { - APIsRequired: []APIReference{}, - }, - "google_access_context_manager_access_level_condition": { - APIsRequired: []APIReference{}, - }, - "google_access_context_manager_access_levels": { - APIsRequired: []APIReference{}, - }, - "google_access_context_manager_access_policy": { - APIsRequired: []APIReference{}, + "google_compute_backend_bucket_signed_url_key": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_authorized_orgs_desc": { - APIsRequired: []APIReference{}, + "google_compute_backend_service": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_egress_policy": { - APIsRequired: []APIReference{}, + "google_compute_backend_service_signed_url_key": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_gcp_user_access_binding": { - APIsRequired: []APIReference{}, + "google_compute_disk": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_ingress_policy": { - APIsRequired: []APIReference{}, + "google_compute_disk_resource_policy_attachment": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_service_perimeter": { - APIsRequired: []APIReference{}, + "google_compute_external_vpn_gateway": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_service_perimeter_egress_policy": { - APIsRequired: []APIReference{}, + "google_compute_firewall": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_service_perimeter_ingress_policy": { - APIsRequired: []APIReference{}, + "google_compute_forwarding_rule": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_service_perimeter_resource": { - APIsRequired: []APIReference{}, + "google_compute_global_address": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_access_context_manager_service_perimeters": { - APIsRequired: []APIReference{}, + "google_compute_global_forwarding_rule": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_active_directory_domain": { - APIsRequired: []APIReference{}, + "google_compute_global_network_endpoint": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_active_directory_domain_trust": { - APIsRequired: []APIReference{}, + "google_compute_global_network_endpoint_group": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_alloydb_backup": { + "google_compute_health_check": { APIsRequired: []APIReference{ - {Name: "AlloyDB API", URL: "https://console.cloud.google.com/apis/library/alloydb.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_alloydb_cluster": { + "google_compute_http_health_check": { APIsRequired: []APIReference{ - {Name: "AlloyDB API", URL: "https://console.cloud.google.com/apis/library/alloydb.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_alloydb_instance": { + "google_compute_https_health_check": { APIsRequired: []APIReference{ - {Name: "AlloyDB API", URL: "https://console.cloud.google.com/apis/library/alloydb.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_addons_config": { + "google_compute_image": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_endpoint_attachment": { + "google_compute_instance_group_named_port": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_env_keystore": { + "google_compute_interconnect_attachment": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_env_references": { + "google_compute_managed_ssl_certificate": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_envgroup": { + "google_compute_network": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_envgroup_attachment": { + "google_compute_network_endpoint": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_environment": { + "google_compute_network_endpoint_group": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_instance": { + "google_compute_network_endpoints": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_instance_attachment": { + "google_compute_network_peering_routes_config": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_keystores_aliases_self_signed_cert": { + "google_compute_node_group": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_nat_address": { + "google_compute_node_template": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_organization": { + "google_compute_packet_mirroring": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_apigee_sync_authorization": { + "google_compute_per_instance_config": { APIsRequired: []APIReference{ - {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_app_engine_application_url_dispatch_rules": { + "google_compute_public_advertised_prefix": { APIsRequired: []APIReference{ - {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_app_engine_domain_mapping": { + "google_compute_public_delegated_prefix": { APIsRequired: []APIReference{ - {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_app_engine_firewall_rule": { + "google_compute_region_autoscaler": { APIsRequired: []APIReference{ - {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_app_engine_flexible_app_version": { + "google_compute_region_backend_service": { APIsRequired: []APIReference{ - {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_app_engine_service_network_settings": { + "google_compute_region_commitment": { APIsRequired: []APIReference{ - {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_app_engine_service_split_traffic": { + "google_compute_region_disk": { APIsRequired: []APIReference{ - {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_app_engine_standard_app_version": { + "google_compute_region_disk_resource_policy_attachment": { APIsRequired: []APIReference{ - {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_artifact_registry_repository": { + "google_compute_region_health_check": { APIsRequired: []APIReference{ - {Name: "Artifact Registry API", URL: "https://console.cloud.google.com/apis/library/artifactregistry.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_beyondcorp_app_connection": { + "google_compute_region_network_endpoint_group": { APIsRequired: []APIReference{ - {Name: "Beyondcorp API", URL: "https://console.cloud.google.com/apis/library/beyondcorp.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_beyondcorp_app_connector": { + "google_compute_region_per_instance_config": { APIsRequired: []APIReference{ - {Name: "Beyondcorp API", URL: "https://console.cloud.google.com/apis/library/beyondcorp.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_beyondcorp_app_gateway": { + "google_compute_region_ssl_certificate": { APIsRequired: []APIReference{ - {Name: "Beyondcorp API", URL: "https://console.cloud.google.com/apis/library/beyondcorp.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_big_query_dataset": { + "google_compute_region_ssl_policy": { APIsRequired: []APIReference{ - {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_big_query_dataset_access": { + "google_compute_region_target_http_proxy": { APIsRequired: []APIReference{ - {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_big_query_job": { + "google_compute_region_target_https_proxy": { APIsRequired: []APIReference{ - {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_big_query_routine": { + "google_compute_region_target_tcp_proxy": { APIsRequired: []APIReference{ - {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigquery_analytics_hub_data_exchange": { + "google_compute_region_url_map": { APIsRequired: []APIReference{ - {Name: "Bigquery Analytics Hub API", URL: "https://console.cloud.google.com/apis/library/analyticshub.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigquery_analytics_hub_listing": { + "google_compute_reservation": { APIsRequired: []APIReference{ - {Name: "Bigquery Analytics Hub API", URL: "https://console.cloud.google.com/apis/library/analyticshub.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigquery_connection_connection": { + "google_compute_resource_policy": { APIsRequired: []APIReference{ - {Name: "BigQueryConnection API", URL: "https://console.cloud.google.com/apis/api/bigqueryconnection.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigquery_datapolicy_data_policy": { + "google_compute_route": { APIsRequired: []APIReference{ - {Name: "BigQuery Data Policy API", URL: "https://console.cloud.google.com/apis/library/bigquerydatapolicy.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigquery_data_transfer_config": { + "google_compute_router": { APIsRequired: []APIReference{ - {Name: "BigQueryDataTransfer API", URL: "https://console.cloud.google.com/apis/api/bigquerydatatransfer.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigquery_reservation_capacity_commitment": { + "google_compute_router_peer": { APIsRequired: []APIReference{ - {Name: "BigQueryReservation API", URL: "https://console.cloud.google.com/apis/api/bigqueryreservation.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigquery_reservation_reservation": { + "google_compute_router_nat": { APIsRequired: []APIReference{ - {Name: "BigQueryReservation API", URL: "https://console.cloud.google.com/apis/api/bigqueryreservation.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_bigtable_app_profile": { + "google_compute_service_attachment": { APIsRequired: []APIReference{ - {Name: "Bigtable API", URL: "https://console.cloud.google.com/apis/library/bigtable.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_billing_budget": { + "google_compute_snapshot": { APIsRequired: []APIReference{ - {Name: "Billing Budget", URL: "https://console.cloud.google.com/apis/library/billingbudgets.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_binary_authorization_attestor": { - APIsRequired: []APIReference{}, + "google_compute_ssl_certificate": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_binary_authorization_policy": { - APIsRequired: []APIReference{}, + "google_compute_ssl_policy": { + APIsRequired: []APIReference{ + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + }, }, - "google_certificate_manager_certificate": { + "google_compute_subnetwork": { APIsRequired: []APIReference{ - {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_certificate_manager_certificate_issuance_config": { + "google_compute_target_grpc_proxy": { APIsRequired: []APIReference{ - {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_certificate_manager_certificate_map": { + "google_compute_target_http_proxy": { APIsRequired: []APIReference{ - {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_certificate_manager_certificate_map_entry": { + "google_compute_target_https_proxy": { APIsRequired: []APIReference{ - {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_certificate_manager_dns_authorization": { + "google_compute_target_instance": { APIsRequired: []APIReference{ - {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_cloud_asset_folder_feed": { + "google_compute_target_ssl_proxy": { APIsRequired: []APIReference{ - {Name: "Cloud Asset API", URL: "https://console.cloud.google.com/apis/library/cloudasset.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_cloud_asset_organization_feed": { + "google_compute_target_tcp_proxy": { APIsRequired: []APIReference{ - {Name: "Cloud Asset API", URL: "https://console.cloud.google.com/apis/library/cloudasset.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_cloud_asset_project_feed": { + "google_compute_vpn_gateway": { APIsRequired: []APIReference{ - {Name: "Cloud Asset API", URL: "https://console.cloud.google.com/apis/library/cloudasset.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_cloud_build_bitbucket_server_config": { + "google_compute_url_map": { APIsRequired: []APIReference{ - {Name: "Cloud Build API", URL: "https://console.cloud.google.com/apis/library/cloudbuild.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_cloud_build_trigger": { + "google_compute_ha_vpn_gateway": { APIsRequired: []APIReference{ - {Name: "Cloud Build API", URL: "https://console.cloud.google.com/apis/library/cloudbuild.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_cloudfunctions2_function": { + "google_compute_vpn_tunnel": { APIsRequired: []APIReference{ - {Name: "Cloud Functions API", URL: "https://console.cloud.google.com/apis/library/cloudfunctions.googleapis.com/"}, + {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, }, }, - "google_cloud_identity_group": { + "google_folder_access_approval_settings": { APIsRequired: []APIReference{ - {Name: "Cloud Identity API", URL: "https://console.cloud.google.com/apis/api/cloudidentity.googleapis.com/overview"}, + {Name: "Access Approval", URL: "https://console.cloud.google.com/apis/library/accessapproval.googleapis.com/"}, }, }, - "google_cloud_identity_group_membership": { + "google_organization_access_approval_settings": { APIsRequired: []APIReference{ - {Name: "Cloud Identity API", URL: "https://console.cloud.google.com/apis/api/cloudidentity.googleapis.com/overview"}, + {Name: "Access Approval", URL: "https://console.cloud.google.com/apis/library/accessapproval.googleapis.com/"}, }, }, - "google_cloud_ids_endpoint": { + "google_project_access_approval_settings": { APIsRequired: []APIReference{ - {Name: "Cloud Intrusion Detection Service (IDS) API", URL: "https://console.cloud.google.com/apis/library/ids.googleapis.com/"}, + {Name: "Access Approval", URL: "https://console.cloud.google.com/apis/library/accessapproval.googleapis.com/"}, }, }, - "google_cloud_iot_device": { + "google_access_context_manager_access_level": { APIsRequired: []APIReference{}, }, - "google_cloudiot_registry": { + "google_access_context_manager_access_level_condition": { APIsRequired: []APIReference{}, }, - "google_cloud_run_domain_mapping": { + "google_access_context_manager_access_levels": { APIsRequired: []APIReference{}, }, - "google_cloud_run_service": { + "google_access_context_manager_access_policy": { APIsRequired: []APIReference{}, }, - "google_cloud_run_v2_job": { - APIsRequired: []APIReference{ - {Name: "Cloud Run API", URL: "https://console.cloud.google.com/apis/library/run.googleapis.com/"}, - }, + "google_access_context_manager_authorized_orgs_desc": { + APIsRequired: []APIReference{}, }, - "google_cloud_run_v2_service": { - APIsRequired: []APIReference{ - {Name: "Cloud Run API", URL: "https://console.cloud.google.com/apis/library/run.googleapis.com/"}, - }, + "google_access_context_manager_egress_policy": { + APIsRequired: []APIReference{}, }, - "google_cloud_scheduler_job": { - APIsRequired: []APIReference{ - {Name: "Cloud Scheduler", URL: "https://console.cloud.google.com/apis/library/cloudscheduler.googleapis.com/"}, - }, + "google_access_context_manager_gcp_user_access_binding": { + APIsRequired: []APIReference{}, }, - "google_cloud_tasks_queue": { - APIsRequired: []APIReference{ - {Name: "Cloud Tasks", URL: "https://console.cloud.google.com/apis/library/cloudtasks.googleapis.com/"}, - }, + "google_access_context_manager_ingress_policy": { + APIsRequired: []APIReference{}, }, - "google_compute_address": { - APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, - }, + "google_access_context_manager_service_perimeter": { + APIsRequired: []APIReference{}, }, - "google_compute_autoscaler": { - APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, - }, + "google_access_context_manager_service_perimeter_egress_policy": { + APIsRequired: []APIReference{}, }, - "google_compute_backend_bucket": { + "google_access_context_manager_service_perimeter_ingress_policy": { + APIsRequired: []APIReference{}, + }, + "google_access_context_manager_service_perimeter_resource": { + APIsRequired: []APIReference{}, + }, + "google_access_context_manager_service_perimeters": { + APIsRequired: []APIReference{}, + }, + "google_active_directory_domain": { + APIsRequired: []APIReference{}, + }, + "google_active_directory_domain_trust": { + APIsRequired: []APIReference{}, + }, + "google_alloydb_backup": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "AlloyDB API", URL: "https://console.cloud.google.com/apis/library/alloydb.googleapis.com"}, }, }, - "google_compute_backend_bucket_signed_url_key": { + "google_alloydb_cluster": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "AlloyDB API", URL: "https://console.cloud.google.com/apis/library/alloydb.googleapis.com"}, }, }, - "google_compute_backend_service": { + "google_alloydb_instance": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "AlloyDB API", URL: "https://console.cloud.google.com/apis/library/alloydb.googleapis.com"}, }, }, - "google_compute_backend_service_signed_url_key": { + "google_apigee_addons_config": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_disk": { + "google_apigee_endpoint_attachment": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_disk_resource_policy_attachment": { + "google_apigee_env_keystore": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_external_vpn_gateway": { + "google_apigee_env_references": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_firewall": { + "google_apigee_envgroup": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_forwarding_rule": { + "google_apigee_envgroup_attachment": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_global_address": { + "google_apigee_environment": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_global_forwarding_rule": { + "google_apigee_instance": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_global_network_endpoint": { + "google_apigee_instance_attachment": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_global_network_endpoint_group": { + "google_apigee_keystores_aliases_self_signed_cert": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_health_check": { + "google_apigee_nat_address": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_http_health_check": { + "google_apigee_organization": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_https_health_check": { + "google_apigee_sync_authorization": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_image": { + "google_apigee_target_server": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Apigee API", URL: "https://console.cloud.google.com/apis/library/apigee.googleapis.com/"}, }, }, - "google_compute_instance_group_named_port": { + "google_app_engine_application_url_dispatch_rules": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, }, }, - "google_compute_interconnect_attachment": { + "google_app_engine_domain_mapping": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, }, }, - "google_compute_managed_ssl_certificate": { + "google_app_engine_firewall_rule": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, }, }, - "google_compute_network": { + "google_app_engine_flexible_app_version": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, }, }, - "google_compute_network_endpoint": { + "google_app_engine_service_network_settings": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, }, }, - "google_compute_network_endpoint_group": { + "google_app_engine_service_split_traffic": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, }, }, - "google_compute_network_endpoints": { + "google_app_engine_standard_app_version": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "App Engine Admin API", URL: "https://console.cloud.google.com/apis/library/appengine.googleapis.com/"}, }, }, - "google_compute_network_peering_routes_config": { + "google_artifact_registry_repository": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Artifact Registry API", URL: "https://console.cloud.google.com/apis/library/artifactregistry.googleapis.com/"}, }, }, - "google_compute_node_group": { + "google_beyondcorp_app_connection": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Beyondcorp API", URL: "https://console.cloud.google.com/apis/library/beyondcorp.googleapis.com/"}, }, }, - "google_compute_node_template": { + "google_beyondcorp_app_connector": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Beyondcorp API", URL: "https://console.cloud.google.com/apis/library/beyondcorp.googleapis.com/"}, }, }, - "google_compute_packet_mirroring": { + "google_beyondcorp_app_gateway": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Beyondcorp API", URL: "https://console.cloud.google.com/apis/library/beyondcorp.googleapis.com/"}, }, }, - "google_compute_per_instance_config": { + "google_biglake_catalog": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigLake API", URL: "https://console.cloud.google.com/apis/library/biglake.googleapis.com/"}, }, }, - "google_compute_public_advertised_prefix": { + "google_biglake_database": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigLake API", URL: "https://console.cloud.google.com/apis/library/biglake.googleapis.com/"}, }, }, - "google_compute_public_delegated_prefix": { + "google_biglake_table": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigLake API", URL: "https://console.cloud.google.com/apis/library/biglake.googleapis.com/"}, }, }, - "google_compute_region_autoscaler": { + "google_big_query_dataset": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, }, }, - "google_compute_region_backend_service": { + "google_big_query_dataset_access": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, }, }, - "google_compute_region_commitment": { + "google_big_query_job": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, }, }, - "google_compute_region_disk": { + "google_big_query_routine": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQuery API", URL: "https://console.cloud.google.com/apis/library/bigquery.googleapis.com/"}, }, }, - "google_compute_region_disk_resource_policy_attachment": { + "google_bigquery_analytics_hub_data_exchange": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Bigquery Analytics Hub API", URL: "https://console.cloud.google.com/apis/library/analyticshub.googleapis.com/"}, }, }, - "google_compute_region_health_check": { + "google_bigquery_analytics_hub_listing": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Bigquery Analytics Hub API", URL: "https://console.cloud.google.com/apis/library/analyticshub.googleapis.com/"}, }, }, - "google_compute_region_network_endpoint_group": { + "google_bigquery_connection_connection": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQueryConnection API", URL: "https://console.cloud.google.com/apis/api/bigqueryconnection.googleapis.com/"}, }, }, - "google_compute_region_per_instance_config": { + "google_bigquery_datapolicy_data_policy": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQuery Data Policy API", URL: "https://console.cloud.google.com/apis/library/bigquerydatapolicy.googleapis.com/"}, }, }, - "google_compute_region_ssl_certificate": { + "google_bigquery_data_transfer_config": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQueryDataTransfer API", URL: "https://console.cloud.google.com/apis/api/bigquerydatatransfer.googleapis.com/"}, }, }, - "google_compute_region_target_http_proxy": { + "google_bigquery_reservation_bi_reservation": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQueryReservation API", URL: "https://console.cloud.google.com/apis/api/bigqueryreservation.googleapis.com/"}, }, }, - "google_compute_region_target_https_proxy": { + "google_bigquery_reservation_capacity_commitment": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQueryReservation API", URL: "https://console.cloud.google.com/apis/api/bigqueryreservation.googleapis.com/"}, }, }, - "google_compute_region_target_tcp_proxy": { + "google_bigquery_reservation_reservation": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "BigQueryReservation API", URL: "https://console.cloud.google.com/apis/api/bigqueryreservation.googleapis.com/"}, }, }, - "google_compute_region_url_map": { + "google_bigtable_app_profile": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Bigtable API", URL: "https://console.cloud.google.com/apis/library/bigtable.googleapis.com/"}, }, }, - "google_compute_reservation": { + "google_core_billing_project_info": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Billing", URL: "https://console.cloud.google.com/apis/library/cloudbilling.googleapis.com/"}, }, }, - "google_compute_resource_policy": { + "google_billing_budget": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Billing Budget", URL: "https://console.cloud.google.com/apis/library/billingbudgets.googleapis.com/"}, }, }, - "google_compute_route": { + "google_binary_authorization_attestor": { + APIsRequired: []APIReference{}, + }, + "google_binary_authorization_policy": { + APIsRequired: []APIReference{}, + }, + "google_certificate_manager_certificate": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, }, }, - "google_compute_router": { + "google_certificate_manager_certificate_issuance_config": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, }, }, - "google_compute_router_peer": { + "google_certificate_manager_certificate_map": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, }, }, - "google_compute_router_nat": { + "google_certificate_manager_certificate_map_entry": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, }, }, - "google_compute_service_attachment": { + "google_certificate_manager_dns_authorization": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, }, }, - "google_compute_snapshot": { + "google_certificate_manager_trust_config": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com"}, }, }, - "google_compute_ssl_certificate": { + "google_cloud_asset_folder_feed": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Asset API", URL: "https://console.cloud.google.com/apis/library/cloudasset.googleapis.com/"}, }, }, - "google_compute_ssl_policy": { + "google_cloud_asset_organization_feed": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Asset API", URL: "https://console.cloud.google.com/apis/library/cloudasset.googleapis.com/"}, }, }, - "google_compute_subnetwork": { + "google_cloud_asset_project_feed": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Asset API", URL: "https://console.cloud.google.com/apis/library/cloudasset.googleapis.com/"}, }, }, - "google_compute_target_grpc_proxy": { + "google_cloud_build_bitbucket_server_config": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Build API", URL: "https://console.cloud.google.com/apis/library/cloudbuild.googleapis.com/"}, }, }, - "google_compute_target_http_proxy": { + "google_cloud_build_trigger": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Build API", URL: "https://console.cloud.google.com/apis/library/cloudbuild.googleapis.com/"}, }, }, - "google_compute_target_https_proxy": { + "google_cloudfunctions2_function": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Functions API", URL: "https://console.cloud.google.com/apis/library/cloudfunctions.googleapis.com/"}, }, }, - "google_compute_target_instance": { + "google_cloud_identity_group": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Identity API", URL: "https://console.cloud.google.com/apis/api/cloudidentity.googleapis.com/overview"}, }, }, - "google_compute_target_ssl_proxy": { + "google_cloud_identity_group_membership": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Identity API", URL: "https://console.cloud.google.com/apis/api/cloudidentity.googleapis.com/overview"}, }, }, - "google_compute_target_tcp_proxy": { + "google_cloud_ids_endpoint": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Intrusion Detection Service (IDS) API", URL: "https://console.cloud.google.com/apis/library/ids.googleapis.com/"}, }, }, - "google_compute_vpn_gateway": { + "google_cloud_iot_device": { + APIsRequired: []APIReference{}, + }, + "google_cloudiot_registry": { + APIsRequired: []APIReference{}, + }, + "google_cloud_run_domain_mapping": { + APIsRequired: []APIReference{}, + }, + "google_cloud_run_service": { + APIsRequired: []APIReference{}, + }, + "google_cloud_run_v2_job": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Run API", URL: "https://console.cloud.google.com/apis/library/run.googleapis.com/"}, }, }, - "google_compute_url_map": { + "google_cloud_run_v2_service": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Run API", URL: "https://console.cloud.google.com/apis/library/run.googleapis.com/"}, }, }, - "google_compute_ha_vpn_gateway": { + "google_cloud_scheduler_job": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Scheduler", URL: "https://console.cloud.google.com/apis/library/cloudscheduler.googleapis.com/"}, }, }, - "google_compute_vpn_tunnel": { + "google_cloud_tasks_queue": { APIsRequired: []APIReference{ - {Name: "Compute Engine API", URL: "https://console.cloud.google.com/apis/library/compute.googleapis.com/"}, + {Name: "Cloud Tasks", URL: "https://console.cloud.google.com/apis/library/cloudtasks.googleapis.com/"}, }, }, "google_container_analysis_note": { @@ -779,9 +819,17 @@ var Products = map[string]Product{ {Name: "Cloud Data Fusion API", URL: "https://console.cloud.google.com/apis/library/datafusion.googleapis.com"}, }, }, + "google_data_pipeline_pipeline": { + APIsRequired: []APIReference{}, + }, "google_dataplex_datascan": { APIsRequired: []APIReference{ - {Name: "Cloud Dataplex API", URL: "https://cloud.google.com/dataplex/docs/reference/rest/"}, + {Name: "Cloud Dataplex API", URL: "https://console.cloud.google.com/apis/library/dataplex.googleapis.com"}, + }, + }, + "google_dataplex_task": { + APIsRequired: []APIReference{ + {Name: "Cloud Dataplex API", URL: "https://console.cloud.google.com/apis/library/dataplex.googleapis.com"}, }, }, "google_dataproc_autoscaling_policy": { @@ -886,6 +934,16 @@ var Products = map[string]Product{ {Name: "Google Cloud DNS API", URL: "https://console.cloud.google.com/apis/library/dns.googleapis.com/"}, }, }, + "google_dns_response_policy": { + APIsRequired: []APIReference{ + {Name: "Google Cloud DNS API", URL: "https://console.cloud.google.com/apis/library/dns.googleapis.com/"}, + }, + }, + "google_dns_response_policy_rule": { + APIsRequired: []APIReference{ + {Name: "Google Cloud DNS API", URL: "https://console.cloud.google.com/apis/library/dns.googleapis.com/"}, + }, + }, "google_document_ai_processor": { APIsRequired: []APIReference{ {Name: "Document AI API", URL: "https://console.cloud.google.com/apis/api/documentai.googleapis.com/overview"}, @@ -896,6 +954,16 @@ var Products = map[string]Product{ {Name: "Document AI API", URL: "https://console.cloud.google.com/apis/api/documentai.googleapis.com/overview"}, }, }, + "google_document_ai_warehouse_document_schema": { + APIsRequired: []APIReference{ + {Name: "Document AI Warehouse API", URL: "https://console.cloud.google.com/apis/library/contentwarehouse.googleapis.com/"}, + }, + }, + "google_document_ai_warehouse_location": { + APIsRequired: []APIReference{ + {Name: "Document AI Warehouse API", URL: "https://console.cloud.google.com/apis/library/contentwarehouse.googleapis.com/"}, + }, + }, "google_essential_contacts_contact": { APIsRequired: []APIReference{ {Name: "Essential Contacts API", URL: "https://console.cloud.google.com/apis/api/essentialcontacts.googleapis.com/overview"}, @@ -960,6 +1028,26 @@ var Products = map[string]Product{ {Name: "GKEHub API", URL: "https://console.cloud.google.com/apis/library/gkehub.googleapis.com"}, }, }, + "google_gke_hub2_membership_binding": { + APIsRequired: []APIReference{ + {Name: "GKEHub API", URL: "https://console.cloud.google.com/apis/library/gkehub.googleapis.com"}, + }, + }, + "google_gke_hub2_namespace": { + APIsRequired: []APIReference{ + {Name: "GKEHub API", URL: "https://console.cloud.google.com/apis/library/gkehub.googleapis.com"}, + }, + }, + "google_gke_hub2_scope": { + APIsRequired: []APIReference{ + {Name: "GKEHub API", URL: "https://console.cloud.google.com/apis/library/gkehub.googleapis.com"}, + }, + }, + "google_gke_hub2_scope_rbac_role_binding": { + APIsRequired: []APIReference{ + {Name: "GKEHub API", URL: "https://console.cloud.google.com/apis/library/gkehub.googleapis.com"}, + }, + }, "google_healthcare_consent_store": { APIsRequired: []APIReference{ {Name: "Cloud Healthcare API", URL: "https://console.cloud.google.com/apis/library/healthcare.googleapis.com/"}, @@ -990,6 +1078,11 @@ var Products = map[string]Product{ {Name: "Identity and Access Management (IAM) API", URL: "https://console.cloud.google.com/apis/library/iam.googleapis.com/"}, }, }, + "google_iam2_deny_policy": { + APIsRequired: []APIReference{ + {Name: "Identity and Access Management (IAM) API", URL: "https://console.cloud.google.com/apis/library/iam.googleapis.com/"}, + }, + }, "google_iam_beta_workload_identity_pool": { APIsRequired: []APIReference{ {Name: "Identity and Access Management (IAM) API", URL: "https://console.cloud.google.com/apis/library/iam.googleapis.com/"}, @@ -1105,6 +1198,11 @@ var Products = map[string]Product{ {Name: "Stackdriver Logging API", URL: "https://console.cloud.google.com/apis/library/logging.googleapis.com/"}, }, }, + "google_looker_instance": { + APIsRequired: []APIReference{ + {Name: "Looker API", URL: "https://console.cloud.google.com/apis/library/looker.googleapis.com/"}, + }, + }, "google_memcache_instance": { APIsRequired: []APIReference{}, }, @@ -1138,6 +1236,11 @@ var Products = map[string]Product{ {Name: "Stackdriver Monitoring API", URL: "https://console.cloud.google.com/apis/library/monitoring.googleapis.com/"}, }, }, + "google_monitoring_monitored_project": { + APIsRequired: []APIReference{ + {Name: "Stackdriver Monitoring API", URL: "https://console.cloud.google.com/apis/library/monitoring.googleapis.com/"}, + }, + }, "google_monitoring_notification_channel": { APIsRequired: []APIReference{ {Name: "Stackdriver Monitoring API", URL: "https://console.cloud.google.com/apis/library/monitoring.googleapis.com/"}, @@ -1158,11 +1261,36 @@ var Products = map[string]Product{ {Name: "Stackdriver Monitoring API", URL: "https://console.cloud.google.com/apis/library/monitoring.googleapis.com/"}, }, }, + "google_network_connectivity_service_connection_policy": { + APIsRequired: []APIReference{ + {Name: "Network Connectivity API", URL: "https://console.cloud.google.com/apis/library/networkconnectivity.googleapis.com/"}, + }, + }, "google_network_management_connectivity_test": { APIsRequired: []APIReference{ {Name: "Network Management API", URL: "https://console.cloud.google.com/apis/library/networkmanagement.googleapis.com/"}, }, }, + "google_network_security_address_group": { + APIsRequired: []APIReference{ + {Name: "Network Security API", URL: "https://console.cloud.google.com/apis/library/networksecurity.googleapis.com"}, + }, + }, + "google_network_security_gateway_security_policy": { + APIsRequired: []APIReference{ + {Name: "Network Security API", URL: "https://console.cloud.google.com/apis/library/networksecurity.googleapis.com"}, + }, + }, + "google_network_security_gateway_security_policy_rule": { + APIsRequired: []APIReference{ + {Name: "Network Security API", URL: "https://console.cloud.google.com/apis/library/networksecurity.googleapis.com"}, + }, + }, + "google_network_security_url_lists": { + APIsRequired: []APIReference{ + {Name: "Network Security API", URL: "https://console.cloud.google.com/apis/library/networksecurity.googleapis.com"}, + }, + }, "google_network_services_edge_cache_keyset": { APIsRequired: []APIReference{ {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/networkservices.googleapis.com"}, @@ -1178,6 +1306,11 @@ var Products = map[string]Product{ {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/networkservices.googleapis.com"}, }, }, + "google_network_services_gateway": { + APIsRequired: []APIReference{ + {Name: "Network Services API", URL: "https://console.cloud.google.com/apis/library/networkservices.googleapis.com"}, + }, + }, "google_notebooks_environment": { APIsRequired: []APIReference{ {Name: "Cloud Notebooks API", URL: "https://console.cloud.google.com/apis/api/notebooks.googleapis.com"}, @@ -1223,6 +1356,11 @@ var Products = map[string]Product{ {Name: "Certificate Authority API", URL: "https://console.cloud.google.com/apis/api/privateca.googleapis.com"}, }, }, + "google_public_ca_external_account_key": { + APIsRequired: []APIReference{ + {Name: "Public Certificate Authority API", URL: "https://console.cloud.google.com/apis/library/publicca.googleapis.com"}, + }, + }, "google_pubsub_schema": { APIsRequired: []APIReference{ {Name: "Cloud Pub/Sub API", URL: "https://console.cloud.google.com/apis/library/pubsub.googleapis.com/"}, diff --git a/rules/magicmodules/provider.go b/rules/magicmodules/provider.go index a986caf..bd029d4 100644 --- a/rules/magicmodules/provider.go +++ b/rules/magicmodules/provider.go @@ -32,6 +32,7 @@ var Rules = []tflint.Rule{ NewGoogleApigeeEnvironmentInvalidDeploymentTypeRule(), NewGoogleApigeeOrganizationInvalidRetentionRule(), NewGoogleApigeeOrganizationInvalidRuntimeTypeRule(), + NewGoogleApigeeTargetServerInvalidProtocolRule(), NewGoogleAppEngineDomainMappingInvalidOverrideStrategyRule(), NewGoogleAppEngineFirewallRuleInvalidActionRule(), NewGoogleAppEngineFlexibleAppVersionInvalidServingStatusRule(), @@ -41,6 +42,7 @@ var Rules = []tflint.Rule{ NewGoogleBigQueryRoutineInvalidDeterminismLevelRule(), NewGoogleBigQueryRoutineInvalidLanguageRule(), NewGoogleBigQueryRoutineInvalidRoutineTypeRule(), + NewGoogleBiglakeTableInvalidTypeRule(), NewGoogleBigqueryDatapolicyDataPolicyInvalidDataPolicyTypeRule(), NewGoogleBinaryAuthorizationPolicyInvalidGlobalPolicyEvaluationModeRule(), NewGoogleCertificateManagerCertificateIssuanceConfigInvalidKeyAlgorithmRule(), @@ -56,6 +58,8 @@ var Rules = []tflint.Rule{ NewGoogleCloudRunV2ServiceInvalidLaunchStageRule(), NewGoogleCloudiotRegistryInvalidLogLevelRule(), NewGoogleComputeAddressInvalidAddressTypeRule(), + NewGoogleComputeAddressInvalidIpVersionRule(), + NewGoogleComputeAddressInvalidIpv6EndpointTypeRule(), NewGoogleComputeAddressInvalidNameRule(), NewGoogleComputeAddressInvalidNetworkTierRule(), NewGoogleComputeBackendBucketInvalidCompressionModeRule(), @@ -70,6 +74,7 @@ var Rules = []tflint.Rule{ NewGoogleComputeExternalVpnGatewayInvalidRedundancyTypeRule(), NewGoogleComputeFirewallInvalidDirectionRule(), NewGoogleComputeForwardingRuleInvalidIpProtocolRule(), + NewGoogleComputeForwardingRuleInvalidIpVersionRule(), NewGoogleComputeForwardingRuleInvalidLoadBalancingSchemeRule(), NewGoogleComputeForwardingRuleInvalidNetworkTierRule(), NewGoogleComputeGlobalAddressInvalidAddressTypeRule(), @@ -94,6 +99,8 @@ var Rules = []tflint.Rule{ NewGoogleComputeRegionCommitmentInvalidCategoryRule(), NewGoogleComputeRegionCommitmentInvalidPlanRule(), NewGoogleComputeRegionNetworkEndpointGroupInvalidNetworkEndpointTypeRule(), + NewGoogleComputeRegionSslPolicyInvalidMinTlsVersionRule(), + NewGoogleComputeRegionSslPolicyInvalidProfileRule(), NewGoogleComputeRegionTargetTcpProxyInvalidProxyHeaderRule(), NewGoogleComputeRouteInvalidNameRule(), NewGoogleComputeRouterNatInvalidNatIpAllocateOptionRule(), @@ -115,6 +122,8 @@ var Rules = []tflint.Rule{ NewGoogleDataCatalogTagTemplateInvalidTagTemplateIdRule(), NewGoogleDataFusionInstanceInvalidTypeRule(), NewGoogleDataLossPreventionJobTriggerInvalidStatusRule(), + NewGoogleDataPipelinePipelineInvalidStateRule(), + NewGoogleDataPipelinePipelineInvalidTypeRule(), NewGoogleDataprocMetastoreServiceInvalidDatabaseTypeRule(), NewGoogleDataprocMetastoreServiceInvalidReleaseChannelRule(), NewGoogleDataprocMetastoreServiceInvalidTierRule(), @@ -129,14 +138,20 @@ var Rules = []tflint.Rule{ NewGoogleDialogflowEntityTypeInvalidKindRule(), NewGoogleDialogflowIntentInvalidWebhookStateRule(), NewGoogleDnsManagedZoneInvalidVisibilityRule(), + NewGoogleDocumentAiWarehouseLocationInvalidAccessControlModeRule(), + NewGoogleDocumentAiWarehouseLocationInvalidDatabaseTypeRule(), + NewGoogleDocumentAiWarehouseLocationInvalidDocumentCreatorDefaultRoleRule(), NewGoogleFirestoreDatabaseInvalidAppEngineIntegrationModeRule(), NewGoogleFirestoreDatabaseInvalidConcurrencyModeRule(), NewGoogleFirestoreDatabaseInvalidTypeRule(), NewGoogleFirestoreIndexInvalidQueryScopeRule(), + NewGoogleHealthcareFhirStoreInvalidComplexDataTypeReferenceParsingRule(), NewGoogleHealthcareFhirStoreInvalidVersionRule(), NewGoogleKmsCryptoKeyVersionInvalidStateRule(), NewGoogleKmsKeyRingImportJobInvalidImportMethodRule(), NewGoogleKmsKeyRingImportJobInvalidProtectionLevelRule(), + NewGoogleLookerInstanceInvalidNameRule(), + NewGoogleLookerInstanceInvalidPlatformEditionRule(), NewGoogleMemcacheInstanceInvalidMemcacheVersionRule(), NewGoogleMonitoringAlertPolicyInvalidCombinerRule(), NewGoogleMonitoringCustomServiceInvalidServiceIdRule(), @@ -146,7 +161,10 @@ var Rules = []tflint.Rule{ NewGoogleMonitoringSloInvalidCalendarPeriodRule(), NewGoogleMonitoringSloInvalidSloIdRule(), NewGoogleMonitoringUptimeCheckConfigInvalidCheckerTypeRule(), + NewGoogleNetworkSecurityAddressGroupInvalidTypeRule(), + NewGoogleNetworkSecurityGatewaySecurityPolicyRuleInvalidBasicProfileRule(), NewGoogleNetworkServicesEdgeCacheOriginInvalidProtocolRule(), + NewGoogleNetworkServicesGatewayInvalidTypeRule(), NewGoogleNotebooksInstanceInvalidBootDiskTypeRule(), NewGoogleNotebooksInstanceInvalidDataDiskTypeRule(), NewGoogleNotebooksInstanceInvalidDiskEncryptionRule(), diff --git a/tools/magic-modules b/tools/magic-modules index dbe0b5b..e70e863 160000 --- a/tools/magic-modules +++ b/tools/magic-modules @@ -1 +1 @@ -Subproject commit dbe0b5b47cdd2e0216fade568ea57679baacecdb +Subproject commit e70e8636274e5638b68cbb8fbfb114e2347689a0