From c4e945b39f202d169c362eafaacdaff49e7e07ac Mon Sep 17 00:00:00 2001 From: Samir <85890442+sa-progress@users.noreply.github.com> Date: Mon, 7 Oct 2024 17:35:06 +0530 Subject: [PATCH] Automatically generated by magic modules for service: apigee_v1 and resource: Organizations__instances__attachment. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir <85890442+sa-progress@users.noreply.github.com> --- ...apigee_organization_instance_attachment.md | 55 ++++++++++++ ...pigee_organization_instance_attachments.md | 52 ++++++++++++ ...apigee_organization_instance_attachment.rb | 59 +++++++++++++ ...pigee_organization_instance_attachments.rb | 83 +++++++++++++++++++ ...apigee_organization_instance_attachment.rb | 40 +++++++++ ...pigee_organization_instance_attachments.rb | 32 +++++++ 6 files changed, 321 insertions(+) create mode 100644 docs/resources/google_apigee_organization_instance_attachment.md create mode 100644 docs/resources/google_apigee_organization_instance_attachments.md create mode 100644 libraries/google_apigee_organization_instance_attachment.rb create mode 100644 libraries/google_apigee_organization_instance_attachments.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_instance_attachment.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_instance_attachments.rb diff --git a/docs/resources/google_apigee_organization_instance_attachment.md b/docs/resources/google_apigee_organization_instance_attachment.md new file mode 100644 index 00000000..bee94972 --- /dev/null +++ b/docs/resources/google_apigee_organization_instance_attachment.md @@ -0,0 +1,55 @@ ++++ + +title = "google_apigee_organization_instance_attachment Resource" +platform = "gcp" +draft = false +gh_repo = "inspec-gcp" + + +[menu.inspec] + +title = "google_apigee_organization_instance_attachment" +identifier = "inspec/resources/gcp/google_apigee_organization_instance_attachment Resource" +parent = "inspec/resources/gcp" ++++ + +Use the `google_apigee_organization_instance_attachment` InSpec audit resource to test the properties of a test a Google OrganizationInstanceAttachment. + +## Installation +{{% inspec_gcp_install %}} + +## Syntax +A `google_apigee_organization_instance_attachment` is used to test a Google OrganizationInstanceAttachment resource + +## Examples +``` +describe google_apigee_organization_instance_attachment(name: ' value_name') do + it { should exist } + its('name') { should cmp 'value_name' } + its('environment') { should cmp 'value_environment' } + its('created_at') { should cmp 'value_createdat' } + +end + +describe google_apigee_organization_instance_attachment(name: "does_not_exit") do + it { should_not exist } +end +``` + +## Parameters +Properties that can be accessed from the `google_apigee_organization_instance_attachment` resource: + +## Properties +Properties that can be accessed from the `google_apigee_organization_instance_attachment` resource: + + + * `name`: Output only. ID of the attachment. + + * `environment`: ID of the attached environment. + + * `created_at`: Output only. Time the attachment was created in milliseconds since epoch. + + +## GCP Permissions + +Ensure the [Apigee API](https://console.cloud.google.com/apis/library/apigee.googleapis.com/) is enabled for the current project. diff --git a/docs/resources/google_apigee_organization_instance_attachments.md b/docs/resources/google_apigee_organization_instance_attachments.md new file mode 100644 index 00000000..da6b181e --- /dev/null +++ b/docs/resources/google_apigee_organization_instance_attachments.md @@ -0,0 +1,52 @@ ++++ + +title = "google_apigee_organization_instance_attachments Resource" +platform = "gcp" +draft = false +gh_repo = "inspec-gcp" + + +[menu.inspec] + +title = "google_apigee_organization_instance_attachments" +identifier = "inspec/resources/gcp/google_apigee_organization_instance_attachments Resource" +parent = "inspec/resources/gcp" ++++ + +Use the `google_apigee_organization_instance_attachments` InSpec audit resource to test the properties of a test a Google OrganizationInstanceAttachment. + +## Installation +{{% inspec_gcp_install %}} + +## Syntax +A `google_apigee_organization_instance_attachments` is used to test a Google OrganizationInstanceAttachment resource + +## Examples +``` + describe google_apigee_organization_instance_attachments(parent: ' value_parent') do + it { should exist } + end +``` + +## Parameters +Properties that can be accessed from the `google_apigee_organization_instance_attachments` resource: + +See [google_apigee_organization_instance_attachment.md](google_apigee_organization_instance_attachment.md) for more detailed information +* `names`: an array of `google_apigee_organization_instance_attachment` name +* `environments`: an array of `google_apigee_organization_instance_attachment` environment +* `created_ats`: an array of `google_apigee_organization_instance_attachment` created_at +## Properties +Properties that can be accessed from the `google_apigee_organization_instance_attachments` resource: + +See [google_apigee_organization_instance_attachment.md](google_apigee_organization_instance_attachment.md) for more detailed information +* `names`: an array of `google_apigee_organization_instance_attachment` name +* `environments`: an array of `google_apigee_organization_instance_attachment` environment +* `created_ats`: an array of `google_apigee_organization_instance_attachment` created_at + +## Filter Criteria +This resource supports all of the above properties as filter criteria, which can be used +with `where` as a block or a method. + +## GCP Permissions + +Ensure the [Apigee API](https://console.cloud.google.com/apis/library/apigee.googleapis.com/) is enabled for the current project. diff --git a/libraries/google_apigee_organization_instance_attachment.rb b/libraries/google_apigee_organization_instance_attachment.rb new file mode 100644 index 00000000..0d664032 --- /dev/null +++ b/libraries/google_apigee_organization_instance_attachment.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: false + +# ---------------------------------------------------------------------------- +# +# *** 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 README.md and +# CONTRIBUTING.md located at the root of this package. +# +# ---------------------------------------------------------------------------- +require 'gcp_backend' + +# A provider to manage Apigee resources. +class ApigeeOrganizationInstanceAttachment < GcpResourceBase + name 'google_apigee_organization_instance_attachment' + desc 'OrganizationInstanceAttachment' + supports platform: 'gcp' + + attr_reader :params + attr_reader :name + attr_reader :environment + attr_reader :created_at + + def initialize(params) + super(params.merge({ use_http_transport: true })) + @params = params + @fetched = @connection.fetch(product_url(params[:beta]), resource_base_url, params, 'Get') + parse unless @fetched.nil? + end + + def parse + @name = @fetched['name'] + @environment = @fetched['environment'] + @created_at = @fetched['createdAt'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "OrganizationInstanceAttachment #{@params[:]}" + end + + private + + def product_url(_ = nil) + 'https://apigee.googleapis.com/v1/' + end + + def resource_base_url + '{{+name}}' + end +end diff --git a/libraries/google_apigee_organization_instance_attachments.rb b/libraries/google_apigee_organization_instance_attachments.rb new file mode 100644 index 00000000..5cddda8b --- /dev/null +++ b/libraries/google_apigee_organization_instance_attachments.rb @@ -0,0 +1,83 @@ +# frozen_string_literal: false + +# ---------------------------------------------------------------------------- +# +# *** 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 README.md and +# CONTRIBUTING.md located at the root of this package. +# +# ---------------------------------------------------------------------------- +require 'gcp_backend' +class ApigeeOrganizationInstanceAttachments < GcpResourceBase + name 'google_apigee_organization_instance_attachments' + desc 'OrganizationInstanceAttachment plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:names, field: :name) + filter_table_config.add(:environments, field: :environment) + filter_table_config.add(:created_ats, field: :created_at) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('organizationInstanceAttachments') + end + + def fetch_wrapped_resource(wrap_path) + # fetch_resource returns an array of responses (to handle pagination) + result = @connection.fetch_all(product_url, resource_base_url, @params, 'Get') + return if result.nil? + + # Conversion of string -> object hash to symbol -> object hash that InSpec needs + converted = [] + result.each do |response| + next if response.nil? || !response.key?(wrap_path) + response[wrap_path].each do |hash| + hash_with_symbols = {} + hash.each_key do |key| + name, value = transform(key, hash) + hash_with_symbols[name] = value + end + converted.push(hash_with_symbols) + end + end + + converted + end + + def transform(key, value) + return transformers[key].call(value) if transformers.key?(key) + + [key.to_sym, value] + end + + def transformers + { + 'name' => ->(obj) { [:name, obj['name']] }, + 'environment' => ->(obj) { [:environment, obj['environment']] }, + 'createdAt' => ->(obj) { [:created_at, obj['createdAt']] }, + } + end + + private + + def product_url(_ = nil) + 'https://apigee.googleapis.com/v1/' + end + + def resource_base_url + '{{+parent}}/attachments' + end +end diff --git a/test/integration/verify/controls/google_apigee_organization_instance_attachment.rb b/test/integration/verify/controls/google_apigee_organization_instance_attachment.rb new file mode 100644 index 00000000..510c4f0b --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_instance_attachment.rb @@ -0,0 +1,40 @@ +# ---------------------------------------------------------------------------- +# +# *** 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 README.md and +# CONTRIBUTING.md located at the root of this package. +# +# ---------------------------------------------------------------------------- + +title 'Test GCP google_apigee_organization_instance_attachment resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_instance_attachment = input('organization_instance_attachment', value: { + "name": "value_name", + "parent": "value_parent", + "environment": "value_environment", + "created_at": "value_createdat" +}, description: 'organization_instance_attachment description') +control 'google_apigee_organization_instance_attachment-1.0' do + impact 1.0 + title 'google_apigee_organization_instance_attachment resource test' + + describe google_apigee_organization_instance_attachment(name: organization_instance_attachment['name']) do + it { should exist } + its('name') { should cmp organization_instance_attachment['name'] } + its('environment') { should cmp organization_instance_attachment['environment'] } + its('created_at') { should cmp organization_instance_attachment['created_at'] } + + end + + describe google_apigee_organization_instance_attachment(name: "does_not_exit") do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_apigee_organization_instance_attachments.rb b/test/integration/verify/controls/google_apigee_organization_instance_attachments.rb new file mode 100644 index 00000000..27c04057 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_instance_attachments.rb @@ -0,0 +1,32 @@ +# ---------------------------------------------------------------------------- +# +# *** 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 README.md and +# CONTRIBUTING.md located at the root of this package. +# +# ---------------------------------------------------------------------------- + +title 'Test GCP google_apigee_organization_instance_attachments resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_instance_attachment = input('organization_instance_attachment', value: { + "name": "value_name", + "parent": "value_parent", + "environment": "value_environment", + "created_at": "value_createdat" +}, description: 'organization_instance_attachment description') +control 'google_apigee_organization_instance_attachments-1.0' do + impact 1.0 + title 'google_apigee_organization_instance_attachments resource test' + + describe google_apigee_organization_instance_attachments(parent: organization_instance_attachment['parent']) do + it { should exist } + end +end