diff --git a/mmv1/products/secretmanager/inspec.yaml b/mmv1/products/secretmanager/inspec.yaml new file mode 100644 index 000000000..28cb365e9 --- /dev/null +++ b/mmv1/products/secretmanager/inspec.yaml @@ -0,0 +1,15 @@ +# Copyright 2017 Google Inc. +# 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. + +--- !ruby/object:Provider::Inspec::Config +overrides: !ruby/object:Overrides::ResourceOverrides diff --git a/mmv1/products/servicenetworking/api.yaml b/mmv1/products/servicenetworking/api.yaml new file mode 100644 index 000000000..2c24e79f2 --- /dev/null +++ b/mmv1/products/servicenetworking/api.yaml @@ -0,0 +1,55 @@ + +--- !ruby/object:Api::Product +name: ServiceNetworking +display_name: ServiceNetworking +versions: + - !ruby/object:Api::Product::Version + name: ga + base_url: https://servicenetworking.googleapis.com//v1/ +scopes: + - https://servicenetworking.googleapis.com//auth/cloud-platform +apis_required: + - !ruby/object:Api::Product::ApiReference + name: https://servicenetworking.googleapis.com/ + url: https://console.cloud.google.com/apis/library/servicenetworking.googleapis.com/ +objects: + + - !ruby/object:Api::Resource + name: 'service_connection' + kind: 'compute#services_connections' + base_url: '{{parent}}/connections' + collection_url_key: 'items' + input: true + has_self_link: true + description: | + An instance is a virtual machine (VM) hosted on Google's infrastructure. + properties: + - !ruby/object:Api::Type::String + name: 'network' + description: | + The name of service consumer's VPC network + that's connected with service producer network + - !ruby/object:Api::Type::Array + name: 'reservedPeeringRanges' + description: | + The name of one or more allocated IP address ranges for this + service producer of type PEERING. Note that invoking connections. + create method with a different range when connection is already + established will not modify already provisioned service producer subnetworks. + If connections.create method is invoked repeatedly to reconnect when peering + connection had been disconnected on the consumer side, leaving this field + empty will restore previously allocated IP ranges. + item_type: Api::Type::String + - !ruby/object:Api::Type::String + name: 'peering' + description: | + The name of the VPC Network Peering connection + that was created by the service producer. + output: true + + - !ruby/object:Api::Type::String + name: 'service' + description: | + The name of the peering service that's associated + with this connection, in the following format: services/{service name}. + output: true diff --git a/mmv1/products/servicenetworking/inspec.yaml b/mmv1/products/servicenetworking/inspec.yaml new file mode 100644 index 000000000..28cb365e9 --- /dev/null +++ b/mmv1/products/servicenetworking/inspec.yaml @@ -0,0 +1,15 @@ +# Copyright 2017 Google Inc. +# 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. + +--- !ruby/object:Provider::Inspec::Config +overrides: !ruby/object:Overrides::ResourceOverrides diff --git a/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secret.erb b/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secret.erb new file mode 100644 index 000000000..a8be7f594 --- /dev/null +++ b/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secret.erb @@ -0,0 +1,10 @@ +<% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> +<% project_secret = grab_attributes(pwd)['project_secret'] -%> +describe google_secret_manager_secret(name: <%= doc_generation ? "' #{project_secret['name']}'":"project_secret['name']" -%>) do + it { should exist } + +end + +describe google_secret_manager_secret(name: "does_not_exit") do + it { should_not exist } +end diff --git a/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secret_attributes.erb b/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secret_attributes.erb new file mode 100644 index 000000000..afaf93f91 --- /dev/null +++ b/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secret_attributes.erb @@ -0,0 +1,3 @@ +gcp_project_id = input(:gcp_project_id, value: '<%= external_attribute(pwd, 'gcp_project_id') -%>', description: 'The GCP project identifier.') + + project_secret = input('project_secret', value: <%= JSON.pretty_generate(grab_attributes(pwd)['project_secret']) -%>, description: 'project_secret description') \ No newline at end of file diff --git a/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secrets.erb b/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secrets.erb new file mode 100644 index 000000000..25960351d --- /dev/null +++ b/mmv1/templates/inspec/examples/google_secret_manager_secret/google_secret_manager_secrets.erb @@ -0,0 +1,5 @@ +<% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> + <% project_secret = grab_attributes(pwd)['project_secret'] -%> + describe google_secret_manager_secrets(parent: <%= doc_generation ? "' #{project_secret['parent']}'":"project_secret['parent']" -%>) do + it { should exist } + end diff --git a/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_version.erb b/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_version.erb new file mode 100644 index 000000000..a8be7f594 --- /dev/null +++ b/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_version.erb @@ -0,0 +1,10 @@ +<% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> +<% project_secret = grab_attributes(pwd)['project_secret'] -%> +describe google_secret_manager_secret(name: <%= doc_generation ? "' #{project_secret['name']}'":"project_secret['name']" -%>) do + it { should exist } + +end + +describe google_secret_manager_secret(name: "does_not_exit") do + it { should_not exist } +end diff --git a/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_version_attributes.erb b/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_version_attributes.erb new file mode 100644 index 000000000..afaf93f91 --- /dev/null +++ b/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_version_attributes.erb @@ -0,0 +1,3 @@ +gcp_project_id = input(:gcp_project_id, value: '<%= external_attribute(pwd, 'gcp_project_id') -%>', description: 'The GCP project identifier.') + + project_secret = input('project_secret', value: <%= JSON.pretty_generate(grab_attributes(pwd)['project_secret']) -%>, description: 'project_secret description') \ No newline at end of file diff --git a/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_versions.erb b/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_versions.erb new file mode 100644 index 000000000..25960351d --- /dev/null +++ b/mmv1/templates/inspec/examples/google_secret_manager_secret_version/google_secret_manager_secret_versions.erb @@ -0,0 +1,5 @@ +<% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> + <% project_secret = grab_attributes(pwd)['project_secret'] -%> + describe google_secret_manager_secrets(parent: <%= doc_generation ? "' #{project_secret['parent']}'":"project_secret['parent']" -%>) do + it { should exist } + end diff --git a/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connection.erb b/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connection.erb new file mode 100644 index 000000000..c3cbff890 --- /dev/null +++ b/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connection.erb @@ -0,0 +1,10 @@ +<% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> +<% service_connection = grab_attributes(pwd)['service_connection'] -%> +describe google_service_networking_service_connection() do + it { should exist } + +end + +describe google_service_networking_service_connection() do + it { should_not exist } +end diff --git a/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connection_attributes.erb b/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connection_attributes.erb new file mode 100644 index 000000000..097b6e347 --- /dev/null +++ b/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connection_attributes.erb @@ -0,0 +1,3 @@ +gcp_project_id = input(:gcp_project_id, value: '<%= external_attribute(pwd, 'gcp_project_id') -%>', description: 'The GCP project identifier.') + + service_connection = input('service_connection', value: <%= JSON.pretty_generate(grab_attributes(pwd)['service_connection']) -%>, description: 'service_connection description') \ No newline at end of file diff --git a/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connections.erb b/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connections.erb new file mode 100644 index 000000000..4d55c47ed --- /dev/null +++ b/mmv1/templates/inspec/examples/google_service_networking_service_connection/google_service_networking_service_connections.erb @@ -0,0 +1,5 @@ +<% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> + <% service_connection = grab_attributes(pwd)['service_connection'] -%> + describe google_servicenetworking_service_connections(parent: <%= doc_generation ? "' #{service_connection['parent']}'":"service_connection['parent']" -%>) do + it { should exist } + end \ No newline at end of file diff --git a/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml b/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml index 7f5c23e9a..48215da87 100644 --- a/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml +++ b/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml @@ -943,7 +943,14 @@ project_location_environment: create_time : "value_createtime" update_time : "value_updatetime" + project_location_key_ring: name : "value_name" parent : "value_parent" - create_time : "value_createtime" \ No newline at end of file + create_time : "value_createtime" + +project_secret: + name : "value_name" + +service_connection: + parent : "value_parent"