diff --git a/converters/google/resources/resource_converters.go b/converters/google/resources/resource_converters.go index 36a64f8aa..39e774256 100644 --- a/converters/google/resources/resource_converters.go +++ b/converters/google/resources/resource_converters.go @@ -33,6 +33,7 @@ func ResourceConverters() map[string][]ResourceConverter { "google_compute_network": {resourceConverterComputeNetwork()}, "google_compute_snapshot": {resourceConverterComputeSnapshot()}, "google_compute_subnetwork": {resourceConverterComputeSubnetwork()}, + "google_compute_ssl_policy": {resourceConverterComputeSslPolicy()}, "google_dns_managed_zone": {resourceConverterDNSManagedZone()}, "google_storage_bucket": {resourceConverterStorageBucket()}, "google_sql_database_instance": {resourceConverterSQLDatabaseInstance()}, diff --git a/test/cli_test.go b/test/cli_test.go index 66eecdc92..036342337 100644 --- a/test/cli_test.go +++ b/test/cli_test.go @@ -87,6 +87,7 @@ func TestCLI(t *testing.T) { {name: "example_compute_global_forwarding_rule"}, {name: "example_compute_network"}, {name: "example_compute_snapshot"}, + {name: "example_compute_ssl_policy"}, {name: "example_compute_subnetwork"}, {name: "example_container_cluster"}, {name: "example_dns_managed_zone"}, diff --git a/test/read_test.go b/test/read_test.go index bcb04c5f1..71c8a041f 100644 --- a/test/read_test.go +++ b/test/read_test.go @@ -46,6 +46,7 @@ func TestReadPlannedAssetsCoverage(t *testing.T) { {name: "example_compute_global_forwarding_rule"}, {name: "example_compute_network"}, {name: "example_compute_snapshot"}, + {name: "example_compute_ssl_policy"}, {name: "example_compute_subnetwork"}, {name: "example_container_cluster"}, {name: "example_dns_managed_zone"}, diff --git a/testdata/templates/example_compute_ssl_policy.json b/testdata/templates/example_compute_ssl_policy.json new file mode 100644 index 000000000..72db5ed7b --- /dev/null +++ b/testdata/templates/example_compute_ssl_policy.json @@ -0,0 +1,22 @@ +[ + { + "name": "//compute.googleapis.com/projects/{{.Provider.project}}/global/sslPolicies/custom-ssl-policy", + "asset_type": "compute.googleapis.com/SslPolicy", + "ancestry_path": "{{.Ancestry}}/project/{{.Provider.project}}", + "resource": { + "version": "v1", + "discovery_document_uri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", + "discovery_name": "SslPolicy", + "parent": "//cloudresourcemanager.googleapis.com/projects/{{.Provider.project}}", + "data": { + "customFeatures": [ + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" + ], + "minTlsVersion": "TLS_1_2", + "name": "custom-ssl-policy", + "profile": "CUSTOM" + } + } + } +] diff --git a/testdata/templates/example_compute_ssl_policy.tf b/testdata/templates/example_compute_ssl_policy.tf new file mode 100644 index 000000000..6c8081a03 --- /dev/null +++ b/testdata/templates/example_compute_ssl_policy.tf @@ -0,0 +1,35 @@ +/** + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +terraform { + required_providers { + google = { + source = "hashicorp/google" + version = "~> {{.Provider.version}}" + } + } +} + +provider "google" { + {{if .Provider.credentials }}credentials = "{{.Provider.credentials}}"{{end}} +} + +resource "google_compute_ssl_policy" "custom-ssl-policy" { + name = "custom-ssl-policy" + min_tls_version = "TLS_1_2" + profile = "CUSTOM" + custom_features = ["TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"] +} diff --git a/testdata/templates/example_compute_ssl_policy.tfplan.json b/testdata/templates/example_compute_ssl_policy.tfplan.json new file mode 100644 index 000000000..9e660d377 --- /dev/null +++ b/testdata/templates/example_compute_ssl_policy.tfplan.json @@ -0,0 +1,123 @@ +{ + "format_version": "0.2", + "terraform_version": "1.0.10", + "planned_values": { + "root_module": { + "resources": [ + { + "address": "google_compute_ssl_policy.custom-ssl-policy", + "mode": "managed", + "type": "google_compute_ssl_policy", + "name": "custom-ssl-policy", + "provider_name": "registry.terraform.io/hashicorp/google", + "schema_version": 0, + "values": { + "custom_features": [ + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" + ], + "description": null, + "min_tls_version": "TLS_1_2", + "name": "custom-ssl-policy", + "profile": "CUSTOM", + "timeouts": null + }, + "sensitive_values": { + "custom_features": [ + false, + false + ], + "enabled_features": [] + } + } + ] + } + }, + "resource_changes": [ + { + "address": "google_compute_ssl_policy.custom-ssl-policy", + "mode": "managed", + "type": "google_compute_ssl_policy", + "name": "custom-ssl-policy", + "provider_name": "registry.terraform.io/hashicorp/google", + "change": { + "actions": [ + "create" + ], + "before": null, + "after": { + "custom_features": [ + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" + ], + "description": null, + "min_tls_version": "TLS_1_2", + "name": "custom-ssl-policy", + "profile": "CUSTOM", + "timeouts": null + }, + "after_unknown": { + "creation_timestamp": true, + "custom_features": [ + false, + false + ], + "enabled_features": true, + "fingerprint": true, + "id": true, + "project": true, + "self_link": true + }, + "before_sensitive": false, + "after_sensitive": { + "custom_features": [ + false, + false + ], + "enabled_features": [] + } + } + } + ], + "configuration": { + "provider_config": { + "google": { + "name": "google", + "expressions": { + "project": { + "constant_value": "{{.Provider.project}}" + } + } + } + }, + "root_module": { + "resources": [ + { + "address": "google_compute_ssl_policy.custom-ssl-policy", + "mode": "managed", + "type": "google_compute_ssl_policy", + "name": "custom-ssl-policy", + "provider_config_key": "google", + "expressions": { + "custom_features": { + "constant_value": [ + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" + ] + }, + "min_tls_version": { + "constant_value": "TLS_1_2" + }, + "name": { + "constant_value": "custom-ssl-policy" + }, + "profile": { + "constant_value": "CUSTOM" + } + }, + "schema_version": 0 + } + ] + } + } +}