From 24201fcda011ce42b7a26b24be5c21772730c2e8 Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Wed, 29 Nov 2023 23:23:22 +0530 Subject: [PATCH 01/83] Automatically generated by magic modules for service: compute and resource: VpnGateway. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- .../configuration/mm-attributes.yml | 15 ++- docs/resources/google_compute_vpn_gateway.md | 73 +++++++++++++ docs/resources/google_compute_vpn_gateways.md | 39 +++++++ .../compute/property/vpngateway_labels.rb | 34 ++++++ .../property/vpngateway_vpn_interfaces.rb | 48 +++++++++ libraries/google_compute_vpn_gateway.rb | 79 ++++++++++++++ libraries/google_compute_vpn_gateways.rb | 101 ++++++++++++++++++ .../controls/google_compute_vpn_gateway.rb | 55 ++++++++++ .../controls/google_compute_vpn_gateways.rb | 40 +++++++ 9 files changed, 483 insertions(+), 1 deletion(-) create mode 100644 docs/resources/google_compute_vpn_gateway.md create mode 100644 docs/resources/google_compute_vpn_gateways.md create mode 100644 libraries/google/compute/property/vpngateway_labels.rb create mode 100644 libraries/google/compute/property/vpngateway_vpn_interfaces.rb create mode 100644 libraries/google_compute_vpn_gateway.rb create mode 100644 libraries/google_compute_vpn_gateways.rb create mode 100644 test/integration/verify/controls/google_compute_vpn_gateway.rb create mode 100644 test/integration/verify/controls/google_compute_vpn_gateways.rb diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index eab23d3ea..ee0783a9e 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -882,4 +882,17 @@ tensorboard_experiment_run_time_series_resource: value_type : "value_valuetype" project_location_image_version: - parent : "value_parent" \ No newline at end of file + parent : "value_parent" +vpn_gateway: + project : "value_project" + region : "value_region" + vpn_gateway : "value_vpngateway" + kind : "value_kind" + id : "value_id" + creation_timestamp : "value_creationtimestamp" + name : "value_name" + description : "value_description" + network : "value_network" + self_link : "value_selflink" + label_fingerprint : "value_labelfingerprint" + stack_type : "value_stacktype" \ No newline at end of file diff --git a/docs/resources/google_compute_vpn_gateway.md b/docs/resources/google_compute_vpn_gateway.md new file mode 100644 index 000000000..fa153ed43 --- /dev/null +++ b/docs/resources/google_compute_vpn_gateway.md @@ -0,0 +1,73 @@ +--- +title: About the google_compute_vpn_gateway resource +platform: gcp +--- + +## Syntax +A `google_compute_vpn_gateway` is used to test a Google VpnGateway resource + +## Examples +``` +describe google_compute_vpn_gateway(project: 'chef-gcp-inspec', region: ' value_region', vpnGateway: ' ') do + it { should exist } + its('kind') { should cmp 'value_kind' } + its('id') { should cmp 'value_id' } + its('creation_timestamp') { should cmp 'value_creationtimestamp' } + its('name') { should cmp 'value_name' } + its('description') { should cmp 'value_description' } + its('region') { should cmp 'value_region' } + its('network') { should cmp 'value_network' } + its('self_link') { should cmp 'value_selflink' } + its('label_fingerprint') { should cmp 'value_labelfingerprint' } + its('stack_type') { should cmp 'value_stacktype' } + +end + +describe google_compute_vpn_gateway(project: 'chef-gcp-inspec', region: ' value_region', vpnGateway: ' ') do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_compute_vpn_gateway` resource: + + + * `kind`: [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. + + * `id`: [Output Only] The unique identifier for the resource. This identifier is defined by the server. + + * `creation_timestamp`: [Output Only] Creation timestamp in RFC3339 text format. + + * `name`: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. + + * `description`: An optional description of this resource. Provide this property when you create the resource. + + * `region`: [Output Only] URL of the region where the VPN gateway resides. + + * `network`: URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created. + + * `self_link`: [Output Only] Server-defined URL for the resource. + + * `labels`: Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty. + + * `additional_properties`: + + * `label_fingerprint`: A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnGateway. + + * `vpn_interfaces`: The list of VPN interfaces associated with this VPN gateway. + + * `id`: [Output Only] Numeric identifier for this VPN interface associated with the VPN gateway. + + * `ip_address`: [Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. + + * `interconnect_attachment`: URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. + + * `stack_type`: The stack type for this VPN gateway to identify the IP protocols that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not specified, IPV4_ONLY will be used. + Possible values: + * IPV4_IPV6 + * IPV4_ONLY + + +## GCP Permissions + +Ensure the [Compute Engine API](https://console.cloud.google.com/apis/library/compute.googleapis.com/) is enabled for the current project. diff --git a/docs/resources/google_compute_vpn_gateways.md b/docs/resources/google_compute_vpn_gateways.md new file mode 100644 index 000000000..0affd25e9 --- /dev/null +++ b/docs/resources/google_compute_vpn_gateways.md @@ -0,0 +1,39 @@ +--- +title: About the google_compute_vpn_gateways resource +platform: gcp +--- + +## Syntax +A `google_compute_vpn_gateways` is used to test a Google VpnGateway resource + +## Examples +``` + describe google_compute_vpn_gateways(project: 'chef-gcp-inspec', region: ' value_region') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_compute_vpn_gateways` resource: + +See [google_compute_vpn_gateway.md](google_compute_vpn_gateway.md) for more detailed information + * `kinds`: an array of `google_compute_vpn_gateway` kind + * `ids`: an array of `google_compute_vpn_gateway` id + * `creation_timestamps`: an array of `google_compute_vpn_gateway` creation_timestamp + * `names`: an array of `google_compute_vpn_gateway` name + * `descriptions`: an array of `google_compute_vpn_gateway` description + * `regions`: an array of `google_compute_vpn_gateway` region + * `networks`: an array of `google_compute_vpn_gateway` network + * `self_links`: an array of `google_compute_vpn_gateway` self_link + * `labels`: an array of `google_compute_vpn_gateway` labels + * `label_fingerprints`: an array of `google_compute_vpn_gateway` label_fingerprint + * `vpn_interfaces`: an array of `google_compute_vpn_gateway` vpn_interfaces + * `stack_types`: an array of `google_compute_vpn_gateway` stack_type + +## 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 [Compute Engine API](https://console.cloud.google.com/apis/library/compute.googleapis.com/) is enabled for the current project. diff --git a/libraries/google/compute/property/vpngateway_labels.rb b/libraries/google/compute/property/vpngateway_labels.rb new file mode 100644 index 000000000..f28c34ae0 --- /dev/null +++ b/libraries/google/compute/property/vpngateway_labels.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Compute + module Property + class VpnGatewayLabels + attr_reader :additional_properties + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @additional_properties = args['additionalProperties'] + end + + def to_s + "#{@parent_identifier} VpnGatewayLabels" + end + end + end + end +end diff --git a/libraries/google/compute/property/vpngateway_vpn_interfaces.rb b/libraries/google/compute/property/vpngateway_vpn_interfaces.rb new file mode 100644 index 000000000..7119879e8 --- /dev/null +++ b/libraries/google/compute/property/vpngateway_vpn_interfaces.rb @@ -0,0 +1,48 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Compute + module Property + class VpnGatewayVpnInterfaces + attr_reader :id + + attr_reader :ip_address + + attr_reader :interconnect_attachment + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @id = args['id'] + @ip_address = args['ipAddress'] + @interconnect_attachment = args['interconnectAttachment'] + end + + def to_s + "#{@parent_identifier} VpnGatewayVpnInterfaces" + end + end + + class VpnGatewayVpnInterfacesArray + def self.parse(value, parent_identifier) + return if value.nil? + return VpnGatewayVpnInterfaces.new(value, parent_identifier) unless value.is_a?(::Array) + value.map { |v| VpnGatewayVpnInterfaces.new(v, parent_identifier) } + end + end + end + end +end diff --git a/libraries/google_compute_vpn_gateway.rb b/libraries/google_compute_vpn_gateway.rb new file mode 100644 index 000000000..f9691e6f1 --- /dev/null +++ b/libraries/google_compute_vpn_gateway.rb @@ -0,0 +1,79 @@ +# 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' +require 'google/compute/property/vpngateway_labels' +require 'google/compute/property/vpngateway_vpn_interfaces' + +# A provider to manage Compute Engine resources. +class ComputeVpnGateway < GcpResourceBase + name 'google_compute_vpn_gateway' + desc 'VpnGateway' + supports platform: 'gcp' + + attr_reader :params + attr_reader :kind + attr_reader :id + attr_reader :creation_timestamp + attr_reader :name + attr_reader :description + attr_reader :region + attr_reader :network + attr_reader :self_link + attr_reader :labels + attr_reader :label_fingerprint + attr_reader :vpn_interfaces + attr_reader :stack_type + + 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 + @kind = @fetched['kind'] + @id = @fetched['id'] + @creation_timestamp = @fetched['creationTimestamp'] + @name = @fetched['name'] + @description = @fetched['description'] + @region = @fetched['region'] + @network = @fetched['network'] + @self_link = @fetched['selfLink'] + @labels = GoogleInSpec::Compute::Property::VpnGatewayLabels.new(@fetched['labels'], to_s) + @label_fingerprint = @fetched['labelFingerprint'] + @vpn_interfaces = GoogleInSpec::Compute::Property::VpnGatewayVpnInterfacesArray.parse(@fetched['vpnInterfaces'], to_s) + @stack_type = @fetched['stackType'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "VpnGateway #{@params[:vpnGateway]}" + end + + private + + def product_url(_ = nil) + 'https://compute.googleapis.com/compute/v1/' + end + + def resource_base_url + 'projects/{{project}}/regions/{{region}}/vpnGateways/{{vpn_gateway}}' + end +end diff --git a/libraries/google_compute_vpn_gateways.rb b/libraries/google_compute_vpn_gateways.rb new file mode 100644 index 000000000..963cc78d4 --- /dev/null +++ b/libraries/google_compute_vpn_gateways.rb @@ -0,0 +1,101 @@ +# 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 ComputeVpnGateways < GcpResourceBase + name 'google_compute_vpn_gateways' + desc 'VpnGateway plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:kinds, field: :kind) + filter_table_config.add(:ids, field: :id) + filter_table_config.add(:creation_timestamps, field: :creation_timestamp) + filter_table_config.add(:names, field: :name) + filter_table_config.add(:descriptions, field: :description) + filter_table_config.add(:regions, field: :region) + filter_table_config.add(:networks, field: :network) + filter_table_config.add(:self_links, field: :self_link) + filter_table_config.add(:labels, field: :labels) + filter_table_config.add(:label_fingerprints, field: :label_fingerprint) + filter_table_config.add(:vpn_interfaces, field: :vpn_interfaces) + filter_table_config.add(:stack_types, field: :stack_type) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('vpnGateways') + 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 + { + 'kind' => ->(obj) { return :kind, obj['kind'] }, + 'id' => ->(obj) { return :id, obj['id'] }, + 'creationTimestamp' => ->(obj) { return :creation_timestamp, obj['creationTimestamp'] }, + 'name' => ->(obj) { return :name, obj['name'] }, + 'description' => ->(obj) { return :description, obj['description'] }, + 'region' => ->(obj) { return :region, obj['region'] }, + 'network' => ->(obj) { return :network, obj['network'] }, + 'selfLink' => ->(obj) { return :self_link, obj['selfLink'] }, + 'labels' => ->(obj) { return :labels, GoogleInSpec::Compute::Property::VpnGatewayLabels.new(obj['labels'], to_s) }, + 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, + 'vpnInterfaces' => ->(obj) { return :vpn_interfaces, GoogleInSpec::Compute::Property::VpnGatewayVpnInterfacesArray.parse(obj['vpnInterfaces'], to_s) }, + 'stackType' => ->(obj) { return :stack_type, obj['stackType'] }, + } + end + + private + + def product_url(_ = nil) + 'https://compute.googleapis.com/compute/v1/' + end + + def resource_base_url + 'projects/{{project}}/regions/{{region}}/vpnGateways' + end +end diff --git a/test/integration/verify/controls/google_compute_vpn_gateway.rb b/test/integration/verify/controls/google_compute_vpn_gateway.rb new file mode 100644 index 000000000..aab0eb458 --- /dev/null +++ b/test/integration/verify/controls/google_compute_vpn_gateway.rb @@ -0,0 +1,55 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_compute_vpn_gateway resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + vpn_gateway = input('vpn_gateway', value: { + "project": "value_project", + "region": "value_region", + "vpn_gateway": "value_vpngateway", + "kind": "value_kind", + "id": "value_id", + "creation_timestamp": "value_creationtimestamp", + "name": "value_name", + "description": "value_description", + "network": "value_network", + "self_link": "value_selflink", + "label_fingerprint": "value_labelfingerprint", + "stack_type": "value_stacktype" +}, description: 'vpn_gateway description') +control 'google_compute_vpn_gateway-1.0' do + impact 1.0 + title 'google_compute_vpn_gateway resource test' + + describe google_compute_vpn_gateway(project: gcp_project_id, region: vpn_gateway['region'], vpnGateway: vpn_gateway['vpnGateway']) do + it { should exist } + its('kind') { should cmp vpn_gateway['kind'] } + its('id') { should cmp vpn_gateway['id'] } + its('creation_timestamp') { should cmp vpn_gateway['creation_timestamp'] } + its('name') { should cmp vpn_gateway['name'] } + its('description') { should cmp vpn_gateway['description'] } + its('region') { should cmp vpn_gateway['region'] } + its('network') { should cmp vpn_gateway['network'] } + its('self_link') { should cmp vpn_gateway['self_link'] } + its('label_fingerprint') { should cmp vpn_gateway['label_fingerprint'] } + its('stack_type') { should cmp vpn_gateway['stack_type'] } + + end + + describe google_compute_vpn_gateway(project: gcp_project_id, region: vpn_gateway['region'], vpnGateway: vpn_gateway['vpnGateway']) do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_compute_vpn_gateways.rb b/test/integration/verify/controls/google_compute_vpn_gateways.rb new file mode 100644 index 000000000..8f9052e0b --- /dev/null +++ b/test/integration/verify/controls/google_compute_vpn_gateways.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_compute_vpn_gateways resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + vpn_gateway = input('vpn_gateway', value: { + "project": "value_project", + "region": "value_region", + "vpn_gateway": "value_vpngateway", + "kind": "value_kind", + "id": "value_id", + "creation_timestamp": "value_creationtimestamp", + "name": "value_name", + "description": "value_description", + "network": "value_network", + "self_link": "value_selflink", + "label_fingerprint": "value_labelfingerprint", + "stack_type": "value_stacktype" +}, description: 'vpn_gateway description') +control 'google_compute_vpn_gateways-1.0' do + impact 1.0 + title 'google_compute_vpn_gateways resource test' + + describe google_compute_vpn_gateways(project: gcp_project_id, region: vpn_gateway['region']) do + it { should exist } + end +end From 9ad4842153c8716727f08e1f11ff2f1110486d02 Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Thu, 30 Nov 2023 00:32:15 +0530 Subject: [PATCH 02/83] Automatically generated by magic modules for service: apigee and resource: Organization. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- .../configuration/mm-attributes.yml | 39 +++- docs/resources/google_apigee_organization.md | 180 ++++++++++++++++++ docs/resources/google_apigee_organizations.md | 55 ++++++ .../property/organization_addons_config.rb | 55 ++++++ ...n_addons_config_advanced_api_ops_config.rb | 34 ++++ ...nization_addons_config_analytics_config.rb | 43 +++++ ...ation_addons_config_api_security_config.rb | 37 ++++ ...ddons_config_connectors_platform_config.rb | 37 ++++ ...zation_addons_config_integration_config.rb | 34 ++++ ...ation_addons_config_monetization_config.rb | 34 ++++ .../property/organization_properties.rb | 35 ++++ .../organization_properties_property.rb | 45 +++++ libraries/google_apigee_organization.rb | 118 ++++++++++++ libraries/google_apigee_organizations.rb | 133 +++++++++++++ .../controls/google_apigee_organization.rb | 78 ++++++++ .../controls/google_apigee_organizations.rb | 51 +++++ 16 files changed, 1007 insertions(+), 1 deletion(-) create mode 100644 docs/resources/google_apigee_organization.md create mode 100644 docs/resources/google_apigee_organizations.md create mode 100644 libraries/google/apigee/property/organization_addons_config.rb create mode 100644 libraries/google/apigee/property/organization_addons_config_advanced_api_ops_config.rb create mode 100644 libraries/google/apigee/property/organization_addons_config_analytics_config.rb create mode 100644 libraries/google/apigee/property/organization_addons_config_api_security_config.rb create mode 100644 libraries/google/apigee/property/organization_addons_config_connectors_platform_config.rb create mode 100644 libraries/google/apigee/property/organization_addons_config_integration_config.rb create mode 100644 libraries/google/apigee/property/organization_addons_config_monetization_config.rb create mode 100644 libraries/google/apigee/property/organization_properties.rb create mode 100644 libraries/google/apigee/property/organization_properties_property.rb create mode 100644 libraries/google_apigee_organization.rb create mode 100644 libraries/google_apigee_organizations.rb create mode 100644 test/integration/verify/controls/google_apigee_organization.rb create mode 100644 test/integration/verify/controls/google_apigee_organizations.rb diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index eab23d3ea..0f09f4ede 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -882,4 +882,41 @@ tensorboard_experiment_run_time_series_resource: value_type : "value_valuetype" project_location_image_version: - parent : "value_parent" \ No newline at end of file + parent : "value_parent" +vpn_gateway: + project : "value_project" + region : "value_region" + vpn_gateway : "value_vpngateway" + kind : "value_kind" + id : "value_id" + creation_timestamp : "value_creationtimestamp" + name : "value_name" + description : "value_description" + network : "value_network" + self_link : "value_selflink" + label_fingerprint : "value_labelfingerprint" + stack_type : "value_stacktype" +organization: + name : "value_name" + parent : "value_parent" + api_consumer_data_encryption_key_name : "value_apiconsumerdataencryptionkeyname" + runtime_database_encryption_key_name : "value_runtimedatabaseencryptionkeyname" + runtime_type : "value_runtimetype" + type : "value_type" + authorized_network : "value_authorizednetwork" + project_id : "value_projectid" + description : "value_description" + ca_certificate : "value_cacertificate" + subscription_type : "value_subscriptiontype" + customer_name : "value_customername" + created_at : "value_createdat" + last_modified_at : "value_lastmodifiedat" + subscription_plan : "value_subscriptionplan" + state : "value_state" + control_plane_encryption_key_name : "value_controlplaneencryptionkeyname" + analytics_region : "value_analyticsregion" + api_consumer_data_location : "value_apiconsumerdatalocation" + display_name : "value_displayname" + apigee_project_id : "value_apigeeprojectid" + expires_at : "value_expiresat" + billing_type : "value_billingtype" \ No newline at end of file diff --git a/docs/resources/google_apigee_organization.md b/docs/resources/google_apigee_organization.md new file mode 100644 index 000000000..b1d33bf3e --- /dev/null +++ b/docs/resources/google_apigee_organization.md @@ -0,0 +1,180 @@ +--- +title: About the google_apigee_organization resource +platform: gcp +--- + +## Syntax +A `google_apigee_organization` is used to test a Google Organization resource + +## Examples +``` +describe google_apigee_organization(name: ' value_name') do + it { should exist } + its('api_consumer_data_encryption_key_name') { should cmp 'value_apiconsumerdataencryptionkeyname' } + its('runtime_database_encryption_key_name') { should cmp 'value_runtimedatabaseencryptionkeyname' } + its('runtime_type') { should cmp 'value_runtimetype' } + its('type') { should cmp 'value_type' } + its('authorized_network') { should cmp 'value_authorizednetwork' } + its('project_id') { should cmp 'value_projectid' } + its('description') { should cmp 'value_description' } + its('ca_certificate') { should cmp 'value_cacertificate' } + its('subscription_type') { should cmp 'value_subscriptiontype' } + its('customer_name') { should cmp 'value_customername' } + its('created_at') { should cmp 'value_createdat' } + its('last_modified_at') { should cmp 'value_lastmodifiedat' } + its('subscription_plan') { should cmp 'value_subscriptionplan' } + its('state') { should cmp 'value_state' } + its('name') { should cmp 'value_name' } + its('control_plane_encryption_key_name') { should cmp 'value_controlplaneencryptionkeyname' } + its('analytics_region') { should cmp 'value_analyticsregion' } + its('api_consumer_data_location') { should cmp 'value_apiconsumerdatalocation' } + its('display_name') { should cmp 'value_displayname' } + its('apigee_project_id') { should cmp 'value_apigeeprojectid' } + its('expires_at') { should cmp 'value_expiresat' } + its('billing_type') { should cmp 'value_billingtype' } + +end + +describe google_apigee_organization(name: "does_not_exit") do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organization` resource: + + + * `api_consumer_data_encryption_key_name`: Cloud KMS key name used for encrypting API consumer data. Required for US/EU regions when [BillingType](#BillingType) is `SUBSCRIPTION`. When [BillingType](#BillingType) is `EVALUATION` or the region is not US/EU, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*` + + * `runtime_database_encryption_key_name`: Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances. Update is not allowed after the organization is created. Required when [RuntimeType](#RuntimeType) is `CLOUD`. If not specified when [RuntimeType](#RuntimeType) is `TRIAL`, a Google-Managed encryption key will be used. For example: "projects/foo/locations/us/keyRings/bar/cryptoKeys/baz". **Note:** Not supported for Apigee hybrid. + + * `environments`: Output only. List of environments in the Apigee organization. + + * `runtime_type`: Required. Runtime type of the Apigee organization based on the Apigee subscription purchased. + Possible values: + * RUNTIME_TYPE_UNSPECIFIED + * CLOUD + * HYBRID + + * `type`: Not used by Apigee. + Possible values: + * TYPE_UNSPECIFIED + * TYPE_TRIAL + * TYPE_PAID + * TYPE_INTERNAL + + * `portal_disabled`: Configuration for the Portals settings. + + * `authorized_network`: Compute Engine network used for Service Networking to be peered with Apigee runtime instances. See [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). Valid only when [RuntimeType](#RuntimeType) is set to `CLOUD`. The value must be set before the creation of a runtime instance and can be updated only when there are no runtime instances. For example: `default`. Apigee also supports shared VPC (that is, the host network project is not the same as the one that is peering with Apigee). See [Shared VPC overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared VPC network, use the following format: `projects/{host-project-id}/{region}/networks/{network-name}`. For example: `projects/my-sharedvpc-host/global/networks/mynetwork` **Note:** Not supported for Apigee hybrid. + + * `project_id`: Output only. Project ID associated with the Apigee organization. + + * `description`: Description of the Apigee organization. + + * `ca_certificate`: Output only. Base64-encoded public certificate for the root CA of the Apigee organization. Valid only when [RuntimeType](#RuntimeType) is `CLOUD`. + + * `subscription_type`: Output only. DEPRECATED: This will eventually be replaced by BillingType. Subscription type of the Apigee organization. Valid values include trial (free, limited, and for evaluation purposes only) or paid (full subscription has been purchased). See [Apigee pricing](https://cloud.google.com/apigee/pricing/). + Possible values: + * SUBSCRIPTION_TYPE_UNSPECIFIED + * PAID + * TRIAL + + * `addons_config`: Add-on configurations for the Apigee organization. + + * `integration_config`: Configuration for the Integration add-on. + + * `enabled`: Flag that specifies whether the Integration add-on is enabled. + + * `api_security_config`: Configurations of the API Security add-on. + + * `enabled`: Flag that specifies whether the API security add-on is enabled. + + * `expires_at`: Output only. Time at which the API Security add-on expires in in milliseconds since epoch. If unspecified, the add-on will never expire. + + * `monetization_config`: Configuration for the Monetization add-on. + + * `enabled`: Flag that specifies whether the Monetization add-on is enabled. + + * `connectors_platform_config`: Configuration for the Connectors Platform add-on. + + * `expires_at`: Output only. Time at which the Connectors Platform add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire. + + * `enabled`: Flag that specifies whether the Connectors Platform add-on is enabled. + + * `analytics_config`: Configuration for the Analytics add-on. + + * `expire_time_millis`: Output only. Time at which the Analytics add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire. + + * `state`: Output only. The state of the Analytics add-on. + Possible values: + * ADDON_STATE_UNSPECIFIED + * ENABLING + * ENABLED + * DISABLING + * DISABLED + + * `enabled`: Whether the Analytics add-on is enabled. + + * `update_time`: Output only. The latest update time. + + * `advanced_api_ops_config`: Configuration for the Advanced API Ops add-on. + + * `enabled`: Flag that specifies whether the Advanced API Ops add-on is enabled. + + * `customer_name`: Not used by Apigee. + + * `created_at`: Output only. Time that the Apigee organization was created in milliseconds since epoch. + + * `last_modified_at`: Output only. Time that the Apigee organization was last modified in milliseconds since epoch. + + * `subscription_plan`: Output only. Subscription plan that the customer has purchased. Output only. + Possible values: + * SUBSCRIPTION_PLAN_UNSPECIFIED + * SUBSCRIPTION_2021 + * SUBSCRIPTION_2024 + + * `properties`: Message for compatibility with legacy Edge specification for Java Properties object in JSON. + + * `property`: List of all properties in the object + + * `value`: The property value + + * `name`: The property key + + * `state`: Output only. State of the organization. Values other than ACTIVE means the resource is not ready to use. + Possible values: + * STATE_UNSPECIFIED + * CREATING + * ACTIVE + * DELETING + * UPDATING + + * `name`: Output only. Name of the Apigee organization. + + * `disable_vpc_peering`: Optional. Flag that specifies whether the VPC Peering through Private Google Access should be disabled between the consumer network and Apigee. Valid only when RuntimeType is set to CLOUD. Required if an authorizedNetwork on the consumer project is not provided, in which case the flag should be set to true. The value must be set before the creation of any Apigee runtime instance and can be updated only when there are no runtime instances. **Note:** Apigee will be deprecating the vpc peering model that requires you to provide 'authorizedNetwork', by making the non-peering model as the default way of provisioning Apigee organization in future. So, this will be a temporary flag to enable the transition. Not supported for Apigee hybrid. + + * `control_plane_encryption_key_name`: Cloud KMS key name used for encrypting control plane data that is stored in a multi region. Required when [BillingType](#BillingType) is `SUBSCRIPTION`. When [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*` + + * `analytics_region`: Required. DEPRECATED: This field will eventually be deprecated and replaced with a differently-named field. Primary Google Cloud region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org). + + * `api_consumer_data_location`: This field is needed only for customers with control plane in US or EU. Apigee stores some control plane data only in single region. This field determines which single region Apigee should use. For example: "us-west1" when control plane is in US or "europe-west2" when control plane is in EU. + + * `display_name`: Display name for the Apigee organization. Unused, but reserved for future use. + + * `apigee_project_id`: Output only. Apigee Project ID associated with the organization. Use this project to allowlist Apigee in the Service Attachment when using private service connect with Apigee. + + * `expires_at`: Output only. Time that the Apigee organization is scheduled for deletion. + + * `attributes`: Not used by Apigee. + + * `billing_type`: Billing type of the Apigee organization. See [Apigee pricing](https://cloud.google.com/apigee/pricing). + Possible values: + * BILLING_TYPE_UNSPECIFIED + * SUBSCRIPTION + * EVALUATION + * PAYG + + +## 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_organizations.md b/docs/resources/google_apigee_organizations.md new file mode 100644 index 000000000..5a4eb7be7 --- /dev/null +++ b/docs/resources/google_apigee_organizations.md @@ -0,0 +1,55 @@ +--- +title: About the google_apigee_organizations resource +platform: gcp +--- + +## Syntax +A `google_apigee_organizations` is used to test a Google Organization resource + +## Examples +``` + describe google_apigee_organizations(parent: ' value_parent') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organizations` resource: + +See [google_apigee_organization.md](google_apigee_organization.md) for more detailed information + * `api_consumer_data_encryption_key_names`: an array of `google_apigee_organization` api_consumer_data_encryption_key_name + * `runtime_database_encryption_key_names`: an array of `google_apigee_organization` runtime_database_encryption_key_name + * `environments`: an array of `google_apigee_organization` environments + * `runtime_types`: an array of `google_apigee_organization` runtime_type + * `types`: an array of `google_apigee_organization` type + * `portal_disableds`: an array of `google_apigee_organization` portal_disabled + * `authorized_networks`: an array of `google_apigee_organization` authorized_network + * `project_ids`: an array of `google_apigee_organization` project_id + * `descriptions`: an array of `google_apigee_organization` description + * `ca_certificates`: an array of `google_apigee_organization` ca_certificate + * `subscription_types`: an array of `google_apigee_organization` subscription_type + * `addons_configs`: an array of `google_apigee_organization` addons_config + * `customer_names`: an array of `google_apigee_organization` customer_name + * `created_ats`: an array of `google_apigee_organization` created_at + * `last_modified_ats`: an array of `google_apigee_organization` last_modified_at + * `subscription_plans`: an array of `google_apigee_organization` subscription_plan + * `properties`: an array of `google_apigee_organization` properties + * `states`: an array of `google_apigee_organization` state + * `names`: an array of `google_apigee_organization` name + * `disable_vpc_peerings`: an array of `google_apigee_organization` disable_vpc_peering + * `control_plane_encryption_key_names`: an array of `google_apigee_organization` control_plane_encryption_key_name + * `analytics_regions`: an array of `google_apigee_organization` analytics_region + * `api_consumer_data_locations`: an array of `google_apigee_organization` api_consumer_data_location + * `display_names`: an array of `google_apigee_organization` display_name + * `apigee_project_ids`: an array of `google_apigee_organization` apigee_project_id + * `expires_ats`: an array of `google_apigee_organization` expires_at + * `attributes`: an array of `google_apigee_organization` attributes + * `billing_types`: an array of `google_apigee_organization` billing_type + +## 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/property/organization_addons_config.rb b/libraries/google/apigee/property/organization_addons_config.rb new file mode 100644 index 000000000..bc1c96233 --- /dev/null +++ b/libraries/google/apigee/property/organization_addons_config.rb @@ -0,0 +1,55 @@ +# 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 'google/apigee/property/organization_addons_config_advanced_api_ops_config' +require 'google/apigee/property/organization_addons_config_analytics_config' +require 'google/apigee/property/organization_addons_config_api_security_config' +require 'google/apigee/property/organization_addons_config_connectors_platform_config' +require 'google/apigee/property/organization_addons_config_integration_config' +require 'google/apigee/property/organization_addons_config_monetization_config' +module GoogleInSpec + module Apigee + module Property + class OrganizationAddonsConfig + attr_reader :integration_config + + attr_reader :api_security_config + + attr_reader :monetization_config + + attr_reader :connectors_platform_config + + attr_reader :analytics_config + + attr_reader :advanced_api_ops_config + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @integration_config = GoogleInSpec::Apigee::Property::OrganizationAddonsConfigIntegrationConfig.new(args['integrationConfig'], to_s) + @api_security_config = GoogleInSpec::Apigee::Property::OrganizationAddonsConfigApiSecurityConfig.new(args['apiSecurityConfig'], to_s) + @monetization_config = GoogleInSpec::Apigee::Property::OrganizationAddonsConfigMonetizationConfig.new(args['monetizationConfig'], to_s) + @connectors_platform_config = GoogleInSpec::Apigee::Property::OrganizationAddonsConfigConnectorsPlatformConfig.new(args['connectorsPlatformConfig'], to_s) + @analytics_config = GoogleInSpec::Apigee::Property::OrganizationAddonsConfigAnalyticsConfig.new(args['analyticsConfig'], to_s) + @advanced_api_ops_config = GoogleInSpec::Apigee::Property::OrganizationAddonsConfigAdvancedApiOpsConfig.new(args['advancedApiOpsConfig'], to_s) + end + + def to_s + "#{@parent_identifier} OrganizationAddonsConfig" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_addons_config_advanced_api_ops_config.rb b/libraries/google/apigee/property/organization_addons_config_advanced_api_ops_config.rb new file mode 100644 index 000000000..ac7f25bbf --- /dev/null +++ b/libraries/google/apigee/property/organization_addons_config_advanced_api_ops_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Apigee + module Property + class OrganizationAddonsConfigAdvancedApiOpsConfig + attr_reader :enabled + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enabled = args['enabled'] + end + + def to_s + "#{@parent_identifier} OrganizationAddonsConfigAdvancedApiOpsConfig" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_addons_config_analytics_config.rb b/libraries/google/apigee/property/organization_addons_config_analytics_config.rb new file mode 100644 index 000000000..463262af6 --- /dev/null +++ b/libraries/google/apigee/property/organization_addons_config_analytics_config.rb @@ -0,0 +1,43 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Apigee + module Property + class OrganizationAddonsConfigAnalyticsConfig + attr_reader :expire_time_millis + + attr_reader :state + + attr_reader :enabled + + attr_reader :update_time + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @expire_time_millis = args['expireTimeMillis'] + @state = args['state'] + @enabled = args['enabled'] + @update_time = args['updateTime'] + end + + def to_s + "#{@parent_identifier} OrganizationAddonsConfigAnalyticsConfig" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_addons_config_api_security_config.rb b/libraries/google/apigee/property/organization_addons_config_api_security_config.rb new file mode 100644 index 000000000..b9233f922 --- /dev/null +++ b/libraries/google/apigee/property/organization_addons_config_api_security_config.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Apigee + module Property + class OrganizationAddonsConfigApiSecurityConfig + attr_reader :enabled + + attr_reader :expires_at + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enabled = args['enabled'] + @expires_at = args['expiresAt'] + end + + def to_s + "#{@parent_identifier} OrganizationAddonsConfigApiSecurityConfig" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_addons_config_connectors_platform_config.rb b/libraries/google/apigee/property/organization_addons_config_connectors_platform_config.rb new file mode 100644 index 000000000..39c1744ed --- /dev/null +++ b/libraries/google/apigee/property/organization_addons_config_connectors_platform_config.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Apigee + module Property + class OrganizationAddonsConfigConnectorsPlatformConfig + attr_reader :expires_at + + attr_reader :enabled + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @expires_at = args['expiresAt'] + @enabled = args['enabled'] + end + + def to_s + "#{@parent_identifier} OrganizationAddonsConfigConnectorsPlatformConfig" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_addons_config_integration_config.rb b/libraries/google/apigee/property/organization_addons_config_integration_config.rb new file mode 100644 index 000000000..e9ba04960 --- /dev/null +++ b/libraries/google/apigee/property/organization_addons_config_integration_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Apigee + module Property + class OrganizationAddonsConfigIntegrationConfig + attr_reader :enabled + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enabled = args['enabled'] + end + + def to_s + "#{@parent_identifier} OrganizationAddonsConfigIntegrationConfig" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_addons_config_monetization_config.rb b/libraries/google/apigee/property/organization_addons_config_monetization_config.rb new file mode 100644 index 000000000..9e0c56149 --- /dev/null +++ b/libraries/google/apigee/property/organization_addons_config_monetization_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Apigee + module Property + class OrganizationAddonsConfigMonetizationConfig + attr_reader :enabled + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enabled = args['enabled'] + end + + def to_s + "#{@parent_identifier} OrganizationAddonsConfigMonetizationConfig" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_properties.rb b/libraries/google/apigee/property/organization_properties.rb new file mode 100644 index 000000000..4a71ff057 --- /dev/null +++ b/libraries/google/apigee/property/organization_properties.rb @@ -0,0 +1,35 @@ +# 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 'google/apigee/property/organization_properties_property' +module GoogleInSpec + module Apigee + module Property + class OrganizationProperties + attr_reader :property + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @property = GoogleInSpec::Apigee::Property::OrganizationPropertiesPropertyArray.parse(args['property'], to_s) + end + + def to_s + "#{@parent_identifier} OrganizationProperties" + end + end + end + end +end diff --git a/libraries/google/apigee/property/organization_properties_property.rb b/libraries/google/apigee/property/organization_properties_property.rb new file mode 100644 index 000000000..784fd1251 --- /dev/null +++ b/libraries/google/apigee/property/organization_properties_property.rb @@ -0,0 +1,45 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Apigee + module Property + class OrganizationPropertiesProperty + attr_reader :value + + attr_reader :name + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @value = args['value'] + @name = args['name'] + end + + def to_s + "#{@parent_identifier} OrganizationPropertiesProperty" + end + end + + class OrganizationPropertiesPropertyArray + def self.parse(value, parent_identifier) + return if value.nil? + return OrganizationPropertiesProperty.new(value, parent_identifier) unless value.is_a?(::Array) + value.map { |v| OrganizationPropertiesProperty.new(v, parent_identifier) } + end + end + end + end +end diff --git a/libraries/google_apigee_organization.rb b/libraries/google_apigee_organization.rb new file mode 100644 index 000000000..b5862e4e1 --- /dev/null +++ b/libraries/google_apigee_organization.rb @@ -0,0 +1,118 @@ +# 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' +require 'google/apigee/property/organization_addons_config' +require 'google/apigee/property/organization_addons_config_advanced_api_ops_config' +require 'google/apigee/property/organization_addons_config_analytics_config' +require 'google/apigee/property/organization_addons_config_api_security_config' +require 'google/apigee/property/organization_addons_config_connectors_platform_config' +require 'google/apigee/property/organization_addons_config_integration_config' +require 'google/apigee/property/organization_addons_config_monetization_config' +require 'google/apigee/property/organization_properties' +require 'google/apigee/property/organization_properties_property' + +# A provider to manage Apigee resources. +class ApigeeOrganization < GcpResourceBase + name 'google_apigee_organization' + desc 'Organization' + supports platform: 'gcp' + + attr_reader :params + attr_reader :api_consumer_data_encryption_key_name + attr_reader :runtime_database_encryption_key_name + attr_reader :environments + attr_reader :runtime_type + attr_reader :type + attr_reader :portal_disabled + attr_reader :authorized_network + attr_reader :project_id + attr_reader :description + attr_reader :ca_certificate + attr_reader :subscription_type + attr_reader :addons_config + attr_reader :customer_name + attr_reader :created_at + attr_reader :last_modified_at + attr_reader :subscription_plan + attr_reader :properties + attr_reader :state + attr_reader :name + attr_reader :disable_vpc_peering + attr_reader :control_plane_encryption_key_name + attr_reader :analytics_region + attr_reader :api_consumer_data_location + attr_reader :display_name + attr_reader :apigee_project_id + attr_reader :expires_at + attr_reader :attributes + attr_reader :billing_type + + 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 + @api_consumer_data_encryption_key_name = @fetched['apiConsumerDataEncryptionKeyName'] + @runtime_database_encryption_key_name = @fetched['runtimeDatabaseEncryptionKeyName'] + @environments = @fetched['environments'] + @runtime_type = @fetched['runtimeType'] + @type = @fetched['type'] + @portal_disabled = @fetched['portalDisabled'] + @authorized_network = @fetched['authorizedNetwork'] + @project_id = @fetched['projectId'] + @description = @fetched['description'] + @ca_certificate = @fetched['caCertificate'] + @subscription_type = @fetched['subscriptionType'] + @addons_config = GoogleInSpec::Apigee::Property::OrganizationAddonsConfig.new(@fetched['addonsConfig'], to_s) + @customer_name = @fetched['customerName'] + @created_at = @fetched['createdAt'] + @last_modified_at = @fetched['lastModifiedAt'] + @subscription_plan = @fetched['subscriptionPlan'] + @properties = GoogleInSpec::Apigee::Property::OrganizationProperties.new(@fetched['properties'], to_s) + @state = @fetched['state'] + @name = @fetched['name'] + @disable_vpc_peering = @fetched['disableVpcPeering'] + @control_plane_encryption_key_name = @fetched['controlPlaneEncryptionKeyName'] + @analytics_region = @fetched['analyticsRegion'] + @api_consumer_data_location = @fetched['apiConsumerDataLocation'] + @display_name = @fetched['displayName'] + @apigee_project_id = @fetched['apigeeProjectId'] + @expires_at = @fetched['expiresAt'] + @attributes = @fetched['attributes'] + @billing_type = @fetched['billingType'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "Organization #{@params[:name]}" + 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_organizations.rb b/libraries/google_apigee_organizations.rb new file mode 100644 index 000000000..c8613eb1c --- /dev/null +++ b/libraries/google_apigee_organizations.rb @@ -0,0 +1,133 @@ +# 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 ApigeeOrganizations < GcpResourceBase + name 'google_apigee_organizations' + desc 'Organization plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:api_consumer_data_encryption_key_names, field: :api_consumer_data_encryption_key_name) + filter_table_config.add(:runtime_database_encryption_key_names, field: :runtime_database_encryption_key_name) + filter_table_config.add(:environments, field: :environments) + filter_table_config.add(:runtime_types, field: :runtime_type) + filter_table_config.add(:types, field: :type) + filter_table_config.add(:portal_disableds, field: :portal_disabled) + filter_table_config.add(:authorized_networks, field: :authorized_network) + filter_table_config.add(:project_ids, field: :project_id) + filter_table_config.add(:descriptions, field: :description) + filter_table_config.add(:ca_certificates, field: :ca_certificate) + filter_table_config.add(:subscription_types, field: :subscription_type) + filter_table_config.add(:addons_configs, field: :addons_config) + filter_table_config.add(:customer_names, field: :customer_name) + filter_table_config.add(:created_ats, field: :created_at) + filter_table_config.add(:last_modified_ats, field: :last_modified_at) + filter_table_config.add(:subscription_plans, field: :subscription_plan) + filter_table_config.add(:properties, field: :properties) + filter_table_config.add(:states, field: :state) + filter_table_config.add(:names, field: :name) + filter_table_config.add(:disable_vpc_peerings, field: :disable_vpc_peering) + filter_table_config.add(:control_plane_encryption_key_names, field: :control_plane_encryption_key_name) + filter_table_config.add(:analytics_regions, field: :analytics_region) + filter_table_config.add(:api_consumer_data_locations, field: :api_consumer_data_location) + filter_table_config.add(:display_names, field: :display_name) + filter_table_config.add(:apigee_project_ids, field: :apigee_project_id) + filter_table_config.add(:expires_ats, field: :expires_at) + filter_table_config.add(:attributes, field: :attributes) + filter_table_config.add(:billing_types, field: :billing_type) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('organizations') + 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 + { + 'apiConsumerDataEncryptionKeyName' => ->(obj) { return :api_consumer_data_encryption_key_name, obj['apiConsumerDataEncryptionKeyName'] }, + 'runtimeDatabaseEncryptionKeyName' => ->(obj) { return :runtime_database_encryption_key_name, obj['runtimeDatabaseEncryptionKeyName'] }, + 'environments' => ->(obj) { return :environments, obj['environments'] }, + 'runtimeType' => ->(obj) { return :runtime_type, obj['runtimeType'] }, + 'type' => ->(obj) { return :type, obj['type'] }, + 'portalDisabled' => ->(obj) { return :portal_disabled, obj['portalDisabled'] }, + 'authorizedNetwork' => ->(obj) { return :authorized_network, obj['authorizedNetwork'] }, + 'projectId' => ->(obj) { return :project_id, obj['projectId'] }, + 'description' => ->(obj) { return :description, obj['description'] }, + 'caCertificate' => ->(obj) { return :ca_certificate, obj['caCertificate'] }, + 'subscriptionType' => ->(obj) { return :subscription_type, obj['subscriptionType'] }, + 'addonsConfig' => ->(obj) { return :addons_config, GoogleInSpec::Apigee::Property::OrganizationAddonsConfig.new(obj['addonsConfig'], to_s) }, + 'customerName' => ->(obj) { return :customer_name, obj['customerName'] }, + 'createdAt' => ->(obj) { return :created_at, obj['createdAt'] }, + 'lastModifiedAt' => ->(obj) { return :last_modified_at, obj['lastModifiedAt'] }, + 'subscriptionPlan' => ->(obj) { return :subscription_plan, obj['subscriptionPlan'] }, + 'properties' => ->(obj) { return :properties, GoogleInSpec::Apigee::Property::OrganizationProperties.new(obj['properties'], to_s) }, + 'state' => ->(obj) { return :state, obj['state'] }, + 'name' => ->(obj) { return :name, obj['name'] }, + 'disableVpcPeering' => ->(obj) { return :disable_vpc_peering, obj['disableVpcPeering'] }, + 'controlPlaneEncryptionKeyName' => ->(obj) { return :control_plane_encryption_key_name, obj['controlPlaneEncryptionKeyName'] }, + 'analyticsRegion' => ->(obj) { return :analytics_region, obj['analyticsRegion'] }, + 'apiConsumerDataLocation' => ->(obj) { return :api_consumer_data_location, obj['apiConsumerDataLocation'] }, + 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, + 'apigeeProjectId' => ->(obj) { return :apigee_project_id, obj['apigeeProjectId'] }, + 'expiresAt' => ->(obj) { return :expires_at, obj['expiresAt'] }, + 'attributes' => ->(obj) { return :attributes, obj['attributes'] }, + 'billingType' => ->(obj) { return :billing_type, obj['billingType'] }, + } + end + + private + + def product_url(_ = nil) + 'https://apigee.googleapis.com/v1/' + end + + def resource_base_url + '{{parent}}' + end +end diff --git a/test/integration/verify/controls/google_apigee_organization.rb b/test/integration/verify/controls/google_apigee_organization.rb new file mode 100644 index 000000000..f012dbb68 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization.rb @@ -0,0 +1,78 @@ +# ---------------------------------------------------------------------------- +# +# *** 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 resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization = input('organization', value: { + "name": "value_name", + "parent": "value_parent", + "api_consumer_data_encryption_key_name": "value_apiconsumerdataencryptionkeyname", + "runtime_database_encryption_key_name": "value_runtimedatabaseencryptionkeyname", + "runtime_type": "value_runtimetype", + "type": "value_type", + "authorized_network": "value_authorizednetwork", + "project_id": "value_projectid", + "description": "value_description", + "ca_certificate": "value_cacertificate", + "subscription_type": "value_subscriptiontype", + "customer_name": "value_customername", + "created_at": "value_createdat", + "last_modified_at": "value_lastmodifiedat", + "subscription_plan": "value_subscriptionplan", + "state": "value_state", + "control_plane_encryption_key_name": "value_controlplaneencryptionkeyname", + "analytics_region": "value_analyticsregion", + "api_consumer_data_location": "value_apiconsumerdatalocation", + "display_name": "value_displayname", + "apigee_project_id": "value_apigeeprojectid", + "expires_at": "value_expiresat", + "billing_type": "value_billingtype" +}, description: 'organization description') +control 'google_apigee_organization-1.0' do + impact 1.0 + title 'google_apigee_organization resource test' + + describe google_apigee_organization(name: organization['name']) do + it { should exist } + its('api_consumer_data_encryption_key_name') { should cmp organization['api_consumer_data_encryption_key_name'] } + its('runtime_database_encryption_key_name') { should cmp organization['runtime_database_encryption_key_name'] } + its('runtime_type') { should cmp organization['runtime_type'] } + its('type') { should cmp organization['type'] } + its('authorized_network') { should cmp organization['authorized_network'] } + its('project_id') { should cmp organization['project_id'] } + its('description') { should cmp organization['description'] } + its('ca_certificate') { should cmp organization['ca_certificate'] } + its('subscription_type') { should cmp organization['subscription_type'] } + its('customer_name') { should cmp organization['customer_name'] } + its('created_at') { should cmp organization['created_at'] } + its('last_modified_at') { should cmp organization['last_modified_at'] } + its('subscription_plan') { should cmp organization['subscription_plan'] } + its('state') { should cmp organization['state'] } + its('name') { should cmp organization['name'] } + its('control_plane_encryption_key_name') { should cmp organization['control_plane_encryption_key_name'] } + its('analytics_region') { should cmp organization['analytics_region'] } + its('api_consumer_data_location') { should cmp organization['api_consumer_data_location'] } + its('display_name') { should cmp organization['display_name'] } + its('apigee_project_id') { should cmp organization['apigee_project_id'] } + its('expires_at') { should cmp organization['expires_at'] } + its('billing_type') { should cmp organization['billing_type'] } + + end + + describe google_apigee_organization(name: "does_not_exit") do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_apigee_organizations.rb b/test/integration/verify/controls/google_apigee_organizations.rb new file mode 100644 index 000000000..3e6333ead --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organizations.rb @@ -0,0 +1,51 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_organizations resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization = input('organization', value: { + "name": "value_name", + "parent": "value_parent", + "api_consumer_data_encryption_key_name": "value_apiconsumerdataencryptionkeyname", + "runtime_database_encryption_key_name": "value_runtimedatabaseencryptionkeyname", + "runtime_type": "value_runtimetype", + "type": "value_type", + "authorized_network": "value_authorizednetwork", + "project_id": "value_projectid", + "description": "value_description", + "ca_certificate": "value_cacertificate", + "subscription_type": "value_subscriptiontype", + "customer_name": "value_customername", + "created_at": "value_createdat", + "last_modified_at": "value_lastmodifiedat", + "subscription_plan": "value_subscriptionplan", + "state": "value_state", + "control_plane_encryption_key_name": "value_controlplaneencryptionkeyname", + "analytics_region": "value_analyticsregion", + "api_consumer_data_location": "value_apiconsumerdatalocation", + "display_name": "value_displayname", + "apigee_project_id": "value_apigeeprojectid", + "expires_at": "value_expiresat", + "billing_type": "value_billingtype" +}, description: 'organization description') +control 'google_apigee_organizations-1.0' do + impact 1.0 + title 'google_apigee_organizations resource test' + + describe google_apigee_organizations(parent: organization['parent']) do + it { should exist } + end +end From 311c850493566de7c5a782476f8d63e32fe2cebd Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Thu, 30 Nov 2023 16:34:54 +0530 Subject: [PATCH 03/83] Automatically generated by magic modules for service: artifactregistry and resource: Projects__locations__repository. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- .../configuration/mm-attributes.yml | 16 ++ ...tregistry_project_location_repositories.md | 43 +++++ ...actregistry_project_location_repository.md | 165 ++++++++++++++++++ ...jectlocationrepository_cleanup_policies.rb | 34 ++++ ...projectlocationrepository_docker_config.rb | 34 ++++ .../projectlocationrepository_labels.rb | 34 ++++ .../projectlocationrepository_maven_config.rb | 37 ++++ ...tionrepository_remote_repository_config.rb | 65 +++++++ ...remote_repository_config_apt_repository.rb | 35 ++++ ...config_apt_repository_public_repository.rb | 37 ++++ ...ote_repository_config_docker_repository.rb | 34 ++++ ...mote_repository_config_maven_repository.rb | 34 ++++ ...remote_repository_config_npm_repository.rb | 34 ++++ ...ote_repository_config_python_repository.rb | 34 ++++ ..._repository_config_upstream_credentials.rb | 35 ++++ ...edentials_username_password_credentials.rb | 37 ++++ ...remote_repository_config_yum_repository.rb | 35 ++++ ...config_yum_repository_public_repository.rb | 37 ++++ ...ionrepository_virtual_repository_config.rb | 35 ++++ ...ual_repository_config_upstream_policies.rb | 48 +++++ ...tregistry_project_location_repositories.rb | 109 ++++++++++++ ...actregistry_project_location_repository.rb | 102 +++++++++++ ...tregistry_project_location_repositories.rb | 30 ++++ ...actregistry_project_location_repository.rb | 35 ++++ 24 files changed, 1139 insertions(+) create mode 100644 docs/resources/google_artifactregistry_project_location_repositories.md create mode 100644 docs/resources/google_artifactregistry_project_location_repository.md create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_cleanup_policies.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_docker_config.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_labels.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_maven_config.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository_public_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_docker_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_maven_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config.rb create mode 100644 libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config_upstream_policies.rb create mode 100644 libraries/google_artifactregistry_project_location_repositories.rb create mode 100644 libraries/google_artifactregistry_project_location_repository.rb create mode 100644 test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb create mode 100644 test/integration/verify/controls/google_artifactregistry_project_location_repository.rb diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index eab23d3ea..8846c65a2 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -882,4 +882,20 @@ tensorboard_experiment_run_time_series_resource: value_type : "value_valuetype" project_location_image_version: + parent : "value_parent" +vpn_gateway: + project : "value_project" + region : "value_region" + vpn_gateway : "value_vpngateway" + kind : "value_kind" + id : "value_id" + creation_timestamp : "value_creationtimestamp" + name : "value_name" + description : "value_description" + network : "value_network" + self_link : "value_selflink" + label_fingerprint : "value_labelfingerprint" + stack_type : "value_stacktype" +project_location_repository: + name : "value_name" parent : "value_parent" \ No newline at end of file diff --git a/docs/resources/google_artifactregistry_project_location_repositories.md b/docs/resources/google_artifactregistry_project_location_repositories.md new file mode 100644 index 000000000..43d89c0e2 --- /dev/null +++ b/docs/resources/google_artifactregistry_project_location_repositories.md @@ -0,0 +1,43 @@ +--- +title: About the google_artifactregistry_project_location_repositories resource +platform: gcp +--- + +## Syntax +A `google_artifactregistry_project_location_repositories` is used to test a Google ProjectLocationRepository resource + +## Examples +``` + describe google_artifactregistry_project_location_repositories(parent: ' value_parent') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_artifactregistry_project_location_repositories` resource: + +See [google_artifactregistry_project_location_repository.md](google_artifactregistry_project_location_repository.md) for more detailed information + * `maven_configs`: an array of `google_artifactregistry_project_location_repository` maven_config + * `docker_configs`: an array of `google_artifactregistry_project_location_repository` docker_config + * `virtual_repository_configs`: an array of `google_artifactregistry_project_location_repository` virtual_repository_config + * `remote_repository_configs`: an array of `google_artifactregistry_project_location_repository` remote_repository_config + * `names`: an array of `google_artifactregistry_project_location_repository` name + * `formats`: an array of `google_artifactregistry_project_location_repository` format + * `descriptions`: an array of `google_artifactregistry_project_location_repository` description + * `labels`: an array of `google_artifactregistry_project_location_repository` labels + * `create_times`: an array of `google_artifactregistry_project_location_repository` create_time + * `update_times`: an array of `google_artifactregistry_project_location_repository` update_time + * `kms_key_names`: an array of `google_artifactregistry_project_location_repository` kms_key_name + * `modes`: an array of `google_artifactregistry_project_location_repository` mode + * `cleanup_policies`: an array of `google_artifactregistry_project_location_repository` cleanup_policies + * `size_bytes`: an array of `google_artifactregistry_project_location_repository` size_bytes + * `satisfies_pzs`: an array of `google_artifactregistry_project_location_repository` satisfies_pzs + * `cleanup_policy_dry_runs`: an array of `google_artifactregistry_project_location_repository` cleanup_policy_dry_run + +## 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 [Artifact Registry API](https://console.cloud.google.com/apis/library/artifactregistry.googleapis.com/) is enabled for the current project. diff --git a/docs/resources/google_artifactregistry_project_location_repository.md b/docs/resources/google_artifactregistry_project_location_repository.md new file mode 100644 index 000000000..c0165c04c --- /dev/null +++ b/docs/resources/google_artifactregistry_project_location_repository.md @@ -0,0 +1,165 @@ +--- +title: About the google_artifactregistry_project_location_repository resource +platform: gcp +--- + +## Syntax +A `google_artifactregistry_project_location_repository` is used to test a Google ProjectLocationRepository resource + +## Examples +``` +describe google_artifactregistry_project_location_repository(name: ' value_name') do + it { should exist } + +end + +describe google_artifactregistry_project_location_repository(name: "does_not_exit") do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_artifactregistry_project_location_repository` resource: + + + * `maven_config`: MavenRepositoryConfig is maven related repository details. Provides additional configuration details for repositories of the maven format type. + + * `allow_snapshot_overwrites`: The repository with this flag will allow publishing the same snapshot versions. + + * `version_policy`: Version policy defines the versions that the registry will accept. + Possible values: + * VERSION_POLICY_UNSPECIFIED + * RELEASE + * SNAPSHOT + + * `docker_config`: DockerRepositoryConfig is docker related repository details. Provides additional configuration details for repositories of the docker format type. + + * `immutable_tags`: The repository which enabled this flag prevents all tags from being modified, moved or deleted. This does not prevent tags from being created. + + * `virtual_repository_config`: Virtual repository configuration. + + * `upstream_policies`: Policies that configure the upstream artifacts distributed by the Virtual Repository. Upstream policies cannot be set on a standard repository. + + * `id`: The user-provided ID of the upstream policy. + + * `repository`: A reference to the repository resource, for example: `projects/p1/locations/us-central1/repositories/repo1`. + + * `priority`: Entries with a greater priority value take precedence in the pull order. + + * `remote_repository_config`: Remote repository configuration. + + * `docker_repository`: Configuration for a Docker remote repository. + + * `public_repository`: One of the publicly available Docker repositories supported by Artifact Registry. + Possible values: + * PUBLIC_REPOSITORY_UNSPECIFIED + * DOCKER_HUB + + * `maven_repository`: Configuration for a Maven remote repository. + + * `public_repository`: One of the publicly available Maven repositories supported by Artifact Registry. + Possible values: + * PUBLIC_REPOSITORY_UNSPECIFIED + * MAVEN_CENTRAL + + * `npm_repository`: Configuration for a Npm remote repository. + + * `public_repository`: One of the publicly available Npm repositories supported by Artifact Registry. + Possible values: + * PUBLIC_REPOSITORY_UNSPECIFIED + * NPMJS + + * `python_repository`: Configuration for a Python remote repository. + + * `public_repository`: One of the publicly available Python repositories supported by Artifact Registry. + Possible values: + * PUBLIC_REPOSITORY_UNSPECIFIED + * PYPI + + * `apt_repository`: Configuration for an Apt remote repository. + + * `public_repository`: Publicly available Apt repositories constructed from a common repository base and a custom repository path. + + * `repository_base`: A common public repository base for Apt. + Possible values: + * REPOSITORY_BASE_UNSPECIFIED + * DEBIAN + * UBUNTU + * DEBIAN_SNAPSHOT + + * `repository_path`: A custom field to define a path to a specific repository from the base. + + * `yum_repository`: Configuration for a Yum remote repository. + + * `public_repository`: Publicly available Yum repositories constructed from a common repository base and a custom repository path. + + * `repository_base`: A common public repository base for Yum. + Possible values: + * REPOSITORY_BASE_UNSPECIFIED + * CENTOS + * CENTOS_DEBUG + * CENTOS_VAULT + * CENTOS_STREAM + * ROCKY + * EPEL + + * `repository_path`: A custom field to define a path to a specific repository from the base. + + * `description`: The description of the remote source. + + * `upstream_credentials`: The credentials to access the remote repository. + + * `username_password_credentials`: Username and password credentials. + + * `username`: The username to access the remote repository. + + * `password_secret_version`: The Secret Manager key version that holds the password to access the remote repository. Must be in the format of `projects/{project}/secrets/{secret}/versions/{version}`. + + * `name`: The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`. + + * `format`: Optional. The format of packages that are stored in the repository. + Possible values: + * FORMAT_UNSPECIFIED + * DOCKER + * MAVEN + * NPM + * APT + * YUM + * GOOGET + * PYTHON + * KFP + * GO + + * `description`: The user-provided description of the repository. + + * `labels`: Labels with user-defined metadata. This field may contain up to 64 entries. Label keys and values may be no longer than 63 characters. Label keys must begin with a lowercase letter and may only contain lowercase letters, numeric characters, underscores, and dashes. + + * `additional_properties`: + + * `create_time`: Output only. The time when the repository was created. + + * `update_time`: Output only. The time when the repository was last updated. + + * `kms_key_name`: The Cloud KMS resource name of the customer managed encryption key that's used to encrypt the contents of the Repository. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. This value may not be changed after the Repository has been created. + + * `mode`: Optional. The mode of the repository. + Possible values: + * MODE_UNSPECIFIED + * STANDARD_REPOSITORY + * VIRTUAL_REPOSITORY + * REMOTE_REPOSITORY + + * `cleanup_policies`: Optional. Cleanup policies for this repository. Cleanup policies indicate when certain package versions can be automatically deleted. Map keys are policy IDs supplied by users during policy creation. They must unique within a repository and be under 128 characters in length. + + * `additional_properties`: Artifact policy configuration for repository cleanup policies. + + * `size_bytes`: Output only. The size, in bytes, of all artifact storage in this repository. Repositories that are generally available or in public preview use this to calculate storage costs. + + * `satisfies_pzs`: Output only. If set, the repository satisfies physical zone separation. + + * `cleanup_policy_dry_run`: Optional. If true, the cleanup pipeline is prevented from deleting versions in this repository. + + +## GCP Permissions + +Ensure the [Artifact Registry API](https://console.cloud.google.com/apis/library/artifactregistry.googleapis.com/) is enabled for the current project. diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_cleanup_policies.rb b/libraries/google/artifactregistry/property/projectlocationrepository_cleanup_policies.rb new file mode 100644 index 000000000..5da86b6f9 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_cleanup_policies.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryCleanupPolicies + attr_reader :additional_properties + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @additional_properties = args['additionalProperties'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryCleanupPolicies" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_docker_config.rb b/libraries/google/artifactregistry/property/projectlocationrepository_docker_config.rb new file mode 100644 index 000000000..4786b0060 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_docker_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryDockerConfig + attr_reader :immutable_tags + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @immutable_tags = args['immutableTags'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryDockerConfig" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_labels.rb b/libraries/google/artifactregistry/property/projectlocationrepository_labels.rb new file mode 100644 index 000000000..4aa2864e0 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_labels.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryLabels + attr_reader :additional_properties + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @additional_properties = args['additionalProperties'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryLabels" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_maven_config.rb b/libraries/google/artifactregistry/property/projectlocationrepository_maven_config.rb new file mode 100644 index 000000000..4044b6e84 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_maven_config.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryMavenConfig + attr_reader :allow_snapshot_overwrites + + attr_reader :version_policy + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @allow_snapshot_overwrites = args['allowSnapshotOverwrites'] + @version_policy = args['versionPolicy'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryMavenConfig" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb new file mode 100644 index 000000000..e71850413 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb @@ -0,0 +1,65 @@ +# 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 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository_public_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_docker_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_maven_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository' +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfig + attr_reader :docker_repository + + attr_reader :maven_repository + + attr_reader :npm_repository + + attr_reader :python_repository + + attr_reader :apt_repository + + attr_reader :yum_repository + + attr_reader :description + + attr_reader :upstream_credentials + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @docker_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigDockerRepository.new(args['dockerRepository'], to_s) + @maven_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigMavenRepository.new(args['mavenRepository'], to_s) + @npm_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigNpmRepository.new(args['npmRepository'], to_s) + @python_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigPythonRepository.new(args['pythonRepository'], to_s) + @apt_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigAptRepository.new(args['aptRepository'], to_s) + @yum_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigYumRepository.new(args['yumRepository'], to_s) + @description = args['description'] + @upstream_credentials = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigUpstreamCredentials.new(args['upstreamCredentials'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfig" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository.rb new file mode 100644 index 000000000..7ec93c9e8 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository.rb @@ -0,0 +1,35 @@ +# 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 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository_public_repository' +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigAptRepository + attr_reader :public_repository + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @public_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigAptRepositoryPublicRepository.new(args['publicRepository'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigAptRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository_public_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository_public_repository.rb new file mode 100644 index 000000000..ada74e082 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository_public_repository.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigAptRepositoryPublicRepository + attr_reader :repository_base + + attr_reader :repository_path + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @repository_base = args['repositoryBase'] + @repository_path = args['repositoryPath'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigAptRepositoryPublicRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_docker_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_docker_repository.rb new file mode 100644 index 000000000..b2b1b71e2 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_docker_repository.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigDockerRepository + attr_reader :public_repository + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @public_repository = args['publicRepository'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigDockerRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_maven_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_maven_repository.rb new file mode 100644 index 000000000..6164f71ae --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_maven_repository.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigMavenRepository + attr_reader :public_repository + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @public_repository = args['publicRepository'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigMavenRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository.rb new file mode 100644 index 000000000..c3d3c8a47 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigNpmRepository + attr_reader :public_repository + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @public_repository = args['publicRepository'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigNpmRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository.rb new file mode 100644 index 000000000..7653e1f70 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigPythonRepository + attr_reader :public_repository + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @public_repository = args['publicRepository'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigPythonRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb new file mode 100644 index 000000000..4933f4063 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb @@ -0,0 +1,35 @@ +# 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 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials' +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigUpstreamCredentials + attr_reader :username_password_credentials + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @username_password_credentials = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigUpstreamCredentialsUsernamePasswordCredentials.new(args['usernamePasswordCredentials'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigUpstreamCredentials" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials.rb new file mode 100644 index 000000000..7fbf6dfea --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigUpstreamCredentialsUsernamePasswordCredentials + attr_reader :username + + attr_reader :password_secret_version + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @username = args['username'] + @password_secret_version = args['passwordSecretVersion'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigUpstreamCredentialsUsernamePasswordCredentials" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository.rb new file mode 100644 index 000000000..d3edc0e89 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository.rb @@ -0,0 +1,35 @@ +# 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 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository' +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigYumRepository + attr_reader :public_repository + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @public_repository = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfigYumRepositoryPublicRepository.new(args['publicRepository'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigYumRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository.rb new file mode 100644 index 000000000..f92864b49 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryRemoteRepositoryConfigYumRepositoryPublicRepository + attr_reader :repository_base + + attr_reader :repository_path + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @repository_base = args['repositoryBase'] + @repository_path = args['repositoryPath'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryRemoteRepositoryConfigYumRepositoryPublicRepository" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config.rb b/libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config.rb new file mode 100644 index 000000000..0cd605ec5 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config.rb @@ -0,0 +1,35 @@ +# 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 'google/artifactregistry/property/projectlocationrepository_virtual_repository_config_upstream_policies' +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryVirtualRepositoryConfig + attr_reader :upstream_policies + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @upstream_policies = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryVirtualRepositoryConfigUpstreamPoliciesArray.parse(args['upstreamPolicies'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryVirtualRepositoryConfig" + end + end + end + end +end diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config_upstream_policies.rb b/libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config_upstream_policies.rb new file mode 100644 index 000000000..51f38d0c3 --- /dev/null +++ b/libraries/google/artifactregistry/property/projectlocationrepository_virtual_repository_config_upstream_policies.rb @@ -0,0 +1,48 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Artifactregistry + module Property + class ProjectLocationRepositoryVirtualRepositoryConfigUpstreamPolicies + attr_reader :id + + attr_reader :repository + + attr_reader :priority + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @id = args['id'] + @repository = args['repository'] + @priority = args['priority'] + end + + def to_s + "#{@parent_identifier} ProjectLocationRepositoryVirtualRepositoryConfigUpstreamPolicies" + end + end + + class ProjectLocationRepositoryVirtualRepositoryConfigUpstreamPoliciesArray + def self.parse(value, parent_identifier) + return if value.nil? + return ProjectLocationRepositoryVirtualRepositoryConfigUpstreamPolicies.new(value, parent_identifier) unless value.is_a?(::Array) + value.map { |v| ProjectLocationRepositoryVirtualRepositoryConfigUpstreamPolicies.new(v, parent_identifier) } + end + end + end + end +end diff --git a/libraries/google_artifactregistry_project_location_repositories.rb b/libraries/google_artifactregistry_project_location_repositories.rb new file mode 100644 index 000000000..0b1c4c15c --- /dev/null +++ b/libraries/google_artifactregistry_project_location_repositories.rb @@ -0,0 +1,109 @@ +# 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 ArtifactregistryProjectLocationRepositorys < GcpResourceBase + name 'google_artifactregistry_project_location_repositories' + desc 'ProjectLocationRepository plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:maven_configs, field: :maven_config) + filter_table_config.add(:docker_configs, field: :docker_config) + filter_table_config.add(:virtual_repository_configs, field: :virtual_repository_config) + filter_table_config.add(:remote_repository_configs, field: :remote_repository_config) + filter_table_config.add(:names, field: :name) + filter_table_config.add(:formats, field: :format) + filter_table_config.add(:descriptions, field: :description) + filter_table_config.add(:labels, field: :labels) + filter_table_config.add(:create_times, field: :create_time) + filter_table_config.add(:update_times, field: :update_time) + filter_table_config.add(:kms_key_names, field: :kms_key_name) + filter_table_config.add(:modes, field: :mode) + filter_table_config.add(:cleanup_policies, field: :cleanup_policies) + filter_table_config.add(:size_bytes, field: :size_bytes) + filter_table_config.add(:satisfies_pzs, field: :satisfies_pzs) + filter_table_config.add(:cleanup_policy_dry_runs, field: :cleanup_policy_dry_run) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('projectLocationRepositories') + 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 + { + 'mavenConfig' => ->(obj) { return :maven_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryMavenConfig.new(obj['mavenConfig'], to_s) }, + 'dockerConfig' => ->(obj) { return :docker_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryDockerConfig.new(obj['dockerConfig'], to_s) }, + 'virtualRepositoryConfig' => ->(obj) { return :virtual_repository_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryVirtualRepositoryConfig.new(obj['virtualRepositoryConfig'], to_s) }, + 'remoteRepositoryConfig' => ->(obj) { return :remote_repository_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfig.new(obj['remoteRepositoryConfig'], to_s) }, + 'name' => ->(obj) { return :name, obj['name'] }, + 'format' => ->(obj) { return :format, obj['format'] }, + 'description' => ->(obj) { return :description, obj['description'] }, + 'labels' => ->(obj) { return :labels, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryLabels.new(obj['labels'], to_s) }, + 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, + 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, + 'kmsKeyName' => ->(obj) { return :kms_key_name, obj['kmsKeyName'] }, + 'mode' => ->(obj) { return :mode, obj['mode'] }, + 'cleanupPolicies' => ->(obj) { return :cleanup_policies, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryCleanupPolicies.new(obj['cleanupPolicies'], to_s) }, + 'sizeBytes' => ->(obj) { return :size_bytes, obj['sizeBytes'] }, + 'satisfiesPzs' => ->(obj) { return :satisfies_pzs, obj['satisfiesPzs'] }, + 'cleanupPolicyDryRun' => ->(obj) { return :cleanup_policy_dry_run, obj['cleanupPolicyDryRun'] }, + } + end + + private + + def product_url(_ = nil) + 'https://artifactregistry.googleapis.com/v1beta1/' + end + + def resource_base_url + 'v1beta1/{{parent}}/repositories' + end +end diff --git a/libraries/google_artifactregistry_project_location_repository.rb b/libraries/google_artifactregistry_project_location_repository.rb new file mode 100644 index 000000000..060973f94 --- /dev/null +++ b/libraries/google_artifactregistry_project_location_repository.rb @@ -0,0 +1,102 @@ +# 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' +require 'google/artifactregistry/property/projectlocationrepository_cleanup_policies' +require 'google/artifactregistry/property/projectlocationrepository_docker_config' +require 'google/artifactregistry/property/projectlocationrepository_labels' +require 'google/artifactregistry/property/projectlocationrepository_maven_config' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_apt_repository_public_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_docker_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_maven_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository' +require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository' +require 'google/artifactregistry/property/projectlocationrepository_virtual_repository_config' +require 'google/artifactregistry/property/projectlocationrepository_virtual_repository_config_upstream_policies' + +# A provider to manage Artifact Registry resources. +class ArtifactregistryProjectLocationRepository < GcpResourceBase + name 'google_artifactregistry_project_location_repository' + desc 'ProjectLocationRepository' + supports platform: 'gcp' + + attr_reader :params + attr_reader :maven_config + attr_reader :docker_config + attr_reader :virtual_repository_config + attr_reader :remote_repository_config + attr_reader :name + attr_reader :format + attr_reader :description + attr_reader :labels + attr_reader :create_time + attr_reader :update_time + attr_reader :kms_key_name + attr_reader :mode + attr_reader :cleanup_policies + attr_reader :size_bytes + attr_reader :satisfies_pzs + attr_reader :cleanup_policy_dry_run + + 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 + @maven_config = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryMavenConfig.new(@fetched['mavenConfig'], to_s) + @docker_config = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryDockerConfig.new(@fetched['dockerConfig'], to_s) + @virtual_repository_config = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryVirtualRepositoryConfig.new(@fetched['virtualRepositoryConfig'], to_s) + @remote_repository_config = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfig.new(@fetched['remoteRepositoryConfig'], to_s) + @name = @fetched['name'] + @format = @fetched['format'] + @description = @fetched['description'] + @labels = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryLabels.new(@fetched['labels'], to_s) + @create_time = @fetched['createTime'] + @update_time = @fetched['updateTime'] + @kms_key_name = @fetched['kmsKeyName'] + @mode = @fetched['mode'] + @cleanup_policies = GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryCleanupPolicies.new(@fetched['cleanupPolicies'], to_s) + @size_bytes = @fetched['sizeBytes'] + @satisfies_pzs = @fetched['satisfiesPzs'] + @cleanup_policy_dry_run = @fetched['cleanupPolicyDryRun'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "ProjectLocationRepository #{@params[:name]}" + end + + private + + def product_url(_ = nil) + 'https://artifactregistry.googleapis.com/v1beta1/' + end + + def resource_base_url + 'v1beta1/{{name}}' + end +end diff --git a/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb b/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb new file mode 100644 index 000000000..c28d93efe --- /dev/null +++ b/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb @@ -0,0 +1,30 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_artifactregistry_project_location_repositories resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + project_location_repository = input('project_location_repository', value: { + "name": "value_name", + "parent": "value_parent" +}, description: 'project_location_repository description') +control 'google_artifactregistry_project_location_repositories-1.0' do + impact 1.0 + title 'google_artifactregistry_project_location_repositories resource test' + + describe google_artifactregistry_project_location_repositories(parent: project_location_repository['parent']) do + it { should exist } + end +end diff --git a/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb b/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb new file mode 100644 index 000000000..1402c937b --- /dev/null +++ b/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb @@ -0,0 +1,35 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_artifactregistry_project_location_repository resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + project_location_repository = input('project_location_repository', value: { + "name": "value_name", + "parent": "value_parent" +}, description: 'project_location_repository description') +control 'google_artifactregistry_project_location_repository-1.0' do + impact 1.0 + title 'google_artifactregistry_project_location_repository resource test' + + describe google_artifactregistry_project_location_repository(name: project_location_repository['name']) do + it { should exist } + + end + + describe google_artifactregistry_project_location_repository(name: "does_not_exit") do + it { should_not exist } + end +end From 309874fcbb94d3c56f38d0561e32cf93075d94ea Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Thu, 30 Nov 2023 17:43:18 +0530 Subject: [PATCH 04/83] Updated attributes values Signed-off-by: Vasu1105 --- .../configuration/mm-attributes.yml | 48 +++++-------------- 1 file changed, 11 insertions(+), 37 deletions(-) diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index 0f09f4ede..69212b639 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -604,7 +604,7 @@ index: update_time : "value_updatetime" create_time : "value_createtime" etag : "value_etag" - + tensorboard: name : "value_name" region : "value_region" @@ -883,40 +883,14 @@ tensorboard_experiment_run_time_series_resource: project_location_image_version: parent : "value_parent" -vpn_gateway: - project : "value_project" - region : "value_region" - vpn_gateway : "value_vpngateway" - kind : "value_kind" - id : "value_id" - creation_timestamp : "value_creationtimestamp" - name : "value_name" - description : "value_description" - network : "value_network" - self_link : "value_selflink" - label_fingerprint : "value_labelfingerprint" - stack_type : "value_stacktype" + organization: - name : "value_name" - parent : "value_parent" - api_consumer_data_encryption_key_name : "value_apiconsumerdataencryptionkeyname" - runtime_database_encryption_key_name : "value_runtimedatabaseencryptionkeyname" - runtime_type : "value_runtimetype" - type : "value_type" - authorized_network : "value_authorizednetwork" - project_id : "value_projectid" - description : "value_description" - ca_certificate : "value_cacertificate" - subscription_type : "value_subscriptiontype" - customer_name : "value_customername" - created_at : "value_createdat" - last_modified_at : "value_lastmodifiedat" - subscription_plan : "value_subscriptionplan" - state : "value_state" - control_plane_encryption_key_name : "value_controlplaneencryptionkeyname" - analytics_region : "value_analyticsregion" - api_consumer_data_location : "value_apiconsumerdatalocation" - display_name : "value_displayname" - apigee_project_id : "value_apigeeprojectid" - expires_at : "value_expiresat" - billing_type : "value_billingtype" \ No newline at end of file + name : "ppradhan" + parent : "organizations/ppradhan" + runtime_type : "CLOUD" + authorized_network : "default" + project_id : "ppradhan" + subscription_type : "PAID" + created_at : ""1698225643253" + state : "ACTIVE" + analytics_region : "us-west1" \ No newline at end of file From f81b6b51bcf961c2dc25d00ea683e09d416abed9 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Thu, 30 Nov 2023 17:56:51 +0530 Subject: [PATCH 05/83] Updates test Signed-off-by: Vasu1105 --- .../controls/google_apigee_organization.rb | 54 +++++-------------- .../controls/google_apigee_organizations.rb | 33 +++--------- 2 files changed, 18 insertions(+), 69 deletions(-) diff --git a/test/integration/verify/controls/google_apigee_organization.rb b/test/integration/verify/controls/google_apigee_organization.rb index f012dbb68..2093b433e 100644 --- a/test/integration/verify/controls/google_apigee_organization.rb +++ b/test/integration/verify/controls/google_apigee_organization.rb @@ -14,62 +14,32 @@ title 'Test GCP google_apigee_organization resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - - organization = input('organization', value: { - "name": "value_name", - "parent": "value_parent", - "api_consumer_data_encryption_key_name": "value_apiconsumerdataencryptionkeyname", - "runtime_database_encryption_key_name": "value_runtimedatabaseencryptionkeyname", - "runtime_type": "value_runtimetype", - "type": "value_type", - "authorized_network": "value_authorizednetwork", - "project_id": "value_projectid", - "description": "value_description", - "ca_certificate": "value_cacertificate", - "subscription_type": "value_subscriptiontype", - "customer_name": "value_customername", - "created_at": "value_createdat", - "last_modified_at": "value_lastmodifiedat", - "subscription_plan": "value_subscriptionplan", - "state": "value_state", - "control_plane_encryption_key_name": "value_controlplaneencryptionkeyname", - "analytics_region": "value_analyticsregion", - "api_consumer_data_location": "value_apiconsumerdatalocation", - "display_name": "value_displayname", - "apigee_project_id": "value_apigeeprojectid", - "expires_at": "value_expiresat", - "billing_type": "value_billingtype" +organization = input('organization', value: { + "name": "ppradhan", + "parent": "organizations/ppradhan", + "runtime_type": "CLOUD", + "authorized_network": "default", + "project_id": "ppradhan", + "subscription_type": "PAID", + "created_at": "1698225643253", + "state": "ACTIVE", + "analytics_region": "us-west1" }, description: 'organization description') + control 'google_apigee_organization-1.0' do impact 1.0 title 'google_apigee_organization resource test' - describe google_apigee_organization(name: organization['name']) do + describe google_apigee_organization(name: organization['parent']) do it { should exist } - its('api_consumer_data_encryption_key_name') { should cmp organization['api_consumer_data_encryption_key_name'] } - its('runtime_database_encryption_key_name') { should cmp organization['runtime_database_encryption_key_name'] } its('runtime_type') { should cmp organization['runtime_type'] } - its('type') { should cmp organization['type'] } its('authorized_network') { should cmp organization['authorized_network'] } its('project_id') { should cmp organization['project_id'] } - its('description') { should cmp organization['description'] } - its('ca_certificate') { should cmp organization['ca_certificate'] } its('subscription_type') { should cmp organization['subscription_type'] } - its('customer_name') { should cmp organization['customer_name'] } its('created_at') { should cmp organization['created_at'] } - its('last_modified_at') { should cmp organization['last_modified_at'] } - its('subscription_plan') { should cmp organization['subscription_plan'] } its('state') { should cmp organization['state'] } its('name') { should cmp organization['name'] } - its('control_plane_encryption_key_name') { should cmp organization['control_plane_encryption_key_name'] } its('analytics_region') { should cmp organization['analytics_region'] } - its('api_consumer_data_location') { should cmp organization['api_consumer_data_location'] } - its('display_name') { should cmp organization['display_name'] } - its('apigee_project_id') { should cmp organization['apigee_project_id'] } - its('expires_at') { should cmp organization['expires_at'] } - its('billing_type') { should cmp organization['billing_type'] } - end describe google_apigee_organization(name: "does_not_exit") do diff --git a/test/integration/verify/controls/google_apigee_organizations.rb b/test/integration/verify/controls/google_apigee_organizations.rb index 3e6333ead..cf866b80a 100644 --- a/test/integration/verify/controls/google_apigee_organizations.rb +++ b/test/integration/verify/controls/google_apigee_organizations.rb @@ -14,38 +14,17 @@ title 'Test GCP google_apigee_organizations resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - - organization = input('organization', value: { - "name": "value_name", - "parent": "value_parent", - "api_consumer_data_encryption_key_name": "value_apiconsumerdataencryptionkeyname", - "runtime_database_encryption_key_name": "value_runtimedatabaseencryptionkeyname", - "runtime_type": "value_runtimetype", - "type": "value_type", - "authorized_network": "value_authorizednetwork", - "project_id": "value_projectid", - "description": "value_description", - "ca_certificate": "value_cacertificate", - "subscription_type": "value_subscriptiontype", - "customer_name": "value_customername", - "created_at": "value_createdat", - "last_modified_at": "value_lastmodifiedat", - "subscription_plan": "value_subscriptionplan", - "state": "value_state", - "control_plane_encryption_key_name": "value_controlplaneencryptionkeyname", - "analytics_region": "value_analyticsregion", - "api_consumer_data_location": "value_apiconsumerdatalocation", - "display_name": "value_displayname", - "apigee_project_id": "value_apigeeprojectid", - "expires_at": "value_expiresat", - "billing_type": "value_billingtype" +organization = input('organization', value: { + "parent": "organizations", + "project_id": "ppradhan", }, description: 'organization description') + control 'google_apigee_organizations-1.0' do impact 1.0 title 'google_apigee_organizations resource test' - describe google_apigee_organizations(parent: organization['parent']) do + describe google_apigee_organizations(parent: organization["parent"]) do it { should exist } + its("project_ids") { should include "#{organization["project_id"]}" } end end From 5d15ed4ef289f383a4598e21853f8474e9a4d7e3 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Fri, 1 Dec 2023 10:43:06 +0000 Subject: [PATCH 06/83] Bump version to 1.11.54 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a696c0c1d..cb4021c1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.54](https://github.com/inspec/inspec-gcp/tree/v1.11.54) (2023-12-01) + +#### Merged Pull Requests +- CHEF-7355-MAGIC-MODULE-apigee-Organization - Resource Implementation [#541](https://github.com/inspec/inspec-gcp/pull/541) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.53](https://github.com/inspec/inspec-gcp/tree/v1.11.53) (2023-11-29) #### Merged Pull Requests - CHEF-7365-MAGIC-MODULE-composer-Projects__locations__imageVersion - Resource Implementation [#527](https://github.com/inspec/inspec-gcp/pull/527) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.52](https://github.com/inspec/inspec-gcp/tree/v1.11.52) (2023-10-16) diff --git a/VERSION b/VERSION index f8e2df514..1027fe014 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.53 \ No newline at end of file +1.11.54 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 5e8aa24e5..f72d3a600 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.53 +version: 1.11.54 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 94f939ad02223fd031dbd61f0ac10f5b827c130f Mon Sep 17 00:00:00 2001 From: Nik08 Date: Fri, 1 Dec 2023 17:17:04 +0530 Subject: [PATCH 07/83] Addition of new properties in data proc cluster/s resources Signed-off-by: Nik08 --- libraries/google_dataproc_cluster.rb | 12 ++++++++++++ libraries/google_dataproc_clusters.rb | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/libraries/google_dataproc_cluster.rb b/libraries/google_dataproc_cluster.rb index fd594a470..46a363af2 100644 --- a/libraries/google_dataproc_cluster.rb +++ b/libraries/google_dataproc_cluster.rb @@ -42,6 +42,12 @@ class DataprocCluster < GcpResourceBase attr_reader :labels attr_reader :config attr_reader :region + attr_reader :project_id + attr_reader :virtual_cluster_config + attr_reader :status + attr_reader :status_history + attr_reader :cluster_uuid + attr_reader :metrics def initialize(params) super(params.merge({ use_http_transport: true })) @@ -55,6 +61,12 @@ def parse @labels = @fetched['labels'] @config = GoogleInSpec::Dataproc::Property::ClusterConfig.new(@fetched['config'], to_s) @region = @fetched['region'] + @project_id = @fetched['projectId'] + @virtual_cluster_config = @fetched['virtualClusterConfig'] + @status = @fetched['status'] + @status_history = @fetched['statusHistory'] + @cluster_uuid = @fetched['clusterUuid'] + @metrics = @fetched['metrics'] end def exists? diff --git a/libraries/google_dataproc_clusters.rb b/libraries/google_dataproc_clusters.rb index 338959419..2216959db 100644 --- a/libraries/google_dataproc_clusters.rb +++ b/libraries/google_dataproc_clusters.rb @@ -27,6 +27,12 @@ class DataprocClusters < GcpResourceBase filter_table_config.add(:labels, field: :labels) filter_table_config.add(:configs, field: :config) filter_table_config.add(:regions, field: :region) + filter_table_config.add(:project_ids, field: :project_id) + filter_table_config.add(:virtual_cluster_configs, field: :virtual_cluster_config) + filter_table_config.add(:statuses, field: :status) + filter_table_config.add(:status_histories, field: :status_history) + filter_table_config.add(:cluster_uuids, field: :cluster_uuid) + filter_table_config.add(:metrics, field: :metrics) filter_table_config.connect(self, :table) @@ -70,6 +76,12 @@ def transformers 'labels' => ->(obj) { return :labels, obj['labels'] }, 'config' => ->(obj) { return :config, GoogleInSpec::Dataproc::Property::ClusterConfig.new(obj['config'], to_s) }, 'region' => ->(obj) { return :region, obj['region'] }, + 'projectId' => ->(obj) { return :project_id, obj['projectId'] }, + 'virtualClusterConfig' => ->(obj) { return :virtual_cluster_config, obj['virtualClusterConfig'] }, + 'status' => ->(obj) { return :status, obj['status'] }, + 'statusHistory' => ->(obj) { return :status_history, obj['statusHistory'] }, + 'clusterUuid' => ->(obj) { return :cluster_uuid, obj['clusterUuid'] }, + 'metrics' => ->(obj) { return :metrics, obj['metrics'] }, } end From f64bf4adbeb2ec32eac0bccca4060fc6444fe5f2 Mon Sep 17 00:00:00 2001 From: Nik08 Date: Fri, 1 Dec 2023 17:18:26 +0530 Subject: [PATCH 08/83] Doc updated for new properties added for data proc clusters/s resources Signed-off-by: Nik08 --- docs/resources/google_dataproc_cluster.md | 14 ++++++++++++++ docs/resources/google_dataproc_clusters.md | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/docs/resources/google_dataproc_cluster.md b/docs/resources/google_dataproc_cluster.md index 2177903c7..8e2f0e66c 100644 --- a/docs/resources/google_dataproc_cluster.md +++ b/docs/resources/google_dataproc_cluster.md @@ -192,6 +192,20 @@ Properties that can be accessed from the `google_dataproc_cluster` resource: * `region`: The region in which the cluster and associated nodes will be created in. + * `project_id`: The Google Cloud Platform project ID that the cluster belongs to. + + * `virtual_cluster_config`: Optional. The virtual cluster config is used when creating a Dataproc cluster that does not directly control the underlying compute resources, for example, when creating a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke-overview). Dataproc may set default values, and values may change when clusters are updated. Exactly one of config or virtual_cluster_config must be specified. + + * `additional_properties`: + + * `status`: Output only. Cluster status. + + * `status_history`: Output only. The previous cluster status. + + * `cluster_uuid`: Output only. A cluster UUID (Unique Universal Identifier). Dataproc generates this value when it creates the cluster. + + * `metrics`: Output only. Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. + ## GCP Permissions diff --git a/docs/resources/google_dataproc_clusters.md b/docs/resources/google_dataproc_clusters.md index 39371b642..8bf6bd25d 100644 --- a/docs/resources/google_dataproc_clusters.md +++ b/docs/resources/google_dataproc_clusters.md @@ -26,6 +26,12 @@ See [google_dataproc_cluster.md](google_dataproc_cluster.md) for more detailed i * `labels`: an array of `google_dataproc_cluster` labels * `configs`: an array of `google_dataproc_cluster` config * `regions`: an array of `google_dataproc_cluster` region + * `project_ids`: an array of `google_dataproc_cluster` project_id + * `virtual_cluster_configs`: an array of `google_dataproc_cluster` virtual_cluster_config + * `statuses`: an array of `google_dataproc_cluster` status + * `status_histories`: an array of `google_dataproc_cluster` status_history + * `cluster_uuids`: an array of `google_dataproc_cluster` cluster_uuid + * `metrics`: an array of `google_dataproc_cluster` metrics ## Filter Criteria This resource supports all of the above properties as filter criteria, which can be used From 909ccb6d4ec6df69ddffe4a63faa1c76e7737091 Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Mon, 4 Dec 2023 14:14:45 +0530 Subject: [PATCH 09/83] Automatically generated by magic modules for service: composer and resource: Projects__locations__environment. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- .../configuration/mm-attributes.yml | 55 +++- ...e_composer_project_location_environment.md | 262 ++++++++++++++++++ ..._composer_project_location_environments.md | 36 +++ .../projectlocationenvironment_config.rb | 109 ++++++++ ...ationenvironment_config_database_config.rb | 37 +++ ...ionenvironment_config_encryption_config.rb | 34 +++ ...onenvironment_config_maintenance_window.rb | 40 +++ ...onfig_master_authorized_networks_config.rb | 38 +++ ..._authorized_networks_config_cidr_blocks.rb | 45 +++ ...tlocationenvironment_config_node_config.rb | 62 +++++ ...config_node_config_ip_allocation_policy.rb | 46 +++ ...nment_config_private_environment_config.rb | 63 +++++ ...te_environment_config_networking_config.rb | 34 +++ ...vironment_config_private_cluster_config.rb | 40 +++ ...ationenvironment_config_recovery_config.rb | 35 +++ ...overy_config_scheduled_snapshots_config.rb | 43 +++ ...ationenvironment_config_software_config.rb | 52 ++++ ...oftware_config_airflow_config_overrides.rb | 34 +++ ...nt_config_software_config_env_variables.rb | 34 +++ ...nt_config_software_config_pypi_packages.rb | 34 +++ ...ionenvironment_config_web_server_config.rb | 34 +++ ...onfig_web_server_network_access_control.rb | 35 +++ ...etwork_access_control_allowed_ip_ranges.rb | 45 +++ ...tionenvironment_config_workloads_config.rb | 47 ++++ ...nment_config_workloads_config_scheduler.rb | 43 +++ ...nment_config_workloads_config_triggerer.rb | 40 +++ ...ment_config_workloads_config_web_server.rb | 40 +++ ...ironment_config_workloads_config_worker.rb | 46 +++ .../projectlocationenvironment_labels.rb | 34 +++ ...ojectlocationenvironment_storage_config.rb | 34 +++ ...e_composer_project_location_environment.rb | 98 +++++++ ..._composer_project_location_environments.rb | 95 +++++++ ...e_composer_project_location_environment.rb | 44 +++ ..._composer_project_location_environments.rb | 34 +++ 34 files changed, 1791 insertions(+), 11 deletions(-) create mode 100644 docs/resources/google_composer_project_location_environment.md create mode 100644 docs/resources/google_composer_project_location_environments.md create mode 100644 libraries/google/composer/property/projectlocationenvironment_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_database_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_encryption_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_maintenance_window.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config_cidr_blocks.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_node_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_node_config_ip_allocation_policy.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_private_environment_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_networking_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_private_cluster_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_recovery_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_recovery_config_scheduled_snapshots_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_software_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_software_config_airflow_config_overrides.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_software_config_env_variables.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_software_config_pypi_packages.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_web_server_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control_allowed_ip_ranges.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_workloads_config.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_workloads_config_scheduler.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_workloads_config_triggerer.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_workloads_config_web_server.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_config_workloads_config_worker.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_labels.rb create mode 100644 libraries/google/composer/property/projectlocationenvironment_storage_config.rb create mode 100644 libraries/google_composer_project_location_environment.rb create mode 100644 libraries/google_composer_project_location_environments.rb create mode 100644 test/integration/verify/controls/google_composer_project_location_environment.rb create mode 100644 test/integration/verify/controls/google_composer_project_location_environments.rb diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index 69212b639..1f230f45f 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -604,7 +604,7 @@ index: update_time : "value_updatetime" create_time : "value_createtime" etag : "value_etag" - + tensorboard: name : "value_name" region : "value_region" @@ -883,14 +883,47 @@ tensorboard_experiment_run_time_series_resource: project_location_image_version: parent : "value_parent" - +vpn_gateway: + project : "value_project" + region : "value_region" + vpn_gateway : "value_vpngateway" + kind : "value_kind" + id : "value_id" + creation_timestamp : "value_creationtimestamp" + name : "value_name" + description : "value_description" + network : "value_network" + self_link : "value_selflink" + label_fingerprint : "value_labelfingerprint" + stack_type : "value_stacktype" organization: - name : "ppradhan" - parent : "organizations/ppradhan" - runtime_type : "CLOUD" - authorized_network : "default" - project_id : "ppradhan" - subscription_type : "PAID" - created_at : ""1698225643253" - state : "ACTIVE" - analytics_region : "us-west1" \ No newline at end of file + name : "value_name" + parent : "value_parent" + api_consumer_data_encryption_key_name : "value_apiconsumerdataencryptionkeyname" + runtime_database_encryption_key_name : "value_runtimedatabaseencryptionkeyname" + runtime_type : "value_runtimetype" + type : "value_type" + authorized_network : "value_authorizednetwork" + project_id : "value_projectid" + description : "value_description" + ca_certificate : "value_cacertificate" + subscription_type : "value_subscriptiontype" + customer_name : "value_customername" + created_at : "value_createdat" + last_modified_at : "value_lastmodifiedat" + subscription_plan : "value_subscriptionplan" + state : "value_state" + control_plane_encryption_key_name : "value_controlplaneencryptionkeyname" + analytics_region : "value_analyticsregion" + api_consumer_data_location : "value_apiconsumerdatalocation" + display_name : "value_displayname" + apigee_project_id : "value_apigeeprojectid" + expires_at : "value_expiresat" + billing_type : "value_billingtype" +project_location_environment: + name : "value_name" + parent : "value_parent" + uuid : "value_uuid" + state : "value_state" + create_time : "value_createtime" + update_time : "value_updatetime" \ No newline at end of file diff --git a/docs/resources/google_composer_project_location_environment.md b/docs/resources/google_composer_project_location_environment.md new file mode 100644 index 000000000..fec74bbc0 --- /dev/null +++ b/docs/resources/google_composer_project_location_environment.md @@ -0,0 +1,262 @@ +--- +title: About the google_composer_project_location_environment resource +platform: gcp +--- + +## Syntax +A `google_composer_project_location_environment` is used to test a Google ProjectLocationEnvironment resource + +## Examples +``` +describe google_composer_project_location_environment(name: ' value_name') do + it { should exist } + its('name') { should cmp 'value_name' } + its('uuid') { should cmp 'value_uuid' } + its('state') { should cmp 'value_state' } + its('create_time') { should cmp 'value_createtime' } + its('update_time') { should cmp 'value_updatetime' } + +end + +describe google_composer_project_location_environment(name: "does_not_exit") do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_composer_project_location_environment` resource: + + + * `name`: The resource name of the environment, in the form: "projects/{projectId}/locations/{locationId}/environments/{environmentId}" EnvironmentId must start with a lowercase letter followed by up to 63 lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + + * `config`: Configuration information for an environment. + + * `gke_cluster`: Output only. The Kubernetes Engine cluster used to run this environment. + + * `dag_gcs_prefix`: Output only. The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using "/"-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with the given prefix. + + * `node_count`: The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `software_config`: Specifies the selection and configuration of software inside the environment. + + * `image_version`: The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview). + + * `airflow_config_overrides`: Optional. Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and must not contain an equals sign ("=") or semicolon (";"). Section and property names must not contain a period ("."). Apache Airflow configuration property names must be written in [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are [blocked](/composer/docs/concepts/airflow-configurations), and cannot be overridden. + + * `additional_properties`: + + * `pypi_packages`: Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as "numpy" and values are the lowercase extras and version specifier such as "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a package without pinning it to a version specifier, use the empty string as the value. + + * `additional_properties`: + + * `env_variables`: Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression `a-zA-Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER` * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` * `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER` + + * `additional_properties`: + + * `python_version`: Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be updated. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3. + + * `scheduler_count`: Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. + + * `node_config`: The configuration information for the Kubernetes Engine nodes running the Apache Airflow software. + + * `location`: Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which to deploy the VMs used to run the Apache Airflow software, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/zones/{zoneId}". This `location` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.machineType` are specified, `nodeConfig.machineType` must belong to this `location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If only one field (`location` or `nodeConfig.machineType`) is specified, the location information from the specified field will be propagated to the unspecified field. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `machine_type`: Optional. The Compute Engine [machine type](/compute/docs/machine-types) used for cluster instances, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}". The `machineType` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.location` are specified, this `machineType` must belong to the `nodeConfig.location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If exactly one of this field and `nodeConfig.location` is specified, the location information from the specified field will be propagated to the unspecified field. The `machineTypeId` must not be a [shared-core machine type](/compute/docs/machine-types#sharedcore). If this field is unspecified, the `machineTypeId` defaults to "n1-standard-1". This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `network`: Optional. The Compute Engine network to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/global/networks/{networkId}". If unspecified, the "default" network ID in the environment's project is used. If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets) is provided, `nodeConfig.subnetwork` must also be provided. For [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see `nodeConfig.subnetwork`. + + * `subnetwork`: Optional. The Compute Engine subnetwork to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}" If a subnetwork is provided, `nodeConfig.network` must also be provided, and the subnetwork must belong to the enclosing environment's project and location. + + * `disk_size_gb`: Optional. The disk size in GB used for node VMs. Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `oauth_scopes`: Optional. The set of Google API scopes to be made available on all node VMs. If `oauth_scopes` is empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `service_account`: Optional. The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. + + * `tags`: Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated. + + * `ip_allocation_policy`: Configuration for controlling how IPs are allocated in the GKE cluster running the Apache Airflow software. + + * `use_ip_aliases`: Optional. Whether or not to enable Alias IPs in the GKE cluster. If `true`, a VPC-native cluster is created. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters. + + * `cluster_secondary_range_name`: Optional. The name of the GKE cluster's secondary range used to allocate IP addresses to pods. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. + + * `cluster_ipv4_cidr_block`: Optional. The IP address range used to allocate IP addresses to pods in the GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. + + * `services_secondary_range_name`: Optional. The name of the services' secondary range used to allocate IP addresses to the GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. + + * `services_ipv4_cidr_block`: Optional. The IP address range of the services IP addresses in this GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. + + * `enable_ip_masq_agent`: Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent + + * `private_environment_config`: The configuration information for configuring a Private IP Cloud Composer environment. + + * `enable_private_environment`: Optional. If `true`, a Private IP Cloud Composer environment is created. If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `private_cluster_config`: Configuration options for the private GKE cluster in a Cloud Composer environment. + + * `enable_private_endpoint`: Optional. If `true`, access to the public endpoint of the GKE cluster is denied. + + * `master_ipv4_cidr_block`: Optional. The CIDR block from which IPv4 range for GKE master will be reserved. If left blank, the default value of '172.16.0.0/23' is used. + + * `master_ipv4_reserved_range`: Output only. The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the GKE cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. + + * `web_server_ipv4_cidr_block`: Optional. The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from `private_cluster_config.master_ipv4_cidr_block` and `cloud_sql_ipv4_cidr_block`. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `cloud_sql_ipv4_cidr_block`: Optional. The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from `web_server_ipv4_cidr_block`. + + * `web_server_ipv4_reserved_range`: Output only. The IP range reserved for the tenant project's App Engine VMs. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `cloud_composer_network_ipv4_cidr_block`: Optional. The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. + + * `cloud_composer_network_ipv4_reserved_range`: Output only. The IP range reserved for the tenant project's Cloud Composer network. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. + + * `enable_privately_used_public_ips`: Optional. When enabled, IPs from public (non-RFC1918) ranges can be used for `IPAllocationPolicy.cluster_ipv4_cidr_block` and `IPAllocationPolicy.service_ipv4_cidr_block`. + + * `cloud_composer_connection_subnetwork`: Optional. When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. + + * `networking_config`: Configuration options for networking connections in the Composer 2 environment. + + * `connection_type`: Optional. Indicates the user requested specifc connection type between Tenant and Customer projects. You cannot set networking connection type in public IP environment. + Possible values: + * CONNECTION_TYPE_UNSPECIFIED + * VPC_PEERING + * PRIVATE_SERVICE_CONNECT + + * `web_server_network_access_control`: Network-level access control policy for the Airflow web server. + + * `allowed_ip_ranges`: A collection of allowed IP ranges with descriptions. + + * `value`: IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` or `2001:0db8:0000:0042:0000:8a2e:0370:7334`. IP range prefixes should be properly truncated. For example, `1.2.3.4/24` should be truncated to `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` should be truncated to `2001:db8::/32`. + + * `description`: Optional. User-provided description. It must contain at most 300 characters. + + * `database_config`: The configuration of Cloud SQL instance that is used by the Apache Airflow software. + + * `machine_type`: Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `zone`: Optional. The Compute Engine zone where the Airflow database is created. If zone is provided, it must be in the region selected for the environment. If zone is not provided, a zone is automatically selected. The zone can only be set during environment creation. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.*. + + * `web_server_config`: The configuration settings for the Airflow web server App Engine instance. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.* + + * `machine_type`: Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values. + + * `encryption_config`: The encryption options for the Cloud Composer environment and its dependencies.Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. + + * `kms_key_name`: Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated. If not specified, Google-managed key will be used. + + * `maintenance_window`: The configuration settings for Cloud Composer maintenance window. The following example: ``` { "startTime":"2019-08-01T01:00:00Z" "endTime":"2019-08-01T07:00:00Z" "recurrence":"FREQ=WEEKLY;BYDAY=TU,WE" } ``` would define a maintenance window between 01 and 07 hours UTC during each Tuesday and Wednesday. + + * `start_time`: Required. Start time of the first recurrence of the maintenance window. + + * `end_time`: Required. Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to `start_time`. + + * `recurrence`: Required. Maintenance window recurrence. Format is a subset of [RFC-5545](https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed values for `FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...` Example values: `FREQ=WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`. + + * `workloads_config`: The Kubernetes workloads configuration for GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. + + * `scheduler`: Configuration for resources used by Airflow schedulers. + + * `cpu`: Optional. CPU request and limit for a single Airflow scheduler replica. + + * `memory_gb`: Optional. Memory (GB) request and limit for a single Airflow scheduler replica. + + * `storage_gb`: Optional. Storage (GB) request and limit for a single Airflow scheduler replica. + + * `count`: Optional. The number of schedulers. + + * `web_server`: Configuration for resources used by Airflow web server. + + * `cpu`: Optional. CPU request and limit for Airflow web server. + + * `memory_gb`: Optional. Memory (GB) request and limit for Airflow web server. + + * `storage_gb`: Optional. Storage (GB) request and limit for Airflow web server. + + * `worker`: Configuration for resources used by Airflow workers. + + * `cpu`: Optional. CPU request and limit for a single Airflow worker replica. + + * `memory_gb`: Optional. Memory (GB) request and limit for a single Airflow worker replica. + + * `storage_gb`: Optional. Storage (GB) request and limit for a single Airflow worker replica. + + * `min_count`: Optional. Minimum number of workers for autoscaling. + + * `max_count`: Optional. Maximum number of workers for autoscaling. + + * `triggerer`: Configuration for resources used by Airflow triggerers. + + * `count`: Optional. The number of triggerers. + + * `cpu`: Optional. CPU request and limit for a single Airflow triggerer replica. + + * `memory_gb`: Optional. Memory (GB) request and limit for a single Airflow triggerer replica. + + * `environment_size`: Optional. The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. + Possible values: + * ENVIRONMENT_SIZE_UNSPECIFIED + * ENVIRONMENT_SIZE_SMALL + * ENVIRONMENT_SIZE_MEDIUM + * ENVIRONMENT_SIZE_LARGE + + * `airflow_uri`: Output only. The URI of the Apache Airflow Web UI hosted within this environment (see [Airflow web interface](/composer/docs/how-to/accessing/airflow-web-interface)). + + * `airflow_byoid_uri`: Output only. The 'bring your own identity' variant of the URI of the Apache Airflow Web UI hosted within this environment, to be accessed with external identities using workforce identity federation (see [Access environments with workforce identity federation](/composer/docs/composer-2/access-environments-with-workforce-identity-federation)). + + * `master_authorized_networks_config`: Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. + + * `enabled`: Whether or not master authorized networks feature is enabled. + + * `cidr_blocks`: Up to 50 external networks that could access Kubernetes master through HTTPS. + + * `display_name`: User-defined name that identifies the CIDR block. + + * `cidr_block`: CIDR block that must be specified in CIDR notation. + + * `recovery_config`: The Recovery settings of an environment. + + * `scheduled_snapshots_config`: The configuration for scheduled snapshot creation mechanism. + + * `enabled`: Optional. Whether scheduled snapshots creation is enabled. + + * `snapshot_location`: Optional. The Cloud Storage location for storing automatically created snapshots. + + * `snapshot_creation_schedule`: Optional. The cron expression representing the time when snapshots creation mechanism runs. This field is subject to additional validation around frequency of execution. + + * `time_zone`: Optional. Time zone that sets the context to interpret snapshot_creation_schedule. + + * `resilience_mode`: Optional. Resilience mode of the Cloud Composer Environment. This field is supported for Cloud Composer environments in versions composer-2.2.0-airflow-*.*.* and newer. + Possible values: + * RESILIENCE_MODE_UNSPECIFIED + * HIGH_RESILIENCE + + * `uuid`: Output only. The UUID (Universally Unique IDentifier) associated with this environment. This value is generated when the environment is created. + + * `state`: The current state of the environment. + Possible values: + * STATE_UNSPECIFIED + * CREATING + * RUNNING + * UPDATING + * DELETING + * ERROR + + * `create_time`: Output only. The time at which this environment was created. + + * `update_time`: Output only. The time at which this environment was last modified. + + * `labels`: Optional. User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size. + + * `additional_properties`: + + * `satisfies_pzs`: Output only. Reserved for future use. + + * `storage_config`: The configuration for data storage in the environment. + + * `bucket`: Optional. The name of the Cloud Storage bucket used by the environment. No `gs://` prefix. + + +## GCP Permissions + +Ensure the [https://composer.googleapis.com/](https://console.cloud.google.com/apis/library/composer.googleapis.com/) is enabled for the current project. diff --git a/docs/resources/google_composer_project_location_environments.md b/docs/resources/google_composer_project_location_environments.md new file mode 100644 index 000000000..a14578e87 --- /dev/null +++ b/docs/resources/google_composer_project_location_environments.md @@ -0,0 +1,36 @@ +--- +title: About the google_composer_project_location_environments resource +platform: gcp +--- + +## Syntax +A `google_composer_project_location_environments` is used to test a Google ProjectLocationEnvironment resource + +## Examples +``` + describe google_composer_project_location_environments(parent: ' value_parent') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_composer_project_location_environments` resource: + +See [google_composer_project_location_environment.md](google_composer_project_location_environment.md) for more detailed information + * `names`: an array of `google_composer_project_location_environment` name + * `configs`: an array of `google_composer_project_location_environment` config + * `uuids`: an array of `google_composer_project_location_environment` uuid + * `states`: an array of `google_composer_project_location_environment` state + * `create_times`: an array of `google_composer_project_location_environment` create_time + * `update_times`: an array of `google_composer_project_location_environment` update_time + * `labels`: an array of `google_composer_project_location_environment` labels + * `satisfies_pzs`: an array of `google_composer_project_location_environment` satisfies_pzs + * `storage_configs`: an array of `google_composer_project_location_environment` storage_config + +## 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 [https://composer.googleapis.com/](https://console.cloud.google.com/apis/library/composer.googleapis.com/) is enabled for the current project. diff --git a/libraries/google/composer/property/projectlocationenvironment_config.rb b/libraries/google/composer/property/projectlocationenvironment_config.rb new file mode 100644 index 000000000..728bbb763 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config.rb @@ -0,0 +1,109 @@ +# 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 'google/composer/property/projectlocationenvironment_config_database_config' +require 'google/composer/property/projectlocationenvironment_config_encryption_config' +require 'google/composer/property/projectlocationenvironment_config_maintenance_window' +require 'google/composer/property/projectlocationenvironment_config_master_authorized_networks_config' +require 'google/composer/property/projectlocationenvironment_config_master_authorized_networks_config_cidr_blocks' +require 'google/composer/property/projectlocationenvironment_config_node_config' +require 'google/composer/property/projectlocationenvironment_config_node_config_ip_allocation_policy' +require 'google/composer/property/projectlocationenvironment_config_private_environment_config' +require 'google/composer/property/projectlocationenvironment_config_private_environment_config_networking_config' +require 'google/composer/property/projectlocationenvironment_config_private_environment_config_private_cluster_config' +require 'google/composer/property/projectlocationenvironment_config_recovery_config' +require 'google/composer/property/projectlocationenvironment_config_recovery_config_scheduled_snapshots_config' +require 'google/composer/property/projectlocationenvironment_config_software_config' +require 'google/composer/property/projectlocationenvironment_config_software_config_airflow_config_overrides' +require 'google/composer/property/projectlocationenvironment_config_software_config_env_variables' +require 'google/composer/property/projectlocationenvironment_config_software_config_pypi_packages' +require 'google/composer/property/projectlocationenvironment_config_web_server_config' +require 'google/composer/property/projectlocationenvironment_config_web_server_network_access_control' +require 'google/composer/property/projectlocationenvironment_config_web_server_network_access_control_allowed_ip_ranges' +require 'google/composer/property/projectlocationenvironment_config_workloads_config' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_scheduler' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_triggerer' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_web_server' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_worker' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfig + attr_reader :gke_cluster + + attr_reader :dag_gcs_prefix + + attr_reader :node_count + + attr_reader :software_config + + attr_reader :node_config + + attr_reader :private_environment_config + + attr_reader :web_server_network_access_control + + attr_reader :database_config + + attr_reader :web_server_config + + attr_reader :encryption_config + + attr_reader :maintenance_window + + attr_reader :workloads_config + + attr_reader :environment_size + + attr_reader :airflow_uri + + attr_reader :airflow_byoid_uri + + attr_reader :master_authorized_networks_config + + attr_reader :recovery_config + + attr_reader :resilience_mode + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @gke_cluster = args['gkeCluster'] + @dag_gcs_prefix = args['dagGcsPrefix'] + @node_count = args['nodeCount'] + @software_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigSoftwareConfig.new(args['softwareConfig'], to_s) + @node_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigNodeConfig.new(args['nodeConfig'], to_s) + @private_environment_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigPrivateEnvironmentConfig.new(args['privateEnvironmentConfig'], to_s) + @web_server_network_access_control = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWebServerNetworkAccessControl.new(args['webServerNetworkAccessControl'], to_s) + @database_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigDatabaseConfig.new(args['databaseConfig'], to_s) + @web_server_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWebServerConfig.new(args['webServerConfig'], to_s) + @encryption_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigEncryptionConfig.new(args['encryptionConfig'], to_s) + @maintenance_window = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigMaintenanceWindow.new(args['maintenanceWindow'], to_s) + @workloads_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWorkloadsConfig.new(args['workloadsConfig'], to_s) + @environment_size = args['environmentSize'] + @airflow_uri = args['airflowUri'] + @airflow_byoid_uri = args['airflowByoidUri'] + @master_authorized_networks_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfig.new(args['masterAuthorizedNetworksConfig'], to_s) + @recovery_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigRecoveryConfig.new(args['recoveryConfig'], to_s) + @resilience_mode = args['resilienceMode'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_database_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_database_config.rb new file mode 100644 index 000000000..3bd003dcc --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_database_config.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigDatabaseConfig + attr_reader :machine_type + + attr_reader :zone + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @machine_type = args['machineType'] + @zone = args['zone'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigDatabaseConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_encryption_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_encryption_config.rb new file mode 100644 index 000000000..b9b5bbb10 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_encryption_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigEncryptionConfig + attr_reader :kms_key_name + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @kms_key_name = args['kmsKeyName'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigEncryptionConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_maintenance_window.rb b/libraries/google/composer/property/projectlocationenvironment_config_maintenance_window.rb new file mode 100644 index 000000000..71bbeabb9 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_maintenance_window.rb @@ -0,0 +1,40 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigMaintenanceWindow + attr_reader :start_time + + attr_reader :end_time + + attr_reader :recurrence + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @start_time = args['startTime'] + @end_time = args['endTime'] + @recurrence = args['recurrence'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigMaintenanceWindow" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config.rb new file mode 100644 index 000000000..4da07486a --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config.rb @@ -0,0 +1,38 @@ +# 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 'google/composer/property/projectlocationenvironment_config_master_authorized_networks_config_cidr_blocks' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfig + attr_reader :enabled + + attr_reader :cidr_blocks + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enabled = args['enabled'] + @cidr_blocks = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksArray.parse(args['cidrBlocks'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config_cidr_blocks.rb b/libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config_cidr_blocks.rb new file mode 100644 index 000000000..2de397e69 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_master_authorized_networks_config_cidr_blocks.rb @@ -0,0 +1,45 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks + attr_reader :display_name + + attr_reader :cidr_block + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @display_name = args['displayName'] + @cidr_block = args['cidrBlock'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks" + end + end + + class ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksArray + def self.parse(value, parent_identifier) + return if value.nil? + return ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks.new(value, parent_identifier) unless value.is_a?(::Array) + value.map { |v| ProjectLocationEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks.new(v, parent_identifier) } + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_node_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_node_config.rb new file mode 100644 index 000000000..6d5a6a773 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_node_config.rb @@ -0,0 +1,62 @@ +# 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 'google/composer/property/projectlocationenvironment_config_node_config_ip_allocation_policy' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigNodeConfig + attr_reader :location + + attr_reader :machine_type + + attr_reader :network + + attr_reader :subnetwork + + attr_reader :disk_size_gb + + attr_reader :oauth_scopes + + attr_reader :service_account + + attr_reader :tags + + attr_reader :ip_allocation_policy + + attr_reader :enable_ip_masq_agent + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @location = args['location'] + @machine_type = args['machineType'] + @network = args['network'] + @subnetwork = args['subnetwork'] + @disk_size_gb = args['diskSizeGb'] + @oauth_scopes = args['oauthScopes'] + @service_account = args['serviceAccount'] + @tags = args['tags'] + @ip_allocation_policy = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigNodeConfigIpAllocationPolicy.new(args['ipAllocationPolicy'], to_s) + @enable_ip_masq_agent = args['enableIpMasqAgent'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigNodeConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_node_config_ip_allocation_policy.rb b/libraries/google/composer/property/projectlocationenvironment_config_node_config_ip_allocation_policy.rb new file mode 100644 index 000000000..45c01c746 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_node_config_ip_allocation_policy.rb @@ -0,0 +1,46 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigNodeConfigIpAllocationPolicy + attr_reader :use_ip_aliases + + attr_reader :cluster_secondary_range_name + + attr_reader :cluster_ipv4_cidr_block + + attr_reader :services_secondary_range_name + + attr_reader :services_ipv4_cidr_block + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @use_ip_aliases = args['useIpAliases'] + @cluster_secondary_range_name = args['clusterSecondaryRangeName'] + @cluster_ipv4_cidr_block = args['clusterIpv4CidrBlock'] + @services_secondary_range_name = args['servicesSecondaryRangeName'] + @services_ipv4_cidr_block = args['servicesIpv4CidrBlock'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigNodeConfigIpAllocationPolicy" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config.rb new file mode 100644 index 000000000..7e2f54162 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config.rb @@ -0,0 +1,63 @@ +# 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 'google/composer/property/projectlocationenvironment_config_private_environment_config_networking_config' +require 'google/composer/property/projectlocationenvironment_config_private_environment_config_private_cluster_config' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigPrivateEnvironmentConfig + attr_reader :enable_private_environment + + attr_reader :private_cluster_config + + attr_reader :web_server_ipv4_cidr_block + + attr_reader :cloud_sql_ipv4_cidr_block + + attr_reader :web_server_ipv4_reserved_range + + attr_reader :cloud_composer_network_ipv4_cidr_block + + attr_reader :cloud_composer_network_ipv4_reserved_range + + attr_reader :enable_privately_used_public_ips + + attr_reader :cloud_composer_connection_subnetwork + + attr_reader :networking_config + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enable_private_environment = args['enablePrivateEnvironment'] + @private_cluster_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigPrivateEnvironmentConfigPrivateClusterConfig.new(args['privateClusterConfig'], to_s) + @web_server_ipv4_cidr_block = args['webServerIpv4CidrBlock'] + @cloud_sql_ipv4_cidr_block = args['cloudSqlIpv4CidrBlock'] + @web_server_ipv4_reserved_range = args['webServerIpv4ReservedRange'] + @cloud_composer_network_ipv4_cidr_block = args['cloudComposerNetworkIpv4CidrBlock'] + @cloud_composer_network_ipv4_reserved_range = args['cloudComposerNetworkIpv4ReservedRange'] + @enable_privately_used_public_ips = args['enablePrivatelyUsedPublicIps'] + @cloud_composer_connection_subnetwork = args['cloudComposerConnectionSubnetwork'] + @networking_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigPrivateEnvironmentConfigNetworkingConfig.new(args['networkingConfig'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigPrivateEnvironmentConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_networking_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_networking_config.rb new file mode 100644 index 000000000..ec6076c2f --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_networking_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigPrivateEnvironmentConfigNetworkingConfig + attr_reader :connection_type + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @connection_type = args['connectionType'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigPrivateEnvironmentConfigNetworkingConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_private_cluster_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_private_cluster_config.rb new file mode 100644 index 000000000..bef1a4f08 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_private_environment_config_private_cluster_config.rb @@ -0,0 +1,40 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigPrivateEnvironmentConfigPrivateClusterConfig + attr_reader :enable_private_endpoint + + attr_reader :master_ipv4_cidr_block + + attr_reader :master_ipv4_reserved_range + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enable_private_endpoint = args['enablePrivateEndpoint'] + @master_ipv4_cidr_block = args['masterIpv4CidrBlock'] + @master_ipv4_reserved_range = args['masterIpv4ReservedRange'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigPrivateEnvironmentConfigPrivateClusterConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_recovery_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_recovery_config.rb new file mode 100644 index 000000000..a0a60f360 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_recovery_config.rb @@ -0,0 +1,35 @@ +# 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 'google/composer/property/projectlocationenvironment_config_recovery_config_scheduled_snapshots_config' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigRecoveryConfig + attr_reader :scheduled_snapshots_config + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @scheduled_snapshots_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig.new(args['scheduledSnapshotsConfig'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigRecoveryConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_recovery_config_scheduled_snapshots_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_recovery_config_scheduled_snapshots_config.rb new file mode 100644 index 000000000..2d21d1ae3 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_recovery_config_scheduled_snapshots_config.rb @@ -0,0 +1,43 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig + attr_reader :enabled + + attr_reader :snapshot_location + + attr_reader :snapshot_creation_schedule + + attr_reader :time_zone + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @enabled = args['enabled'] + @snapshot_location = args['snapshotLocation'] + @snapshot_creation_schedule = args['snapshotCreationSchedule'] + @time_zone = args['timeZone'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_software_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_software_config.rb new file mode 100644 index 000000000..32bbf91a9 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_software_config.rb @@ -0,0 +1,52 @@ +# 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 'google/composer/property/projectlocationenvironment_config_software_config_airflow_config_overrides' +require 'google/composer/property/projectlocationenvironment_config_software_config_env_variables' +require 'google/composer/property/projectlocationenvironment_config_software_config_pypi_packages' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigSoftwareConfig + attr_reader :image_version + + attr_reader :airflow_config_overrides + + attr_reader :pypi_packages + + attr_reader :env_variables + + attr_reader :python_version + + attr_reader :scheduler_count + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @image_version = args['imageVersion'] + @airflow_config_overrides = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigSoftwareConfigAirflowConfigOverrides.new(args['airflowConfigOverrides'], to_s) + @pypi_packages = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigSoftwareConfigPypiPackages.new(args['pypiPackages'], to_s) + @env_variables = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigSoftwareConfigEnvVariables.new(args['envVariables'], to_s) + @python_version = args['pythonVersion'] + @scheduler_count = args['schedulerCount'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigSoftwareConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_software_config_airflow_config_overrides.rb b/libraries/google/composer/property/projectlocationenvironment_config_software_config_airflow_config_overrides.rb new file mode 100644 index 000000000..0cfa1d9ab --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_software_config_airflow_config_overrides.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigSoftwareConfigAirflowConfigOverrides + attr_reader :additional_properties + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @additional_properties = args['additionalProperties'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigSoftwareConfigAirflowConfigOverrides" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_software_config_env_variables.rb b/libraries/google/composer/property/projectlocationenvironment_config_software_config_env_variables.rb new file mode 100644 index 000000000..76458dc48 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_software_config_env_variables.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigSoftwareConfigEnvVariables + attr_reader :additional_properties + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @additional_properties = args['additionalProperties'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigSoftwareConfigEnvVariables" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_software_config_pypi_packages.rb b/libraries/google/composer/property/projectlocationenvironment_config_software_config_pypi_packages.rb new file mode 100644 index 000000000..879265b0b --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_software_config_pypi_packages.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigSoftwareConfigPypiPackages + attr_reader :additional_properties + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @additional_properties = args['additionalProperties'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigSoftwareConfigPypiPackages" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_web_server_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_web_server_config.rb new file mode 100644 index 000000000..f11e520c2 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_web_server_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWebServerConfig + attr_reader :machine_type + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @machine_type = args['machineType'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWebServerConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control.rb b/libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control.rb new file mode 100644 index 000000000..792e0be66 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control.rb @@ -0,0 +1,35 @@ +# 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 'google/composer/property/projectlocationenvironment_config_web_server_network_access_control_allowed_ip_ranges' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWebServerNetworkAccessControl + attr_reader :allowed_ip_ranges + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @allowed_ip_ranges = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWebServerNetworkAccessControlAllowedIpRangesArray.parse(args['allowedIpRanges'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWebServerNetworkAccessControl" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control_allowed_ip_ranges.rb b/libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control_allowed_ip_ranges.rb new file mode 100644 index 000000000..f7afee094 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_web_server_network_access_control_allowed_ip_ranges.rb @@ -0,0 +1,45 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWebServerNetworkAccessControlAllowedIpRanges + attr_reader :value + + attr_reader :description + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @value = args['value'] + @description = args['description'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWebServerNetworkAccessControlAllowedIpRanges" + end + end + + class ProjectLocationEnvironmentConfigWebServerNetworkAccessControlAllowedIpRangesArray + def self.parse(value, parent_identifier) + return if value.nil? + return ProjectLocationEnvironmentConfigWebServerNetworkAccessControlAllowedIpRanges.new(value, parent_identifier) unless value.is_a?(::Array) + value.map { |v| ProjectLocationEnvironmentConfigWebServerNetworkAccessControlAllowedIpRanges.new(v, parent_identifier) } + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_workloads_config.rb b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config.rb new file mode 100644 index 000000000..f9740deae --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config.rb @@ -0,0 +1,47 @@ +# 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 'google/composer/property/projectlocationenvironment_config_workloads_config_scheduler' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_triggerer' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_web_server' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_worker' +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWorkloadsConfig + attr_reader :scheduler + + attr_reader :web_server + + attr_reader :worker + + attr_reader :triggerer + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @scheduler = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWorkloadsConfigScheduler.new(args['scheduler'], to_s) + @web_server = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWorkloadsConfigWebServer.new(args['webServer'], to_s) + @worker = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWorkloadsConfigWorker.new(args['worker'], to_s) + @triggerer = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfigWorkloadsConfigTriggerer.new(args['triggerer'], to_s) + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWorkloadsConfig" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_scheduler.rb b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_scheduler.rb new file mode 100644 index 000000000..40b2f1eaa --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_scheduler.rb @@ -0,0 +1,43 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWorkloadsConfigScheduler + attr_reader :cpu + + attr_reader :memory_gb + + attr_reader :storage_gb + + attr_reader :count + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @cpu = args['cpu'] + @memory_gb = args['memoryGb'] + @storage_gb = args['storageGb'] + @count = args['count'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWorkloadsConfigScheduler" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_triggerer.rb b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_triggerer.rb new file mode 100644 index 000000000..dec87cc6a --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_triggerer.rb @@ -0,0 +1,40 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWorkloadsConfigTriggerer + attr_reader :count + + attr_reader :cpu + + attr_reader :memory_gb + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @count = args['count'] + @cpu = args['cpu'] + @memory_gb = args['memoryGb'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWorkloadsConfigTriggerer" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_web_server.rb b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_web_server.rb new file mode 100644 index 000000000..5d9b44dda --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_web_server.rb @@ -0,0 +1,40 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWorkloadsConfigWebServer + attr_reader :cpu + + attr_reader :memory_gb + + attr_reader :storage_gb + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @cpu = args['cpu'] + @memory_gb = args['memoryGb'] + @storage_gb = args['storageGb'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWorkloadsConfigWebServer" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_worker.rb b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_worker.rb new file mode 100644 index 000000000..1560b6720 --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_config_workloads_config_worker.rb @@ -0,0 +1,46 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentConfigWorkloadsConfigWorker + attr_reader :cpu + + attr_reader :memory_gb + + attr_reader :storage_gb + + attr_reader :min_count + + attr_reader :max_count + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @cpu = args['cpu'] + @memory_gb = args['memoryGb'] + @storage_gb = args['storageGb'] + @min_count = args['minCount'] + @max_count = args['maxCount'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentConfigWorkloadsConfigWorker" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_labels.rb b/libraries/google/composer/property/projectlocationenvironment_labels.rb new file mode 100644 index 000000000..5da4c3f7c --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_labels.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentLabels + attr_reader :additional_properties + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @additional_properties = args['additionalProperties'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentLabels" + end + end + end + end +end diff --git a/libraries/google/composer/property/projectlocationenvironment_storage_config.rb b/libraries/google/composer/property/projectlocationenvironment_storage_config.rb new file mode 100644 index 000000000..ff019714e --- /dev/null +++ b/libraries/google/composer/property/projectlocationenvironment_storage_config.rb @@ -0,0 +1,34 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Composer + module Property + class ProjectLocationEnvironmentStorageConfig + attr_reader :bucket + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @bucket = args['bucket'] + end + + def to_s + "#{@parent_identifier} ProjectLocationEnvironmentStorageConfig" + end + end + end + end +end diff --git a/libraries/google_composer_project_location_environment.rb b/libraries/google_composer_project_location_environment.rb new file mode 100644 index 000000000..86d24af82 --- /dev/null +++ b/libraries/google_composer_project_location_environment.rb @@ -0,0 +1,98 @@ +# 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' +require 'google/composer/property/projectlocationenvironment_config' +require 'google/composer/property/projectlocationenvironment_config_database_config' +require 'google/composer/property/projectlocationenvironment_config_encryption_config' +require 'google/composer/property/projectlocationenvironment_config_maintenance_window' +require 'google/composer/property/projectlocationenvironment_config_master_authorized_networks_config' +require 'google/composer/property/projectlocationenvironment_config_master_authorized_networks_config_cidr_blocks' +require 'google/composer/property/projectlocationenvironment_config_node_config' +require 'google/composer/property/projectlocationenvironment_config_node_config_ip_allocation_policy' +require 'google/composer/property/projectlocationenvironment_config_private_environment_config' +require 'google/composer/property/projectlocationenvironment_config_private_environment_config_networking_config' +require 'google/composer/property/projectlocationenvironment_config_private_environment_config_private_cluster_config' +require 'google/composer/property/projectlocationenvironment_config_recovery_config' +require 'google/composer/property/projectlocationenvironment_config_recovery_config_scheduled_snapshots_config' +require 'google/composer/property/projectlocationenvironment_config_software_config' +require 'google/composer/property/projectlocationenvironment_config_software_config_airflow_config_overrides' +require 'google/composer/property/projectlocationenvironment_config_software_config_env_variables' +require 'google/composer/property/projectlocationenvironment_config_software_config_pypi_packages' +require 'google/composer/property/projectlocationenvironment_config_web_server_config' +require 'google/composer/property/projectlocationenvironment_config_web_server_network_access_control' +require 'google/composer/property/projectlocationenvironment_config_web_server_network_access_control_allowed_ip_ranges' +require 'google/composer/property/projectlocationenvironment_config_workloads_config' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_scheduler' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_triggerer' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_web_server' +require 'google/composer/property/projectlocationenvironment_config_workloads_config_worker' +require 'google/composer/property/projectlocationenvironment_labels' +require 'google/composer/property/projectlocationenvironment_storage_config' + +# A provider to manage composer resources. +class ComposerProjectLocationEnvironment < GcpResourceBase + name 'google_composer_project_location_environment' + desc 'ProjectLocationEnvironment' + supports platform: 'gcp' + + attr_reader :params + attr_reader :name + attr_reader :config + attr_reader :uuid + attr_reader :state + attr_reader :create_time + attr_reader :update_time + attr_reader :labels + attr_reader :satisfies_pzs + attr_reader :storage_config + + 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'] + @config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfig.new(@fetched['config'], to_s) + @uuid = @fetched['uuid'] + @state = @fetched['state'] + @create_time = @fetched['createTime'] + @update_time = @fetched['updateTime'] + @labels = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentLabels.new(@fetched['labels'], to_s) + @satisfies_pzs = @fetched['satisfiesPzs'] + @storage_config = GoogleInSpec::Composer::Property::ProjectLocationEnvironmentStorageConfig.new(@fetched['storageConfig'], to_s) + end + + def exists? + !@fetched.nil? + end + + def to_s + "ProjectLocationEnvironment #{@params[:name]}" + end + + private + + def product_url(_ = nil) + 'https://composer.googleapis.com//V1/' + end + + def resource_base_url + '{{name}}' + end +end diff --git a/libraries/google_composer_project_location_environments.rb b/libraries/google_composer_project_location_environments.rb new file mode 100644 index 000000000..62cba8d42 --- /dev/null +++ b/libraries/google_composer_project_location_environments.rb @@ -0,0 +1,95 @@ +# 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 ComposerProjectLocationEnvironments < GcpResourceBase + name 'google_composer_project_location_environments' + desc 'ProjectLocationEnvironment plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:names, field: :name) + filter_table_config.add(:configs, field: :config) + filter_table_config.add(:uuids, field: :uuid) + filter_table_config.add(:states, field: :state) + filter_table_config.add(:create_times, field: :create_time) + filter_table_config.add(:update_times, field: :update_time) + filter_table_config.add(:labels, field: :labels) + filter_table_config.add(:satisfies_pzs, field: :satisfies_pzs) + filter_table_config.add(:storage_configs, field: :storage_config) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('projectLocationEnvironments') + 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) { return :name, obj['name'] }, + 'config' => ->(obj) { return :config, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfig.new(obj['config'], to_s) }, + 'uuid' => ->(obj) { return :uuid, obj['uuid'] }, + 'state' => ->(obj) { return :state, obj['state'] }, + 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, + 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, + 'labels' => ->(obj) { return :labels, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentLabels.new(obj['labels'], to_s) }, + 'satisfiesPzs' => ->(obj) { return :satisfies_pzs, obj['satisfiesPzs'] }, + 'storageConfig' => ->(obj) { return :storage_config, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentStorageConfig.new(obj['storageConfig'], to_s) }, + } + end + + private + + def product_url(_ = nil) + 'https://composer.googleapis.com//V1/' + end + + def resource_base_url + '{{parent}}/environments' + end +end diff --git a/test/integration/verify/controls/google_composer_project_location_environment.rb b/test/integration/verify/controls/google_composer_project_location_environment.rb new file mode 100644 index 000000000..4de9f9d26 --- /dev/null +++ b/test/integration/verify/controls/google_composer_project_location_environment.rb @@ -0,0 +1,44 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_composer_project_location_environment resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + project_location_environment = input('project_location_environment', value: { + "name": "value_name", + "parent": "value_parent", + "uuid": "value_uuid", + "state": "value_state", + "create_time": "value_createtime", + "update_time": "value_updatetime" +}, description: 'project_location_environment description') +control 'google_composer_project_location_environment-1.0' do + impact 1.0 + title 'google_composer_project_location_environment resource test' + + describe google_composer_project_location_environment(name: project_location_environment['name']) do + it { should exist } + its('name') { should cmp project_location_environment['name'] } + its('uuid') { should cmp project_location_environment['uuid'] } + its('state') { should cmp project_location_environment['state'] } + its('create_time') { should cmp project_location_environment['create_time'] } + its('update_time') { should cmp project_location_environment['update_time'] } + + end + + describe google_composer_project_location_environment(name: "does_not_exit") do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_composer_project_location_environments.rb b/test/integration/verify/controls/google_composer_project_location_environments.rb new file mode 100644 index 000000000..4d1202fa6 --- /dev/null +++ b/test/integration/verify/controls/google_composer_project_location_environments.rb @@ -0,0 +1,34 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_composer_project_location_environments resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + project_location_environment = input('project_location_environment', value: { + "name": "value_name", + "parent": "value_parent", + "uuid": "value_uuid", + "state": "value_state", + "create_time": "value_createtime", + "update_time": "value_updatetime" +}, description: 'project_location_environment description') +control 'google_composer_project_location_environments-1.0' do + impact 1.0 + title 'google_composer_project_location_environments resource test' + + describe google_composer_project_location_environments(parent: project_location_environment['parent']) do + it { should exist } + end +end From 5c47262b5f3deafe8e7fad4cb4f01d1190853d73 Mon Sep 17 00:00:00 2001 From: Nik08 Date: Mon, 4 Dec 2023 14:15:43 +0530 Subject: [PATCH 10/83] Test cases for dataproc cluster/s resources updated Signed-off-by: Nik08 --- test/integration/verify/controls/google_dataproc_cluster.rb | 2 ++ test/integration/verify/controls/google_dataproc_clusters.rb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/test/integration/verify/controls/google_dataproc_cluster.rb b/test/integration/verify/controls/google_dataproc_cluster.rb index b0d3e0a4c..ec6535e61 100644 --- a/test/integration/verify/controls/google_dataproc_cluster.rb +++ b/test/integration/verify/controls/google_dataproc_cluster.rb @@ -57,6 +57,8 @@ its('config.master_config.machine_type_uri') { should match dataproc_cluster['config']['master_config']['machine_type'] } its('config.worker_config.machine_type_uri') { should match dataproc_cluster['config']['worker_config']['machine_type'] } its('config.software_config.properties') { should include(dataproc_cluster['config']['software_config']['prop_key'] => dataproc_cluster['config']['software_config']['prop_value']) } + its('project_id') { should eq gcp_project_id } + its('cluster_uuid') { should eq "test-uuid-67ff7c8e-558a-45ad-97c7" } end describe google_dataproc_cluster(project: gcp_project_id, region: gcp_location, cluster_name: 'nonexistent') do diff --git a/test/integration/verify/controls/google_dataproc_clusters.rb b/test/integration/verify/controls/google_dataproc_clusters.rb index 37fa4d2c0..05984a7fe 100644 --- a/test/integration/verify/controls/google_dataproc_clusters.rb +++ b/test/integration/verify/controls/google_dataproc_clusters.rb @@ -52,5 +52,7 @@ describe google_dataproc_clusters(project: gcp_project_id, region: gcp_location) do its('count') { should be >= 1 } its('cluster_names') { should include dataproc_cluster['name'] } + its('project_ids') { should include gcp_project_id } + its('cluster_uuids') { should include "test-uuid-67ff7c8e-558a-45ad-97c7" } end end From 9f7dc3a01b89a48fe6fae791e6b989ddc8bd5619 Mon Sep 17 00:00:00 2001 From: Nik08 Date: Mon, 4 Dec 2023 16:42:24 +0530 Subject: [PATCH 11/83] Removed additional properties header for dataproc cluster document Signed-off-by: Nik08 --- docs/resources/google_dataproc_cluster.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/resources/google_dataproc_cluster.md b/docs/resources/google_dataproc_cluster.md index 8e2f0e66c..66f710e5b 100644 --- a/docs/resources/google_dataproc_cluster.md +++ b/docs/resources/google_dataproc_cluster.md @@ -196,8 +196,6 @@ Properties that can be accessed from the `google_dataproc_cluster` resource: * `virtual_cluster_config`: Optional. The virtual cluster config is used when creating a Dataproc cluster that does not directly control the underlying compute resources, for example, when creating a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke-overview). Dataproc may set default values, and values may change when clusters are updated. Exactly one of config or virtual_cluster_config must be specified. - * `additional_properties`: - * `status`: Output only. Cluster status. * `status_history`: Output only. The previous cluster status. From a3d355e67a361333f9354d2daf36cb70fb12e90d Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 5 Dec 2023 14:32:16 +0530 Subject: [PATCH 12/83] fix: correct product url for googleapis Signed-off-by: Sonu Saha --- libraries/google_composer_project_location_environments.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_composer_project_location_environments.rb b/libraries/google_composer_project_location_environments.rb index 62cba8d42..8d116d9e4 100644 --- a/libraries/google_composer_project_location_environments.rb +++ b/libraries/google_composer_project_location_environments.rb @@ -86,7 +86,7 @@ def transformers private def product_url(_ = nil) - 'https://composer.googleapis.com//V1/' + 'https://composer.googleapis.com/v1/' end def resource_base_url From 7504a12fd580be06d54899d02bcfc9d128f7900d Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 5 Dec 2023 14:33:20 +0530 Subject: [PATCH 13/83] fix: update wrap path for google_composer_project_location_environments Signed-off-by: Sonu Saha --- libraries/google_composer_project_location_environments.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_composer_project_location_environments.rb b/libraries/google_composer_project_location_environments.rb index 8d116d9e4..64867463c 100644 --- a/libraries/google_composer_project_location_environments.rb +++ b/libraries/google_composer_project_location_environments.rb @@ -38,7 +38,7 @@ class ComposerProjectLocationEnvironments < GcpResourceBase def initialize(params = {}) super(params.merge({ use_http_transport: true })) @params = params - @table = fetch_wrapped_resource('projectLocationEnvironments') + @table = fetch_wrapped_resource('environments') end def fetch_wrapped_resource(wrap_path) From 2888f5a3caf037f2ac9b3b0d08da61ac572a7c55 Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Thu, 30 Nov 2023 00:30:07 +0530 Subject: [PATCH 14/83] Automatically generated by magic modules for service: apigee and resource: Organizations__envgroups__attachment. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- .../configuration/mm-attributes.yml | 22 ++++- ...apigee_organization_envgroup_attachment.md | 40 +++++++++ ...pigee_organization_envgroup_attachments.md | 31 +++++++ ...apigee_organization_envgroup_attachment.rb | 61 +++++++++++++ ...pigee_organization_envgroup_attachments.rb | 85 +++++++++++++++++++ ...apigee_organization_envgroup_attachment.rb | 42 +++++++++ ...pigee_organization_envgroup_attachments.rb | 33 +++++++ 7 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 docs/resources/google_apigee_organization_envgroup_attachment.md create mode 100644 docs/resources/google_apigee_organization_envgroup_attachments.md create mode 100644 libraries/google_apigee_organization_envgroup_attachment.rb create mode 100644 libraries/google_apigee_organization_envgroup_attachments.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index 69212b639..8f92b70e6 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -893,4 +893,24 @@ organization: subscription_type : "PAID" created_at : ""1698225643253" state : "ACTIVE" - analytics_region : "us-west1" \ No newline at end of file + analytics_region : "us-west1" + +vpn_gateway: + project : "value_project" + region : "value_region" + vpn_gateway : "value_vpngateway" + kind : "value_kind" + id : "value_id" + creation_timestamp : "value_creationtimestamp" + name : "value_name" + description : "value_description" + network : "value_network" + self_link : "value_selflink" + label_fingerprint : "value_labelfingerprint" + stack_type : "value_stacktype" +organization_envgroup_attachment: + name : "value_name" + parent : "value_parent" + created_at : "value_createdat" + environment : "value_environment" + environment_group_id : "value_environmentgroupid" diff --git a/docs/resources/google_apigee_organization_envgroup_attachment.md b/docs/resources/google_apigee_organization_envgroup_attachment.md new file mode 100644 index 000000000..4fc3b56da --- /dev/null +++ b/docs/resources/google_apigee_organization_envgroup_attachment.md @@ -0,0 +1,40 @@ +--- +title: About the google_apigee_organization_envgroup_attachment resource +platform: gcp +--- + +## Syntax +A `google_apigee_organization_envgroup_attachment` is used to test a Google OrganizationEnvgroupAttachment resource + +## Examples +``` +describe google_apigee_organization_envgroup_attachment(name: ' value_name') do + it { should exist } + its('created_at') { should cmp 'value_createdat' } + its('environment') { should cmp 'value_environment' } + its('environment_group_id') { should cmp 'value_environmentgroupid' } + its('name') { should cmp 'value_name' } + +end + +describe google_apigee_organization_envgroup_attachment(name: "does_not_exit") do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organization_envgroup_attachment` resource: + + + * `created_at`: Output only. The time at which the environment group attachment was created as milliseconds since epoch. + + * `environment`: Required. ID of the attached environment. + + * `environment_group_id`: Output only. ID of the environment group. + + * `name`: ID of the environment group attachment. + + +## 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_envgroup_attachments.md b/docs/resources/google_apigee_organization_envgroup_attachments.md new file mode 100644 index 000000000..3b6d2ed02 --- /dev/null +++ b/docs/resources/google_apigee_organization_envgroup_attachments.md @@ -0,0 +1,31 @@ +--- +title: About the google_apigee_organization_envgroup_attachments resource +platform: gcp +--- + +## Syntax +A `google_apigee_organization_envgroup_attachments` is used to test a Google OrganizationEnvgroupAttachment resource + +## Examples +``` + describe google_apigee_organization_envgroup_attachments(parent: ' value_parent') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organization_envgroup_attachments` resource: + +See [google_apigee_organization_envgroup_attachment.md](google_apigee_organization_envgroup_attachment.md) for more detailed information + * `created_ats`: an array of `google_apigee_organization_envgroup_attachment` created_at + * `environments`: an array of `google_apigee_organization_envgroup_attachment` environment + * `environment_group_ids`: an array of `google_apigee_organization_envgroup_attachment` environment_group_id + * `names`: an array of `google_apigee_organization_envgroup_attachment` name + +## 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_envgroup_attachment.rb b/libraries/google_apigee_organization_envgroup_attachment.rb new file mode 100644 index 000000000..705deb58f --- /dev/null +++ b/libraries/google_apigee_organization_envgroup_attachment.rb @@ -0,0 +1,61 @@ +# 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 ApigeeOrganizationEnvgroupAttachment < GcpResourceBase + name 'google_apigee_organization_envgroup_attachment' + desc 'OrganizationEnvgroupAttachment' + supports platform: 'gcp' + + attr_reader :params + attr_reader :created_at + attr_reader :environment + attr_reader :environment_group_id + attr_reader :name + + 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 + @created_at = @fetched['createdAt'] + @environment = @fetched['environment'] + @environment_group_id = @fetched['environmentGroupId'] + @name = @fetched['name'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "OrganizationEnvgroupAttachment #{@params[:name]}" + 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_envgroup_attachments.rb b/libraries/google_apigee_organization_envgroup_attachments.rb new file mode 100644 index 000000000..c8c5c3b41 --- /dev/null +++ b/libraries/google_apigee_organization_envgroup_attachments.rb @@ -0,0 +1,85 @@ +# 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 ApigeeOrganizationEnvgroupAttachments < GcpResourceBase + name 'google_apigee_organization_envgroup_attachments' + desc 'OrganizationEnvgroupAttachment plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:created_ats, field: :created_at) + filter_table_config.add(:environments, field: :environment) + filter_table_config.add(:environment_group_ids, field: :environment_group_id) + filter_table_config.add(:names, field: :name) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('organizationEnvgroupAttachments') + 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 + { + 'createdAt' => ->(obj) { return :created_at, obj['createdAt'] }, + 'environment' => ->(obj) { return :environment, obj['environment'] }, + 'environmentGroupId' => ->(obj) { return :environment_group_id, obj['environmentGroupId'] }, + 'name' => ->(obj) { return :name, obj['name'] }, + } + 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_envgroup_attachment.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb new file mode 100644 index 000000000..8ca838d60 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb @@ -0,0 +1,42 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_envgroup_attachment resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "value_name", + "parent": "value_parent", + "created_at": "value_createdat", + "environment": "value_environment", + "environment_group_id": "value_environmentgroupid" +}, description: 'organization_envgroup_attachment description') +control 'google_apigee_organization_envgroup_attachment-1.0' do + impact 1.0 + title 'google_apigee_organization_envgroup_attachment resource test' + + describe google_apigee_organization_envgroup_attachment(name: organization_envgroup_attachment['name']) do + it { should exist } + its('created_at') { should cmp organization_envgroup_attachment['created_at'] } + its('environment') { should cmp organization_envgroup_attachment['environment'] } + its('environment_group_id') { should cmp organization_envgroup_attachment['environment_group_id'] } + its('name') { should cmp organization_envgroup_attachment['name'] } + + end + + describe google_apigee_organization_envgroup_attachment(name: "does_not_exit") do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb new file mode 100644 index 000000000..331e1e067 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_envgroup_attachments resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "value_name", + "parent": "value_parent", + "created_at": "value_createdat", + "environment": "value_environment", + "environment_group_id": "value_environmentgroupid" +}, description: 'organization_envgroup_attachment description') +control 'google_apigee_organization_envgroup_attachments-1.0' do + impact 1.0 + title 'google_apigee_organization_envgroup_attachments resource test' + + describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']) do + it { should exist } + end +end From 569419249305d215ff97dc56f8c59a775e75ea22 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 5 Dec 2023 15:23:46 +0530 Subject: [PATCH 15/83] fix: correct product url for googleapis Signed-off-by: Sonu Saha --- libraries/google_composer_project_location_environment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_composer_project_location_environment.rb b/libraries/google_composer_project_location_environment.rb index 86d24af82..fab23c92a 100644 --- a/libraries/google_composer_project_location_environment.rb +++ b/libraries/google_composer_project_location_environment.rb @@ -89,7 +89,7 @@ def to_s private def product_url(_ = nil) - 'https://composer.googleapis.com//V1/' + 'https://composer.googleapis.com/v1/' end def resource_base_url From 39e174e4ed39a3b7973dde81fe1d8adc451a7f51 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 5 Dec 2023 16:09:52 +0530 Subject: [PATCH 16/83] chore: Remove redundant returns to fix latest rubocop 1.58.0 lint offense Signed-off-by: Sonu Saha --- ..._data_loss_prevention_stored_info_types.rb | 14 ++-- .../google_appengine_standard_app_versions.rb | 8 +- .../libraries/google_bigquery_datasets.rb | 16 ++-- generate/libraries/google_bigquery_tables.rb | 42 +++++----- .../libraries/google_cloudbuild_triggers.rb | 20 ++--- .../google_cloudfunctions_cloud_functions.rb | 36 ++++---- .../libraries/google_compute_autoscalers.rb | 14 ++-- .../google_compute_backend_buckets.rb | 14 ++-- .../google_compute_backend_services.rb | 36 ++++---- generate/libraries/google_compute_disks.rb | 42 +++++----- .../libraries/google_compute_firewalls.rb | 32 +++---- .../google_compute_global_addresses.rb | 22 ++--- .../google_compute_global_forwarding_rules.rb | 24 +++--- .../libraries/google_compute_health_checks.rb | 28 +++---- .../google_compute_http_health_checks.rb | 22 ++--- .../google_compute_https_health_checks.rb | 22 ++--- .../google_compute_instance_group_managers.rb | 26 +++--- .../google_compute_instance_templates.rb | 10 +-- .../libraries/google_compute_instances.rb | 44 +++++----- .../google_compute_network_endpoint_groups.rb | 18 ++-- generate/libraries/google_compute_networks.rb | 16 ++-- .../libraries/google_compute_node_groups.rb | 12 +-- .../google_compute_node_templates.rb | 14 ++-- .../google_compute_region_backend_services.rb | 22 ++--- generate/libraries/google_compute_regions.rb | 16 ++-- generate/libraries/google_compute_routers.rb | 14 ++-- generate/libraries/google_compute_routes.rb | 22 ++--- .../libraries/google_compute_snapshots.rb | 26 +++--- .../google_compute_ssl_certificates.rb | 12 +-- .../libraries/google_compute_ssl_policies.rb | 20 ++--- .../libraries/google_compute_subnetworks.rb | 24 +++--- .../google_compute_target_http_proxies.rb | 10 +-- .../google_compute_target_https_proxies.rb | 16 ++-- .../libraries/google_compute_target_pools.rb | 20 ++--- .../google_compute_target_tcp_proxies.rb | 12 +-- generate/libraries/google_compute_url_maps.rb | 18 ++-- .../google_container_regional_clusters.rb | 70 ++++++++-------- .../google_container_regional_node_pools.rb | 26 +++--- .../libraries/google_dataproc_clusters.rb | 8 +- .../google_dns_resource_record_sets.rb | 10 +-- .../libraries/google_filestore_instances.rb | 18 ++-- .../google_logging_folder_exclusions.rb | 10 +-- .../google_logging_folder_log_sinks.rb | 12 +-- .../google_logging_organization_log_sinks.rb | 12 +-- generate/libraries/google_ml_engine_models.rb | 14 ++-- .../libraries/google_pubsub_subscriptions.rb | 16 ++-- generate/libraries/google_pubsub_topics.rb | 8 +- generate/libraries/google_redis_instances.rb | 32 +++---- .../google_resourcemanager_folders.rb | 10 +-- .../google_runtime_config_configs.rb | 4 +- .../google_runtime_config_variables.rb | 8 +- .../google_sourcerepo_repositories.rb | 6 +- ...le_access_context_manager_access_levels.rb | 12 +-- ..._access_context_manager_access_policies.rb | 10 +-- ...cess_context_manager_service_perimeters.rb | 20 ++--- libraries/google_apigee_organizations.rb | 56 ++++++------- .../google_appengine_standard_app_versions.rb | 20 ++--- libraries/google_bigquery_datasets.rb | 16 ++-- libraries/google_bigquery_tables.rb | 42 +++++----- libraries/google_cloud_scheduler_jobs.rb | 22 ++--- libraries/google_cloudbuild_triggers.rb | 26 +++--- .../google_cloudfunctions_cloud_functions.rb | 36 ++++---- ...omposer_project_location_image_versions.rb | 4 +- libraries/google_compute_accelerator_types.rb | 12 +-- libraries/google_compute_addresses.rb | 28 +++---- libraries/google_compute_autoscalers.rb | 14 ++-- libraries/google_compute_backend_buckets.rb | 16 ++-- libraries/google_compute_backend_services.rb | 50 +++++------ libraries/google_compute_disk_types.rb | 16 ++-- libraries/google_compute_disks.rb | 48 +++++------ .../google_compute_external_vpn_gateways.rb | 18 ++-- libraries/google_compute_firewalls.rb | 34 ++++---- libraries/google_compute_forwarding_rules.rb | 44 +++++----- libraries/google_compute_global_addresses.rb | 26 +++--- .../google_compute_global_forwarding_rules.rb | 28 +++---- ..._compute_global_network_endpoint_groups.rb | 10 +-- libraries/google_compute_global_operations.rb | 28 +++---- .../google_compute_health_check_services.rb | 20 ++--- libraries/google_compute_health_checks.rb | 32 +++---- .../google_compute_http_health_checks.rb | 22 ++--- .../google_compute_https_health_checks.rb | 22 ++--- .../google_compute_instance_group_managers.rb | 26 +++--- libraries/google_compute_instance_groups.rb | 18 ++-- .../google_compute_instance_templates.rb | 10 +-- libraries/google_compute_instances.rb | 44 +++++----- .../google_compute_interconnect_locations.rb | 18 ++-- libraries/google_compute_interconnects.rb | 42 +++++----- .../google_compute_network_endpoint_groups.rb | 18 ++-- libraries/google_compute_networks.rb | 20 ++--- libraries/google_compute_node_groups.rb | 16 ++-- libraries/google_compute_node_templates.rb | 18 ++-- ...oogle_compute_public_delegated_prefixes.rb | 18 ++-- .../google_compute_region_backend_services.rb | 48 +++++------ .../google_compute_region_health_checks.rb | 34 ++++---- ..._compute_region_instance_group_managers.rb | 26 +++--- .../google_compute_region_instance_groups.rb | 20 ++--- libraries/google_compute_region_operations.rb | 24 +++--- ...google_compute_region_security_policies.rb | 32 +++---- libraries/google_compute_regional_disks.rb | 48 +++++------ libraries/google_compute_regions.rb | 16 ++-- libraries/google_compute_router_nats.rb | 30 +++---- libraries/google_compute_routers.rb | 14 ++-- libraries/google_compute_routes.rb | 24 +++--- libraries/google_compute_security_policies.rb | 6 +- libraries/google_compute_snapshots.rb | 28 +++---- libraries/google_compute_ssl_certificates.rb | 12 +-- libraries/google_compute_ssl_policies.rb | 20 ++--- libraries/google_compute_subnetworks.rb | 28 +++---- .../google_compute_target_http_proxies.rb | 10 +-- .../google_compute_target_https_proxies.rb | 16 ++-- libraries/google_compute_target_pools.rb | 20 ++--- .../google_compute_target_tcp_proxies.rb | 12 +-- libraries/google_compute_url_maps.rb | 24 +++--- libraries/google_compute_vpn_tunnels.rb | 40 ++++----- libraries/google_compute_zone_operations.rb | 26 +++--- libraries/google_compute_zones.rb | 16 ++-- libraries/google_container_clusters.rb | 84 +++++++++---------- libraries/google_container_node_pools.rb | 26 +++--- libraries/google_dataproc_clusters.rb | 8 +- libraries/google_dlp_dts.rb | 10 +-- libraries/google_dlp_inspect_templates.rb | 10 +-- libraries/google_dlp_job_triggers.rb | 16 ++-- libraries/google_dlp_jobs.rb | 24 +++--- libraries/google_dlp_stored_info_types.rb | 14 ++-- libraries/google_dns_managed_zones.rb | 30 +++---- libraries/google_dns_resource_record_sets.rb | 10 +-- libraries/google_filestore_instances.rb | 18 ++-- .../google_iam_organization_custom_roles.rb | 12 +-- libraries/google_kms_crypto_keys.rb | 18 ++-- libraries/google_kms_ekm_connections.rb | 8 +- libraries/google_kms_key_ring_import_jobs.rb | 24 +++--- libraries/google_kms_key_rings.rb | 6 +- libraries/google_kms_locations.rb | 8 +- libraries/google_logging_folder_exclusions.rb | 10 +-- libraries/google_logging_folder_log_sinks.rb | 12 +-- .../google_logging_organization_log_sinks.rb | 12 +-- .../google_logging_project_exclusions.rb | 10 +-- libraries/google_logging_project_sinks.rb | 12 +-- libraries/google_memcache_instances.rb | 28 +++---- libraries/google_ml_engine_models.rb | 14 ++-- libraries/google_organizations.rb | 10 +-- libraries/google_project_alert_policies.rb | 18 ++-- libraries/google_project_iam_custom_roles.rb | 12 +-- libraries/google_project_metrics.rb | 14 ++-- libraries/google_project_services.rb | 10 +-- libraries/google_projects.rb | 14 ++-- libraries/google_pubsub_subscriptions.rb | 24 +++--- libraries/google_pubsub_topics.rb | 8 +- libraries/google_redis_instances.rb | 42 +++++----- libraries/google_resourcemanager_folders.rb | 10 +-- libraries/google_runtime_config_configs.rb | 4 +- libraries/google_runtime_config_variables.rb | 8 +- libraries/google_service_account_keys.rb | 20 ++--- libraries/google_service_accounts.rb | 12 +-- libraries/google_sourcerepo_repositories.rb | 8 +- libraries/google_spanner_databases.rb | 4 +- libraries/google_spanner_instances.rb | 10 +-- libraries/google_sql_database_instances.rb | 38 ++++----- libraries/google_sql_databases.rb | 8 +- libraries/google_sql_flags.rb | 14 ++-- libraries/google_sql_operations.rb | 10 +-- libraries/google_sql_ssl_certs.rb | 14 ++-- libraries/google_sql_users.rb | 8 +- libraries/google_storage_bucket_objects.rb | 34 ++++---- libraries/google_storage_buckets.rb | 44 +++++----- .../google_vertex_ai_batch_prediction_jobs.rb | 54 ++++++------ libraries/google_vertex_ai_custom_jobs.rb | 24 +++--- ...vertex_ai_dataset_data_item_annotations.rb | 16 ++-- libraries/google_vertex_ai_datasets.rb | 26 +++--- .../google_vertex_ai_datasets_data_items.rb | 12 +-- ...google_vertex_ai_datasets_saved_queries.rb | 20 ++--- libraries/google_vertex_ai_endpoints.rb | 28 +++---- ...ex_ai_featurestore_entity_type_features.rb | 18 ++-- libraries/google_vertex_ai_featurestores.rb | 18 ++-- ...le_vertex_ai_featurestores_entity_types.rb | 16 ++-- ...le_vertex_ai_hyperparameter_tuning_jobs.rb | 32 +++---- libraries/google_vertex_ai_index_endpoints.rb | 26 +++--- libraries/google_vertex_ai_indices.rb | 24 +++--- libraries/google_vertex_ai_metadata_stores.rb | 12 +-- ...gle_vertex_ai_metadata_stores_artifacts.rb | 24 +++--- ...ogle_vertex_ai_metadata_stores_contexts.rb | 22 ++--- ...le_vertex_ai_metadata_stores_executions.rb | 22 ++--- ...tex_ai_metadata_stores_metadata_schemas.rb | 12 +-- ...tex_ai_model_deployment_monitoring_jobs.rb | 46 +++++----- ...oogle_vertex_ai_model_evaluation_slices.rb | 12 +-- libraries/google_vertex_ai_models.rb | 58 ++++++------- .../google_vertex_ai_models_evaluations.rb | 22 ++--- libraries/google_vertex_ai_nas_jobs.rb | 26 +++--- ...le_vertex_ai_nas_jobs_nas_trial_details.rb | 8 +- libraries/google_vertex_ai_pipeline_jobs.rb | 38 ++++----- libraries/google_vertex_ai_schedules.rb | 36 ++++---- libraries/google_vertex_ai_studies.rb | 12 +-- libraries/google_vertex_ai_studies_trials.rb | 24 +++--- ...rd_experiment_run_time_series_resources.rb | 20 ++--- ...e_vertex_ai_tensorboard_experiment_runs.rb | 14 ++-- libraries/google_vertex_ai_tensorboards.rb | 22 ++--- ...ogle_vertex_ai_tensorboards_experiments.rb | 16 ++-- .../google_vertex_ai_training_pipelines.rb | 34 ++++---- 198 files changed, 2099 insertions(+), 2099 deletions(-) diff --git a/build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb b/build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb index ab4d792a0..fbd074ab1 100644 --- a/build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb +++ b/build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'regex' => ->(obj) { return :regex, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeRegex.new(obj['regex'], to_s) }, - 'dictionary' => ->(obj) { return :dictionary, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeDictionary.new(obj['dictionary'], to_s) }, - 'largeCustomDictionary' => ->(obj) { return :large_custom_dictionary, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionary.new(obj['largeCustomDictionary'], to_s) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'regex' => ->(obj) { [:regex, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeRegex.new(obj['regex'], to_s)] }, + 'dictionary' => ->(obj) { [:dictionary, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeDictionary.new(obj['dictionary'], to_s)] }, + 'largeCustomDictionary' => ->(obj) { [:large_custom_dictionary, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionary.new(obj['largeCustomDictionary'], to_s)] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, } end diff --git a/generate/libraries/google_appengine_standard_app_versions.rb b/generate/libraries/google_appengine_standard_app_versions.rb index 94ca015cb..d998f6c3b 100644 --- a/generate/libraries/google_appengine_standard_app_versions.rb +++ b/generate/libraries/google_appengine_standard_app_versions.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'id' => ->(obj) { return :version_id, obj['id'] }, - 'runtime' => ->(obj) { return :runtime, obj['runtime'] }, - 'threadsafe' => ->(obj) { return :threadsafe, obj['threadsafe'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'id' => ->(obj) { [:version_id, obj['id']] }, + 'runtime' => ->(obj) { [:runtime, obj['runtime']] }, + 'threadsafe' => ->(obj) { [:threadsafe, obj['threadsafe']] }, } end diff --git a/generate/libraries/google_bigquery_datasets.rb b/generate/libraries/google_bigquery_datasets.rb index 67bacfe2c..7cfab93a9 100644 --- a/generate/libraries/google_bigquery_datasets.rb +++ b/generate/libraries/google_bigquery_datasets.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'datasetReference' => ->(obj) { return :dataset_reference, GoogleInSpec::BigQuery::Property::DatasetDatasetReference.new(obj['datasetReference'], to_s) }, - 'defaultPartitionExpirationMs' => ->(obj) { return :default_partition_expiration_ms, obj['defaultPartitionExpirationMs'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'friendlyName' => ->(obj) { return :friendly_name, obj['friendlyName'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'location' => ->(obj) { return :location, obj['location'] }, - 'defaultEncryptionConfiguration' => ->(obj) { return :default_encryption_configuration, GoogleInSpec::BigQuery::Property::DatasetDefaultEncryptionConfiguration.new(obj['defaultEncryptionConfiguration'], to_s) }, + 'datasetReference' => ->(obj) { [:dataset_reference, GoogleInSpec::BigQuery::Property::DatasetDatasetReference.new(obj['datasetReference'], to_s)] }, + 'defaultPartitionExpirationMs' => ->(obj) { [:default_partition_expiration_ms, obj['defaultPartitionExpirationMs']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'friendlyName' => ->(obj) { [:friendly_name, obj['friendlyName']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'location' => ->(obj) { [:location, obj['location']] }, + 'defaultEncryptionConfiguration' => ->(obj) { [:default_encryption_configuration, GoogleInSpec::BigQuery::Property::DatasetDefaultEncryptionConfiguration.new(obj['defaultEncryptionConfiguration'], to_s)] }, } end diff --git a/generate/libraries/google_bigquery_tables.rb b/generate/libraries/google_bigquery_tables.rb index f8d0ed05c..a7f82c74a 100644 --- a/generate/libraries/google_bigquery_tables.rb +++ b/generate/libraries/google_bigquery_tables.rb @@ -83,27 +83,27 @@ def transform(key, value) def transformers { - 'tableReference' => ->(obj) { return :table_reference, GoogleInSpec::BigQuery::Property::TableTableReference.new(obj['tableReference'], to_s) }, - 'clustering' => ->(obj) { return :clustering, obj['clustering'] }, - 'creationTime' => ->(obj) { return :creation_time, obj['creationTime'] }, - 'friendlyName' => ->(obj) { return :friendly_name, obj['friendlyName'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'lastModifiedTime' => ->(obj) { return :last_modified_time, obj['lastModifiedTime'] }, - 'location' => ->(obj) { return :location, obj['location'] }, - 'numBytes' => ->(obj) { return :num_bytes, obj['numBytes'] }, - 'numLongTermBytes' => ->(obj) { return :num_long_term_bytes, obj['numLongTermBytes'] }, - 'numRows' => ->(obj) { return :num_rows, obj['numRows'] }, - 'requirePartitionFilter' => ->(obj) { return :require_partition_filter, obj['requirePartitionFilter'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'view' => ->(obj) { return :view, GoogleInSpec::BigQuery::Property::TableView.new(obj['view'], to_s) }, - 'timePartitioning' => ->(obj) { return :time_partitioning, GoogleInSpec::BigQuery::Property::TableTimePartitioning.new(obj['timePartitioning'], to_s) }, - 'streamingBuffer' => ->(obj) { return :streaming_buffer, GoogleInSpec::BigQuery::Property::TableStreamingBuffer.new(obj['streamingBuffer'], to_s) }, - 'schema' => ->(obj) { return :schema, GoogleInSpec::BigQuery::Property::TableSchema.new(obj['schema'], to_s) }, - 'encryptionConfiguration' => ->(obj) { return :encryption_configuration, GoogleInSpec::BigQuery::Property::TableEncryptionConfiguration.new(obj['encryptionConfiguration'], to_s) }, - 'expirationTime' => ->(obj) { return :expiration_time, obj['expirationTime'] }, - 'externalDataConfiguration' => ->(obj) { return :external_data_configuration, GoogleInSpec::BigQuery::Property::TableExternalDataConfiguration.new(obj['externalDataConfiguration'], to_s) }, - 'dataset' => ->(obj) { return :dataset, obj['dataset'] }, + 'tableReference' => ->(obj) { [:table_reference, GoogleInSpec::BigQuery::Property::TableTableReference.new(obj['tableReference'], to_s)] }, + 'clustering' => ->(obj) { [:clustering, obj['clustering']] }, + 'creationTime' => ->(obj) { [:creation_time, obj['creationTime']] }, + 'friendlyName' => ->(obj) { [:friendly_name, obj['friendlyName']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'lastModifiedTime' => ->(obj) { [:last_modified_time, obj['lastModifiedTime']] }, + 'location' => ->(obj) { [:location, obj['location']] }, + 'numBytes' => ->(obj) { [:num_bytes, obj['numBytes']] }, + 'numLongTermBytes' => ->(obj) { [:num_long_term_bytes, obj['numLongTermBytes']] }, + 'numRows' => ->(obj) { [:num_rows, obj['numRows']] }, + 'requirePartitionFilter' => ->(obj) { [:require_partition_filter, obj['requirePartitionFilter']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'view' => ->(obj) { [:view, GoogleInSpec::BigQuery::Property::TableView.new(obj['view'], to_s)] }, + 'timePartitioning' => ->(obj) { [:time_partitioning, GoogleInSpec::BigQuery::Property::TableTimePartitioning.new(obj['timePartitioning'], to_s)] }, + 'streamingBuffer' => ->(obj) { [:streaming_buffer, GoogleInSpec::BigQuery::Property::TableStreamingBuffer.new(obj['streamingBuffer'], to_s)] }, + 'schema' => ->(obj) { [:schema, GoogleInSpec::BigQuery::Property::TableSchema.new(obj['schema'], to_s)] }, + 'encryptionConfiguration' => ->(obj) { [:encryption_configuration, GoogleInSpec::BigQuery::Property::TableEncryptionConfiguration.new(obj['encryptionConfiguration'], to_s)] }, + 'expirationTime' => ->(obj) { [:expiration_time, obj['expirationTime']] }, + 'externalDataConfiguration' => ->(obj) { [:external_data_configuration, GoogleInSpec::BigQuery::Property::TableExternalDataConfiguration.new(obj['externalDataConfiguration'], to_s)] }, + 'dataset' => ->(obj) { [:dataset, obj['dataset']] }, } end diff --git a/generate/libraries/google_cloudbuild_triggers.rb b/generate/libraries/google_cloudbuild_triggers.rb index 26655eeb4..f32b7fa6a 100644 --- a/generate/libraries/google_cloudbuild_triggers.rb +++ b/generate/libraries/google_cloudbuild_triggers.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'disabled' => ->(obj) { return :disabled, obj['disabled'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'substitutions' => ->(obj) { return :substitutions, obj['substitutions'] }, - 'filename' => ->(obj) { return :filename, obj['filename'] }, - 'ignoredFiles' => ->(obj) { return :ignored_files, obj['ignoredFiles'] }, - 'includedFiles' => ->(obj) { return :included_files, obj['includedFiles'] }, - 'triggerTemplate' => ->(obj) { return :trigger_template, GoogleInSpec::CloudBuild::Property::TriggerTriggerTemplate.new(obj['triggerTemplate'], to_s) }, - 'build' => ->(obj) { return :build, GoogleInSpec::CloudBuild::Property::TriggerBuild.new(obj['build'], to_s) }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'disabled' => ->(obj) { [:disabled, obj['disabled']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'substitutions' => ->(obj) { [:substitutions, obj['substitutions']] }, + 'filename' => ->(obj) { [:filename, obj['filename']] }, + 'ignoredFiles' => ->(obj) { [:ignored_files, obj['ignoredFiles']] }, + 'includedFiles' => ->(obj) { [:included_files, obj['includedFiles']] }, + 'triggerTemplate' => ->(obj) { [:trigger_template, GoogleInSpec::CloudBuild::Property::TriggerTriggerTemplate.new(obj['triggerTemplate'], to_s)] }, + 'build' => ->(obj) { [:build, GoogleInSpec::CloudBuild::Property::TriggerBuild.new(obj['build'], to_s)] }, } end diff --git a/generate/libraries/google_cloudfunctions_cloud_functions.rb b/generate/libraries/google_cloudfunctions_cloud_functions.rb index f47c617fd..a270e3ba9 100644 --- a/generate/libraries/google_cloudfunctions_cloud_functions.rb +++ b/generate/libraries/google_cloudfunctions_cloud_functions.rb @@ -80,24 +80,24 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'entryPoint' => ->(obj) { return :entry_point, obj['entryPoint'] }, - 'runtime' => ->(obj) { return :runtime, obj['runtime'] }, - 'timeout' => ->(obj) { return :timeout, obj['timeout'] }, - 'availableMemoryMb' => ->(obj) { return :available_memory_mb, obj['availableMemoryMb'] }, - 'serviceAccountEmail' => ->(obj) { return :service_account_email, obj['serviceAccountEmail'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'versionId' => ->(obj) { return :version_id, obj['versionId'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'environmentVariables' => ->(obj) { return :environment_variables, obj['environmentVariables'] }, - 'sourceArchiveUrl' => ->(obj) { return :source_archive_url, obj['sourceArchiveUrl'] }, - 'sourceUploadUrl' => ->(obj) { return :source_upload_url, obj['sourceUploadUrl'] }, - 'sourceRepository' => ->(obj) { return :source_repository, GoogleInSpec::CloudFunctions::Property::CloudFunctionSourceRepository.new(obj['sourceRepository'], to_s) }, - 'httpsTrigger' => ->(obj) { return :https_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionHttpsTrigger.new(obj['httpsTrigger'], to_s) }, - 'eventTrigger' => ->(obj) { return :event_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionEventTrigger.new(obj['eventTrigger'], to_s) }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'entryPoint' => ->(obj) { [:entry_point, obj['entryPoint']] }, + 'runtime' => ->(obj) { [:runtime, obj['runtime']] }, + 'timeout' => ->(obj) { [:timeout, obj['timeout']] }, + 'availableMemoryMb' => ->(obj) { [:available_memory_mb, obj['availableMemoryMb']] }, + 'serviceAccountEmail' => ->(obj) { [:service_account_email, obj['serviceAccountEmail']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'versionId' => ->(obj) { [:version_id, obj['versionId']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'environmentVariables' => ->(obj) { [:environment_variables, obj['environmentVariables']] }, + 'sourceArchiveUrl' => ->(obj) { [:source_archive_url, obj['sourceArchiveUrl']] }, + 'sourceUploadUrl' => ->(obj) { [:source_upload_url, obj['sourceUploadUrl']] }, + 'sourceRepository' => ->(obj) { [:source_repository, GoogleInSpec::CloudFunctions::Property::CloudFunctionSourceRepository.new(obj['sourceRepository'], to_s)] }, + 'httpsTrigger' => ->(obj) { [:https_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionHttpsTrigger.new(obj['httpsTrigger'], to_s)] }, + 'eventTrigger' => ->(obj) { [:event_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionEventTrigger.new(obj['eventTrigger'], to_s)] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/generate/libraries/google_compute_autoscalers.rb b/generate/libraries/google_compute_autoscalers.rb index d4b5704fa..edbf4160a 100644 --- a/generate/libraries/google_compute_autoscalers.rb +++ b/generate/libraries/google_compute_autoscalers.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'autoscalingPolicy' => ->(obj) { return :autoscaling_policy, GoogleInSpec::Compute::Property::AutoscalerAutoscalingPolicy.new(obj['autoscalingPolicy'], to_s) }, - 'target' => ->(obj) { return :target, obj['target'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'autoscalingPolicy' => ->(obj) { [:autoscaling_policy, GoogleInSpec::Compute::Property::AutoscalerAutoscalingPolicy.new(obj['autoscalingPolicy'], to_s)] }, + 'target' => ->(obj) { [:target, obj['target']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/generate/libraries/google_compute_backend_buckets.rb b/generate/libraries/google_compute_backend_buckets.rb index aec3a9b19..7a0ac1962 100644 --- a/generate/libraries/google_compute_backend_buckets.rb +++ b/generate/libraries/google_compute_backend_buckets.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'bucketName' => ->(obj) { return :bucket_name, obj['bucketName'] }, - 'cdnPolicy' => ->(obj) { return :cdn_policy, GoogleInSpec::Compute::Property::BackendBucketCdnPolicy.new(obj['cdnPolicy'], to_s) }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'enableCdn' => ->(obj) { return :enable_cdn, obj['enableCdn'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'bucketName' => ->(obj) { [:bucket_name, obj['bucketName']] }, + 'cdnPolicy' => ->(obj) { [:cdn_policy, GoogleInSpec::Compute::Property::BackendBucketCdnPolicy.new(obj['cdnPolicy'], to_s)] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'enableCdn' => ->(obj) { [:enable_cdn, obj['enableCdn']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/generate/libraries/google_compute_backend_services.rb b/generate/libraries/google_compute_backend_services.rb index ab036aa2c..3082c22cf 100644 --- a/generate/libraries/google_compute_backend_services.rb +++ b/generate/libraries/google_compute_backend_services.rb @@ -80,24 +80,24 @@ def transform(key, value) def transformers { - 'affinityCookieTtlSec' => ->(obj) { return :affinity_cookie_ttl_sec, obj['affinityCookieTtlSec'] }, - 'backends' => ->(obj) { return :backends, GoogleInSpec::Compute::Property::BackendServiceBackendsArray.parse(obj['backends'], to_s) }, - 'cdnPolicy' => ->(obj) { return :cdn_policy, GoogleInSpec::Compute::Property::BackendServiceCdnPolicy.new(obj['cdnPolicy'], to_s) }, - 'connectionDraining' => ->(obj) { return :connection_draining, GoogleInSpec::Compute::Property::BackendServiceConnectionDraining.new(obj['connectionDraining'], to_s) }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'enableCDN' => ->(obj) { return :enable_cdn, obj['enableCDN'] }, - 'healthChecks' => ->(obj) { return :health_checks, obj['healthChecks'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'iap' => ->(obj) { return :iap, GoogleInSpec::Compute::Property::BackendServiceIap.new(obj['iap'], to_s) }, - 'loadBalancingScheme' => ->(obj) { return :load_balancing_scheme, obj['loadBalancingScheme'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'portName' => ->(obj) { return :port_name, obj['portName'] }, - 'protocol' => ->(obj) { return :protocol, obj['protocol'] }, - 'securityPolicy' => ->(obj) { return :security_policy, obj['securityPolicy'] }, - 'sessionAffinity' => ->(obj) { return :session_affinity, obj['sessionAffinity'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, + 'affinityCookieTtlSec' => ->(obj) { [:affinity_cookie_ttl_sec, obj['affinityCookieTtlSec']] }, + 'backends' => ->(obj) { [:backends, GoogleInSpec::Compute::Property::BackendServiceBackendsArray.parse(obj['backends'], to_s)] }, + 'cdnPolicy' => ->(obj) { [:cdn_policy, GoogleInSpec::Compute::Property::BackendServiceCdnPolicy.new(obj['cdnPolicy'], to_s)] }, + 'connectionDraining' => ->(obj) { [:connection_draining, GoogleInSpec::Compute::Property::BackendServiceConnectionDraining.new(obj['connectionDraining'], to_s)] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'enableCDN' => ->(obj) { [:enable_cdn, obj['enableCDN']] }, + 'healthChecks' => ->(obj) { [:health_checks, obj['healthChecks']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'iap' => ->(obj) { [:iap, GoogleInSpec::Compute::Property::BackendServiceIap.new(obj['iap'], to_s)] }, + 'loadBalancingScheme' => ->(obj) { [:load_balancing_scheme, obj['loadBalancingScheme']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'portName' => ->(obj) { [:port_name, obj['portName']] }, + 'protocol' => ->(obj) { [:protocol, obj['protocol']] }, + 'securityPolicy' => ->(obj) { [:security_policy, obj['securityPolicy']] }, + 'sessionAffinity' => ->(obj) { [:session_affinity, obj['sessionAffinity']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, } end diff --git a/generate/libraries/google_compute_disks.rb b/generate/libraries/google_compute_disks.rb index 3cc5f0539..4f3515c39 100644 --- a/generate/libraries/google_compute_disks.rb +++ b/generate/libraries/google_compute_disks.rb @@ -83,27 +83,27 @@ def transform(key, value) def transformers { - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'lastAttachTimestamp' => ->(obj) { return :last_attach_timestamp, parse_time_string(obj['lastAttachTimestamp']) }, - 'lastDetachTimestamp' => ->(obj) { return :last_detach_timestamp, parse_time_string(obj['lastDetachTimestamp']) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'licenses' => ->(obj) { return :licenses, obj['licenses'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'sizeGb' => ->(obj) { return :size_gb, obj['sizeGb'] }, - 'users' => ->(obj) { return :users, obj['users'] }, - 'physicalBlockSizeBytes' => ->(obj) { return :physical_block_size_bytes, obj['physicalBlockSizeBytes'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'sourceImage' => ->(obj) { return :source_image, obj['sourceImage'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, - 'sourceImageEncryptionKey' => ->(obj) { return :source_image_encryption_key, GoogleInSpec::Compute::Property::DiskSourceImageEncryptionKey.new(obj['sourceImageEncryptionKey'], to_s) }, - 'sourceImageId' => ->(obj) { return :source_image_id, obj['sourceImageId'] }, - 'diskEncryptionKey' => ->(obj) { return :disk_encryption_key, GoogleInSpec::Compute::Property::DiskDiskEncryptionKey.new(obj['diskEncryptionKey'], to_s) }, - 'sourceSnapshot' => ->(obj) { return :source_snapshot, obj['sourceSnapshot'] }, - 'sourceSnapshotEncryptionKey' => ->(obj) { return :source_snapshot_encryption_key, GoogleInSpec::Compute::Property::DiskSourceSnapshotEncryptionKey.new(obj['sourceSnapshotEncryptionKey'], to_s) }, - 'sourceSnapshotId' => ->(obj) { return :source_snapshot_id, obj['sourceSnapshotId'] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'lastAttachTimestamp' => ->(obj) { [:last_attach_timestamp, parse_time_string(obj['lastAttachTimestamp'])] }, + 'lastDetachTimestamp' => ->(obj) { [:last_detach_timestamp, parse_time_string(obj['lastDetachTimestamp'])] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'licenses' => ->(obj) { [:licenses, obj['licenses']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'sizeGb' => ->(obj) { [:size_gb, obj['sizeGb']] }, + 'users' => ->(obj) { [:users, obj['users']] }, + 'physicalBlockSizeBytes' => ->(obj) { [:physical_block_size_bytes, obj['physicalBlockSizeBytes']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'sourceImage' => ->(obj) { [:source_image, obj['sourceImage']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, + 'sourceImageEncryptionKey' => ->(obj) { [:source_image_encryption_key, GoogleInSpec::Compute::Property::DiskSourceImageEncryptionKey.new(obj['sourceImageEncryptionKey'], to_s)] }, + 'sourceImageId' => ->(obj) { [:source_image_id, obj['sourceImageId']] }, + 'diskEncryptionKey' => ->(obj) { [:disk_encryption_key, GoogleInSpec::Compute::Property::DiskDiskEncryptionKey.new(obj['diskEncryptionKey'], to_s)] }, + 'sourceSnapshot' => ->(obj) { [:source_snapshot, obj['sourceSnapshot']] }, + 'sourceSnapshotEncryptionKey' => ->(obj) { [:source_snapshot_encryption_key, GoogleInSpec::Compute::Property::DiskSourceSnapshotEncryptionKey.new(obj['sourceSnapshotEncryptionKey'], to_s)] }, + 'sourceSnapshotId' => ->(obj) { [:source_snapshot_id, obj['sourceSnapshotId']] }, } end diff --git a/generate/libraries/google_compute_firewalls.rb b/generate/libraries/google_compute_firewalls.rb index 06335762b..4d924c383 100644 --- a/generate/libraries/google_compute_firewalls.rb +++ b/generate/libraries/google_compute_firewalls.rb @@ -78,22 +78,22 @@ def transform(key, value) def transformers { - 'allowed' => ->(obj) { return :allowed, GoogleInSpec::Compute::Property::FirewallAllowedArray.parse(obj['allowed'], to_s) }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'denied' => ->(obj) { return :denied, GoogleInSpec::Compute::Property::FirewallDeniedArray.parse(obj['denied'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'destinationRanges' => ->(obj) { return :destination_ranges, obj['destinationRanges'] }, - 'direction' => ->(obj) { return :direction, obj['direction'] }, - 'disabled' => ->(obj) { return :disabled, obj['disabled'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'priority' => ->(obj) { return :priority, obj['priority'] }, - 'sourceRanges' => ->(obj) { return :source_ranges, obj['sourceRanges'] }, - 'sourceServiceAccounts' => ->(obj) { return :source_service_accounts, obj['sourceServiceAccounts'] }, - 'sourceTags' => ->(obj) { return :source_tags, obj['sourceTags'] }, - 'targetServiceAccounts' => ->(obj) { return :target_service_accounts, obj['targetServiceAccounts'] }, - 'targetTags' => ->(obj) { return :target_tags, obj['targetTags'] }, + 'allowed' => ->(obj) { [:allowed, GoogleInSpec::Compute::Property::FirewallAllowedArray.parse(obj['allowed'], to_s)] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'denied' => ->(obj) { [:denied, GoogleInSpec::Compute::Property::FirewallDeniedArray.parse(obj['denied'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'destinationRanges' => ->(obj) { [:destination_ranges, obj['destinationRanges']] }, + 'direction' => ->(obj) { [:direction, obj['direction']] }, + 'disabled' => ->(obj) { [:disabled, obj['disabled']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'priority' => ->(obj) { [:priority, obj['priority']] }, + 'sourceRanges' => ->(obj) { [:source_ranges, obj['sourceRanges']] }, + 'sourceServiceAccounts' => ->(obj) { [:source_service_accounts, obj['sourceServiceAccounts']] }, + 'sourceTags' => ->(obj) { [:source_tags, obj['sourceTags']] }, + 'targetServiceAccounts' => ->(obj) { [:target_service_accounts, obj['targetServiceAccounts']] }, + 'targetTags' => ->(obj) { [:target_tags, obj['targetTags']] }, } end diff --git a/generate/libraries/google_compute_global_addresses.rb b/generate/libraries/google_compute_global_addresses.rb index 8300a9bf4..e85f048bd 100644 --- a/generate/libraries/google_compute_global_addresses.rb +++ b/generate/libraries/google_compute_global_addresses.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'address' => ->(obj) { return :address, obj['address'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'ipVersion' => ->(obj) { return :ip_version, obj['ipVersion'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'prefixLength' => ->(obj) { return :prefix_length, obj['prefixLength'] }, - 'addressType' => ->(obj) { return :address_type, obj['addressType'] }, - 'purpose' => ->(obj) { return :purpose, obj['purpose'] }, - 'network' => ->(obj) { return :network, obj['network'] }, + 'address' => ->(obj) { [:address, obj['address']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'ipVersion' => ->(obj) { [:ip_version, obj['ipVersion']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'prefixLength' => ->(obj) { [:prefix_length, obj['prefixLength']] }, + 'addressType' => ->(obj) { [:address_type, obj['addressType']] }, + 'purpose' => ->(obj) { [:purpose, obj['purpose']] }, + 'network' => ->(obj) { [:network, obj['network']] }, } end diff --git a/generate/libraries/google_compute_global_forwarding_rules.rb b/generate/libraries/google_compute_global_forwarding_rules.rb index f3fec83ec..08cb63e8e 100644 --- a/generate/libraries/google_compute_global_forwarding_rules.rb +++ b/generate/libraries/google_compute_global_forwarding_rules.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'IPAddress' => ->(obj) { return :ip_address, obj['IPAddress'] }, - 'IPProtocol' => ->(obj) { return :ip_protocol, obj['IPProtocol'] }, - 'ipVersion' => ->(obj) { return :ip_version, obj['ipVersion'] }, - 'loadBalancingScheme' => ->(obj) { return :load_balancing_scheme, obj['loadBalancingScheme'] }, - 'metadataFilters' => ->(obj) { return :metadata_filters, GoogleInSpec::Compute::Property::GlobalForwardingRuleMetadataFiltersArray.parse(obj['metadataFilters'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'portRange' => ->(obj) { return :port_range, obj['portRange'] }, - 'target' => ->(obj) { return :target, obj['target'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'IPAddress' => ->(obj) { [:ip_address, obj['IPAddress']] }, + 'IPProtocol' => ->(obj) { [:ip_protocol, obj['IPProtocol']] }, + 'ipVersion' => ->(obj) { [:ip_version, obj['ipVersion']] }, + 'loadBalancingScheme' => ->(obj) { [:load_balancing_scheme, obj['loadBalancingScheme']] }, + 'metadataFilters' => ->(obj) { [:metadata_filters, GoogleInSpec::Compute::Property::GlobalForwardingRuleMetadataFiltersArray.parse(obj['metadataFilters'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'portRange' => ->(obj) { [:port_range, obj['portRange']] }, + 'target' => ->(obj) { [:target, obj['target']] }, } end diff --git a/generate/libraries/google_compute_health_checks.rb b/generate/libraries/google_compute_health_checks.rb index ae410b022..8bc92e779 100644 --- a/generate/libraries/google_compute_health_checks.rb +++ b/generate/libraries/google_compute_health_checks.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'checkIntervalSec' => ->(obj) { return :check_interval_sec, obj['checkIntervalSec'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'healthyThreshold' => ->(obj) { return :healthy_threshold, obj['healthyThreshold'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'unhealthyThreshold' => ->(obj) { return :unhealthy_threshold, obj['unhealthyThreshold'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'httpHealthCheck' => ->(obj) { return :http_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpHealthCheck.new(obj['httpHealthCheck'], to_s) }, - 'httpsHealthCheck' => ->(obj) { return :https_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpsHealthCheck.new(obj['httpsHealthCheck'], to_s) }, - 'tcpHealthCheck' => ->(obj) { return :tcp_health_check, GoogleInSpec::Compute::Property::HealthCheckTcpHealthCheck.new(obj['tcpHealthCheck'], to_s) }, - 'sslHealthCheck' => ->(obj) { return :ssl_health_check, GoogleInSpec::Compute::Property::HealthCheckSslHealthCheck.new(obj['sslHealthCheck'], to_s) }, - 'http2HealthCheck' => ->(obj) { return :http2_health_check, GoogleInSpec::Compute::Property::HealthCheckHttp2HealthCheck.new(obj['http2HealthCheck'], to_s) }, + 'checkIntervalSec' => ->(obj) { [:check_interval_sec, obj['checkIntervalSec']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'healthyThreshold' => ->(obj) { [:healthy_threshold, obj['healthyThreshold']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'unhealthyThreshold' => ->(obj) { [:unhealthy_threshold, obj['unhealthyThreshold']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'httpHealthCheck' => ->(obj) { [:http_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpHealthCheck.new(obj['httpHealthCheck'], to_s)] }, + 'httpsHealthCheck' => ->(obj) { [:https_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpsHealthCheck.new(obj['httpsHealthCheck'], to_s)] }, + 'tcpHealthCheck' => ->(obj) { [:tcp_health_check, GoogleInSpec::Compute::Property::HealthCheckTcpHealthCheck.new(obj['tcpHealthCheck'], to_s)] }, + 'sslHealthCheck' => ->(obj) { [:ssl_health_check, GoogleInSpec::Compute::Property::HealthCheckSslHealthCheck.new(obj['sslHealthCheck'], to_s)] }, + 'http2HealthCheck' => ->(obj) { [:http2_health_check, GoogleInSpec::Compute::Property::HealthCheckHttp2HealthCheck.new(obj['http2HealthCheck'], to_s)] }, } end diff --git a/generate/libraries/google_compute_http_health_checks.rb b/generate/libraries/google_compute_http_health_checks.rb index 9bf2bd5f3..87e30bdf1 100644 --- a/generate/libraries/google_compute_http_health_checks.rb +++ b/generate/libraries/google_compute_http_health_checks.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'checkIntervalSec' => ->(obj) { return :check_interval_sec, obj['checkIntervalSec'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'healthyThreshold' => ->(obj) { return :healthy_threshold, obj['healthyThreshold'] }, - 'host' => ->(obj) { return :host, obj['host'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'port' => ->(obj) { return :port, obj['port'] }, - 'requestPath' => ->(obj) { return :request_path, obj['requestPath'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'unhealthyThreshold' => ->(obj) { return :unhealthy_threshold, obj['unhealthyThreshold'] }, + 'checkIntervalSec' => ->(obj) { [:check_interval_sec, obj['checkIntervalSec']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'healthyThreshold' => ->(obj) { [:healthy_threshold, obj['healthyThreshold']] }, + 'host' => ->(obj) { [:host, obj['host']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'port' => ->(obj) { [:port, obj['port']] }, + 'requestPath' => ->(obj) { [:request_path, obj['requestPath']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'unhealthyThreshold' => ->(obj) { [:unhealthy_threshold, obj['unhealthyThreshold']] }, } end diff --git a/generate/libraries/google_compute_https_health_checks.rb b/generate/libraries/google_compute_https_health_checks.rb index 848ff3a3c..1b262e6db 100644 --- a/generate/libraries/google_compute_https_health_checks.rb +++ b/generate/libraries/google_compute_https_health_checks.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'checkIntervalSec' => ->(obj) { return :check_interval_sec, obj['checkIntervalSec'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'healthyThreshold' => ->(obj) { return :healthy_threshold, obj['healthyThreshold'] }, - 'host' => ->(obj) { return :host, obj['host'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'port' => ->(obj) { return :port, obj['port'] }, - 'requestPath' => ->(obj) { return :request_path, obj['requestPath'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'unhealthyThreshold' => ->(obj) { return :unhealthy_threshold, obj['unhealthyThreshold'] }, + 'checkIntervalSec' => ->(obj) { [:check_interval_sec, obj['checkIntervalSec']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'healthyThreshold' => ->(obj) { [:healthy_threshold, obj['healthyThreshold']] }, + 'host' => ->(obj) { [:host, obj['host']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'port' => ->(obj) { [:port, obj['port']] }, + 'requestPath' => ->(obj) { [:request_path, obj['requestPath']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'unhealthyThreshold' => ->(obj) { [:unhealthy_threshold, obj['unhealthyThreshold']] }, } end diff --git a/generate/libraries/google_compute_instance_group_managers.rb b/generate/libraries/google_compute_instance_group_managers.rb index 1d1964a32..3255f833c 100644 --- a/generate/libraries/google_compute_instance_group_managers.rb +++ b/generate/libraries/google_compute_instance_group_managers.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'baseInstanceName' => ->(obj) { return :base_instance_name, obj['baseInstanceName'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'currentActions' => ->(obj) { return :current_actions, GoogleInSpec::Compute::Property::InstanceGroupManagerCurrentActions.new(obj['currentActions'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'instanceGroup' => ->(obj) { return :instance_group, obj['instanceGroup'] }, - 'instanceTemplate' => ->(obj) { return :instance_template, obj['instanceTemplate'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'namedPorts' => ->(obj) { return :named_ports, GoogleInSpec::Compute::Property::InstanceGroupManagerNamedPortsArray.parse(obj['namedPorts'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'targetPools' => ->(obj) { return :target_pools, obj['targetPools'] }, - 'targetSize' => ->(obj) { return :target_size, obj['targetSize'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'baseInstanceName' => ->(obj) { [:base_instance_name, obj['baseInstanceName']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'currentActions' => ->(obj) { [:current_actions, GoogleInSpec::Compute::Property::InstanceGroupManagerCurrentActions.new(obj['currentActions'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'instanceGroup' => ->(obj) { [:instance_group, obj['instanceGroup']] }, + 'instanceTemplate' => ->(obj) { [:instance_template, obj['instanceTemplate']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'namedPorts' => ->(obj) { [:named_ports, GoogleInSpec::Compute::Property::InstanceGroupManagerNamedPortsArray.parse(obj['namedPorts'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'targetPools' => ->(obj) { [:target_pools, obj['targetPools']] }, + 'targetSize' => ->(obj) { [:target_size, obj['targetSize']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/generate/libraries/google_compute_instance_templates.rb b/generate/libraries/google_compute_instance_templates.rb index b24af7665..8d8e921ec 100644 --- a/generate/libraries/google_compute_instance_templates.rb +++ b/generate/libraries/google_compute_instance_templates.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'properties' => ->(obj) { return :properties, GoogleInSpec::Compute::Property::InstanceTemplateProperties.new(obj['properties'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'properties' => ->(obj) { [:properties, GoogleInSpec::Compute::Property::InstanceTemplateProperties.new(obj['properties'], to_s)] }, } end diff --git a/generate/libraries/google_compute_instances.rb b/generate/libraries/google_compute_instances.rb index 2997a82e0..7c1ac0b43 100644 --- a/generate/libraries/google_compute_instances.rb +++ b/generate/libraries/google_compute_instances.rb @@ -84,28 +84,28 @@ def transform(key, value) def transformers { - 'canIpForward' => ->(obj) { return :can_ip_forward, obj['canIpForward'] }, - 'cpuPlatform' => ->(obj) { return :cpu_platform, obj['cpuPlatform'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, obj['creationTimestamp'] }, - 'deletionProtection' => ->(obj) { return :deletion_protection, obj['deletionProtection'] }, - 'disks' => ->(obj) { return :disks, GoogleInSpec::Compute::Property::InstanceDisksArray.parse(obj['disks'], to_s) }, - 'guestAccelerators' => ->(obj) { return :guest_accelerators, GoogleInSpec::Compute::Property::InstanceGuestAcceleratorsArray.parse(obj['guestAccelerators'], to_s) }, - 'hostname' => ->(obj) { return :hostname, obj['hostname'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'machineType' => ->(obj) { return :machine_type, obj['machineType'] }, - 'minCpuPlatform' => ->(obj) { return :min_cpu_platform, obj['minCpuPlatform'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'networkInterfaces' => ->(obj) { return :network_interfaces, GoogleInSpec::Compute::Property::InstanceNetworkInterfacesArray.parse(obj['networkInterfaces'], to_s) }, - 'scheduling' => ->(obj) { return :scheduling, GoogleInSpec::Compute::Property::InstanceScheduling.new(obj['scheduling'], to_s) }, - 'serviceAccounts' => ->(obj) { return :service_accounts, GoogleInSpec::Compute::Property::InstanceServiceAccountsArray.parse(obj['serviceAccounts'], to_s) }, - 'shieldedInstanceConfig' => ->(obj) { return :shielded_instance_config, GoogleInSpec::Compute::Property::InstanceShieldedInstanceConfig.new(obj['shieldedInstanceConfig'], to_s) }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, - 'tags' => ->(obj) { return :tags, GoogleInSpec::Compute::Property::InstanceTags.new(obj['tags'], to_s) }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'canIpForward' => ->(obj) { [:can_ip_forward, obj['canIpForward']] }, + 'cpuPlatform' => ->(obj) { [:cpu_platform, obj['cpuPlatform']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, obj['creationTimestamp']] }, + 'deletionProtection' => ->(obj) { [:deletion_protection, obj['deletionProtection']] }, + 'disks' => ->(obj) { [:disks, GoogleInSpec::Compute::Property::InstanceDisksArray.parse(obj['disks'], to_s)] }, + 'guestAccelerators' => ->(obj) { [:guest_accelerators, GoogleInSpec::Compute::Property::InstanceGuestAcceleratorsArray.parse(obj['guestAccelerators'], to_s)] }, + 'hostname' => ->(obj) { [:hostname, obj['hostname']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'machineType' => ->(obj) { [:machine_type, obj['machineType']] }, + 'minCpuPlatform' => ->(obj) { [:min_cpu_platform, obj['minCpuPlatform']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'networkInterfaces' => ->(obj) { [:network_interfaces, GoogleInSpec::Compute::Property::InstanceNetworkInterfacesArray.parse(obj['networkInterfaces'], to_s)] }, + 'scheduling' => ->(obj) { [:scheduling, GoogleInSpec::Compute::Property::InstanceScheduling.new(obj['scheduling'], to_s)] }, + 'serviceAccounts' => ->(obj) { [:service_accounts, GoogleInSpec::Compute::Property::InstanceServiceAccountsArray.parse(obj['serviceAccounts'], to_s)] }, + 'shieldedInstanceConfig' => ->(obj) { [:shielded_instance_config, GoogleInSpec::Compute::Property::InstanceShieldedInstanceConfig.new(obj['shieldedInstanceConfig'], to_s)] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, + 'tags' => ->(obj) { [:tags, GoogleInSpec::Compute::Property::InstanceTags.new(obj['tags'], to_s)] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/generate/libraries/google_compute_network_endpoint_groups.rb b/generate/libraries/google_compute_network_endpoint_groups.rb index 78c78ce58..53bc4c375 100644 --- a/generate/libraries/google_compute_network_endpoint_groups.rb +++ b/generate/libraries/google_compute_network_endpoint_groups.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'networkEndpointType' => ->(obj) { return :network_endpoint_type, obj['networkEndpointType'] }, - 'size' => ->(obj) { return :size, obj['size'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'subnetwork' => ->(obj) { return :subnetwork, obj['subnetwork'] }, - 'defaultPort' => ->(obj) { return :default_port, obj['defaultPort'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'networkEndpointType' => ->(obj) { [:network_endpoint_type, obj['networkEndpointType']] }, + 'size' => ->(obj) { [:size, obj['size']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'subnetwork' => ->(obj) { [:subnetwork, obj['subnetwork']] }, + 'defaultPort' => ->(obj) { [:default_port, obj['defaultPort']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/generate/libraries/google_compute_networks.rb b/generate/libraries/google_compute_networks.rb index 5bbdb0dc8..d4619245e 100644 --- a/generate/libraries/google_compute_networks.rb +++ b/generate/libraries/google_compute_networks.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'gatewayIPv4' => ->(obj) { return :gateway_ipv4, obj['gatewayIPv4'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'subnetworks' => ->(obj) { return :subnetworks, obj['subnetworks'] }, - 'autoCreateSubnetworks' => ->(obj) { return :auto_create_subnetworks, obj['autoCreateSubnetworks'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'routingConfig' => ->(obj) { return :routing_config, GoogleInSpec::Compute::Property::NetworkRoutingConfig.new(obj['routingConfig'], to_s) }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'gatewayIPv4' => ->(obj) { [:gateway_ipv4, obj['gatewayIPv4']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'subnetworks' => ->(obj) { [:subnetworks, obj['subnetworks']] }, + 'autoCreateSubnetworks' => ->(obj) { [:auto_create_subnetworks, obj['autoCreateSubnetworks']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'routingConfig' => ->(obj) { [:routing_config, GoogleInSpec::Compute::Property::NetworkRoutingConfig.new(obj['routingConfig'], to_s)] }, } end diff --git a/generate/libraries/google_compute_node_groups.rb b/generate/libraries/google_compute_node_groups.rb index 0ab05988d..4bf3674ad 100644 --- a/generate/libraries/google_compute_node_groups.rb +++ b/generate/libraries/google_compute_node_groups.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'nodeTemplate' => ->(obj) { return :node_template, obj['nodeTemplate'] }, - 'size' => ->(obj) { return :size, obj['size'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'nodeTemplate' => ->(obj) { [:node_template, obj['nodeTemplate']] }, + 'size' => ->(obj) { [:size, obj['size']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/generate/libraries/google_compute_node_templates.rb b/generate/libraries/google_compute_node_templates.rb index 113b42404..73e841808 100644 --- a/generate/libraries/google_compute_node_templates.rb +++ b/generate/libraries/google_compute_node_templates.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'nodeAffinityLabels' => ->(obj) { return :node_affinity_labels, obj['nodeAffinityLabels'] }, - 'nodeType' => ->(obj) { return :node_type, obj['nodeType'] }, - 'nodeTypeFlexibility' => ->(obj) { return :node_type_flexibility, GoogleInSpec::Compute::Property::NodeTemplateNodeTypeFlexibility.new(obj['nodeTypeFlexibility'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'nodeAffinityLabels' => ->(obj) { [:node_affinity_labels, obj['nodeAffinityLabels']] }, + 'nodeType' => ->(obj) { [:node_type, obj['nodeType']] }, + 'nodeTypeFlexibility' => ->(obj) { [:node_type_flexibility, GoogleInSpec::Compute::Property::NodeTemplateNodeTypeFlexibility.new(obj['nodeTypeFlexibility'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/generate/libraries/google_compute_region_backend_services.rb b/generate/libraries/google_compute_region_backend_services.rb index 77e4a0c1a..c7137f2be 100644 --- a/generate/libraries/google_compute_region_backend_services.rb +++ b/generate/libraries/google_compute_region_backend_services.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'healthChecks' => ->(obj) { return :health_checks, obj['healthChecks'] }, - 'backends' => ->(obj) { return :backends, GoogleInSpec::Compute::Property::RegionBackendServiceBackendsArray.parse(obj['backends'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'protocol' => ->(obj) { return :protocol, obj['protocol'] }, - 'sessionAffinity' => ->(obj) { return :session_affinity, obj['sessionAffinity'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'connectionDraining' => ->(obj) { return :connection_draining, GoogleInSpec::Compute::Property::RegionBackendServiceConnectionDraining.new(obj['connectionDraining'], to_s) }, - 'loadBalancingScheme' => ->(obj) { return :load_balancing_scheme, obj['loadBalancingScheme'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'healthChecks' => ->(obj) { [:health_checks, obj['healthChecks']] }, + 'backends' => ->(obj) { [:backends, GoogleInSpec::Compute::Property::RegionBackendServiceBackendsArray.parse(obj['backends'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'protocol' => ->(obj) { [:protocol, obj['protocol']] }, + 'sessionAffinity' => ->(obj) { [:session_affinity, obj['sessionAffinity']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'connectionDraining' => ->(obj) { [:connection_draining, GoogleInSpec::Compute::Property::RegionBackendServiceConnectionDraining.new(obj['connectionDraining'], to_s)] }, + 'loadBalancingScheme' => ->(obj) { [:load_balancing_scheme, obj['loadBalancingScheme']] }, } end diff --git a/generate/libraries/google_compute_regions.rb b/generate/libraries/google_compute_regions.rb index ea501a47e..9b73e559f 100644 --- a/generate/libraries/google_compute_regions.rb +++ b/generate/libraries/google_compute_regions.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'deprecated' => ->(obj) { return :deprecated, GoogleInSpec::Compute::Property::RegionDeprecated.new(obj['deprecated'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :region_id, obj['id'] }, - 'name' => ->(obj) { return :region_name, obj['name'] }, - 'quotas' => ->(obj) { return :quotas, GoogleInSpec::Compute::Property::RegionQuotasArray.parse(obj['quotas'], to_s) }, - 'status' => ->(obj) { return :region_status, obj['status'] }, - 'zones' => ->(obj) { return :zones, obj['zones'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'deprecated' => ->(obj) { [:deprecated, GoogleInSpec::Compute::Property::RegionDeprecated.new(obj['deprecated'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:region_id, obj['id']] }, + 'name' => ->(obj) { [:region_name, obj['name']] }, + 'quotas' => ->(obj) { [:quotas, GoogleInSpec::Compute::Property::RegionQuotasArray.parse(obj['quotas'], to_s)] }, + 'status' => ->(obj) { [:region_status, obj['status']] }, + 'zones' => ->(obj) { [:zones, obj['zones']] }, } end diff --git a/generate/libraries/google_compute_routers.rb b/generate/libraries/google_compute_routers.rb index 8497979f3..852693326 100644 --- a/generate/libraries/google_compute_routers.rb +++ b/generate/libraries/google_compute_routers.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'bgp' => ->(obj) { return :bgp, GoogleInSpec::Compute::Property::RouterBgp.new(obj['bgp'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'bgp' => ->(obj) { [:bgp, GoogleInSpec::Compute::Property::RouterBgp.new(obj['bgp'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/generate/libraries/google_compute_routes.rb b/generate/libraries/google_compute_routes.rb index 3fadf8bce..2dd78f16a 100644 --- a/generate/libraries/google_compute_routes.rb +++ b/generate/libraries/google_compute_routes.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'destRange' => ->(obj) { return :dest_range, obj['destRange'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'priority' => ->(obj) { return :priority, obj['priority'] }, - 'tags' => ->(obj) { return :tags, obj['tags'] }, - 'nextHopGateway' => ->(obj) { return :next_hop_gateway, obj['nextHopGateway'] }, - 'nextHopInstance' => ->(obj) { return :next_hop_instance, obj['nextHopInstance'] }, - 'nextHopIp' => ->(obj) { return :next_hop_ip, obj['nextHopIp'] }, - 'nextHopVpnTunnel' => ->(obj) { return :next_hop_vpn_tunnel, obj['nextHopVpnTunnel'] }, - 'nextHopNetwork' => ->(obj) { return :next_hop_network, obj['nextHopNetwork'] }, + 'destRange' => ->(obj) { [:dest_range, obj['destRange']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'priority' => ->(obj) { [:priority, obj['priority']] }, + 'tags' => ->(obj) { [:tags, obj['tags']] }, + 'nextHopGateway' => ->(obj) { [:next_hop_gateway, obj['nextHopGateway']] }, + 'nextHopInstance' => ->(obj) { [:next_hop_instance, obj['nextHopInstance']] }, + 'nextHopIp' => ->(obj) { [:next_hop_ip, obj['nextHopIp']] }, + 'nextHopVpnTunnel' => ->(obj) { [:next_hop_vpn_tunnel, obj['nextHopVpnTunnel']] }, + 'nextHopNetwork' => ->(obj) { [:next_hop_network, obj['nextHopNetwork']] }, } end diff --git a/generate/libraries/google_compute_snapshots.rb b/generate/libraries/google_compute_snapshots.rb index 1b26acde5..49dcb1c35 100644 --- a/generate/libraries/google_compute_snapshots.rb +++ b/generate/libraries/google_compute_snapshots.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'diskSizeGb' => ->(obj) { return :disk_size_gb, obj['diskSizeGb'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'storageBytes' => ->(obj) { return :storage_bytes, obj['storageBytes'] }, - 'licenses' => ->(obj) { return :licenses, obj['licenses'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'sourceDisk' => ->(obj) { return :source_disk, obj['sourceDisk'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, - 'snapshotEncryptionKey' => ->(obj) { return :snapshot_encryption_key, GoogleInSpec::Compute::Property::SnapshotSnapshotEncryptionKey.new(obj['snapshotEncryptionKey'], to_s) }, - 'sourceDiskEncryptionKey' => ->(obj) { return :source_disk_encryption_key, GoogleInSpec::Compute::Property::SnapshotSourceDiskEncryptionKey.new(obj['sourceDiskEncryptionKey'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'diskSizeGb' => ->(obj) { [:disk_size_gb, obj['diskSizeGb']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'storageBytes' => ->(obj) { [:storage_bytes, obj['storageBytes']] }, + 'licenses' => ->(obj) { [:licenses, obj['licenses']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'sourceDisk' => ->(obj) { [:source_disk, obj['sourceDisk']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, + 'snapshotEncryptionKey' => ->(obj) { [:snapshot_encryption_key, GoogleInSpec::Compute::Property::SnapshotSnapshotEncryptionKey.new(obj['snapshotEncryptionKey'], to_s)] }, + 'sourceDiskEncryptionKey' => ->(obj) { [:source_disk_encryption_key, GoogleInSpec::Compute::Property::SnapshotSourceDiskEncryptionKey.new(obj['sourceDiskEncryptionKey'], to_s)] }, } end diff --git a/generate/libraries/google_compute_ssl_certificates.rb b/generate/libraries/google_compute_ssl_certificates.rb index 8d91eb426..dbf853c8f 100644 --- a/generate/libraries/google_compute_ssl_certificates.rb +++ b/generate/libraries/google_compute_ssl_certificates.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'certificate' => ->(obj) { return :certificate, obj['certificate'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'privateKey' => ->(obj) { return :private_key, obj['privateKey'] }, + 'certificate' => ->(obj) { [:certificate, obj['certificate']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'privateKey' => ->(obj) { [:private_key, obj['privateKey']] }, } end diff --git a/generate/libraries/google_compute_ssl_policies.rb b/generate/libraries/google_compute_ssl_policies.rb index a2a36e718..a81141114 100644 --- a/generate/libraries/google_compute_ssl_policies.rb +++ b/generate/libraries/google_compute_ssl_policies.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'profile' => ->(obj) { return :profile, obj['profile'] }, - 'minTlsVersion' => ->(obj) { return :min_tls_version, obj['minTlsVersion'] }, - 'enabledFeatures' => ->(obj) { return :enabled_features, obj['enabledFeatures'] }, - 'customFeatures' => ->(obj) { return :custom_features, obj['customFeatures'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'warnings' => ->(obj) { return :warnings, GoogleInSpec::Compute::Property::SslPolicyWarningsArray.parse(obj['warnings'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'profile' => ->(obj) { [:profile, obj['profile']] }, + 'minTlsVersion' => ->(obj) { [:min_tls_version, obj['minTlsVersion']] }, + 'enabledFeatures' => ->(obj) { [:enabled_features, obj['enabledFeatures']] }, + 'customFeatures' => ->(obj) { [:custom_features, obj['customFeatures']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'warnings' => ->(obj) { [:warnings, GoogleInSpec::Compute::Property::SslPolicyWarningsArray.parse(obj['warnings'], to_s)] }, } end diff --git a/generate/libraries/google_compute_subnetworks.rb b/generate/libraries/google_compute_subnetworks.rb index 4768220c8..35d8d6562 100644 --- a/generate/libraries/google_compute_subnetworks.rb +++ b/generate/libraries/google_compute_subnetworks.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'gatewayAddress' => ->(obj) { return :gateway_address, obj['gatewayAddress'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'ipCidrRange' => ->(obj) { return :ip_cidr_range, obj['ipCidrRange'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'secondaryIpRanges' => ->(obj) { return :secondary_ip_ranges, GoogleInSpec::Compute::Property::SubnetworkSecondaryIpRangesArray.parse(obj['secondaryIpRanges'], to_s) }, - 'privateIpGoogleAccess' => ->(obj) { return :private_ip_google_access, obj['privateIpGoogleAccess'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::SubnetworkLogConfig.new(obj['logConfig'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'gatewayAddress' => ->(obj) { [:gateway_address, obj['gatewayAddress']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'ipCidrRange' => ->(obj) { [:ip_cidr_range, obj['ipCidrRange']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'secondaryIpRanges' => ->(obj) { [:secondary_ip_ranges, GoogleInSpec::Compute::Property::SubnetworkSecondaryIpRangesArray.parse(obj['secondaryIpRanges'], to_s)] }, + 'privateIpGoogleAccess' => ->(obj) { [:private_ip_google_access, obj['privateIpGoogleAccess']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::SubnetworkLogConfig.new(obj['logConfig'], to_s)] }, } end diff --git a/generate/libraries/google_compute_target_http_proxies.rb b/generate/libraries/google_compute_target_http_proxies.rb index b59d8539c..a1257dd64 100644 --- a/generate/libraries/google_compute_target_http_proxies.rb +++ b/generate/libraries/google_compute_target_http_proxies.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'urlMap' => ->(obj) { return :url_map, obj['urlMap'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'urlMap' => ->(obj) { [:url_map, obj['urlMap']] }, } end diff --git a/generate/libraries/google_compute_target_https_proxies.rb b/generate/libraries/google_compute_target_https_proxies.rb index 7c288170e..d7fabb3f5 100644 --- a/generate/libraries/google_compute_target_https_proxies.rb +++ b/generate/libraries/google_compute_target_https_proxies.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'quicOverride' => ->(obj) { return :quic_override, obj['quicOverride'] }, - 'sslCertificates' => ->(obj) { return :ssl_certificates, obj['sslCertificates'] }, - 'sslPolicy' => ->(obj) { return :ssl_policy, obj['sslPolicy'] }, - 'urlMap' => ->(obj) { return :url_map, obj['urlMap'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'quicOverride' => ->(obj) { [:quic_override, obj['quicOverride']] }, + 'sslCertificates' => ->(obj) { [:ssl_certificates, obj['sslCertificates']] }, + 'sslPolicy' => ->(obj) { [:ssl_policy, obj['sslPolicy']] }, + 'urlMap' => ->(obj) { [:url_map, obj['urlMap']] }, } end diff --git a/generate/libraries/google_compute_target_pools.rb b/generate/libraries/google_compute_target_pools.rb index 2936b0fdf..166a803d7 100644 --- a/generate/libraries/google_compute_target_pools.rb +++ b/generate/libraries/google_compute_target_pools.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'backupPool' => ->(obj) { return :backup_pool, obj['backupPool'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'failoverRatio' => ->(obj) { return :failover_ratio, obj['failoverRatio'] }, - 'healthCheck' => ->(obj) { return :health_check, obj['healthCheck'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'instances' => ->(obj) { return :instances, obj['instances'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'sessionAffinity' => ->(obj) { return :session_affinity, obj['sessionAffinity'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'backupPool' => ->(obj) { [:backup_pool, obj['backupPool']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'failoverRatio' => ->(obj) { [:failover_ratio, obj['failoverRatio']] }, + 'healthCheck' => ->(obj) { [:health_check, obj['healthCheck']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'instances' => ->(obj) { [:instances, obj['instances']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'sessionAffinity' => ->(obj) { [:session_affinity, obj['sessionAffinity']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/generate/libraries/google_compute_target_tcp_proxies.rb b/generate/libraries/google_compute_target_tcp_proxies.rb index fd701f51a..4c5c21664 100644 --- a/generate/libraries/google_compute_target_tcp_proxies.rb +++ b/generate/libraries/google_compute_target_tcp_proxies.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'proxyHeader' => ->(obj) { return :proxy_header, obj['proxyHeader'] }, - 'service' => ->(obj) { return :service, obj['service'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'proxyHeader' => ->(obj) { [:proxy_header, obj['proxyHeader']] }, + 'service' => ->(obj) { [:service, obj['service']] }, } end diff --git a/generate/libraries/google_compute_url_maps.rb b/generate/libraries/google_compute_url_maps.rb index 30ae613e3..45ee1bf48 100644 --- a/generate/libraries/google_compute_url_maps.rb +++ b/generate/libraries/google_compute_url_maps.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'defaultService' => ->(obj) { return :default_service, obj['defaultService'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'hostRules' => ->(obj) { return :host_rules, GoogleInSpec::Compute::Property::UrlMapHostRulesArray.parse(obj['hostRules'], to_s) }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'pathMatchers' => ->(obj) { return :path_matchers, GoogleInSpec::Compute::Property::UrlMapPathMatchersArray.parse(obj['pathMatchers'], to_s) }, - 'tests' => ->(obj) { return :tests, GoogleInSpec::Compute::Property::UrlMapTestsArray.parse(obj['tests'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'defaultService' => ->(obj) { [:default_service, obj['defaultService']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'hostRules' => ->(obj) { [:host_rules, GoogleInSpec::Compute::Property::UrlMapHostRulesArray.parse(obj['hostRules'], to_s)] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'pathMatchers' => ->(obj) { [:path_matchers, GoogleInSpec::Compute::Property::UrlMapPathMatchersArray.parse(obj['pathMatchers'], to_s)] }, + 'tests' => ->(obj) { [:tests, GoogleInSpec::Compute::Property::UrlMapTestsArray.parse(obj['tests'], to_s)] }, } end diff --git a/generate/libraries/google_container_regional_clusters.rb b/generate/libraries/google_container_regional_clusters.rb index 7efef44f8..406177a9a 100644 --- a/generate/libraries/google_container_regional_clusters.rb +++ b/generate/libraries/google_container_regional_clusters.rb @@ -97,41 +97,41 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'initialNodeCount' => ->(obj) { return :initial_node_count, obj['initialNodeCount'] }, - 'nodeConfig' => ->(obj) { return :node_config, GoogleInSpec::Container::Property::RegionalClusterNodeConfig.new(obj['nodeConfig'], to_s) }, - 'masterAuth' => ->(obj) { return :master_auth, GoogleInSpec::Container::Property::RegionalClusterMasterAuth.new(obj['masterAuth'], to_s) }, - 'loggingService' => ->(obj) { return :logging_service, obj['loggingService'] }, - 'monitoringService' => ->(obj) { return :monitoring_service, obj['monitoringService'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'privateClusterConfig' => ->(obj) { return :private_cluster_config, GoogleInSpec::Container::Property::RegionalClusterPrivateClusterConfig.new(obj['privateClusterConfig'], to_s) }, - 'clusterIpv4Cidr' => ->(obj) { return :cluster_ipv4_cidr, obj['clusterIpv4Cidr'] }, - 'addonsConfig' => ->(obj) { return :addons_config, GoogleInSpec::Container::Property::RegionalClusterAddonsConfig.new(obj['addonsConfig'], to_s) }, - 'subnetwork' => ->(obj) { return :subnetwork, obj['subnetwork'] }, - 'locations' => ->(obj) { return :locations, obj['locations'] }, - 'resourceLabels' => ->(obj) { return :resource_labels, obj['resourceLabels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'legacyAbac' => ->(obj) { return :legacy_abac, GoogleInSpec::Container::Property::RegionalClusterLegacyAbac.new(obj['legacyAbac'], to_s) }, - 'networkPolicy' => ->(obj) { return :network_policy, GoogleInSpec::Container::Property::RegionalClusterNetworkPolicy.new(obj['networkPolicy'], to_s) }, - 'defaultMaxPodsConstraint' => ->(obj) { return :default_max_pods_constraint, GoogleInSpec::Container::Property::RegionalClusterDefaultMaxPodsConstraint.new(obj['defaultMaxPodsConstraint'], to_s) }, - 'ipAllocationPolicy' => ->(obj) { return :ip_allocation_policy, GoogleInSpec::Container::Property::RegionalClusterIpAllocationPolicy.new(obj['ipAllocationPolicy'], to_s) }, - 'endpoint' => ->(obj) { return :endpoint, obj['endpoint'] }, - 'initialClusterVersion' => ->(obj) { return :initial_cluster_version, obj['initialClusterVersion'] }, - 'currentMasterVersion' => ->(obj) { return :current_master_version, obj['currentMasterVersion'] }, - 'currentNodeVersion' => ->(obj) { return :current_node_version, obj['currentNodeVersion'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, - 'nodeIpv4CidrSize' => ->(obj) { return :node_ipv4_cidr_size, obj['nodeIpv4CidrSize'] }, - 'servicesIpv4Cidr' => ->(obj) { return :services_ipv4_cidr, obj['servicesIpv4Cidr'] }, - 'currentNodeCount' => ->(obj) { return :current_node_count, obj['currentNodeCount'] }, - 'expireTime' => ->(obj) { return :expire_time, parse_time_string(obj['expireTime']) }, - 'enableTpu' => ->(obj) { return :enable_tpu, obj['enableTpu'] }, - 'tpuIpv4CidrBlock' => ->(obj) { return :tpu_ipv4_cidr_block, obj['tpuIpv4CidrBlock'] }, - 'conditions' => ->(obj) { return :conditions, GoogleInSpec::Container::Property::RegionalClusterConditionsArray.parse(obj['conditions'], to_s) }, - 'masterAuthorizedNetworksConfig' => ->(obj) { return :master_authorized_networks_config, GoogleInSpec::Container::Property::RegionalClusterMasterAuthorizedNetworksConfig.new(obj['masterAuthorizedNetworksConfig'], to_s) }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'initialNodeCount' => ->(obj) { [:initial_node_count, obj['initialNodeCount']] }, + 'nodeConfig' => ->(obj) { [:node_config, GoogleInSpec::Container::Property::RegionalClusterNodeConfig.new(obj['nodeConfig'], to_s)] }, + 'masterAuth' => ->(obj) { [:master_auth, GoogleInSpec::Container::Property::RegionalClusterMasterAuth.new(obj['masterAuth'], to_s)] }, + 'loggingService' => ->(obj) { [:logging_service, obj['loggingService']] }, + 'monitoringService' => ->(obj) { [:monitoring_service, obj['monitoringService']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'privateClusterConfig' => ->(obj) { [:private_cluster_config, GoogleInSpec::Container::Property::RegionalClusterPrivateClusterConfig.new(obj['privateClusterConfig'], to_s)] }, + 'clusterIpv4Cidr' => ->(obj) { [:cluster_ipv4_cidr, obj['clusterIpv4Cidr']] }, + 'addonsConfig' => ->(obj) { [:addons_config, GoogleInSpec::Container::Property::RegionalClusterAddonsConfig.new(obj['addonsConfig'], to_s)] }, + 'subnetwork' => ->(obj) { [:subnetwork, obj['subnetwork']] }, + 'locations' => ->(obj) { [:locations, obj['locations']] }, + 'resourceLabels' => ->(obj) { [:resource_labels, obj['resourceLabels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'legacyAbac' => ->(obj) { [:legacy_abac, GoogleInSpec::Container::Property::RegionalClusterLegacyAbac.new(obj['legacyAbac'], to_s)] }, + 'networkPolicy' => ->(obj) { [:network_policy, GoogleInSpec::Container::Property::RegionalClusterNetworkPolicy.new(obj['networkPolicy'], to_s)] }, + 'defaultMaxPodsConstraint' => ->(obj) { [:default_max_pods_constraint, GoogleInSpec::Container::Property::RegionalClusterDefaultMaxPodsConstraint.new(obj['defaultMaxPodsConstraint'], to_s)] }, + 'ipAllocationPolicy' => ->(obj) { [:ip_allocation_policy, GoogleInSpec::Container::Property::RegionalClusterIpAllocationPolicy.new(obj['ipAllocationPolicy'], to_s)] }, + 'endpoint' => ->(obj) { [:endpoint, obj['endpoint']] }, + 'initialClusterVersion' => ->(obj) { [:initial_cluster_version, obj['initialClusterVersion']] }, + 'currentMasterVersion' => ->(obj) { [:current_master_version, obj['currentMasterVersion']] }, + 'currentNodeVersion' => ->(obj) { [:current_node_version, obj['currentNodeVersion']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, + 'nodeIpv4CidrSize' => ->(obj) { [:node_ipv4_cidr_size, obj['nodeIpv4CidrSize']] }, + 'servicesIpv4Cidr' => ->(obj) { [:services_ipv4_cidr, obj['servicesIpv4Cidr']] }, + 'currentNodeCount' => ->(obj) { [:current_node_count, obj['currentNodeCount']] }, + 'expireTime' => ->(obj) { [:expire_time, parse_time_string(obj['expireTime'])] }, + 'enableTpu' => ->(obj) { [:enable_tpu, obj['enableTpu']] }, + 'tpuIpv4CidrBlock' => ->(obj) { [:tpu_ipv4_cidr_block, obj['tpuIpv4CidrBlock']] }, + 'conditions' => ->(obj) { [:conditions, GoogleInSpec::Container::Property::RegionalClusterConditionsArray.parse(obj['conditions'], to_s)] }, + 'masterAuthorizedNetworksConfig' => ->(obj) { [:master_authorized_networks_config, GoogleInSpec::Container::Property::RegionalClusterMasterAuthorizedNetworksConfig.new(obj['masterAuthorizedNetworksConfig'], to_s)] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/generate/libraries/google_container_regional_node_pools.rb b/generate/libraries/google_container_regional_node_pools.rb index 638ed1dc3..480db9174 100644 --- a/generate/libraries/google_container_regional_node_pools.rb +++ b/generate/libraries/google_container_regional_node_pools.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'config' => ->(obj) { return :config, GoogleInSpec::Container::Property::RegionalNodePoolConfig.new(obj['config'], to_s) }, - 'initialNodeCount' => ->(obj) { return :initial_node_count, obj['initialNodeCount'] }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, - 'version' => ->(obj) { return :version, obj['version'] }, - 'autoscaling' => ->(obj) { return :autoscaling, GoogleInSpec::Container::Property::RegionalNodePoolAutoscaling.new(obj['autoscaling'], to_s) }, - 'management' => ->(obj) { return :management, GoogleInSpec::Container::Property::RegionalNodePoolManagement.new(obj['management'], to_s) }, - 'maxPodsConstraint' => ->(obj) { return :max_pods_constraint, GoogleInSpec::Container::Property::RegionalNodePoolMaxPodsConstraint.new(obj['maxPodsConstraint'], to_s) }, - 'conditions' => ->(obj) { return :conditions, GoogleInSpec::Container::Property::RegionalNodePoolConditionsArray.parse(obj['conditions'], to_s) }, - 'podIpv4CidrSize' => ->(obj) { return :pod_ipv4_cidr_size, obj['podIpv4CidrSize'] }, - 'cluster' => ->(obj) { return :cluster, obj['cluster'] }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'config' => ->(obj) { [:config, GoogleInSpec::Container::Property::RegionalNodePoolConfig.new(obj['config'], to_s)] }, + 'initialNodeCount' => ->(obj) { [:initial_node_count, obj['initialNodeCount']] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, + 'version' => ->(obj) { [:version, obj['version']] }, + 'autoscaling' => ->(obj) { [:autoscaling, GoogleInSpec::Container::Property::RegionalNodePoolAutoscaling.new(obj['autoscaling'], to_s)] }, + 'management' => ->(obj) { [:management, GoogleInSpec::Container::Property::RegionalNodePoolManagement.new(obj['management'], to_s)] }, + 'maxPodsConstraint' => ->(obj) { [:max_pods_constraint, GoogleInSpec::Container::Property::RegionalNodePoolMaxPodsConstraint.new(obj['maxPodsConstraint'], to_s)] }, + 'conditions' => ->(obj) { [:conditions, GoogleInSpec::Container::Property::RegionalNodePoolConditionsArray.parse(obj['conditions'], to_s)] }, + 'podIpv4CidrSize' => ->(obj) { [:pod_ipv4_cidr_size, obj['podIpv4CidrSize']] }, + 'cluster' => ->(obj) { [:cluster, obj['cluster']] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/generate/libraries/google_dataproc_clusters.rb b/generate/libraries/google_dataproc_clusters.rb index 0a5ead2cc..66db33005 100644 --- a/generate/libraries/google_dataproc_clusters.rb +++ b/generate/libraries/google_dataproc_clusters.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'clusterName' => ->(obj) { return :cluster_name, obj['clusterName'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'config' => ->(obj) { return :config, GoogleInSpec::Dataproc::Property::ClusterConfig.new(obj['config'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'clusterName' => ->(obj) { [:cluster_name, obj['clusterName']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'config' => ->(obj) { [:config, GoogleInSpec::Dataproc::Property::ClusterConfig.new(obj['config'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/generate/libraries/google_dns_resource_record_sets.rb b/generate/libraries/google_dns_resource_record_sets.rb index a30e6feca..0f7fff532 100644 --- a/generate/libraries/google_dns_resource_record_sets.rb +++ b/generate/libraries/google_dns_resource_record_sets.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'ttl' => ->(obj) { return :ttl, obj['ttl'] }, - 'rrdatas' => ->(obj) { return :target, obj['rrdatas'] }, - 'managed_zone' => ->(obj) { return :managed_zone, obj['managed_zone'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'ttl' => ->(obj) { [:ttl, obj['ttl']] }, + 'rrdatas' => ->(obj) { [:target, obj['rrdatas']] }, + 'managed_zone' => ->(obj) { [:managed_zone, obj['managed_zone']] }, } end diff --git a/generate/libraries/google_filestore_instances.rb b/generate/libraries/google_filestore_instances.rb index 0d19e4adc..e64638d84 100644 --- a/generate/libraries/google_filestore_instances.rb +++ b/generate/libraries/google_filestore_instances.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'tier' => ->(obj) { return :tier, obj['tier'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'fileShares' => ->(obj) { return :file_shares, GoogleInSpec::Filestore::Property::InstanceFileSharesArray.parse(obj['fileShares'], to_s) }, - 'networks' => ->(obj) { return :networks, GoogleInSpec::Filestore::Property::InstanceNetworksArray.parse(obj['networks'], to_s) }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'tier' => ->(obj) { [:tier, obj['tier']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'fileShares' => ->(obj) { [:file_shares, GoogleInSpec::Filestore::Property::InstanceFileSharesArray.parse(obj['fileShares'], to_s)] }, + 'networks' => ->(obj) { [:networks, GoogleInSpec::Filestore::Property::InstanceNetworksArray.parse(obj['networks'], to_s)] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/generate/libraries/google_logging_folder_exclusions.rb b/generate/libraries/google_logging_folder_exclusions.rb index 75213c692..a3b3d9dc5 100644 --- a/generate/libraries/google_logging_folder_exclusions.rb +++ b/generate/libraries/google_logging_folder_exclusions.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'folder' => ->(obj) { return :folder, obj['folder'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'disabled' => ->(obj) { return :disabled, obj['disabled'] }, + 'folder' => ->(obj) { [:folder, obj['folder']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'disabled' => ->(obj) { [:disabled, obj['disabled']] }, } end diff --git a/generate/libraries/google_logging_folder_log_sinks.rb b/generate/libraries/google_logging_folder_log_sinks.rb index 9ebf3de06..de5f6b8fa 100644 --- a/generate/libraries/google_logging_folder_log_sinks.rb +++ b/generate/libraries/google_logging_folder_log_sinks.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'folder' => ->(obj) { return :folder, obj['folder'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'destination' => ->(obj) { return :destination, obj['destination'] }, - 'writerIdentity' => ->(obj) { return :writer_identity, obj['writerIdentity'] }, - 'includeChildren' => ->(obj) { return :include_children, obj['includeChildren'] }, + 'folder' => ->(obj) { [:folder, obj['folder']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'destination' => ->(obj) { [:destination, obj['destination']] }, + 'writerIdentity' => ->(obj) { [:writer_identity, obj['writerIdentity']] }, + 'includeChildren' => ->(obj) { [:include_children, obj['includeChildren']] }, } end diff --git a/generate/libraries/google_logging_organization_log_sinks.rb b/generate/libraries/google_logging_organization_log_sinks.rb index 91e0ad255..692b472e8 100644 --- a/generate/libraries/google_logging_organization_log_sinks.rb +++ b/generate/libraries/google_logging_organization_log_sinks.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'organization' => ->(obj) { return :organization, obj['organization'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'destination' => ->(obj) { return :destination, obj['destination'] }, - 'writerIdentity' => ->(obj) { return :writer_identity, obj['writerIdentity'] }, - 'includeChildren' => ->(obj) { return :include_children, obj['includeChildren'] }, + 'organization' => ->(obj) { [:organization, obj['organization']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'destination' => ->(obj) { [:destination, obj['destination']] }, + 'writerIdentity' => ->(obj) { [:writer_identity, obj['writerIdentity']] }, + 'includeChildren' => ->(obj) { [:include_children, obj['includeChildren']] }, } end diff --git a/generate/libraries/google_ml_engine_models.rb b/generate/libraries/google_ml_engine_models.rb index c9fa5ce21..7151a94df 100644 --- a/generate/libraries/google_ml_engine_models.rb +++ b/generate/libraries/google_ml_engine_models.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'defaultVersion' => ->(obj) { return :default_version, GoogleInSpec::MLEngine::Property::ModelDefaultVersion.new(obj['defaultVersion'], to_s) }, - 'regions' => ->(obj) { return :regions, obj['regions'] }, - 'onlinePredictionLogging' => ->(obj) { return :online_prediction_logging, obj['onlinePredictionLogging'] }, - 'onlinePredictionConsoleLogging' => ->(obj) { return :online_prediction_console_logging, obj['onlinePredictionConsoleLogging'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'defaultVersion' => ->(obj) { [:default_version, GoogleInSpec::MLEngine::Property::ModelDefaultVersion.new(obj['defaultVersion'], to_s)] }, + 'regions' => ->(obj) { [:regions, obj['regions']] }, + 'onlinePredictionLogging' => ->(obj) { [:online_prediction_logging, obj['onlinePredictionLogging']] }, + 'onlinePredictionConsoleLogging' => ->(obj) { [:online_prediction_console_logging, obj['onlinePredictionConsoleLogging']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, } end diff --git a/generate/libraries/google_pubsub_subscriptions.rb b/generate/libraries/google_pubsub_subscriptions.rb index 79fdc3cf1..bb67e0a5f 100644 --- a/generate/libraries/google_pubsub_subscriptions.rb +++ b/generate/libraries/google_pubsub_subscriptions.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, name_from_self_link(obj['name']) }, - 'topic' => ->(obj) { return :topic, obj['topic'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'pushConfig' => ->(obj) { return :push_config, GoogleInSpec::Pubsub::Property::SubscriptionPushConfig.new(obj['pushConfig'], to_s) }, - 'ackDeadlineSeconds' => ->(obj) { return :ack_deadline_seconds, obj['ackDeadlineSeconds'] }, - 'messageRetentionDuration' => ->(obj) { return :message_retention_duration, obj['messageRetentionDuration'] }, - 'retainAckedMessages' => ->(obj) { return :retain_acked_messages, obj['retainAckedMessages'] }, - 'expirationPolicy' => ->(obj) { return :expiration_policy, GoogleInSpec::Pubsub::Property::SubscriptionExpirationPolicy.new(obj['expirationPolicy'], to_s) }, + 'name' => ->(obj) { [:name, name_from_self_link(obj['name'])] }, + 'topic' => ->(obj) { [:topic, obj['topic']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'pushConfig' => ->(obj) { [:push_config, GoogleInSpec::Pubsub::Property::SubscriptionPushConfig.new(obj['pushConfig'], to_s)] }, + 'ackDeadlineSeconds' => ->(obj) { [:ack_deadline_seconds, obj['ackDeadlineSeconds']] }, + 'messageRetentionDuration' => ->(obj) { [:message_retention_duration, obj['messageRetentionDuration']] }, + 'retainAckedMessages' => ->(obj) { [:retain_acked_messages, obj['retainAckedMessages']] }, + 'expirationPolicy' => ->(obj) { [:expiration_policy, GoogleInSpec::Pubsub::Property::SubscriptionExpirationPolicy.new(obj['expirationPolicy'], to_s)] }, } end diff --git a/generate/libraries/google_pubsub_topics.rb b/generate/libraries/google_pubsub_topics.rb index 31537937b..ee104f682 100644 --- a/generate/libraries/google_pubsub_topics.rb +++ b/generate/libraries/google_pubsub_topics.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, name_from_self_link(obj['name']) }, - 'kmsKeyName' => ->(obj) { return :kms_key_name, obj['kmsKeyName'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'messageStoragePolicy' => ->(obj) { return :message_storage_policy, GoogleInSpec::Pubsub::Property::TopicMessageStoragePolicy.new(obj['messageStoragePolicy'], to_s) }, + 'name' => ->(obj) { [:name, name_from_self_link(obj['name'])] }, + 'kmsKeyName' => ->(obj) { [:kms_key_name, obj['kmsKeyName']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'messageStoragePolicy' => ->(obj) { [:message_storage_policy, GoogleInSpec::Pubsub::Property::TopicMessageStoragePolicy.new(obj['messageStoragePolicy'], to_s)] }, } end diff --git a/generate/libraries/google_redis_instances.rb b/generate/libraries/google_redis_instances.rb index 07b176a14..11be18814 100644 --- a/generate/libraries/google_redis_instances.rb +++ b/generate/libraries/google_redis_instances.rb @@ -78,22 +78,22 @@ def transform(key, value) def transformers { - 'alternativeLocationId' => ->(obj) { return :alternative_location_id, obj['alternativeLocationId'] }, - 'authorizedNetwork' => ->(obj) { return :authorized_network, obj['authorizedNetwork'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'currentLocationId' => ->(obj) { return :current_location_id, obj['currentLocationId'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'host' => ->(obj) { return :host, obj['host'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'redisConfigs' => ->(obj) { return :redis_configs, obj['redisConfigs'] }, - 'locationId' => ->(obj) { return :location_id, obj['locationId'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'memorySizeGb' => ->(obj) { return :memory_size_gb, obj['memorySizeGb'] }, - 'port' => ->(obj) { return :port, obj['port'] }, - 'redisVersion' => ->(obj) { return :redis_version, obj['redisVersion'] }, - 'reservedIpRange' => ->(obj) { return :reserved_ip_range, obj['reservedIpRange'] }, - 'tier' => ->(obj) { return :tier, obj['tier'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'alternativeLocationId' => ->(obj) { [:alternative_location_id, obj['alternativeLocationId']] }, + 'authorizedNetwork' => ->(obj) { [:authorized_network, obj['authorizedNetwork']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'currentLocationId' => ->(obj) { [:current_location_id, obj['currentLocationId']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'host' => ->(obj) { [:host, obj['host']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'redisConfigs' => ->(obj) { [:redis_configs, obj['redisConfigs']] }, + 'locationId' => ->(obj) { [:location_id, obj['locationId']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'memorySizeGb' => ->(obj) { [:memory_size_gb, obj['memorySizeGb']] }, + 'port' => ->(obj) { [:port, obj['port']] }, + 'redisVersion' => ->(obj) { [:redis_version, obj['redisVersion']] }, + 'reservedIpRange' => ->(obj) { [:reserved_ip_range, obj['reservedIpRange']] }, + 'tier' => ->(obj) { [:tier, obj['tier']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/generate/libraries/google_resourcemanager_folders.rb b/generate/libraries/google_resourcemanager_folders.rb index bfc44c62b..85fdddc10 100644 --- a/generate/libraries/google_resourcemanager_folders.rb +++ b/generate/libraries/google_resourcemanager_folders.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'lifecycleState' => ->(obj) { return :lifecycle_state, obj['lifecycleState'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'lifecycleState' => ->(obj) { [:lifecycle_state, obj['lifecycleState']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, } end diff --git a/generate/libraries/google_runtime_config_configs.rb b/generate/libraries/google_runtime_config_configs.rb index 094966aec..b320a1867 100644 --- a/generate/libraries/google_runtime_config_configs.rb +++ b/generate/libraries/google_runtime_config_configs.rb @@ -64,8 +64,8 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/generate/libraries/google_runtime_config_variables.rb b/generate/libraries/google_runtime_config_variables.rb index 76e90d6f4..64a085dab 100644 --- a/generate/libraries/google_runtime_config_variables.rb +++ b/generate/libraries/google_runtime_config_variables.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'value' => ->(obj) { return :value, obj['value'] }, - 'text' => ->(obj) { return :text, obj['text'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'config' => ->(obj) { return :config, obj['config'] }, + 'value' => ->(obj) { [:value, obj['value']] }, + 'text' => ->(obj) { [:text, obj['text']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'config' => ->(obj) { [:config, obj['config']] }, } end diff --git a/generate/libraries/google_sourcerepo_repositories.rb b/generate/libraries/google_sourcerepo_repositories.rb index 186d75fa6..524f0d6d9 100644 --- a/generate/libraries/google_sourcerepo_repositories.rb +++ b/generate/libraries/google_sourcerepo_repositories.rb @@ -65,9 +65,9 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'url' => ->(obj) { return :url, obj['url'] }, - 'size' => ->(obj) { return :size, obj['size'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'url' => ->(obj) { [:url, obj['url']] }, + 'size' => ->(obj) { [:size, obj['size']] }, } end diff --git a/libraries/google_access_context_manager_access_levels.rb b/libraries/google_access_context_manager_access_levels.rb index 1c8a1386b..f6c5d48f5 100644 --- a/libraries/google_access_context_manager_access_levels.rb +++ b/libraries/google_access_context_manager_access_levels.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'title' => ->(obj) { return :title, obj['title'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'basic' => ->(obj) { return :basic, GoogleInSpec::AccessContextManager::Property::AccessLevelBasic.new(obj['basic'], to_s) }, - 'custom' => ->(obj) { return :custom, GoogleInSpec::AccessContextManager::Property::AccessLevelCustom.new(obj['custom'], to_s) }, - 'parent' => ->(obj) { return :parent, name_from_self_link(obj['parent']) }, - 'name' => ->(obj) { return :name, name_from_self_link(obj['name']) }, + 'title' => ->(obj) { [:title, obj['title']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'basic' => ->(obj) { [:basic, GoogleInSpec::AccessContextManager::Property::AccessLevelBasic.new(obj['basic'], to_s)] }, + 'custom' => ->(obj) { [:custom, GoogleInSpec::AccessContextManager::Property::AccessLevelCustom.new(obj['custom'], to_s)] }, + 'parent' => ->(obj) { [:parent, name_from_self_link(obj['parent'])] }, + 'name' => ->(obj) { [:name, name_from_self_link(obj['name'])] }, } end diff --git a/libraries/google_access_context_manager_access_policies.rb b/libraries/google_access_context_manager_access_policies.rb index bfa1bf877..004a13719 100644 --- a/libraries/google_access_context_manager_access_policies.rb +++ b/libraries/google_access_context_manager_access_policies.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, name_from_self_link(obj['name']) }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'updateTime' => ->(obj) { return :update_time, parse_time_string(obj['updateTime']) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, - 'title' => ->(obj) { return :title, obj['title'] }, + 'name' => ->(obj) { [:name, name_from_self_link(obj['name'])] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'updateTime' => ->(obj) { [:update_time, parse_time_string(obj['updateTime'])] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, + 'title' => ->(obj) { [:title, obj['title']] }, } end diff --git a/libraries/google_access_context_manager_service_perimeters.rb b/libraries/google_access_context_manager_service_perimeters.rb index 6f6025eed..be74aad2d 100644 --- a/libraries/google_access_context_manager_service_perimeters.rb +++ b/libraries/google_access_context_manager_service_perimeters.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'title' => ->(obj) { return :title, obj['title'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'updateTime' => ->(obj) { return :update_time, parse_time_string(obj['updateTime']) }, - 'perimeterType' => ->(obj) { return :perimeter_type, obj['perimeterType'] }, - 'status' => ->(obj) { return :status, GoogleInSpec::AccessContextManager::Property::ServicePerimeterStatus.new(obj['status'], to_s) }, - 'spec' => ->(obj) { return :spec, GoogleInSpec::AccessContextManager::Property::ServicePerimeterSpec.new(obj['spec'], to_s) }, - 'useExplicitDryRunSpec' => ->(obj) { return :use_explicit_dry_run_spec, obj['useExplicitDryRunSpec'] }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, - 'name' => ->(obj) { return :name, name_from_self_link(obj['name']) }, + 'title' => ->(obj) { [:title, obj['title']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'updateTime' => ->(obj) { [:update_time, parse_time_string(obj['updateTime'])] }, + 'perimeterType' => ->(obj) { [:perimeter_type, obj['perimeterType']] }, + 'status' => ->(obj) { [:status, GoogleInSpec::AccessContextManager::Property::ServicePerimeterStatus.new(obj['status'], to_s)] }, + 'spec' => ->(obj) { [:spec, GoogleInSpec::AccessContextManager::Property::ServicePerimeterSpec.new(obj['spec'], to_s)] }, + 'useExplicitDryRunSpec' => ->(obj) { [:use_explicit_dry_run_spec, obj['useExplicitDryRunSpec']] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, + 'name' => ->(obj) { [:name, name_from_self_link(obj['name'])] }, } end diff --git a/libraries/google_apigee_organizations.rb b/libraries/google_apigee_organizations.rb index c8613eb1c..0d074793c 100644 --- a/libraries/google_apigee_organizations.rb +++ b/libraries/google_apigee_organizations.rb @@ -90,34 +90,34 @@ def transform(key, value) def transformers { - 'apiConsumerDataEncryptionKeyName' => ->(obj) { return :api_consumer_data_encryption_key_name, obj['apiConsumerDataEncryptionKeyName'] }, - 'runtimeDatabaseEncryptionKeyName' => ->(obj) { return :runtime_database_encryption_key_name, obj['runtimeDatabaseEncryptionKeyName'] }, - 'environments' => ->(obj) { return :environments, obj['environments'] }, - 'runtimeType' => ->(obj) { return :runtime_type, obj['runtimeType'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'portalDisabled' => ->(obj) { return :portal_disabled, obj['portalDisabled'] }, - 'authorizedNetwork' => ->(obj) { return :authorized_network, obj['authorizedNetwork'] }, - 'projectId' => ->(obj) { return :project_id, obj['projectId'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'caCertificate' => ->(obj) { return :ca_certificate, obj['caCertificate'] }, - 'subscriptionType' => ->(obj) { return :subscription_type, obj['subscriptionType'] }, - 'addonsConfig' => ->(obj) { return :addons_config, GoogleInSpec::Apigee::Property::OrganizationAddonsConfig.new(obj['addonsConfig'], to_s) }, - 'customerName' => ->(obj) { return :customer_name, obj['customerName'] }, - 'createdAt' => ->(obj) { return :created_at, obj['createdAt'] }, - 'lastModifiedAt' => ->(obj) { return :last_modified_at, obj['lastModifiedAt'] }, - 'subscriptionPlan' => ->(obj) { return :subscription_plan, obj['subscriptionPlan'] }, - 'properties' => ->(obj) { return :properties, GoogleInSpec::Apigee::Property::OrganizationProperties.new(obj['properties'], to_s) }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'disableVpcPeering' => ->(obj) { return :disable_vpc_peering, obj['disableVpcPeering'] }, - 'controlPlaneEncryptionKeyName' => ->(obj) { return :control_plane_encryption_key_name, obj['controlPlaneEncryptionKeyName'] }, - 'analyticsRegion' => ->(obj) { return :analytics_region, obj['analyticsRegion'] }, - 'apiConsumerDataLocation' => ->(obj) { return :api_consumer_data_location, obj['apiConsumerDataLocation'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'apigeeProjectId' => ->(obj) { return :apigee_project_id, obj['apigeeProjectId'] }, - 'expiresAt' => ->(obj) { return :expires_at, obj['expiresAt'] }, - 'attributes' => ->(obj) { return :attributes, obj['attributes'] }, - 'billingType' => ->(obj) { return :billing_type, obj['billingType'] }, + 'apiConsumerDataEncryptionKeyName' => ->(obj) { [:api_consumer_data_encryption_key_name, obj['apiConsumerDataEncryptionKeyName']] }, + 'runtimeDatabaseEncryptionKeyName' => ->(obj) { [:runtime_database_encryption_key_name, obj['runtimeDatabaseEncryptionKeyName']] }, + 'environments' => ->(obj) { [:environments, obj['environments']] }, + 'runtimeType' => ->(obj) { [:runtime_type, obj['runtimeType']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'portalDisabled' => ->(obj) { [:portal_disabled, obj['portalDisabled']] }, + 'authorizedNetwork' => ->(obj) { [:authorized_network, obj['authorizedNetwork']] }, + 'projectId' => ->(obj) { [:project_id, obj['projectId']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'caCertificate' => ->(obj) { [:ca_certificate, obj['caCertificate']] }, + 'subscriptionType' => ->(obj) { [:subscription_type, obj['subscriptionType']] }, + 'addonsConfig' => ->(obj) { [:addons_config, GoogleInSpec::Apigee::Property::OrganizationAddonsConfig.new(obj['addonsConfig'], to_s)] }, + 'customerName' => ->(obj) { [:customer_name, obj['customerName']] }, + 'createdAt' => ->(obj) { [:created_at, obj['createdAt']] }, + 'lastModifiedAt' => ->(obj) { [:last_modified_at, obj['lastModifiedAt']] }, + 'subscriptionPlan' => ->(obj) { [:subscription_plan, obj['subscriptionPlan']] }, + 'properties' => ->(obj) { [:properties, GoogleInSpec::Apigee::Property::OrganizationProperties.new(obj['properties'], to_s)] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'disableVpcPeering' => ->(obj) { [:disable_vpc_peering, obj['disableVpcPeering']] }, + 'controlPlaneEncryptionKeyName' => ->(obj) { [:control_plane_encryption_key_name, obj['controlPlaneEncryptionKeyName']] }, + 'analyticsRegion' => ->(obj) { [:analytics_region, obj['analyticsRegion']] }, + 'apiConsumerDataLocation' => ->(obj) { [:api_consumer_data_location, obj['apiConsumerDataLocation']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'apigeeProjectId' => ->(obj) { [:apigee_project_id, obj['apigeeProjectId']] }, + 'expiresAt' => ->(obj) { [:expires_at, obj['expiresAt']] }, + 'attributes' => ->(obj) { [:attributes, obj['attributes']] }, + 'billingType' => ->(obj) { [:billing_type, obj['billingType']] }, } end diff --git a/libraries/google_appengine_standard_app_versions.rb b/libraries/google_appengine_standard_app_versions.rb index 546db82ea..266366ae7 100644 --- a/libraries/google_appengine_standard_app_versions.rb +++ b/libraries/google_appengine_standard_app_versions.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'id' => ->(obj) { return :version_id, obj['id'] }, - 'runtime' => ->(obj) { return :runtime, obj['runtime'] }, - 'threadsafe' => ->(obj) { return :threadsafe, obj['threadsafe'] }, - 'vpcAccessConnector' => ->(obj) { return :vpc_access_connector, GoogleInSpec::AppEngine::Property::StandardAppVersionVPCAccessConnector.new(obj['vpcAccessConnector'], to_s) }, - 'inboundServices' => ->(obj) { return :inbound_services, obj['inboundServices'] }, - 'instanceClass' => ->(obj) { return :instance_class, obj['instanceClass'] }, - 'automaticScaling' => ->(obj) { return :automatic_scaling, GoogleInSpec::AppEngine::Property::StandardAppVersionAutomaticScaling.new(obj['automaticScaling'], to_s) }, - 'basicScaling' => ->(obj) { return :basic_scaling, GoogleInSpec::AppEngine::Property::StandardAppVersionBasicScaling.new(obj['basicScaling'], to_s) }, - 'manualScaling' => ->(obj) { return :manual_scaling, GoogleInSpec::AppEngine::Property::StandardAppVersionManualScaling.new(obj['manualScaling'], to_s) }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'id' => ->(obj) { [:version_id, obj['id']] }, + 'runtime' => ->(obj) { [:runtime, obj['runtime']] }, + 'threadsafe' => ->(obj) { [:threadsafe, obj['threadsafe']] }, + 'vpcAccessConnector' => ->(obj) { [:vpc_access_connector, GoogleInSpec::AppEngine::Property::StandardAppVersionVPCAccessConnector.new(obj['vpcAccessConnector'], to_s)] }, + 'inboundServices' => ->(obj) { [:inbound_services, obj['inboundServices']] }, + 'instanceClass' => ->(obj) { [:instance_class, obj['instanceClass']] }, + 'automaticScaling' => ->(obj) { [:automatic_scaling, GoogleInSpec::AppEngine::Property::StandardAppVersionAutomaticScaling.new(obj['automaticScaling'], to_s)] }, + 'basicScaling' => ->(obj) { [:basic_scaling, GoogleInSpec::AppEngine::Property::StandardAppVersionBasicScaling.new(obj['basicScaling'], to_s)] }, + 'manualScaling' => ->(obj) { [:manual_scaling, GoogleInSpec::AppEngine::Property::StandardAppVersionManualScaling.new(obj['manualScaling'], to_s)] }, } end diff --git a/libraries/google_bigquery_datasets.rb b/libraries/google_bigquery_datasets.rb index f739aa363..9e8852ff3 100644 --- a/libraries/google_bigquery_datasets.rb +++ b/libraries/google_bigquery_datasets.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'datasetReference' => ->(obj) { return :dataset_reference, GoogleInSpec::BigQuery::Property::DatasetDatasetReference.new(obj['datasetReference'], to_s) }, - 'defaultPartitionExpirationMs' => ->(obj) { return :default_partition_expiration_ms, obj['defaultPartitionExpirationMs'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'friendlyName' => ->(obj) { return :friendly_name, obj['friendlyName'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'location' => ->(obj) { return :location, obj['location'] }, - 'defaultEncryptionConfiguration' => ->(obj) { return :default_encryption_configuration, GoogleInSpec::BigQuery::Property::DatasetDefaultEncryptionConfiguration.new(obj['defaultEncryptionConfiguration'], to_s) }, + 'datasetReference' => ->(obj) { [:dataset_reference, GoogleInSpec::BigQuery::Property::DatasetDatasetReference.new(obj['datasetReference'], to_s)] }, + 'defaultPartitionExpirationMs' => ->(obj) { [:default_partition_expiration_ms, obj['defaultPartitionExpirationMs']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'friendlyName' => ->(obj) { [:friendly_name, obj['friendlyName']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'location' => ->(obj) { [:location, obj['location']] }, + 'defaultEncryptionConfiguration' => ->(obj) { [:default_encryption_configuration, GoogleInSpec::BigQuery::Property::DatasetDefaultEncryptionConfiguration.new(obj['defaultEncryptionConfiguration'], to_s)] }, } end diff --git a/libraries/google_bigquery_tables.rb b/libraries/google_bigquery_tables.rb index 3cbb31a4d..63a2b706e 100644 --- a/libraries/google_bigquery_tables.rb +++ b/libraries/google_bigquery_tables.rb @@ -83,27 +83,27 @@ def transform(key, value) def transformers { - 'tableReference' => ->(obj) { return :table_reference, GoogleInSpec::BigQuery::Property::TableTableReference.new(obj['tableReference'], to_s) }, - 'clustering' => ->(obj) { return :clustering, obj['clustering'] }, - 'creationTime' => ->(obj) { return :creation_time, obj['creationTime'] }, - 'friendlyName' => ->(obj) { return :friendly_name, obj['friendlyName'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'lastModifiedTime' => ->(obj) { return :last_modified_time, obj['lastModifiedTime'] }, - 'location' => ->(obj) { return :location, obj['location'] }, - 'numBytes' => ->(obj) { return :num_bytes, obj['numBytes'] }, - 'numLongTermBytes' => ->(obj) { return :num_long_term_bytes, obj['numLongTermBytes'] }, - 'numRows' => ->(obj) { return :num_rows, obj['numRows'] }, - 'requirePartitionFilter' => ->(obj) { return :require_partition_filter, obj['requirePartitionFilter'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'view' => ->(obj) { return :view, GoogleInSpec::BigQuery::Property::TableView.new(obj['view'], to_s) }, - 'timePartitioning' => ->(obj) { return :time_partitioning, GoogleInSpec::BigQuery::Property::TableTimePartitioning.new(obj['timePartitioning'], to_s) }, - 'streamingBuffer' => ->(obj) { return :streaming_buffer, GoogleInSpec::BigQuery::Property::TableStreamingBuffer.new(obj['streamingBuffer'], to_s) }, - 'schema' => ->(obj) { return :schema, GoogleInSpec::BigQuery::Property::TableSchema.new(obj['schema'], to_s) }, - 'encryptionConfiguration' => ->(obj) { return :encryption_configuration, GoogleInSpec::BigQuery::Property::TableEncryptionConfiguration.new(obj['encryptionConfiguration'], to_s) }, - 'expirationTime' => ->(obj) { return :expiration_time, obj['expirationTime'] }, - 'externalDataConfiguration' => ->(obj) { return :external_data_configuration, GoogleInSpec::BigQuery::Property::TableExternalDataConfiguration.new(obj['externalDataConfiguration'], to_s) }, - 'dataset' => ->(obj) { return :dataset, obj['dataset'] }, + 'tableReference' => ->(obj) { [:table_reference, GoogleInSpec::BigQuery::Property::TableTableReference.new(obj['tableReference'], to_s)] }, + 'clustering' => ->(obj) { [:clustering, obj['clustering']] }, + 'creationTime' => ->(obj) { [:creation_time, obj['creationTime']] }, + 'friendlyName' => ->(obj) { [:friendly_name, obj['friendlyName']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'lastModifiedTime' => ->(obj) { [:last_modified_time, obj['lastModifiedTime']] }, + 'location' => ->(obj) { [:location, obj['location']] }, + 'numBytes' => ->(obj) { [:num_bytes, obj['numBytes']] }, + 'numLongTermBytes' => ->(obj) { [:num_long_term_bytes, obj['numLongTermBytes']] }, + 'numRows' => ->(obj) { [:num_rows, obj['numRows']] }, + 'requirePartitionFilter' => ->(obj) { [:require_partition_filter, obj['requirePartitionFilter']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'view' => ->(obj) { [:view, GoogleInSpec::BigQuery::Property::TableView.new(obj['view'], to_s)] }, + 'timePartitioning' => ->(obj) { [:time_partitioning, GoogleInSpec::BigQuery::Property::TableTimePartitioning.new(obj['timePartitioning'], to_s)] }, + 'streamingBuffer' => ->(obj) { [:streaming_buffer, GoogleInSpec::BigQuery::Property::TableStreamingBuffer.new(obj['streamingBuffer'], to_s)] }, + 'schema' => ->(obj) { [:schema, GoogleInSpec::BigQuery::Property::TableSchema.new(obj['schema'], to_s)] }, + 'encryptionConfiguration' => ->(obj) { [:encryption_configuration, GoogleInSpec::BigQuery::Property::TableEncryptionConfiguration.new(obj['encryptionConfiguration'], to_s)] }, + 'expirationTime' => ->(obj) { [:expiration_time, obj['expirationTime']] }, + 'externalDataConfiguration' => ->(obj) { [:external_data_configuration, GoogleInSpec::BigQuery::Property::TableExternalDataConfiguration.new(obj['externalDataConfiguration'], to_s)] }, + 'dataset' => ->(obj) { [:dataset, obj['dataset']] }, } end diff --git a/libraries/google_cloud_scheduler_jobs.rb b/libraries/google_cloud_scheduler_jobs.rb index 2650b15dd..d1759c31d 100644 --- a/libraries/google_cloud_scheduler_jobs.rb +++ b/libraries/google_cloud_scheduler_jobs.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'schedule' => ->(obj) { return :schedule, obj['schedule'] }, - 'timeZone' => ->(obj) { return :time_zone, obj['timeZone'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'attemptDeadline' => ->(obj) { return :attempt_deadline, obj['attemptDeadline'] }, - 'retryConfig' => ->(obj) { return :retry_config, GoogleInSpec::CloudScheduler::Property::JobRetryConfig.new(obj['retryConfig'], to_s) }, - 'pubsubTarget' => ->(obj) { return :pubsub_target, GoogleInSpec::CloudScheduler::Property::JobPubsubTarget.new(obj['pubsubTarget'], to_s) }, - 'appEngineHttpTarget' => ->(obj) { return :app_engine_http_target, GoogleInSpec::CloudScheduler::Property::JobAppEngineHttpTarget.new(obj['appEngineHttpTarget'], to_s) }, - 'httpTarget' => ->(obj) { return :http_target, GoogleInSpec::CloudScheduler::Property::JobHttpTarget.new(obj['httpTarget'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'schedule' => ->(obj) { [:schedule, obj['schedule']] }, + 'timeZone' => ->(obj) { [:time_zone, obj['timeZone']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'attemptDeadline' => ->(obj) { [:attempt_deadline, obj['attemptDeadline']] }, + 'retryConfig' => ->(obj) { [:retry_config, GoogleInSpec::CloudScheduler::Property::JobRetryConfig.new(obj['retryConfig'], to_s)] }, + 'pubsubTarget' => ->(obj) { [:pubsub_target, GoogleInSpec::CloudScheduler::Property::JobPubsubTarget.new(obj['pubsubTarget'], to_s)] }, + 'appEngineHttpTarget' => ->(obj) { [:app_engine_http_target, GoogleInSpec::CloudScheduler::Property::JobAppEngineHttpTarget.new(obj['appEngineHttpTarget'], to_s)] }, + 'httpTarget' => ->(obj) { [:http_target, GoogleInSpec::CloudScheduler::Property::JobHttpTarget.new(obj['httpTarget'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_cloudbuild_triggers.rb b/libraries/google_cloudbuild_triggers.rb index 876ab032d..64c6fabe4 100644 --- a/libraries/google_cloudbuild_triggers.rb +++ b/libraries/google_cloudbuild_triggers.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'tags' => ->(obj) { return :tags, obj['tags'] }, - 'disabled' => ->(obj) { return :disabled, obj['disabled'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'substitutions' => ->(obj) { return :substitutions, obj['substitutions'] }, - 'filename' => ->(obj) { return :filename, obj['filename'] }, - 'ignoredFiles' => ->(obj) { return :ignored_files, obj['ignoredFiles'] }, - 'includedFiles' => ->(obj) { return :included_files, obj['includedFiles'] }, - 'triggerTemplate' => ->(obj) { return :trigger_template, GoogleInSpec::CloudBuild::Property::TriggerTriggerTemplate.new(obj['triggerTemplate'], to_s) }, - 'github' => ->(obj) { return :github, GoogleInSpec::CloudBuild::Property::TriggerGithub.new(obj['github'], to_s) }, - 'build' => ->(obj) { return :build, GoogleInSpec::CloudBuild::Property::TriggerBuild.new(obj['build'], to_s) }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'tags' => ->(obj) { [:tags, obj['tags']] }, + 'disabled' => ->(obj) { [:disabled, obj['disabled']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'substitutions' => ->(obj) { [:substitutions, obj['substitutions']] }, + 'filename' => ->(obj) { [:filename, obj['filename']] }, + 'ignoredFiles' => ->(obj) { [:ignored_files, obj['ignoredFiles']] }, + 'includedFiles' => ->(obj) { [:included_files, obj['includedFiles']] }, + 'triggerTemplate' => ->(obj) { [:trigger_template, GoogleInSpec::CloudBuild::Property::TriggerTriggerTemplate.new(obj['triggerTemplate'], to_s)] }, + 'github' => ->(obj) { [:github, GoogleInSpec::CloudBuild::Property::TriggerGithub.new(obj['github'], to_s)] }, + 'build' => ->(obj) { [:build, GoogleInSpec::CloudBuild::Property::TriggerBuild.new(obj['build'], to_s)] }, } end diff --git a/libraries/google_cloudfunctions_cloud_functions.rb b/libraries/google_cloudfunctions_cloud_functions.rb index 0212fdf65..99ebfb8ea 100644 --- a/libraries/google_cloudfunctions_cloud_functions.rb +++ b/libraries/google_cloudfunctions_cloud_functions.rb @@ -80,24 +80,24 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'entryPoint' => ->(obj) { return :entry_point, obj['entryPoint'] }, - 'runtime' => ->(obj) { return :runtime, obj['runtime'] }, - 'timeout' => ->(obj) { return :timeout, obj['timeout'] }, - 'availableMemoryMb' => ->(obj) { return :available_memory_mb, obj['availableMemoryMb'] }, - 'serviceAccountEmail' => ->(obj) { return :service_account_email, obj['serviceAccountEmail'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'versionId' => ->(obj) { return :version_id, obj['versionId'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'environmentVariables' => ->(obj) { return :environment_variables, obj['environmentVariables'] }, - 'sourceArchiveUrl' => ->(obj) { return :source_archive_url, obj['sourceArchiveUrl'] }, - 'sourceUploadUrl' => ->(obj) { return :source_upload_url, obj['sourceUploadUrl'] }, - 'sourceRepository' => ->(obj) { return :source_repository, GoogleInSpec::CloudFunctions::Property::CloudFunctionSourceRepository.new(obj['sourceRepository'], to_s) }, - 'httpsTrigger' => ->(obj) { return :https_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionHttpsTrigger.new(obj['httpsTrigger'], to_s) }, - 'eventTrigger' => ->(obj) { return :event_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionEventTrigger.new(obj['eventTrigger'], to_s) }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'entryPoint' => ->(obj) { [:entry_point, obj['entryPoint']] }, + 'runtime' => ->(obj) { [:runtime, obj['runtime']] }, + 'timeout' => ->(obj) { [:timeout, obj['timeout']] }, + 'availableMemoryMb' => ->(obj) { [:available_memory_mb, obj['availableMemoryMb']] }, + 'serviceAccountEmail' => ->(obj) { [:service_account_email, obj['serviceAccountEmail']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'versionId' => ->(obj) { [:version_id, obj['versionId']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'environmentVariables' => ->(obj) { [:environment_variables, obj['environmentVariables']] }, + 'sourceArchiveUrl' => ->(obj) { [:source_archive_url, obj['sourceArchiveUrl']] }, + 'sourceUploadUrl' => ->(obj) { [:source_upload_url, obj['sourceUploadUrl']] }, + 'sourceRepository' => ->(obj) { [:source_repository, GoogleInSpec::CloudFunctions::Property::CloudFunctionSourceRepository.new(obj['sourceRepository'], to_s)] }, + 'httpsTrigger' => ->(obj) { [:https_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionHttpsTrigger.new(obj['httpsTrigger'], to_s)] }, + 'eventTrigger' => ->(obj) { [:event_trigger, GoogleInSpec::CloudFunctions::Property::CloudFunctionEventTrigger.new(obj['eventTrigger'], to_s)] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/libraries/google_composer_project_location_image_versions.rb b/libraries/google_composer_project_location_image_versions.rb index a461c3c30..7f4fa830a 100644 --- a/libraries/google_composer_project_location_image_versions.rb +++ b/libraries/google_composer_project_location_image_versions.rb @@ -64,8 +64,8 @@ def transform(key, value) def transformers { - 'imageVersions' => ->(obj) { return :image_versions, obj['imageVersions'] }, - 'nextPageToken' => ->(obj) { return :next_page_token, obj['nextPageToken'] }, + 'imageVersions' => ->(obj) { [:image_versions, obj['imageVersions']] }, + 'nextPageToken' => ->(obj) { [:next_page_token, obj['nextPageToken']] }, } end diff --git a/libraries/google_compute_accelerator_types.rb b/libraries/google_compute_accelerator_types.rb index 691e3512f..b99f94bd7 100644 --- a/libraries/google_compute_accelerator_types.rb +++ b/libraries/google_compute_accelerator_types.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'deprecated' => ->(obj) { return :deprecated, GoogleInSpec::Compute::Property::AcceleratorTypeDeprecated.new(obj['deprecated'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'deprecated' => ->(obj) { [:deprecated, GoogleInSpec::Compute::Property::AcceleratorTypeDeprecated.new(obj['deprecated'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_addresses.rb b/libraries/google_compute_addresses.rb index 1da3fc96b..f3e569cca 100644 --- a/libraries/google_compute_addresses.rb +++ b/libraries/google_compute_addresses.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'address' => ->(obj) { return :address, obj['address'] }, - 'addressType' => ->(obj) { return :address_type, obj['addressType'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'purpose' => ->(obj) { return :purpose, obj['purpose'] }, - 'networkTier' => ->(obj) { return :network_tier, obj['networkTier'] }, - 'subnetwork' => ->(obj) { return :subnetwork, obj['subnetwork'] }, - 'users' => ->(obj) { return :users, obj['users'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'address' => ->(obj) { [:address, obj['address']] }, + 'addressType' => ->(obj) { [:address_type, obj['addressType']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'purpose' => ->(obj) { [:purpose, obj['purpose']] }, + 'networkTier' => ->(obj) { [:network_tier, obj['networkTier']] }, + 'subnetwork' => ->(obj) { [:subnetwork, obj['subnetwork']] }, + 'users' => ->(obj) { [:users, obj['users']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_autoscalers.rb b/libraries/google_compute_autoscalers.rb index d0db9a174..1ef20f5cb 100644 --- a/libraries/google_compute_autoscalers.rb +++ b/libraries/google_compute_autoscalers.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'autoscalingPolicy' => ->(obj) { return :autoscaling_policy, GoogleInSpec::Compute::Property::AutoscalerAutoscalingPolicy.new(obj['autoscalingPolicy'], to_s) }, - 'target' => ->(obj) { return :target, obj['target'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'autoscalingPolicy' => ->(obj) { [:autoscaling_policy, GoogleInSpec::Compute::Property::AutoscalerAutoscalingPolicy.new(obj['autoscalingPolicy'], to_s)] }, + 'target' => ->(obj) { [:target, obj['target']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_backend_buckets.rb b/libraries/google_compute_backend_buckets.rb index 23862b19f..cfb109d90 100644 --- a/libraries/google_compute_backend_buckets.rb +++ b/libraries/google_compute_backend_buckets.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'bucketName' => ->(obj) { return :bucket_name, obj['bucketName'] }, - 'cdnPolicy' => ->(obj) { return :cdn_policy, GoogleInSpec::Compute::Property::BackendBucketCdnPolicy.new(obj['cdnPolicy'], to_s) }, - 'customResponseHeaders' => ->(obj) { return :custom_response_headers, obj['customResponseHeaders'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'enableCdn' => ->(obj) { return :enable_cdn, obj['enableCdn'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'bucketName' => ->(obj) { [:bucket_name, obj['bucketName']] }, + 'cdnPolicy' => ->(obj) { [:cdn_policy, GoogleInSpec::Compute::Property::BackendBucketCdnPolicy.new(obj['cdnPolicy'], to_s)] }, + 'customResponseHeaders' => ->(obj) { [:custom_response_headers, obj['customResponseHeaders']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'enableCdn' => ->(obj) { [:enable_cdn, obj['enableCdn']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_compute_backend_services.rb b/libraries/google_compute_backend_services.rb index 2b43d9508..c86ae42b8 100644 --- a/libraries/google_compute_backend_services.rb +++ b/libraries/google_compute_backend_services.rb @@ -87,31 +87,31 @@ def transform(key, value) def transformers { - 'affinityCookieTtlSec' => ->(obj) { return :affinity_cookie_ttl_sec, obj['affinityCookieTtlSec'] }, - 'backends' => ->(obj) { return :backends, GoogleInSpec::Compute::Property::BackendServiceBackendsArray.parse(obj['backends'], to_s) }, - 'circuitBreakers' => ->(obj) { return :circuit_breakers, GoogleInSpec::Compute::Property::BackendServiceCircuitBreakers.new(obj['circuitBreakers'], to_s) }, - 'consistentHash' => ->(obj) { return :consistent_hash, GoogleInSpec::Compute::Property::BackendServiceConsistentHash.new(obj['consistentHash'], to_s) }, - 'cdnPolicy' => ->(obj) { return :cdn_policy, GoogleInSpec::Compute::Property::BackendServiceCdnPolicy.new(obj['cdnPolicy'], to_s) }, - 'connectionDraining' => ->(obj) { return :connection_draining, GoogleInSpec::Compute::Property::BackendServiceConnectionDraining.new(obj['connectionDraining'], to_s) }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'customRequestHeaders' => ->(obj) { return :custom_request_headers, obj['customRequestHeaders'] }, - 'customResponseHeaders' => ->(obj) { return :custom_response_headers, obj['customResponseHeaders'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'enableCDN' => ->(obj) { return :enable_cdn, obj['enableCDN'] }, - 'healthChecks' => ->(obj) { return :health_checks, obj['healthChecks'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'iap' => ->(obj) { return :iap, GoogleInSpec::Compute::Property::BackendServiceIap.new(obj['iap'], to_s) }, - 'loadBalancingScheme' => ->(obj) { return :load_balancing_scheme, obj['loadBalancingScheme'] }, - 'localityLbPolicy' => ->(obj) { return :locality_lb_policy, obj['localityLbPolicy'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'outlierDetection' => ->(obj) { return :outlier_detection, GoogleInSpec::Compute::Property::BackendServiceOutlierDetection.new(obj['outlierDetection'], to_s) }, - 'portName' => ->(obj) { return :port_name, obj['portName'] }, - 'protocol' => ->(obj) { return :protocol, obj['protocol'] }, - 'securityPolicy' => ->(obj) { return :security_policy, obj['securityPolicy'] }, - 'sessionAffinity' => ->(obj) { return :session_affinity, obj['sessionAffinity'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::BackendServiceLogConfig.new(obj['logConfig'], to_s) }, + 'affinityCookieTtlSec' => ->(obj) { [:affinity_cookie_ttl_sec, obj['affinityCookieTtlSec']] }, + 'backends' => ->(obj) { [:backends, GoogleInSpec::Compute::Property::BackendServiceBackendsArray.parse(obj['backends'], to_s)] }, + 'circuitBreakers' => ->(obj) { [:circuit_breakers, GoogleInSpec::Compute::Property::BackendServiceCircuitBreakers.new(obj['circuitBreakers'], to_s)] }, + 'consistentHash' => ->(obj) { [:consistent_hash, GoogleInSpec::Compute::Property::BackendServiceConsistentHash.new(obj['consistentHash'], to_s)] }, + 'cdnPolicy' => ->(obj) { [:cdn_policy, GoogleInSpec::Compute::Property::BackendServiceCdnPolicy.new(obj['cdnPolicy'], to_s)] }, + 'connectionDraining' => ->(obj) { [:connection_draining, GoogleInSpec::Compute::Property::BackendServiceConnectionDraining.new(obj['connectionDraining'], to_s)] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'customRequestHeaders' => ->(obj) { [:custom_request_headers, obj['customRequestHeaders']] }, + 'customResponseHeaders' => ->(obj) { [:custom_response_headers, obj['customResponseHeaders']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'enableCDN' => ->(obj) { [:enable_cdn, obj['enableCDN']] }, + 'healthChecks' => ->(obj) { [:health_checks, obj['healthChecks']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'iap' => ->(obj) { [:iap, GoogleInSpec::Compute::Property::BackendServiceIap.new(obj['iap'], to_s)] }, + 'loadBalancingScheme' => ->(obj) { [:load_balancing_scheme, obj['loadBalancingScheme']] }, + 'localityLbPolicy' => ->(obj) { [:locality_lb_policy, obj['localityLbPolicy']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'outlierDetection' => ->(obj) { [:outlier_detection, GoogleInSpec::Compute::Property::BackendServiceOutlierDetection.new(obj['outlierDetection'], to_s)] }, + 'portName' => ->(obj) { [:port_name, obj['portName']] }, + 'protocol' => ->(obj) { [:protocol, obj['protocol']] }, + 'securityPolicy' => ->(obj) { [:security_policy, obj['securityPolicy']] }, + 'sessionAffinity' => ->(obj) { [:session_affinity, obj['sessionAffinity']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::BackendServiceLogConfig.new(obj['logConfig'], to_s)] }, } end diff --git a/libraries/google_compute_disk_types.rb b/libraries/google_compute_disk_types.rb index 304228f59..da54b8fdc 100644 --- a/libraries/google_compute_disk_types.rb +++ b/libraries/google_compute_disk_types.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'defaultDiskSizeGb' => ->(obj) { return :default_disk_size_gb, obj['defaultDiskSizeGb'] }, - 'deprecated' => ->(obj) { return :deprecated, GoogleInSpec::Compute::Property::DiskTypeDeprecated.new(obj['deprecated'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'validDiskSize' => ->(obj) { return :valid_disk_size, obj['validDiskSize'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'defaultDiskSizeGb' => ->(obj) { [:default_disk_size_gb, obj['defaultDiskSizeGb']] }, + 'deprecated' => ->(obj) { [:deprecated, GoogleInSpec::Compute::Property::DiskTypeDeprecated.new(obj['deprecated'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'validDiskSize' => ->(obj) { [:valid_disk_size, obj['validDiskSize']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_disks.rb b/libraries/google_compute_disks.rb index 31e232432..793eef0d0 100644 --- a/libraries/google_compute_disks.rb +++ b/libraries/google_compute_disks.rb @@ -86,30 +86,30 @@ def transform(key, value) def transformers { - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'lastAttachTimestamp' => ->(obj) { return :last_attach_timestamp, parse_time_string(obj['lastAttachTimestamp']) }, - 'lastDetachTimestamp' => ->(obj) { return :last_detach_timestamp, parse_time_string(obj['lastDetachTimestamp']) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'licenses' => ->(obj) { return :licenses, obj['licenses'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'sizeGb' => ->(obj) { return :size_gb, obj['sizeGb'] }, - 'users' => ->(obj) { return :users, obj['users'] }, - 'physicalBlockSizeBytes' => ->(obj) { return :physical_block_size_bytes, obj['physicalBlockSizeBytes'] }, - 'interface' => ->(obj) { return :interface, obj['interface'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'sourceImage' => ->(obj) { return :source_image, obj['sourceImage'] }, - 'resourcePolicies' => ->(obj) { return :resource_policies, obj['resourcePolicies'] }, - 'multiWriter' => ->(obj) { return :multi_writer, obj['multiWriter'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, - 'sourceImageEncryptionKey' => ->(obj) { return :source_image_encryption_key, GoogleInSpec::Compute::Property::DiskSourceImageEncryptionKey.new(obj['sourceImageEncryptionKey'], to_s) }, - 'sourceImageId' => ->(obj) { return :source_image_id, obj['sourceImageId'] }, - 'diskEncryptionKey' => ->(obj) { return :disk_encryption_key, GoogleInSpec::Compute::Property::DiskDiskEncryptionKey.new(obj['diskEncryptionKey'], to_s) }, - 'sourceSnapshot' => ->(obj) { return :source_snapshot, obj['sourceSnapshot'] }, - 'sourceSnapshotEncryptionKey' => ->(obj) { return :source_snapshot_encryption_key, GoogleInSpec::Compute::Property::DiskSourceSnapshotEncryptionKey.new(obj['sourceSnapshotEncryptionKey'], to_s) }, - 'sourceSnapshotId' => ->(obj) { return :source_snapshot_id, obj['sourceSnapshotId'] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'lastAttachTimestamp' => ->(obj) { [:last_attach_timestamp, parse_time_string(obj['lastAttachTimestamp'])] }, + 'lastDetachTimestamp' => ->(obj) { [:last_detach_timestamp, parse_time_string(obj['lastDetachTimestamp'])] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'licenses' => ->(obj) { [:licenses, obj['licenses']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'sizeGb' => ->(obj) { [:size_gb, obj['sizeGb']] }, + 'users' => ->(obj) { [:users, obj['users']] }, + 'physicalBlockSizeBytes' => ->(obj) { [:physical_block_size_bytes, obj['physicalBlockSizeBytes']] }, + 'interface' => ->(obj) { [:interface, obj['interface']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'sourceImage' => ->(obj) { [:source_image, obj['sourceImage']] }, + 'resourcePolicies' => ->(obj) { [:resource_policies, obj['resourcePolicies']] }, + 'multiWriter' => ->(obj) { [:multi_writer, obj['multiWriter']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, + 'sourceImageEncryptionKey' => ->(obj) { [:source_image_encryption_key, GoogleInSpec::Compute::Property::DiskSourceImageEncryptionKey.new(obj['sourceImageEncryptionKey'], to_s)] }, + 'sourceImageId' => ->(obj) { [:source_image_id, obj['sourceImageId']] }, + 'diskEncryptionKey' => ->(obj) { [:disk_encryption_key, GoogleInSpec::Compute::Property::DiskDiskEncryptionKey.new(obj['diskEncryptionKey'], to_s)] }, + 'sourceSnapshot' => ->(obj) { [:source_snapshot, obj['sourceSnapshot']] }, + 'sourceSnapshotEncryptionKey' => ->(obj) { [:source_snapshot_encryption_key, GoogleInSpec::Compute::Property::DiskSourceSnapshotEncryptionKey.new(obj['sourceSnapshotEncryptionKey'], to_s)] }, + 'sourceSnapshotId' => ->(obj) { [:source_snapshot_id, obj['sourceSnapshotId']] }, } end diff --git a/libraries/google_compute_external_vpn_gateways.rb b/libraries/google_compute_external_vpn_gateways.rb index 767a7754c..ea7f63215 100644 --- a/libraries/google_compute_external_vpn_gateways.rb +++ b/libraries/google_compute_external_vpn_gateways.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'redundancyType' => ->(obj) { return :redundancy_type, obj['redundancyType'] }, - 'interfaces' => ->(obj) { return :interfaces, GoogleInSpec::Compute::Property::ExternalVpnGatewayInterfacesArray.parse(obj['interfaces'], to_s) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'nextPageToken' => ->(obj) { return :next_page_token, obj['nextPageToken'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'redundancyType' => ->(obj) { [:redundancy_type, obj['redundancyType']] }, + 'interfaces' => ->(obj) { [:interfaces, GoogleInSpec::Compute::Property::ExternalVpnGatewayInterfacesArray.parse(obj['interfaces'], to_s)] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'nextPageToken' => ->(obj) { [:next_page_token, obj['nextPageToken']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_compute_firewalls.rb b/libraries/google_compute_firewalls.rb index 529aa04b5..7cb5322d1 100644 --- a/libraries/google_compute_firewalls.rb +++ b/libraries/google_compute_firewalls.rb @@ -79,23 +79,23 @@ def transform(key, value) def transformers { - 'allowed' => ->(obj) { return :allowed, GoogleInSpec::Compute::Property::FirewallAllowedArray.parse(obj['allowed'], to_s) }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'denied' => ->(obj) { return :denied, GoogleInSpec::Compute::Property::FirewallDeniedArray.parse(obj['denied'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'destinationRanges' => ->(obj) { return :destination_ranges, obj['destinationRanges'] }, - 'direction' => ->(obj) { return :firewall_direction, obj['direction'] }, - 'disabled' => ->(obj) { return :disabled, obj['disabled'] }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::FirewallLogConfig.new(obj['logConfig'], to_s) }, - 'id' => ->(obj) { return :firewall_id, obj['id'] }, - 'name' => ->(obj) { return :firewall_name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'priority' => ->(obj) { return :priority, obj['priority'] }, - 'sourceRanges' => ->(obj) { return :source_ranges, obj['sourceRanges'] }, - 'sourceServiceAccounts' => ->(obj) { return :source_service_accounts, obj['sourceServiceAccounts'] }, - 'sourceTags' => ->(obj) { return :source_tags, obj['sourceTags'] }, - 'targetServiceAccounts' => ->(obj) { return :target_service_accounts, obj['targetServiceAccounts'] }, - 'targetTags' => ->(obj) { return :target_tags, obj['targetTags'] }, + 'allowed' => ->(obj) { [:allowed, GoogleInSpec::Compute::Property::FirewallAllowedArray.parse(obj['allowed'], to_s)] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'denied' => ->(obj) { [:denied, GoogleInSpec::Compute::Property::FirewallDeniedArray.parse(obj['denied'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'destinationRanges' => ->(obj) { [:destination_ranges, obj['destinationRanges']] }, + 'direction' => ->(obj) { [:firewall_direction, obj['direction']] }, + 'disabled' => ->(obj) { [:disabled, obj['disabled']] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::FirewallLogConfig.new(obj['logConfig'], to_s)] }, + 'id' => ->(obj) { [:firewall_id, obj['id']] }, + 'name' => ->(obj) { [:firewall_name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'priority' => ->(obj) { [:priority, obj['priority']] }, + 'sourceRanges' => ->(obj) { [:source_ranges, obj['sourceRanges']] }, + 'sourceServiceAccounts' => ->(obj) { [:source_service_accounts, obj['sourceServiceAccounts']] }, + 'sourceTags' => ->(obj) { [:source_tags, obj['sourceTags']] }, + 'targetServiceAccounts' => ->(obj) { [:target_service_accounts, obj['targetServiceAccounts']] }, + 'targetTags' => ->(obj) { [:target_tags, obj['targetTags']] }, } end diff --git a/libraries/google_compute_forwarding_rules.rb b/libraries/google_compute_forwarding_rules.rb index b14b3fe97..a3a3aba56 100644 --- a/libraries/google_compute_forwarding_rules.rb +++ b/libraries/google_compute_forwarding_rules.rb @@ -84,28 +84,28 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'isMirroringCollector' => ->(obj) { return :is_mirroring_collector, obj['isMirroringCollector'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :forwarding_rule_id, obj['id'] }, - 'IPAddress' => ->(obj) { return :ip_address, obj['IPAddress'] }, - 'IPProtocol' => ->(obj) { return :ip_protocol, obj['IPProtocol'] }, - 'backendService' => ->(obj) { return :backend_service, obj['backendService'] }, - 'loadBalancingScheme' => ->(obj) { return :forwarding_rule_load_balancing_scheme, obj['loadBalancingScheme'] }, - 'name' => ->(obj) { return :forwarding_rule_name, obj['name'] }, - 'network' => ->(obj) { return :forwarding_rule_network, name_from_self_link(obj['network']) }, - 'portRange' => ->(obj) { return :port_range, obj['portRange'] }, - 'ports' => ->(obj) { return :ports, obj['ports'] }, - 'subnetwork' => ->(obj) { return :subnetwork, obj['subnetwork'] }, - 'target' => ->(obj) { return :target, obj['target'] }, - 'allowGlobalAccess' => ->(obj) { return :allow_global_access, obj['allowGlobalAccess'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'allPorts' => ->(obj) { return :all_ports, obj['allPorts'] }, - 'networkTier' => ->(obj) { return :network_tier, obj['networkTier'] }, - 'serviceLabel' => ->(obj) { return :service_label, obj['serviceLabel'] }, - 'serviceName' => ->(obj) { return :service_name, obj['serviceName'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'isMirroringCollector' => ->(obj) { [:is_mirroring_collector, obj['isMirroringCollector']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:forwarding_rule_id, obj['id']] }, + 'IPAddress' => ->(obj) { [:ip_address, obj['IPAddress']] }, + 'IPProtocol' => ->(obj) { [:ip_protocol, obj['IPProtocol']] }, + 'backendService' => ->(obj) { [:backend_service, obj['backendService']] }, + 'loadBalancingScheme' => ->(obj) { [:forwarding_rule_load_balancing_scheme, obj['loadBalancingScheme']] }, + 'name' => ->(obj) { [:forwarding_rule_name, obj['name']] }, + 'network' => ->(obj) { [:forwarding_rule_network, name_from_self_link(obj['network'])] }, + 'portRange' => ->(obj) { [:port_range, obj['portRange']] }, + 'ports' => ->(obj) { [:ports, obj['ports']] }, + 'subnetwork' => ->(obj) { [:subnetwork, obj['subnetwork']] }, + 'target' => ->(obj) { [:target, obj['target']] }, + 'allowGlobalAccess' => ->(obj) { [:allow_global_access, obj['allowGlobalAccess']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'allPorts' => ->(obj) { [:all_ports, obj['allPorts']] }, + 'networkTier' => ->(obj) { [:network_tier, obj['networkTier']] }, + 'serviceLabel' => ->(obj) { [:service_label, obj['serviceLabel']] }, + 'serviceName' => ->(obj) { [:service_name, obj['serviceName']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_global_addresses.rb b/libraries/google_compute_global_addresses.rb index e23d5c99f..1e41691ea 100644 --- a/libraries/google_compute_global_addresses.rb +++ b/libraries/google_compute_global_addresses.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'address' => ->(obj) { return :address, obj['address'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'ipVersion' => ->(obj) { return :ip_version, obj['ipVersion'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'prefixLength' => ->(obj) { return :prefix_length, obj['prefixLength'] }, - 'addressType' => ->(obj) { return :address_type, obj['addressType'] }, - 'purpose' => ->(obj) { return :purpose, obj['purpose'] }, - 'network' => ->(obj) { return :network, obj['network'] }, + 'address' => ->(obj) { [:address, obj['address']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'ipVersion' => ->(obj) { [:ip_version, obj['ipVersion']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'prefixLength' => ->(obj) { [:prefix_length, obj['prefixLength']] }, + 'addressType' => ->(obj) { [:address_type, obj['addressType']] }, + 'purpose' => ->(obj) { [:purpose, obj['purpose']] }, + 'network' => ->(obj) { [:network, obj['network']] }, } end diff --git a/libraries/google_compute_global_forwarding_rules.rb b/libraries/google_compute_global_forwarding_rules.rb index c47feb0c7..4986c043b 100644 --- a/libraries/google_compute_global_forwarding_rules.rb +++ b/libraries/google_compute_global_forwarding_rules.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'IPAddress' => ->(obj) { return :ip_address, obj['IPAddress'] }, - 'IPProtocol' => ->(obj) { return :ip_protocol, obj['IPProtocol'] }, - 'ipVersion' => ->(obj) { return :ip_version, obj['ipVersion'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'loadBalancingScheme' => ->(obj) { return :load_balancing_scheme, obj['loadBalancingScheme'] }, - 'metadataFilters' => ->(obj) { return :metadata_filters, GoogleInSpec::Compute::Property::GlobalForwardingRuleMetadataFiltersArray.parse(obj['metadataFilters'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'portRange' => ->(obj) { return :port_range, obj['portRange'] }, - 'target' => ->(obj) { return :target, obj['target'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'IPAddress' => ->(obj) { [:ip_address, obj['IPAddress']] }, + 'IPProtocol' => ->(obj) { [:ip_protocol, obj['IPProtocol']] }, + 'ipVersion' => ->(obj) { [:ip_version, obj['ipVersion']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'loadBalancingScheme' => ->(obj) { [:load_balancing_scheme, obj['loadBalancingScheme']] }, + 'metadataFilters' => ->(obj) { [:metadata_filters, GoogleInSpec::Compute::Property::GlobalForwardingRuleMetadataFiltersArray.parse(obj['metadataFilters'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'portRange' => ->(obj) { [:port_range, obj['portRange']] }, + 'target' => ->(obj) { [:target, obj['target']] }, } end diff --git a/libraries/google_compute_global_network_endpoint_groups.rb b/libraries/google_compute_global_network_endpoint_groups.rb index cab579ba9..a904e9639 100644 --- a/libraries/google_compute_global_network_endpoint_groups.rb +++ b/libraries/google_compute_global_network_endpoint_groups.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'networkEndpointType' => ->(obj) { return :network_endpoint_type, obj['networkEndpointType'] }, - 'defaultPort' => ->(obj) { return :default_port, obj['defaultPort'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'networkEndpointType' => ->(obj) { [:network_endpoint_type, obj['networkEndpointType']] }, + 'defaultPort' => ->(obj) { [:default_port, obj['defaultPort']] }, } end diff --git a/libraries/google_compute_global_operations.rb b/libraries/google_compute_global_operations.rb index f202b7b3a..87f3cf9fd 100644 --- a/libraries/google_compute_global_operations.rb +++ b/libraries/google_compute_global_operations.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, - 'clientOperationId' => ->(obj) { return :client_operation_id, obj['clientOperationId'] }, - 'operationType' => ->(obj) { return :operation_type, obj['operationType'] }, - 'user' => ->(obj) { return :user, obj['user'] }, - 'progress' => ->(obj) { return :progress, obj['progress'] }, - 'insertTime' => ->(obj) { return :insert_time, parse_time_string(obj['insertTime']) }, - 'startTime' => ->(obj) { return :start_time, parse_time_string(obj['startTime']) }, - 'endTime' => ->(obj) { return :end_time, parse_time_string(obj['endTime']) }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, + 'clientOperationId' => ->(obj) { [:client_operation_id, obj['clientOperationId']] }, + 'operationType' => ->(obj) { [:operation_type, obj['operationType']] }, + 'user' => ->(obj) { [:user, obj['user']] }, + 'progress' => ->(obj) { [:progress, obj['progress']] }, + 'insertTime' => ->(obj) { [:insert_time, parse_time_string(obj['insertTime'])] }, + 'startTime' => ->(obj) { [:start_time, parse_time_string(obj['startTime'])] }, + 'endTime' => ->(obj) { [:end_time, parse_time_string(obj['endTime'])] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, } end diff --git a/libraries/google_compute_health_check_services.rb b/libraries/google_compute_health_check_services.rb index 4c026d061..a10e2da09 100644 --- a/libraries/google_compute_health_check_services.rb +++ b/libraries/google_compute_health_check_services.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'healthStatusAggregationPolicy' => ->(obj) { return :health_status_aggregation_policy, obj['healthStatusAggregationPolicy'] }, - 'healthChecks' => ->(obj) { return :health_checks, obj['healthChecks'] }, - 'networkEndpointGroups' => ->(obj) { return :network_endpoint_groups, obj['networkEndpointGroups'] }, - 'notificationEndpoints' => ->(obj) { return :notification_endpoints, obj['notificationEndpoints'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'nextPageToken' => ->(obj) { return :next_page_token, obj['nextPageToken'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'healthStatusAggregationPolicy' => ->(obj) { [:health_status_aggregation_policy, obj['healthStatusAggregationPolicy']] }, + 'healthChecks' => ->(obj) { [:health_checks, obj['healthChecks']] }, + 'networkEndpointGroups' => ->(obj) { [:network_endpoint_groups, obj['networkEndpointGroups']] }, + 'notificationEndpoints' => ->(obj) { [:notification_endpoints, obj['notificationEndpoints']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'nextPageToken' => ->(obj) { [:next_page_token, obj['nextPageToken']] }, } end diff --git a/libraries/google_compute_health_checks.rb b/libraries/google_compute_health_checks.rb index 90cd8dfd2..8591bfc81 100644 --- a/libraries/google_compute_health_checks.rb +++ b/libraries/google_compute_health_checks.rb @@ -78,22 +78,22 @@ def transform(key, value) def transformers { - 'checkIntervalSec' => ->(obj) { return :check_interval_sec, obj['checkIntervalSec'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'healthyThreshold' => ->(obj) { return :healthy_threshold, obj['healthyThreshold'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'unhealthyThreshold' => ->(obj) { return :unhealthy_threshold, obj['unhealthyThreshold'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'httpHealthCheck' => ->(obj) { return :http_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpHealthCheck.new(obj['httpHealthCheck'], to_s) }, - 'httpsHealthCheck' => ->(obj) { return :https_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpsHealthCheck.new(obj['httpsHealthCheck'], to_s) }, - 'tcpHealthCheck' => ->(obj) { return :tcp_health_check, GoogleInSpec::Compute::Property::HealthCheckTcpHealthCheck.new(obj['tcpHealthCheck'], to_s) }, - 'sslHealthCheck' => ->(obj) { return :ssl_health_check, GoogleInSpec::Compute::Property::HealthCheckSslHealthCheck.new(obj['sslHealthCheck'], to_s) }, - 'http2HealthCheck' => ->(obj) { return :http2_health_check, GoogleInSpec::Compute::Property::HealthCheckHttp2HealthCheck.new(obj['http2HealthCheck'], to_s) }, - 'grpcHealthCheck' => ->(obj) { return :grpc_health_check, GoogleInSpec::Compute::Property::HealthCheckGrpcHealthCheck.new(obj['grpcHealthCheck'], to_s) }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::HealthCheckLogConfig.new(obj['logConfig'], to_s) }, + 'checkIntervalSec' => ->(obj) { [:check_interval_sec, obj['checkIntervalSec']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'healthyThreshold' => ->(obj) { [:healthy_threshold, obj['healthyThreshold']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'unhealthyThreshold' => ->(obj) { [:unhealthy_threshold, obj['unhealthyThreshold']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'httpHealthCheck' => ->(obj) { [:http_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpHealthCheck.new(obj['httpHealthCheck'], to_s)] }, + 'httpsHealthCheck' => ->(obj) { [:https_health_check, GoogleInSpec::Compute::Property::HealthCheckHttpsHealthCheck.new(obj['httpsHealthCheck'], to_s)] }, + 'tcpHealthCheck' => ->(obj) { [:tcp_health_check, GoogleInSpec::Compute::Property::HealthCheckTcpHealthCheck.new(obj['tcpHealthCheck'], to_s)] }, + 'sslHealthCheck' => ->(obj) { [:ssl_health_check, GoogleInSpec::Compute::Property::HealthCheckSslHealthCheck.new(obj['sslHealthCheck'], to_s)] }, + 'http2HealthCheck' => ->(obj) { [:http2_health_check, GoogleInSpec::Compute::Property::HealthCheckHttp2HealthCheck.new(obj['http2HealthCheck'], to_s)] }, + 'grpcHealthCheck' => ->(obj) { [:grpc_health_check, GoogleInSpec::Compute::Property::HealthCheckGrpcHealthCheck.new(obj['grpcHealthCheck'], to_s)] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::HealthCheckLogConfig.new(obj['logConfig'], to_s)] }, } end diff --git a/libraries/google_compute_http_health_checks.rb b/libraries/google_compute_http_health_checks.rb index af4d4c07a..1d798dfe4 100644 --- a/libraries/google_compute_http_health_checks.rb +++ b/libraries/google_compute_http_health_checks.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'checkIntervalSec' => ->(obj) { return :check_interval_sec, obj['checkIntervalSec'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'healthyThreshold' => ->(obj) { return :healthy_threshold, obj['healthyThreshold'] }, - 'host' => ->(obj) { return :host, obj['host'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'port' => ->(obj) { return :port, obj['port'] }, - 'requestPath' => ->(obj) { return :request_path, obj['requestPath'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'unhealthyThreshold' => ->(obj) { return :unhealthy_threshold, obj['unhealthyThreshold'] }, + 'checkIntervalSec' => ->(obj) { [:check_interval_sec, obj['checkIntervalSec']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'healthyThreshold' => ->(obj) { [:healthy_threshold, obj['healthyThreshold']] }, + 'host' => ->(obj) { [:host, obj['host']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'port' => ->(obj) { [:port, obj['port']] }, + 'requestPath' => ->(obj) { [:request_path, obj['requestPath']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'unhealthyThreshold' => ->(obj) { [:unhealthy_threshold, obj['unhealthyThreshold']] }, } end diff --git a/libraries/google_compute_https_health_checks.rb b/libraries/google_compute_https_health_checks.rb index fc67ec3dc..1fb4bcf0b 100644 --- a/libraries/google_compute_https_health_checks.rb +++ b/libraries/google_compute_https_health_checks.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'checkIntervalSec' => ->(obj) { return :check_interval_sec, obj['checkIntervalSec'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'healthyThreshold' => ->(obj) { return :healthy_threshold, obj['healthyThreshold'] }, - 'host' => ->(obj) { return :host, obj['host'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'port' => ->(obj) { return :port, obj['port'] }, - 'requestPath' => ->(obj) { return :request_path, obj['requestPath'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'unhealthyThreshold' => ->(obj) { return :unhealthy_threshold, obj['unhealthyThreshold'] }, + 'checkIntervalSec' => ->(obj) { [:check_interval_sec, obj['checkIntervalSec']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'healthyThreshold' => ->(obj) { [:healthy_threshold, obj['healthyThreshold']] }, + 'host' => ->(obj) { [:host, obj['host']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'port' => ->(obj) { [:port, obj['port']] }, + 'requestPath' => ->(obj) { [:request_path, obj['requestPath']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'unhealthyThreshold' => ->(obj) { [:unhealthy_threshold, obj['unhealthyThreshold']] }, } end diff --git a/libraries/google_compute_instance_group_managers.rb b/libraries/google_compute_instance_group_managers.rb index d9fb3f7b4..1b027ebab 100644 --- a/libraries/google_compute_instance_group_managers.rb +++ b/libraries/google_compute_instance_group_managers.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'baseInstanceName' => ->(obj) { return :base_instance_name, obj['baseInstanceName'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'currentActions' => ->(obj) { return :current_actions, GoogleInSpec::Compute::Property::InstanceGroupManagerCurrentActions.new(obj['currentActions'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'instanceGroup' => ->(obj) { return :instance_group, obj['instanceGroup'] }, - 'instanceTemplate' => ->(obj) { return :instance_template, obj['instanceTemplate'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'namedPorts' => ->(obj) { return :named_ports, GoogleInSpec::Compute::Property::InstanceGroupManagerNamedPortsArray.parse(obj['namedPorts'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'targetPools' => ->(obj) { return :target_pools, obj['targetPools'] }, - 'targetSize' => ->(obj) { return :target_size, obj['targetSize'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'baseInstanceName' => ->(obj) { [:base_instance_name, obj['baseInstanceName']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'currentActions' => ->(obj) { [:current_actions, GoogleInSpec::Compute::Property::InstanceGroupManagerCurrentActions.new(obj['currentActions'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'instanceGroup' => ->(obj) { [:instance_group, obj['instanceGroup']] }, + 'instanceTemplate' => ->(obj) { [:instance_template, obj['instanceTemplate']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'namedPorts' => ->(obj) { [:named_ports, GoogleInSpec::Compute::Property::InstanceGroupManagerNamedPortsArray.parse(obj['namedPorts'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'targetPools' => ->(obj) { [:target_pools, obj['targetPools']] }, + 'targetSize' => ->(obj) { [:target_size, obj['targetSize']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_instance_groups.rb b/libraries/google_compute_instance_groups.rb index d3001a336..eeacbcb6f 100644 --- a/libraries/google_compute_instance_groups.rb +++ b/libraries/google_compute_instance_groups.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :instance_group_id, obj['id'] }, - 'name' => ->(obj) { return :instance_group_name, obj['name'] }, - 'namedPorts' => ->(obj) { return :named_ports, GoogleInSpec::Compute::Property::InstanceGroupNamedPortsArray.parse(obj['namedPorts'], to_s) }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'subnetwork' => ->(obj) { return :subnetwork, obj['subnetwork'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:instance_group_id, obj['id']] }, + 'name' => ->(obj) { [:instance_group_name, obj['name']] }, + 'namedPorts' => ->(obj) { [:named_ports, GoogleInSpec::Compute::Property::InstanceGroupNamedPortsArray.parse(obj['namedPorts'], to_s)] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'subnetwork' => ->(obj) { [:subnetwork, obj['subnetwork']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_instance_templates.rb b/libraries/google_compute_instance_templates.rb index 51ecc34a8..facadaf84 100644 --- a/libraries/google_compute_instance_templates.rb +++ b/libraries/google_compute_instance_templates.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'properties' => ->(obj) { return :properties, GoogleInSpec::Compute::Property::InstanceTemplateProperties.new(obj['properties'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'properties' => ->(obj) { [:properties, GoogleInSpec::Compute::Property::InstanceTemplateProperties.new(obj['properties'], to_s)] }, } end diff --git a/libraries/google_compute_instances.rb b/libraries/google_compute_instances.rb index ba3ed529c..725bb9145 100644 --- a/libraries/google_compute_instances.rb +++ b/libraries/google_compute_instances.rb @@ -84,28 +84,28 @@ def transform(key, value) def transformers { - 'canIpForward' => ->(obj) { return :can_ip_forward, obj['canIpForward'] }, - 'cpuPlatform' => ->(obj) { return :cpu_platform, obj['cpuPlatform'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, obj['creationTimestamp'] }, - 'deletionProtection' => ->(obj) { return :deletion_protection, obj['deletionProtection'] }, - 'disks' => ->(obj) { return :disks, GoogleInSpec::Compute::Property::InstanceDisksArray.parse(obj['disks'], to_s) }, - 'guestAccelerators' => ->(obj) { return :guest_accelerators, GoogleInSpec::Compute::Property::InstanceGuestAcceleratorsArray.parse(obj['guestAccelerators'], to_s) }, - 'hostname' => ->(obj) { return :hostname, obj['hostname'] }, - 'id' => ->(obj) { return :instance_id, obj['id'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'machineType' => ->(obj) { return :machine_type, obj['machineType'] }, - 'minCpuPlatform' => ->(obj) { return :min_cpu_platform, obj['minCpuPlatform'] }, - 'name' => ->(obj) { return :instance_name, obj['name'] }, - 'networkInterfaces' => ->(obj) { return :network_interfaces, GoogleInSpec::Compute::Property::InstanceNetworkInterfacesArray.parse(obj['networkInterfaces'], to_s) }, - 'scheduling' => ->(obj) { return :scheduling, GoogleInSpec::Compute::Property::InstanceScheduling.new(obj['scheduling'], to_s) }, - 'serviceAccounts' => ->(obj) { return :service_accounts, GoogleInSpec::Compute::Property::InstanceServiceAccountsArray.parse(obj['serviceAccounts'], to_s) }, - 'shieldedInstanceConfig' => ->(obj) { return :shielded_instance_config, GoogleInSpec::Compute::Property::InstanceShieldedInstanceConfig.new(obj['shieldedInstanceConfig'], to_s) }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, - 'tags' => ->(obj) { return :tags, GoogleInSpec::Compute::Property::InstanceTags.new(obj['tags'], to_s) }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'canIpForward' => ->(obj) { [:can_ip_forward, obj['canIpForward']] }, + 'cpuPlatform' => ->(obj) { [:cpu_platform, obj['cpuPlatform']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, obj['creationTimestamp']] }, + 'deletionProtection' => ->(obj) { [:deletion_protection, obj['deletionProtection']] }, + 'disks' => ->(obj) { [:disks, GoogleInSpec::Compute::Property::InstanceDisksArray.parse(obj['disks'], to_s)] }, + 'guestAccelerators' => ->(obj) { [:guest_accelerators, GoogleInSpec::Compute::Property::InstanceGuestAcceleratorsArray.parse(obj['guestAccelerators'], to_s)] }, + 'hostname' => ->(obj) { [:hostname, obj['hostname']] }, + 'id' => ->(obj) { [:instance_id, obj['id']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'machineType' => ->(obj) { [:machine_type, obj['machineType']] }, + 'minCpuPlatform' => ->(obj) { [:min_cpu_platform, obj['minCpuPlatform']] }, + 'name' => ->(obj) { [:instance_name, obj['name']] }, + 'networkInterfaces' => ->(obj) { [:network_interfaces, GoogleInSpec::Compute::Property::InstanceNetworkInterfacesArray.parse(obj['networkInterfaces'], to_s)] }, + 'scheduling' => ->(obj) { [:scheduling, GoogleInSpec::Compute::Property::InstanceScheduling.new(obj['scheduling'], to_s)] }, + 'serviceAccounts' => ->(obj) { [:service_accounts, GoogleInSpec::Compute::Property::InstanceServiceAccountsArray.parse(obj['serviceAccounts'], to_s)] }, + 'shieldedInstanceConfig' => ->(obj) { [:shielded_instance_config, GoogleInSpec::Compute::Property::InstanceShieldedInstanceConfig.new(obj['shieldedInstanceConfig'], to_s)] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, + 'tags' => ->(obj) { [:tags, GoogleInSpec::Compute::Property::InstanceTags.new(obj['tags'], to_s)] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_interconnect_locations.rb b/libraries/google_compute_interconnect_locations.rb index 27572fb2b..4c2a90643 100644 --- a/libraries/google_compute_interconnect_locations.rb +++ b/libraries/google_compute_interconnect_locations.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'availabilityZone' => ->(obj) { return :availability_zone, obj['availabilityZone'] }, - 'clientOperationId' => ->(obj) { return :client_operation_id, obj['clientOperationId'] }, - 'facilityProvider' => ->(obj) { return :facility_provider, obj['facilityProvider'] }, - 'facilityProviderFacilityId' => ->(obj) { return :facility_provider_facility_id, obj['facilityProviderFacilityId'] }, - 'status' => ->(obj) { return :status, obj['status'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'availabilityZone' => ->(obj) { [:availability_zone, obj['availabilityZone']] }, + 'clientOperationId' => ->(obj) { [:client_operation_id, obj['clientOperationId']] }, + 'facilityProvider' => ->(obj) { [:facility_provider, obj['facilityProvider']] }, + 'facilityProviderFacilityId' => ->(obj) { [:facility_provider_facility_id, obj['facilityProviderFacilityId']] }, + 'status' => ->(obj) { [:status, obj['status']] }, } end diff --git a/libraries/google_compute_interconnects.rb b/libraries/google_compute_interconnects.rb index bcc3085ed..34355b985 100644 --- a/libraries/google_compute_interconnects.rb +++ b/libraries/google_compute_interconnects.rb @@ -83,27 +83,27 @@ def transform(key, value) def transformers { - 'adminEnabled' => ->(obj) { return :admin_enabled, obj['adminEnabled'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'location' => ->(obj) { return :location, obj['location'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'nocContactEmail' => ->(obj) { return :noc_contact_email, obj['nocContactEmail'] }, - 'peerIpAddress' => ->(obj) { return :peer_ip_address, obj['peerIpAddress'] }, - 'googleIpAddress' => ->(obj) { return :google_ip_address, obj['googleIpAddress'] }, - 'clientOperationId' => ->(obj) { return :client_operation_id, obj['clientOperationId'] }, - 'googleReferenceId' => ->(obj) { return :google_reference_id, obj['googleReferenceId'] }, - 'provisionedLinkCount' => ->(obj) { return :provisioned_link_count, obj['provisionedLinkCount'] }, - 'customerName' => ->(obj) { return :customer_name, obj['customerName'] }, - 'requestedLinkCount' => ->(obj) { return :requested_link_count, obj['requestedLinkCount'] }, - 'operationalStatus' => ->(obj) { return :operational_status, obj['operationalStatus'] }, - 'linkType' => ->(obj) { return :link_type, obj['linkType'] }, - 'interconnectType' => ->(obj) { return :interconnect_type, obj['interconnectType'] }, - 'interconnectAttachments' => ->(obj) { return :interconnect_attachments, obj['interconnectAttachments'] }, - 'expectedOutages' => ->(obj) { return :expected_outages, GoogleInSpec::Compute::Property::InterconnectExpectedOutagesArray.parse(obj['expectedOutages'], to_s) }, - 'circuitInfos' => ->(obj) { return :circuit_infos, GoogleInSpec::Compute::Property::InterconnectCircuitInfosArray.parse(obj['circuitInfos'], to_s) }, - 'satisfiesPzs' => ->(obj) { return :satisfies_pzs, obj['satisfiesPzs'] }, + 'adminEnabled' => ->(obj) { [:admin_enabled, obj['adminEnabled']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'location' => ->(obj) { [:location, obj['location']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'nocContactEmail' => ->(obj) { [:noc_contact_email, obj['nocContactEmail']] }, + 'peerIpAddress' => ->(obj) { [:peer_ip_address, obj['peerIpAddress']] }, + 'googleIpAddress' => ->(obj) { [:google_ip_address, obj['googleIpAddress']] }, + 'clientOperationId' => ->(obj) { [:client_operation_id, obj['clientOperationId']] }, + 'googleReferenceId' => ->(obj) { [:google_reference_id, obj['googleReferenceId']] }, + 'provisionedLinkCount' => ->(obj) { [:provisioned_link_count, obj['provisionedLinkCount']] }, + 'customerName' => ->(obj) { [:customer_name, obj['customerName']] }, + 'requestedLinkCount' => ->(obj) { [:requested_link_count, obj['requestedLinkCount']] }, + 'operationalStatus' => ->(obj) { [:operational_status, obj['operationalStatus']] }, + 'linkType' => ->(obj) { [:link_type, obj['linkType']] }, + 'interconnectType' => ->(obj) { [:interconnect_type, obj['interconnectType']] }, + 'interconnectAttachments' => ->(obj) { [:interconnect_attachments, obj['interconnectAttachments']] }, + 'expectedOutages' => ->(obj) { [:expected_outages, GoogleInSpec::Compute::Property::InterconnectExpectedOutagesArray.parse(obj['expectedOutages'], to_s)] }, + 'circuitInfos' => ->(obj) { [:circuit_infos, GoogleInSpec::Compute::Property::InterconnectCircuitInfosArray.parse(obj['circuitInfos'], to_s)] }, + 'satisfiesPzs' => ->(obj) { [:satisfies_pzs, obj['satisfiesPzs']] }, } end diff --git a/libraries/google_compute_network_endpoint_groups.rb b/libraries/google_compute_network_endpoint_groups.rb index a367b49ad..0e13e4758 100644 --- a/libraries/google_compute_network_endpoint_groups.rb +++ b/libraries/google_compute_network_endpoint_groups.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'networkEndpointType' => ->(obj) { return :network_endpoint_type, obj['networkEndpointType'] }, - 'size' => ->(obj) { return :size, obj['size'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'subnetwork' => ->(obj) { return :subnetwork, obj['subnetwork'] }, - 'defaultPort' => ->(obj) { return :default_port, obj['defaultPort'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'networkEndpointType' => ->(obj) { [:network_endpoint_type, obj['networkEndpointType']] }, + 'size' => ->(obj) { [:size, obj['size']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'subnetwork' => ->(obj) { [:subnetwork, obj['subnetwork']] }, + 'defaultPort' => ->(obj) { [:default_port, obj['defaultPort']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_networks.rb b/libraries/google_compute_networks.rb index 1dd4f8554..85f41b5bf 100644 --- a/libraries/google_compute_networks.rb +++ b/libraries/google_compute_networks.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'gatewayIPv4' => ->(obj) { return :gateway_ipv4, obj['gatewayIPv4'] }, - 'id' => ->(obj) { return :network_id, obj['id'] }, - 'name' => ->(obj) { return :network_name, obj['name'] }, - 'subnetworks' => ->(obj) { return :subnetworks, obj['subnetworks'] }, - 'autoCreateSubnetworks' => ->(obj) { return :auto_create_subnetworks, obj['autoCreateSubnetworks'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'routingConfig' => ->(obj) { return :routing_config, GoogleInSpec::Compute::Property::NetworkRoutingConfig.new(obj['routingConfig'], to_s) }, - 'peerings' => ->(obj) { return :peerings, GoogleInSpec::Compute::Property::NetworkPeeringsArray.parse(obj['peerings'], to_s) }, - 'mtu' => ->(obj) { return :mtu, obj['mtu'] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'gatewayIPv4' => ->(obj) { [:gateway_ipv4, obj['gatewayIPv4']] }, + 'id' => ->(obj) { [:network_id, obj['id']] }, + 'name' => ->(obj) { [:network_name, obj['name']] }, + 'subnetworks' => ->(obj) { [:subnetworks, obj['subnetworks']] }, + 'autoCreateSubnetworks' => ->(obj) { [:auto_create_subnetworks, obj['autoCreateSubnetworks']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'routingConfig' => ->(obj) { [:routing_config, GoogleInSpec::Compute::Property::NetworkRoutingConfig.new(obj['routingConfig'], to_s)] }, + 'peerings' => ->(obj) { [:peerings, GoogleInSpec::Compute::Property::NetworkPeeringsArray.parse(obj['peerings'], to_s)] }, + 'mtu' => ->(obj) { [:mtu, obj['mtu']] }, } end diff --git a/libraries/google_compute_node_groups.rb b/libraries/google_compute_node_groups.rb index 682505e59..b0b2764f7 100644 --- a/libraries/google_compute_node_groups.rb +++ b/libraries/google_compute_node_groups.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'nodeTemplate' => ->(obj) { return :node_template, obj['nodeTemplate'] }, - 'size' => ->(obj) { return :size, obj['size'] }, - 'maintenancePolicy' => ->(obj) { return :maintenance_policy, obj['maintenancePolicy'] }, - 'autoscalingPolicy' => ->(obj) { return :autoscaling_policy, GoogleInSpec::Compute::Property::NodeGroupAutoscalingPolicy.new(obj['autoscalingPolicy'], to_s) }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'nodeTemplate' => ->(obj) { [:node_template, obj['nodeTemplate']] }, + 'size' => ->(obj) { [:size, obj['size']] }, + 'maintenancePolicy' => ->(obj) { [:maintenance_policy, obj['maintenancePolicy']] }, + 'autoscalingPolicy' => ->(obj) { [:autoscaling_policy, GoogleInSpec::Compute::Property::NodeGroupAutoscalingPolicy.new(obj['autoscalingPolicy'], to_s)] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_node_templates.rb b/libraries/google_compute_node_templates.rb index 7d693f895..4503cd0f8 100644 --- a/libraries/google_compute_node_templates.rb +++ b/libraries/google_compute_node_templates.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'nodeAffinityLabels' => ->(obj) { return :node_affinity_labels, obj['nodeAffinityLabels'] }, - 'nodeType' => ->(obj) { return :node_type, obj['nodeType'] }, - 'nodeTypeFlexibility' => ->(obj) { return :node_type_flexibility, GoogleInSpec::Compute::Property::NodeTemplateNodeTypeFlexibility.new(obj['nodeTypeFlexibility'], to_s) }, - 'serverBinding' => ->(obj) { return :server_binding, GoogleInSpec::Compute::Property::NodeTemplateServerBinding.new(obj['serverBinding'], to_s) }, - 'cpuOvercommitType' => ->(obj) { return :cpu_overcommit_type, obj['cpuOvercommitType'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'nodeAffinityLabels' => ->(obj) { [:node_affinity_labels, obj['nodeAffinityLabels']] }, + 'nodeType' => ->(obj) { [:node_type, obj['nodeType']] }, + 'nodeTypeFlexibility' => ->(obj) { [:node_type_flexibility, GoogleInSpec::Compute::Property::NodeTemplateNodeTypeFlexibility.new(obj['nodeTypeFlexibility'], to_s)] }, + 'serverBinding' => ->(obj) { [:server_binding, GoogleInSpec::Compute::Property::NodeTemplateServerBinding.new(obj['serverBinding'], to_s)] }, + 'cpuOvercommitType' => ->(obj) { [:cpu_overcommit_type, obj['cpuOvercommitType']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_public_delegated_prefixes.rb b/libraries/google_compute_public_delegated_prefixes.rb index e71a11715..ca005368d 100644 --- a/libraries/google_compute_public_delegated_prefixes.rb +++ b/libraries/google_compute_public_delegated_prefixes.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'ipCidrRange' => ->(obj) { return :ip_cidr_range, obj['ipCidrRange'] }, - 'parentPrefix' => ->(obj) { return :parent_prefix, obj['parentPrefix'] }, - 'isLiveMigration' => ->(obj) { return :is_live_migration, obj['isLiveMigration'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'status' => ->(obj) { return :status, obj['status'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'ipCidrRange' => ->(obj) { [:ip_cidr_range, obj['ipCidrRange']] }, + 'parentPrefix' => ->(obj) { [:parent_prefix, obj['parentPrefix']] }, + 'isLiveMigration' => ->(obj) { [:is_live_migration, obj['isLiveMigration']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'status' => ->(obj) { [:status, obj['status']] }, } end diff --git a/libraries/google_compute_region_backend_services.rb b/libraries/google_compute_region_backend_services.rb index 87dcac425..dc8d3b829 100644 --- a/libraries/google_compute_region_backend_services.rb +++ b/libraries/google_compute_region_backend_services.rb @@ -86,30 +86,30 @@ def transform(key, value) def transformers { - 'affinityCookieTtlSec' => ->(obj) { return :affinity_cookie_ttl_sec, obj['affinityCookieTtlSec'] }, - 'backends' => ->(obj) { return :backends, GoogleInSpec::Compute::Property::RegionBackendServiceBackendsArray.parse(obj['backends'], to_s) }, - 'circuitBreakers' => ->(obj) { return :circuit_breakers, GoogleInSpec::Compute::Property::RegionBackendServiceCircuitBreakers.new(obj['circuitBreakers'], to_s) }, - 'consistentHash' => ->(obj) { return :consistent_hash, GoogleInSpec::Compute::Property::RegionBackendServiceConsistentHash.new(obj['consistentHash'], to_s) }, - 'cdnPolicy' => ->(obj) { return :cdn_policy, GoogleInSpec::Compute::Property::RegionBackendServiceCdnPolicy.new(obj['cdnPolicy'], to_s) }, - 'connectionDraining' => ->(obj) { return :connection_draining, GoogleInSpec::Compute::Property::RegionBackendServiceConnectionDraining.new(obj['connectionDraining'], to_s) }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'failoverPolicy' => ->(obj) { return :failover_policy, GoogleInSpec::Compute::Property::RegionBackendServiceFailoverPolicy.new(obj['failoverPolicy'], to_s) }, - 'enableCDN' => ->(obj) { return :enable_cdn, obj['enableCDN'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'healthChecks' => ->(obj) { return :health_checks, obj['healthChecks'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'loadBalancingScheme' => ->(obj) { return :load_balancing_scheme, obj['loadBalancingScheme'] }, - 'localityLbPolicy' => ->(obj) { return :locality_lb_policy, obj['localityLbPolicy'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'outlierDetection' => ->(obj) { return :outlier_detection, GoogleInSpec::Compute::Property::RegionBackendServiceOutlierDetection.new(obj['outlierDetection'], to_s) }, - 'portName' => ->(obj) { return :port_name, obj['portName'] }, - 'protocol' => ->(obj) { return :protocol, obj['protocol'] }, - 'sessionAffinity' => ->(obj) { return :session_affinity, obj['sessionAffinity'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::RegionBackendServiceLogConfig.new(obj['logConfig'], to_s) }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'affinityCookieTtlSec' => ->(obj) { [:affinity_cookie_ttl_sec, obj['affinityCookieTtlSec']] }, + 'backends' => ->(obj) { [:backends, GoogleInSpec::Compute::Property::RegionBackendServiceBackendsArray.parse(obj['backends'], to_s)] }, + 'circuitBreakers' => ->(obj) { [:circuit_breakers, GoogleInSpec::Compute::Property::RegionBackendServiceCircuitBreakers.new(obj['circuitBreakers'], to_s)] }, + 'consistentHash' => ->(obj) { [:consistent_hash, GoogleInSpec::Compute::Property::RegionBackendServiceConsistentHash.new(obj['consistentHash'], to_s)] }, + 'cdnPolicy' => ->(obj) { [:cdn_policy, GoogleInSpec::Compute::Property::RegionBackendServiceCdnPolicy.new(obj['cdnPolicy'], to_s)] }, + 'connectionDraining' => ->(obj) { [:connection_draining, GoogleInSpec::Compute::Property::RegionBackendServiceConnectionDraining.new(obj['connectionDraining'], to_s)] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'failoverPolicy' => ->(obj) { [:failover_policy, GoogleInSpec::Compute::Property::RegionBackendServiceFailoverPolicy.new(obj['failoverPolicy'], to_s)] }, + 'enableCDN' => ->(obj) { [:enable_cdn, obj['enableCDN']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'healthChecks' => ->(obj) { [:health_checks, obj['healthChecks']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'loadBalancingScheme' => ->(obj) { [:load_balancing_scheme, obj['loadBalancingScheme']] }, + 'localityLbPolicy' => ->(obj) { [:locality_lb_policy, obj['localityLbPolicy']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'outlierDetection' => ->(obj) { [:outlier_detection, GoogleInSpec::Compute::Property::RegionBackendServiceOutlierDetection.new(obj['outlierDetection'], to_s)] }, + 'portName' => ->(obj) { [:port_name, obj['portName']] }, + 'protocol' => ->(obj) { [:protocol, obj['protocol']] }, + 'sessionAffinity' => ->(obj) { [:session_affinity, obj['sessionAffinity']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::RegionBackendServiceLogConfig.new(obj['logConfig'], to_s)] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_region_health_checks.rb b/libraries/google_compute_region_health_checks.rb index ae6bb9359..60b5162bd 100644 --- a/libraries/google_compute_region_health_checks.rb +++ b/libraries/google_compute_region_health_checks.rb @@ -79,23 +79,23 @@ def transform(key, value) def transformers { - 'checkIntervalSec' => ->(obj) { return :check_interval_sec, obj['checkIntervalSec'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'healthyThreshold' => ->(obj) { return :healthy_threshold, obj['healthyThreshold'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'unhealthyThreshold' => ->(obj) { return :unhealthy_threshold, obj['unhealthyThreshold'] }, - 'timeoutSec' => ->(obj) { return :timeout_sec, obj['timeoutSec'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'httpHealthCheck' => ->(obj) { return :http_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckHttpHealthCheck.new(obj['httpHealthCheck'], to_s) }, - 'httpsHealthCheck' => ->(obj) { return :https_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckHttpsHealthCheck.new(obj['httpsHealthCheck'], to_s) }, - 'tcpHealthCheck' => ->(obj) { return :tcp_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckTcpHealthCheck.new(obj['tcpHealthCheck'], to_s) }, - 'sslHealthCheck' => ->(obj) { return :ssl_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckSslHealthCheck.new(obj['sslHealthCheck'], to_s) }, - 'http2HealthCheck' => ->(obj) { return :http2_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckHttp2HealthCheck.new(obj['http2HealthCheck'], to_s) }, - 'grpcHealthCheck' => ->(obj) { return :grpc_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckGrpcHealthCheck.new(obj['grpcHealthCheck'], to_s) }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::RegionHealthCheckLogConfig.new(obj['logConfig'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'checkIntervalSec' => ->(obj) { [:check_interval_sec, obj['checkIntervalSec']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'healthyThreshold' => ->(obj) { [:healthy_threshold, obj['healthyThreshold']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'unhealthyThreshold' => ->(obj) { [:unhealthy_threshold, obj['unhealthyThreshold']] }, + 'timeoutSec' => ->(obj) { [:timeout_sec, obj['timeoutSec']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'httpHealthCheck' => ->(obj) { [:http_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckHttpHealthCheck.new(obj['httpHealthCheck'], to_s)] }, + 'httpsHealthCheck' => ->(obj) { [:https_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckHttpsHealthCheck.new(obj['httpsHealthCheck'], to_s)] }, + 'tcpHealthCheck' => ->(obj) { [:tcp_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckTcpHealthCheck.new(obj['tcpHealthCheck'], to_s)] }, + 'sslHealthCheck' => ->(obj) { [:ssl_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckSslHealthCheck.new(obj['sslHealthCheck'], to_s)] }, + 'http2HealthCheck' => ->(obj) { [:http2_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckHttp2HealthCheck.new(obj['http2HealthCheck'], to_s)] }, + 'grpcHealthCheck' => ->(obj) { [:grpc_health_check, GoogleInSpec::Compute::Property::RegionHealthCheckGrpcHealthCheck.new(obj['grpcHealthCheck'], to_s)] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::RegionHealthCheckLogConfig.new(obj['logConfig'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_region_instance_group_managers.rb b/libraries/google_compute_region_instance_group_managers.rb index c52d4da7d..b060ba8c7 100644 --- a/libraries/google_compute_region_instance_group_managers.rb +++ b/libraries/google_compute_region_instance_group_managers.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'baseInstanceName' => ->(obj) { return :base_instance_name, obj['baseInstanceName'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'currentActions' => ->(obj) { return :current_actions, GoogleInSpec::Compute::Property::RegionInstanceGroupManagerCurrentActions.new(obj['currentActions'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :instance_group_manager_id, obj['id'] }, - 'instanceGroup' => ->(obj) { return :instance_group, obj['instanceGroup'] }, - 'instanceTemplate' => ->(obj) { return :instance_template, obj['instanceTemplate'] }, - 'name' => ->(obj) { return :instance_group_manager_name, obj['name'] }, - 'namedPorts' => ->(obj) { return :named_ports, GoogleInSpec::Compute::Property::RegionInstanceGroupManagerNamedPortsArray.parse(obj['namedPorts'], to_s) }, - 'targetPools' => ->(obj) { return :target_pools, obj['targetPools'] }, - 'targetSize' => ->(obj) { return :target_size, obj['targetSize'] }, - 'autoHealingPolicies' => ->(obj) { return :auto_healing_policies, GoogleInSpec::Compute::Property::RegionInstanceGroupManagerAutoHealingPoliciesArray.parse(obj['autoHealingPolicies'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'baseInstanceName' => ->(obj) { [:base_instance_name, obj['baseInstanceName']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'currentActions' => ->(obj) { [:current_actions, GoogleInSpec::Compute::Property::RegionInstanceGroupManagerCurrentActions.new(obj['currentActions'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:instance_group_manager_id, obj['id']] }, + 'instanceGroup' => ->(obj) { [:instance_group, obj['instanceGroup']] }, + 'instanceTemplate' => ->(obj) { [:instance_template, obj['instanceTemplate']] }, + 'name' => ->(obj) { [:instance_group_manager_name, obj['name']] }, + 'namedPorts' => ->(obj) { [:named_ports, GoogleInSpec::Compute::Property::RegionInstanceGroupManagerNamedPortsArray.parse(obj['namedPorts'], to_s)] }, + 'targetPools' => ->(obj) { [:target_pools, obj['targetPools']] }, + 'targetSize' => ->(obj) { [:target_size, obj['targetSize']] }, + 'autoHealingPolicies' => ->(obj) { [:auto_healing_policies, GoogleInSpec::Compute::Property::RegionInstanceGroupManagerAutoHealingPoliciesArray.parse(obj['autoHealingPolicies'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_region_instance_groups.rb b/libraries/google_compute_region_instance_groups.rb index 624429670..f774ccb85 100644 --- a/libraries/google_compute_region_instance_groups.rb +++ b/libraries/google_compute_region_instance_groups.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, - 'size' => ->(obj) { return :size, obj['size'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'namedPorts' => ->(obj) { return :named_ports, GoogleInSpec::Compute::Property::RegionInstanceGroupNamedPortsArray.parse(obj['namedPorts'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, + 'size' => ->(obj) { [:size, obj['size']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'namedPorts' => ->(obj) { [:named_ports, GoogleInSpec::Compute::Property::RegionInstanceGroupNamedPortsArray.parse(obj['namedPorts'], to_s)] }, } end diff --git a/libraries/google_compute_region_operations.rb b/libraries/google_compute_region_operations.rb index 22d415376..acd14e49c 100644 --- a/libraries/google_compute_region_operations.rb +++ b/libraries/google_compute_region_operations.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'targetId' => ->(obj) { return :target_id, obj['targetId'] }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'user' => ->(obj) { return :user, obj['user'] }, - 'insertTime' => ->(obj) { return :insert_time, obj['insertTime'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'progress' => ->(obj) { return :progress, obj['progress'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'targetId' => ->(obj) { [:target_id, obj['targetId']] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'user' => ->(obj) { [:user, obj['user']] }, + 'insertTime' => ->(obj) { [:insert_time, obj['insertTime']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'progress' => ->(obj) { [:progress, obj['progress']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_compute_region_security_policies.rb b/libraries/google_compute_region_security_policies.rb index 665d492af..4a9535988 100644 --- a/libraries/google_compute_region_security_policies.rb +++ b/libraries/google_compute_region_security_policies.rb @@ -78,22 +78,22 @@ def transform(key, value) def transformers { - 'kind' => ->(obj) { return :kind, obj['kind'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, obj['creationTimestamp'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'rules' => ->(obj) { return :rules, GoogleInSpec::Compute::Property::RegionSecurityPolicyRulesArray.parse(obj['rules'], to_s) }, - 'adaptiveProtectionConfig' => ->(obj) { return :adaptive_protection_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyAdaptiveProtectionConfig.new(obj['adaptiveProtectionConfig'], to_s) }, - 'ddosProtectionConfig' => ->(obj) { return :ddos_protection_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyDdosProtectionConfig.new(obj['ddosProtectionConfig'], to_s) }, - 'advancedOptionsConfig' => ->(obj) { return :advanced_options_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyAdvancedOptionsConfig.new(obj['advancedOptionsConfig'], to_s) }, - 'recaptchaOptionsConfig' => ->(obj) { return :recaptcha_options_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyRecaptchaOptionsConfig.new(obj['recaptchaOptionsConfig'], to_s) }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'selfLink' => ->(obj) { return :self_link, obj['selfLink'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::Compute::Property::RegionSecurityPolicyLabels.new(obj['labels'], to_s) }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'kind' => ->(obj) { [:kind, obj['kind']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, obj['creationTimestamp']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'rules' => ->(obj) { [:rules, GoogleInSpec::Compute::Property::RegionSecurityPolicyRulesArray.parse(obj['rules'], to_s)] }, + 'adaptiveProtectionConfig' => ->(obj) { [:adaptive_protection_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyAdaptiveProtectionConfig.new(obj['adaptiveProtectionConfig'], to_s)] }, + 'ddosProtectionConfig' => ->(obj) { [:ddos_protection_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyDdosProtectionConfig.new(obj['ddosProtectionConfig'], to_s)] }, + 'advancedOptionsConfig' => ->(obj) { [:advanced_options_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyAdvancedOptionsConfig.new(obj['advancedOptionsConfig'], to_s)] }, + 'recaptchaOptionsConfig' => ->(obj) { [:recaptcha_options_config, GoogleInSpec::Compute::Property::RegionSecurityPolicyRecaptchaOptionsConfig.new(obj['recaptchaOptionsConfig'], to_s)] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'selfLink' => ->(obj) { [:self_link, obj['selfLink']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::Compute::Property::RegionSecurityPolicyLabels.new(obj['labels'], to_s)] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_regional_disks.rb b/libraries/google_compute_regional_disks.rb index 3943fe377..26ba93310 100644 --- a/libraries/google_compute_regional_disks.rb +++ b/libraries/google_compute_regional_disks.rb @@ -73,30 +73,30 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'sizeGb' => ->(obj) { return :size_gb, obj['sizeGb'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, - 'sourceSnapshot' => ->(obj) { return :source_snapshot, obj['sourceSnapshot'] }, - 'sourceSnapshotId' => ->(obj) { return :source_snapshot_id, obj['sourceSnapshotId'] }, - 'sourceSnapshotEncryptionKey' => ->(obj) { return :source_snapshot_encryption_key, GoogleInSpec::Compute::Property::DiskSourceSnapshotEncryptionKey.new(obj['sourceSnapshotEncryptionKey'], to_s) }, - 'sourceImage' => ->(obj) { return :source_image, obj['sourceImage'] }, - 'sourceImageId' => ->(obj) { return :source_image_id, obj['sourceImageId'] }, - 'sourceImageEncryptionKey' => ->(obj) { return :source_image_encryption_key, GoogleInSpec::Compute::Property::DiskSourceImageEncryptionKey.new(obj['sourceImageEncryptionKey'], to_s) }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'licenses' => ->(obj) { return :licenses, obj['licenses'] }, - 'lastAttachTimestamp' => ->(obj) { return :last_attach_timestamp, parse_time_string(obj['lastAttachTimestamp']) }, - 'lastDetachTimestamp' => ->(obj) { return :last_detach_timestamp, parse_time_string(obj['lastDetachTimestamp']) }, - 'users' => ->(obj) { return :users, obj['users'] }, - 'diskEncryptionKey' => ->(obj) { return :disk_encryption_key, GoogleInSpec::Compute::Property::DiskDiskEncryptionKey.new(obj['diskEncryptionKey'], to_s) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'physicalBlockSizeBytes' => ->(obj) { return :physical_block_size_bytes, obj['physicalBlockSizeBytes'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'replica_zones' => ->(obj) { return :replica_zones, obj['replica_zones'] }, - 'status' => ->(obj) { return :status, obj['status'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'sizeGb' => ->(obj) { [:size_gb, obj['sizeGb']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, + 'sourceSnapshot' => ->(obj) { [:source_snapshot, obj['sourceSnapshot']] }, + 'sourceSnapshotId' => ->(obj) { [:source_snapshot_id, obj['sourceSnapshotId']] }, + 'sourceSnapshotEncryptionKey' => ->(obj) { [:source_snapshot_encryption_key, GoogleInSpec::Compute::Property::DiskSourceSnapshotEncryptionKey.new(obj['sourceSnapshotEncryptionKey'], to_s)] }, + 'sourceImage' => ->(obj) { [:source_image, obj['sourceImage']] }, + 'sourceImageId' => ->(obj) { [:source_image_id, obj['sourceImageId']] }, + 'sourceImageEncryptionKey' => ->(obj) { [:source_image_encryption_key, GoogleInSpec::Compute::Property::DiskSourceImageEncryptionKey.new(obj['sourceImageEncryptionKey'], to_s)] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'licenses' => ->(obj) { [:licenses, obj['licenses']] }, + 'lastAttachTimestamp' => ->(obj) { [:last_attach_timestamp, parse_time_string(obj['lastAttachTimestamp'])] }, + 'lastDetachTimestamp' => ->(obj) { [:last_detach_timestamp, parse_time_string(obj['lastDetachTimestamp'])] }, + 'users' => ->(obj) { [:users, obj['users']] }, + 'diskEncryptionKey' => ->(obj) { [:disk_encryption_key, GoogleInSpec::Compute::Property::DiskDiskEncryptionKey.new(obj['diskEncryptionKey'], to_s)] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'physicalBlockSizeBytes' => ->(obj) { [:physical_block_size_bytes, obj['physicalBlockSizeBytes']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'replica_zones' => ->(obj) { [:replica_zones, obj['replica_zones']] }, + 'status' => ->(obj) { [:status, obj['status']] }, } end diff --git a/libraries/google_compute_regions.rb b/libraries/google_compute_regions.rb index 38c1e0714..5878bc619 100644 --- a/libraries/google_compute_regions.rb +++ b/libraries/google_compute_regions.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'deprecated' => ->(obj) { return :deprecated, GoogleInSpec::Compute::Property::RegionDeprecated.new(obj['deprecated'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :region_id, obj['id'] }, - 'name' => ->(obj) { return :region_name, obj['name'] }, - 'quotas' => ->(obj) { return :quotas, GoogleInSpec::Compute::Property::RegionQuotasArray.parse(obj['quotas'], to_s) }, - 'status' => ->(obj) { return :region_status, obj['status'] }, - 'zones' => ->(obj) { return :zones, obj['zones'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'deprecated' => ->(obj) { [:deprecated, GoogleInSpec::Compute::Property::RegionDeprecated.new(obj['deprecated'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:region_id, obj['id']] }, + 'name' => ->(obj) { [:region_name, obj['name']] }, + 'quotas' => ->(obj) { [:quotas, GoogleInSpec::Compute::Property::RegionQuotasArray.parse(obj['quotas'], to_s)] }, + 'status' => ->(obj) { [:region_status, obj['status']] }, + 'zones' => ->(obj) { [:zones, obj['zones']] }, } end diff --git a/libraries/google_compute_router_nats.rb b/libraries/google_compute_router_nats.rb index e2b2a8126..5a6fc2dd3 100644 --- a/libraries/google_compute_router_nats.rb +++ b/libraries/google_compute_router_nats.rb @@ -77,21 +77,21 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'natIpAllocateOption' => ->(obj) { return :nat_ip_allocate_option, obj['natIpAllocateOption'] }, - 'natIps' => ->(obj) { return :nat_ips, obj['natIps'] }, - 'drainNatIps' => ->(obj) { return :drain_nat_ips, obj['drainNatIps'] }, - 'sourceSubnetworkIpRangesToNat' => ->(obj) { return :source_subnetwork_ip_ranges_to_nat, obj['sourceSubnetworkIpRangesToNat'] }, - 'subnetworks' => ->(obj) { return :subnetwork, GoogleInSpec::Compute::Property::RouterNatSubnetworkArray.parse(obj['subnetworks'], to_s) }, - 'minPortsPerVm' => ->(obj) { return :min_ports_per_vm, obj['minPortsPerVm'] }, - 'udpIdleTimeoutSec' => ->(obj) { return :udp_idle_timeout_sec, obj['udpIdleTimeoutSec'] }, - 'icmpIdleTimeoutSec' => ->(obj) { return :icmp_idle_timeout_sec, obj['icmpIdleTimeoutSec'] }, - 'tcpEstablishedIdleTimeoutSec' => ->(obj) { return :tcp_established_idle_timeout_sec, obj['tcpEstablishedIdleTimeoutSec'] }, - 'tcpTransitoryIdleTimeoutSec' => ->(obj) { return :tcp_transitory_idle_timeout_sec, obj['tcpTransitoryIdleTimeoutSec'] }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::RouterNatLogConfig.new(obj['logConfig'], to_s) }, - 'enableEndpointIndependentMapping' => ->(obj) { return :enable_endpoint_independent_mapping, obj['enableEndpointIndependentMapping'] }, - 'router' => ->(obj) { return :router, obj['router'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'natIpAllocateOption' => ->(obj) { [:nat_ip_allocate_option, obj['natIpAllocateOption']] }, + 'natIps' => ->(obj) { [:nat_ips, obj['natIps']] }, + 'drainNatIps' => ->(obj) { [:drain_nat_ips, obj['drainNatIps']] }, + 'sourceSubnetworkIpRangesToNat' => ->(obj) { [:source_subnetwork_ip_ranges_to_nat, obj['sourceSubnetworkIpRangesToNat']] }, + 'subnetworks' => ->(obj) { [:subnetwork, GoogleInSpec::Compute::Property::RouterNatSubnetworkArray.parse(obj['subnetworks'], to_s)] }, + 'minPortsPerVm' => ->(obj) { [:min_ports_per_vm, obj['minPortsPerVm']] }, + 'udpIdleTimeoutSec' => ->(obj) { [:udp_idle_timeout_sec, obj['udpIdleTimeoutSec']] }, + 'icmpIdleTimeoutSec' => ->(obj) { [:icmp_idle_timeout_sec, obj['icmpIdleTimeoutSec']] }, + 'tcpEstablishedIdleTimeoutSec' => ->(obj) { [:tcp_established_idle_timeout_sec, obj['tcpEstablishedIdleTimeoutSec']] }, + 'tcpTransitoryIdleTimeoutSec' => ->(obj) { [:tcp_transitory_idle_timeout_sec, obj['tcpTransitoryIdleTimeoutSec']] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::RouterNatLogConfig.new(obj['logConfig'], to_s)] }, + 'enableEndpointIndependentMapping' => ->(obj) { [:enable_endpoint_independent_mapping, obj['enableEndpointIndependentMapping']] }, + 'router' => ->(obj) { [:router, obj['router']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_routers.rb b/libraries/google_compute_routers.rb index e7ce0add6..7d632e13a 100644 --- a/libraries/google_compute_routers.rb +++ b/libraries/google_compute_routers.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'bgp' => ->(obj) { return :bgp, GoogleInSpec::Compute::Property::RouterBgp.new(obj['bgp'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'bgp' => ->(obj) { [:bgp, GoogleInSpec::Compute::Property::RouterBgp.new(obj['bgp'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_routes.rb b/libraries/google_compute_routes.rb index 40b6ae122..552ff124e 100644 --- a/libraries/google_compute_routes.rb +++ b/libraries/google_compute_routes.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'destRange' => ->(obj) { return :dest_range, obj['destRange'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'priority' => ->(obj) { return :priority, obj['priority'] }, - 'tags' => ->(obj) { return :tags, obj['tags'] }, - 'nextHopGateway' => ->(obj) { return :next_hop_gateway, obj['nextHopGateway'] }, - 'nextHopInstance' => ->(obj) { return :next_hop_instance, obj['nextHopInstance'] }, - 'nextHopIp' => ->(obj) { return :next_hop_ip, obj['nextHopIp'] }, - 'nextHopVpnTunnel' => ->(obj) { return :next_hop_vpn_tunnel, obj['nextHopVpnTunnel'] }, - 'nextHopNetwork' => ->(obj) { return :next_hop_network, obj['nextHopNetwork'] }, - 'nextHopIlb' => ->(obj) { return :next_hop_ilb, obj['nextHopIlb'] }, + 'destRange' => ->(obj) { [:dest_range, obj['destRange']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'priority' => ->(obj) { [:priority, obj['priority']] }, + 'tags' => ->(obj) { [:tags, obj['tags']] }, + 'nextHopGateway' => ->(obj) { [:next_hop_gateway, obj['nextHopGateway']] }, + 'nextHopInstance' => ->(obj) { [:next_hop_instance, obj['nextHopInstance']] }, + 'nextHopIp' => ->(obj) { [:next_hop_ip, obj['nextHopIp']] }, + 'nextHopVpnTunnel' => ->(obj) { [:next_hop_vpn_tunnel, obj['nextHopVpnTunnel']] }, + 'nextHopNetwork' => ->(obj) { [:next_hop_network, obj['nextHopNetwork']] }, + 'nextHopIlb' => ->(obj) { [:next_hop_ilb, obj['nextHopIlb']] }, } end diff --git a/libraries/google_compute_security_policies.rb b/libraries/google_compute_security_policies.rb index 0081cc59d..9f5f96812 100644 --- a/libraries/google_compute_security_policies.rb +++ b/libraries/google_compute_security_policies.rb @@ -65,9 +65,9 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'rules' => ->(obj) { return :rules, GoogleInSpec::Compute::Property::SecurityPolicyRulesArray.parse(obj['rules'], to_s) }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'rules' => ->(obj) { [:rules, GoogleInSpec::Compute::Property::SecurityPolicyRulesArray.parse(obj['rules'], to_s)] }, } end diff --git a/libraries/google_compute_snapshots.rb b/libraries/google_compute_snapshots.rb index 0a986c8fc..ff3e2d495 100644 --- a/libraries/google_compute_snapshots.rb +++ b/libraries/google_compute_snapshots.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'diskSizeGb' => ->(obj) { return :disk_size_gb, obj['diskSizeGb'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'storageBytes' => ->(obj) { return :storage_bytes, obj['storageBytes'] }, - 'storageLocations' => ->(obj) { return :storage_locations, obj['storageLocations'] }, - 'licenses' => ->(obj) { return :licenses, obj['licenses'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'sourceDisk' => ->(obj) { return :source_disk, obj['sourceDisk'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, - 'snapshotEncryptionKey' => ->(obj) { return :snapshot_encryption_key, GoogleInSpec::Compute::Property::SnapshotSnapshotEncryptionKey.new(obj['snapshotEncryptionKey'], to_s) }, - 'sourceDiskEncryptionKey' => ->(obj) { return :source_disk_encryption_key, GoogleInSpec::Compute::Property::SnapshotSourceDiskEncryptionKey.new(obj['sourceDiskEncryptionKey'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'diskSizeGb' => ->(obj) { [:disk_size_gb, obj['diskSizeGb']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'storageBytes' => ->(obj) { [:storage_bytes, obj['storageBytes']] }, + 'storageLocations' => ->(obj) { [:storage_locations, obj['storageLocations']] }, + 'licenses' => ->(obj) { [:licenses, obj['licenses']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'sourceDisk' => ->(obj) { [:source_disk, obj['sourceDisk']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, + 'snapshotEncryptionKey' => ->(obj) { [:snapshot_encryption_key, GoogleInSpec::Compute::Property::SnapshotSnapshotEncryptionKey.new(obj['snapshotEncryptionKey'], to_s)] }, + 'sourceDiskEncryptionKey' => ->(obj) { [:source_disk_encryption_key, GoogleInSpec::Compute::Property::SnapshotSourceDiskEncryptionKey.new(obj['sourceDiskEncryptionKey'], to_s)] }, } end diff --git a/libraries/google_compute_ssl_certificates.rb b/libraries/google_compute_ssl_certificates.rb index 2215d85d7..2c608533a 100644 --- a/libraries/google_compute_ssl_certificates.rb +++ b/libraries/google_compute_ssl_certificates.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'certificate' => ->(obj) { return :certificate, obj['certificate'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'privateKey' => ->(obj) { return :private_key, obj['privateKey'] }, + 'certificate' => ->(obj) { [:certificate, obj['certificate']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'privateKey' => ->(obj) { [:private_key, obj['privateKey']] }, } end diff --git a/libraries/google_compute_ssl_policies.rb b/libraries/google_compute_ssl_policies.rb index a0636c69d..594c9044a 100644 --- a/libraries/google_compute_ssl_policies.rb +++ b/libraries/google_compute_ssl_policies.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'profile' => ->(obj) { return :profile, obj['profile'] }, - 'minTlsVersion' => ->(obj) { return :min_tls_version, obj['minTlsVersion'] }, - 'enabledFeatures' => ->(obj) { return :enabled_features, obj['enabledFeatures'] }, - 'customFeatures' => ->(obj) { return :custom_features, obj['customFeatures'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'warnings' => ->(obj) { return :warnings, GoogleInSpec::Compute::Property::SslPolicyWarningsArray.parse(obj['warnings'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'profile' => ->(obj) { [:profile, obj['profile']] }, + 'minTlsVersion' => ->(obj) { [:min_tls_version, obj['minTlsVersion']] }, + 'enabledFeatures' => ->(obj) { [:enabled_features, obj['enabledFeatures']] }, + 'customFeatures' => ->(obj) { [:custom_features, obj['customFeatures']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'warnings' => ->(obj) { [:warnings, GoogleInSpec::Compute::Property::SslPolicyWarningsArray.parse(obj['warnings'], to_s)] }, } end diff --git a/libraries/google_compute_subnetworks.rb b/libraries/google_compute_subnetworks.rb index 297de61bd..458ae9740 100644 --- a/libraries/google_compute_subnetworks.rb +++ b/libraries/google_compute_subnetworks.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'gatewayAddress' => ->(obj) { return :gateway_address, obj['gatewayAddress'] }, - 'id' => ->(obj) { return :subnetwork_id, obj['id'] }, - 'ipCidrRange' => ->(obj) { return :ip_cidr_range, obj['ipCidrRange'] }, - 'name' => ->(obj) { return :subnetwork_name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'purpose' => ->(obj) { return :purpose, obj['purpose'] }, - 'role' => ->(obj) { return :role, obj['role'] }, - 'secondaryIpRanges' => ->(obj) { return :secondary_ip_ranges, GoogleInSpec::Compute::Property::SubnetworkSecondaryIpRangesArray.parse(obj['secondaryIpRanges'], to_s) }, - 'privateIpGoogleAccess' => ->(obj) { return :private_ip_google_access, obj['privateIpGoogleAccess'] }, - 'privateIpv6GoogleAccess' => ->(obj) { return :private_ipv6_google_access, obj['privateIpv6GoogleAccess'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'logConfig' => ->(obj) { return :log_config, GoogleInSpec::Compute::Property::SubnetworkLogConfig.new(obj['logConfig'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'gatewayAddress' => ->(obj) { [:gateway_address, obj['gatewayAddress']] }, + 'id' => ->(obj) { [:subnetwork_id, obj['id']] }, + 'ipCidrRange' => ->(obj) { [:ip_cidr_range, obj['ipCidrRange']] }, + 'name' => ->(obj) { [:subnetwork_name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'purpose' => ->(obj) { [:purpose, obj['purpose']] }, + 'role' => ->(obj) { [:role, obj['role']] }, + 'secondaryIpRanges' => ->(obj) { [:secondary_ip_ranges, GoogleInSpec::Compute::Property::SubnetworkSecondaryIpRangesArray.parse(obj['secondaryIpRanges'], to_s)] }, + 'privateIpGoogleAccess' => ->(obj) { [:private_ip_google_access, obj['privateIpGoogleAccess']] }, + 'privateIpv6GoogleAccess' => ->(obj) { [:private_ipv6_google_access, obj['privateIpv6GoogleAccess']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'logConfig' => ->(obj) { [:log_config, GoogleInSpec::Compute::Property::SubnetworkLogConfig.new(obj['logConfig'], to_s)] }, } end diff --git a/libraries/google_compute_target_http_proxies.rb b/libraries/google_compute_target_http_proxies.rb index f7230aaba..cb40068d8 100644 --- a/libraries/google_compute_target_http_proxies.rb +++ b/libraries/google_compute_target_http_proxies.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'urlMap' => ->(obj) { return :url_map, obj['urlMap'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'urlMap' => ->(obj) { [:url_map, obj['urlMap']] }, } end diff --git a/libraries/google_compute_target_https_proxies.rb b/libraries/google_compute_target_https_proxies.rb index ce020873a..529b249de 100644 --- a/libraries/google_compute_target_https_proxies.rb +++ b/libraries/google_compute_target_https_proxies.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'quicOverride' => ->(obj) { return :quic_override, obj['quicOverride'] }, - 'sslCertificates' => ->(obj) { return :ssl_certificates, obj['sslCertificates'] }, - 'sslPolicy' => ->(obj) { return :ssl_policy, obj['sslPolicy'] }, - 'urlMap' => ->(obj) { return :url_map, obj['urlMap'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'quicOverride' => ->(obj) { [:quic_override, obj['quicOverride']] }, + 'sslCertificates' => ->(obj) { [:ssl_certificates, obj['sslCertificates']] }, + 'sslPolicy' => ->(obj) { [:ssl_policy, obj['sslPolicy']] }, + 'urlMap' => ->(obj) { [:url_map, obj['urlMap']] }, } end diff --git a/libraries/google_compute_target_pools.rb b/libraries/google_compute_target_pools.rb index 48870753e..dc739a622 100644 --- a/libraries/google_compute_target_pools.rb +++ b/libraries/google_compute_target_pools.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'backupPool' => ->(obj) { return :backup_pool, obj['backupPool'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'failoverRatio' => ->(obj) { return :failover_ratio, obj['failoverRatio'] }, - 'healthCheck' => ->(obj) { return :health_check, obj['healthCheck'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'instances' => ->(obj) { return :instances, obj['instances'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'sessionAffinity' => ->(obj) { return :session_affinity, obj['sessionAffinity'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'backupPool' => ->(obj) { [:backup_pool, obj['backupPool']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'failoverRatio' => ->(obj) { [:failover_ratio, obj['failoverRatio']] }, + 'healthCheck' => ->(obj) { [:health_check, obj['healthCheck']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'instances' => ->(obj) { [:instances, obj['instances']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'sessionAffinity' => ->(obj) { [:session_affinity, obj['sessionAffinity']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_target_tcp_proxies.rb b/libraries/google_compute_target_tcp_proxies.rb index 2fc8a8754..525ba1072 100644 --- a/libraries/google_compute_target_tcp_proxies.rb +++ b/libraries/google_compute_target_tcp_proxies.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'proxyHeader' => ->(obj) { return :proxy_header, obj['proxyHeader'] }, - 'service' => ->(obj) { return :service, obj['service'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'proxyHeader' => ->(obj) { [:proxy_header, obj['proxyHeader']] }, + 'service' => ->(obj) { [:service, obj['service']] }, } end diff --git a/libraries/google_compute_url_maps.rb b/libraries/google_compute_url_maps.rb index 693daaba5..3aea28e0a 100644 --- a/libraries/google_compute_url_maps.rb +++ b/libraries/google_compute_url_maps.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'defaultService' => ->(obj) { return :default_service, obj['defaultService'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'headerAction' => ->(obj) { return :header_action, GoogleInSpec::Compute::Property::UrlMapHeaderAction.new(obj['headerAction'], to_s) }, - 'hostRules' => ->(obj) { return :host_rules, GoogleInSpec::Compute::Property::UrlMapHostRulesArray.parse(obj['hostRules'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'pathMatchers' => ->(obj) { return :path_matchers, GoogleInSpec::Compute::Property::UrlMapPathMatchersArray.parse(obj['pathMatchers'], to_s) }, - 'tests' => ->(obj) { return :tests, GoogleInSpec::Compute::Property::UrlMapTestsArray.parse(obj['tests'], to_s) }, - 'defaultUrlRedirect' => ->(obj) { return :default_url_redirect, GoogleInSpec::Compute::Property::UrlMapDefaultUrlRedirect.new(obj['defaultUrlRedirect'], to_s) }, - 'defaultRouteAction' => ->(obj) { return :default_route_action, GoogleInSpec::Compute::Property::UrlMapDefaultRouteAction.new(obj['defaultRouteAction'], to_s) }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'defaultService' => ->(obj) { [:default_service, obj['defaultService']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'headerAction' => ->(obj) { [:header_action, GoogleInSpec::Compute::Property::UrlMapHeaderAction.new(obj['headerAction'], to_s)] }, + 'hostRules' => ->(obj) { [:host_rules, GoogleInSpec::Compute::Property::UrlMapHostRulesArray.parse(obj['hostRules'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'pathMatchers' => ->(obj) { [:path_matchers, GoogleInSpec::Compute::Property::UrlMapPathMatchersArray.parse(obj['pathMatchers'], to_s)] }, + 'tests' => ->(obj) { [:tests, GoogleInSpec::Compute::Property::UrlMapTestsArray.parse(obj['tests'], to_s)] }, + 'defaultUrlRedirect' => ->(obj) { [:default_url_redirect, GoogleInSpec::Compute::Property::UrlMapDefaultUrlRedirect.new(obj['defaultUrlRedirect'], to_s)] }, + 'defaultRouteAction' => ->(obj) { [:default_route_action, GoogleInSpec::Compute::Property::UrlMapDefaultRouteAction.new(obj['defaultRouteAction'], to_s)] }, } end diff --git a/libraries/google_compute_vpn_tunnels.rb b/libraries/google_compute_vpn_tunnels.rb index bebe82670..e43a4cd10 100644 --- a/libraries/google_compute_vpn_tunnels.rb +++ b/libraries/google_compute_vpn_tunnels.rb @@ -82,26 +82,26 @@ def transform(key, value) def transformers { - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'name' => ->(obj) { return :vpn_tunnel_name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'targetVpnGateway' => ->(obj) { return :target_vpn_gateway, obj['targetVpnGateway'] }, - 'vpnGateway' => ->(obj) { return :vpn_gateway, obj['vpnGateway'] }, - 'vpnGatewayInterface' => ->(obj) { return :vpn_gateway_interface, obj['vpnGatewayInterface'] }, - 'peerExternalGateway' => ->(obj) { return :peer_external_gateway, obj['peerExternalGateway'] }, - 'peerExternalGatewayInterface' => ->(obj) { return :peer_external_gateway_interface, obj['peerExternalGatewayInterface'] }, - 'peerGcpGateway' => ->(obj) { return :peer_gcp_gateway, obj['peerGcpGateway'] }, - 'router' => ->(obj) { return :router, obj['router'] }, - 'peerIp' => ->(obj) { return :peer_ip, obj['peerIp'] }, - 'sharedSecret' => ->(obj) { return :shared_secret, obj['sharedSecret'] }, - 'sharedSecretHash' => ->(obj) { return :shared_secret_hash, obj['sharedSecretHash'] }, - 'ikeVersion' => ->(obj) { return :ike_version, obj['ikeVersion'] }, - 'localTrafficSelector' => ->(obj) { return :local_traffic_selector, obj['localTrafficSelector'] }, - 'remoteTrafficSelector' => ->(obj) { return :remote_traffic_selector, obj['remoteTrafficSelector'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'name' => ->(obj) { [:vpn_tunnel_name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'targetVpnGateway' => ->(obj) { [:target_vpn_gateway, obj['targetVpnGateway']] }, + 'vpnGateway' => ->(obj) { [:vpn_gateway, obj['vpnGateway']] }, + 'vpnGatewayInterface' => ->(obj) { [:vpn_gateway_interface, obj['vpnGatewayInterface']] }, + 'peerExternalGateway' => ->(obj) { [:peer_external_gateway, obj['peerExternalGateway']] }, + 'peerExternalGatewayInterface' => ->(obj) { [:peer_external_gateway_interface, obj['peerExternalGatewayInterface']] }, + 'peerGcpGateway' => ->(obj) { [:peer_gcp_gateway, obj['peerGcpGateway']] }, + 'router' => ->(obj) { [:router, obj['router']] }, + 'peerIp' => ->(obj) { [:peer_ip, obj['peerIp']] }, + 'sharedSecret' => ->(obj) { [:shared_secret, obj['sharedSecret']] }, + 'sharedSecretHash' => ->(obj) { [:shared_secret_hash, obj['sharedSecretHash']] }, + 'ikeVersion' => ->(obj) { [:ike_version, obj['ikeVersion']] }, + 'localTrafficSelector' => ->(obj) { [:local_traffic_selector, obj['localTrafficSelector']] }, + 'remoteTrafficSelector' => ->(obj) { [:remote_traffic_selector, obj['remoteTrafficSelector']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_zone_operations.rb b/libraries/google_compute_zone_operations.rb index d98d5f46e..204a37bd0 100644 --- a/libraries/google_compute_zone_operations.rb +++ b/libraries/google_compute_zone_operations.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, - 'targetId' => ->(obj) { return :target_id, obj['targetId'] }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'user' => ->(obj) { return :user, obj['user'] }, - 'insertTime' => ->(obj) { return :insert_time, obj['insertTime'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'progress' => ->(obj) { return :progress, obj['progress'] }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, + 'targetId' => ->(obj) { [:target_id, obj['targetId']] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'user' => ->(obj) { [:user, obj['user']] }, + 'insertTime' => ->(obj) { [:insert_time, obj['insertTime']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'progress' => ->(obj) { [:progress, obj['progress']] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_compute_zones.rb b/libraries/google_compute_zones.rb index 724cb6429..d1eca5b19 100644 --- a/libraries/google_compute_zones.rb +++ b/libraries/google_compute_zones.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'creationTimestamp' => ->(obj) { return :creation_timestamp, parse_time_string(obj['creationTimestamp']) }, - 'deprecated' => ->(obj) { return :deprecated, GoogleInSpec::Compute::Property::ZoneDeprecated.new(obj['deprecated'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'id' => ->(obj) { return :zone_id, obj['id'] }, - 'name' => ->(obj) { return :zone_name, obj['name'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'status' => ->(obj) { return :zone_status, obj['status'] }, - 'availableCpuPlatforms' => ->(obj) { return :available_cpu_platforms, obj['availableCpuPlatforms'] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, parse_time_string(obj['creationTimestamp'])] }, + 'deprecated' => ->(obj) { [:deprecated, GoogleInSpec::Compute::Property::ZoneDeprecated.new(obj['deprecated'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'id' => ->(obj) { [:zone_id, obj['id']] }, + 'name' => ->(obj) { [:zone_name, obj['name']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'status' => ->(obj) { [:zone_status, obj['status']] }, + 'availableCpuPlatforms' => ->(obj) { [:available_cpu_platforms, obj['availableCpuPlatforms']] }, } end diff --git a/libraries/google_container_clusters.rb b/libraries/google_container_clusters.rb index 4f0a1d39e..c4694c1dd 100644 --- a/libraries/google_container_clusters.rb +++ b/libraries/google_container_clusters.rb @@ -104,48 +104,48 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :cluster_name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'initialNodeCount' => ->(obj) { return :initial_node_count, obj['initialNodeCount'] }, - 'nodeConfig' => ->(obj) { return :node_config, GoogleInSpec::Container::Property::ClusterNodeConfig.new(obj['nodeConfig'], to_s) }, - 'masterAuth' => ->(obj) { return :master_auth, GoogleInSpec::Container::Property::ClusterMasterAuth.new(obj['masterAuth'], to_s) }, - 'loggingService' => ->(obj) { return :logging_service, obj['loggingService'] }, - 'monitoringService' => ->(obj) { return :monitoring_service, obj['monitoringService'] }, - 'network' => ->(obj) { return :cluster_network, obj['network'] }, - 'databaseEncryption' => ->(obj) { return :database_encryption, GoogleInSpec::Container::Property::ClusterDatabaseEncryption.new(obj['databaseEncryption'], to_s) }, - 'privateClusterConfig' => ->(obj) { return :private_cluster_config, GoogleInSpec::Container::Property::ClusterPrivateClusterConfig.new(obj['privateClusterConfig'], to_s) }, - 'clusterIpv4Cidr' => ->(obj) { return :cluster_ipv4_cidr, obj['clusterIpv4Cidr'] }, - 'enableTpu' => ->(obj) { return :enable_tpu, obj['enableTpu'] }, - 'tpuIpv4CidrBlock' => ->(obj) { return :tpu_ipv4_cidr_block, obj['tpuIpv4CidrBlock'] }, - 'addonsConfig' => ->(obj) { return :addons_config, GoogleInSpec::Container::Property::ClusterAddonsConfig.new(obj['addonsConfig'], to_s) }, - 'subnetwork' => ->(obj) { return :subnetwork, obj['subnetwork'] }, - 'locations' => ->(obj) { return :locations, obj['locations'] }, - 'resourceLabels' => ->(obj) { return :resource_labels, obj['resourceLabels'] }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'legacyAbac' => ->(obj) { return :legacy_abac, GoogleInSpec::Container::Property::ClusterLegacyAbac.new(obj['legacyAbac'], to_s) }, - 'networkPolicy' => ->(obj) { return :network_policy, GoogleInSpec::Container::Property::ClusterNetworkPolicy.new(obj['networkPolicy'], to_s) }, - 'defaultMaxPodsConstraint' => ->(obj) { return :default_max_pods_constraint, GoogleInSpec::Container::Property::ClusterDefaultMaxPodsConstraint.new(obj['defaultMaxPodsConstraint'], to_s) }, - 'ipAllocationPolicy' => ->(obj) { return :ip_allocation_policy, GoogleInSpec::Container::Property::ClusterIpAllocationPolicy.new(obj['ipAllocationPolicy'], to_s) }, - 'endpoint' => ->(obj) { return :endpoint, obj['endpoint'] }, - 'initialClusterVersion' => ->(obj) { return :initial_cluster_version, obj['initialClusterVersion'] }, - 'currentMasterVersion' => ->(obj) { return :current_master_version, obj['currentMasterVersion'] }, - 'currentNodeVersion' => ->(obj) { return :current_node_version, obj['currentNodeVersion'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'status' => ->(obj) { return :cluster_status, obj['status'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, - 'nodeIpv4CidrSize' => ->(obj) { return :node_ipv4_cidr_size, obj['nodeIpv4CidrSize'] }, - 'servicesIpv4Cidr' => ->(obj) { return :services_ipv4_cidr, obj['servicesIpv4Cidr'] }, - 'currentNodeCount' => ->(obj) { return :current_node_count, obj['currentNodeCount'] }, - 'expireTime' => ->(obj) { return :expire_time, parse_time_string(obj['expireTime']) }, - 'conditions' => ->(obj) { return :conditions, GoogleInSpec::Container::Property::ClusterConditionsArray.parse(obj['conditions'], to_s) }, - 'masterAuthorizedNetworksConfig' => ->(obj) { return :master_authorized_networks_config, GoogleInSpec::Container::Property::ClusterMasterAuthorizedNetworksConfig.new(obj['masterAuthorizedNetworksConfig'], to_s) }, - 'nodePools' => ->(obj) { return :node_pools, GoogleInSpec::Container::Property::ClusterNodePoolsArray.parse(obj['nodePools'], to_s) }, - 'binaryAuthorization' => ->(obj) { return :binary_authorization, GoogleInSpec::Container::Property::ClusterBinaryAuthorization.new(obj['binaryAuthorization'], to_s) }, - 'releaseChannel' => ->(obj) { return :release_channel, GoogleInSpec::Container::Property::ClusterReleaseChannel.new(obj['releaseChannel'], to_s) }, - 'shieldedNodes' => ->(obj) { return :shielded_nodes, GoogleInSpec::Container::Property::ClusterShieldedNodes.new(obj['shieldedNodes'], to_s) }, - 'networkConfig' => ->(obj) { return :network_config, GoogleInSpec::Container::Property::ClusterNetworkConfig.new(obj['networkConfig'], to_s) }, - 'enableKubernetesAlpha' => ->(obj) { return :enable_kubernetes_alpha, obj['enableKubernetesAlpha'] }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:cluster_name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'initialNodeCount' => ->(obj) { [:initial_node_count, obj['initialNodeCount']] }, + 'nodeConfig' => ->(obj) { [:node_config, GoogleInSpec::Container::Property::ClusterNodeConfig.new(obj['nodeConfig'], to_s)] }, + 'masterAuth' => ->(obj) { [:master_auth, GoogleInSpec::Container::Property::ClusterMasterAuth.new(obj['masterAuth'], to_s)] }, + 'loggingService' => ->(obj) { [:logging_service, obj['loggingService']] }, + 'monitoringService' => ->(obj) { [:monitoring_service, obj['monitoringService']] }, + 'network' => ->(obj) { [:cluster_network, obj['network']] }, + 'databaseEncryption' => ->(obj) { [:database_encryption, GoogleInSpec::Container::Property::ClusterDatabaseEncryption.new(obj['databaseEncryption'], to_s)] }, + 'privateClusterConfig' => ->(obj) { [:private_cluster_config, GoogleInSpec::Container::Property::ClusterPrivateClusterConfig.new(obj['privateClusterConfig'], to_s)] }, + 'clusterIpv4Cidr' => ->(obj) { [:cluster_ipv4_cidr, obj['clusterIpv4Cidr']] }, + 'enableTpu' => ->(obj) { [:enable_tpu, obj['enableTpu']] }, + 'tpuIpv4CidrBlock' => ->(obj) { [:tpu_ipv4_cidr_block, obj['tpuIpv4CidrBlock']] }, + 'addonsConfig' => ->(obj) { [:addons_config, GoogleInSpec::Container::Property::ClusterAddonsConfig.new(obj['addonsConfig'], to_s)] }, + 'subnetwork' => ->(obj) { [:subnetwork, obj['subnetwork']] }, + 'locations' => ->(obj) { [:locations, obj['locations']] }, + 'resourceLabels' => ->(obj) { [:resource_labels, obj['resourceLabels']] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'legacyAbac' => ->(obj) { [:legacy_abac, GoogleInSpec::Container::Property::ClusterLegacyAbac.new(obj['legacyAbac'], to_s)] }, + 'networkPolicy' => ->(obj) { [:network_policy, GoogleInSpec::Container::Property::ClusterNetworkPolicy.new(obj['networkPolicy'], to_s)] }, + 'defaultMaxPodsConstraint' => ->(obj) { [:default_max_pods_constraint, GoogleInSpec::Container::Property::ClusterDefaultMaxPodsConstraint.new(obj['defaultMaxPodsConstraint'], to_s)] }, + 'ipAllocationPolicy' => ->(obj) { [:ip_allocation_policy, GoogleInSpec::Container::Property::ClusterIpAllocationPolicy.new(obj['ipAllocationPolicy'], to_s)] }, + 'endpoint' => ->(obj) { [:endpoint, obj['endpoint']] }, + 'initialClusterVersion' => ->(obj) { [:initial_cluster_version, obj['initialClusterVersion']] }, + 'currentMasterVersion' => ->(obj) { [:current_master_version, obj['currentMasterVersion']] }, + 'currentNodeVersion' => ->(obj) { [:current_node_version, obj['currentNodeVersion']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'status' => ->(obj) { [:cluster_status, obj['status']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, + 'nodeIpv4CidrSize' => ->(obj) { [:node_ipv4_cidr_size, obj['nodeIpv4CidrSize']] }, + 'servicesIpv4Cidr' => ->(obj) { [:services_ipv4_cidr, obj['servicesIpv4Cidr']] }, + 'currentNodeCount' => ->(obj) { [:current_node_count, obj['currentNodeCount']] }, + 'expireTime' => ->(obj) { [:expire_time, parse_time_string(obj['expireTime'])] }, + 'conditions' => ->(obj) { [:conditions, GoogleInSpec::Container::Property::ClusterConditionsArray.parse(obj['conditions'], to_s)] }, + 'masterAuthorizedNetworksConfig' => ->(obj) { [:master_authorized_networks_config, GoogleInSpec::Container::Property::ClusterMasterAuthorizedNetworksConfig.new(obj['masterAuthorizedNetworksConfig'], to_s)] }, + 'nodePools' => ->(obj) { [:node_pools, GoogleInSpec::Container::Property::ClusterNodePoolsArray.parse(obj['nodePools'], to_s)] }, + 'binaryAuthorization' => ->(obj) { [:binary_authorization, GoogleInSpec::Container::Property::ClusterBinaryAuthorization.new(obj['binaryAuthorization'], to_s)] }, + 'releaseChannel' => ->(obj) { [:release_channel, GoogleInSpec::Container::Property::ClusterReleaseChannel.new(obj['releaseChannel'], to_s)] }, + 'shieldedNodes' => ->(obj) { [:shielded_nodes, GoogleInSpec::Container::Property::ClusterShieldedNodes.new(obj['shieldedNodes'], to_s)] }, + 'networkConfig' => ->(obj) { [:network_config, GoogleInSpec::Container::Property::ClusterNetworkConfig.new(obj['networkConfig'], to_s)] }, + 'enableKubernetesAlpha' => ->(obj) { [:enable_kubernetes_alpha, obj['enableKubernetesAlpha']] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/libraries/google_container_node_pools.rb b/libraries/google_container_node_pools.rb index 5b8a3cf96..f10129287 100644 --- a/libraries/google_container_node_pools.rb +++ b/libraries/google_container_node_pools.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :node_pool_name, obj['name'] }, - 'config' => ->(obj) { return :config, GoogleInSpec::Container::Property::NodePoolConfig.new(obj['config'], to_s) }, - 'initialNodeCount' => ->(obj) { return :initial_node_count, obj['initialNodeCount'] }, - 'status' => ->(obj) { return :node_pool_status, obj['status'] }, - 'statusMessage' => ->(obj) { return :status_message, obj['statusMessage'] }, - 'version' => ->(obj) { return :version, obj['version'] }, - 'autoscaling' => ->(obj) { return :autoscaling, GoogleInSpec::Container::Property::NodePoolAutoscaling.new(obj['autoscaling'], to_s) }, - 'management' => ->(obj) { return :management, GoogleInSpec::Container::Property::NodePoolManagement.new(obj['management'], to_s) }, - 'maxPodsConstraint' => ->(obj) { return :max_pods_constraint, GoogleInSpec::Container::Property::NodePoolMaxPodsConstraint.new(obj['maxPodsConstraint'], to_s) }, - 'conditions' => ->(obj) { return :conditions, GoogleInSpec::Container::Property::NodePoolConditionsArray.parse(obj['conditions'], to_s) }, - 'podIpv4CidrSize' => ->(obj) { return :pod_ipv4_cidr_size, obj['podIpv4CidrSize'] }, - 'cluster' => ->(obj) { return :cluster, obj['cluster'] }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:node_pool_name, obj['name']] }, + 'config' => ->(obj) { [:config, GoogleInSpec::Container::Property::NodePoolConfig.new(obj['config'], to_s)] }, + 'initialNodeCount' => ->(obj) { [:initial_node_count, obj['initialNodeCount']] }, + 'status' => ->(obj) { [:node_pool_status, obj['status']] }, + 'statusMessage' => ->(obj) { [:status_message, obj['statusMessage']] }, + 'version' => ->(obj) { [:version, obj['version']] }, + 'autoscaling' => ->(obj) { [:autoscaling, GoogleInSpec::Container::Property::NodePoolAutoscaling.new(obj['autoscaling'], to_s)] }, + 'management' => ->(obj) { [:management, GoogleInSpec::Container::Property::NodePoolManagement.new(obj['management'], to_s)] }, + 'maxPodsConstraint' => ->(obj) { [:max_pods_constraint, GoogleInSpec::Container::Property::NodePoolMaxPodsConstraint.new(obj['maxPodsConstraint'], to_s)] }, + 'conditions' => ->(obj) { [:conditions, GoogleInSpec::Container::Property::NodePoolConditionsArray.parse(obj['conditions'], to_s)] }, + 'podIpv4CidrSize' => ->(obj) { [:pod_ipv4_cidr_size, obj['podIpv4CidrSize']] }, + 'cluster' => ->(obj) { [:cluster, obj['cluster']] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/libraries/google_dataproc_clusters.rb b/libraries/google_dataproc_clusters.rb index 338959419..213d0e434 100644 --- a/libraries/google_dataproc_clusters.rb +++ b/libraries/google_dataproc_clusters.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'clusterName' => ->(obj) { return :cluster_name, obj['clusterName'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'config' => ->(obj) { return :config, GoogleInSpec::Dataproc::Property::ClusterConfig.new(obj['config'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'clusterName' => ->(obj) { [:cluster_name, obj['clusterName']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'config' => ->(obj) { [:config, GoogleInSpec::Dataproc::Property::ClusterConfig.new(obj['config'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_dlp_dts.rb b/libraries/google_dlp_dts.rb index 7fee6df1f..a5a0516a1 100644 --- a/libraries/google_dlp_dts.rb +++ b/libraries/google_dlp_dts.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'config' => ->(obj) { return :config, GoogleInSpec::DLP::Property::DTConfig.new(obj['config'], to_s) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'config' => ->(obj) { [:config, GoogleInSpec::DLP::Property::DTConfig.new(obj['config'], to_s)] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, } end diff --git a/libraries/google_dlp_inspect_templates.rb b/libraries/google_dlp_inspect_templates.rb index 36f3de6a4..15afb2ded 100644 --- a/libraries/google_dlp_inspect_templates.rb +++ b/libraries/google_dlp_inspect_templates.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'inspectConfig' => ->(obj) { return :inspect_config, GoogleInSpec::DLP::Property::InspectTemplateInspectConfig.new(obj['inspectConfig'], to_s) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'inspectConfig' => ->(obj) { [:inspect_config, GoogleInSpec::DLP::Property::InspectTemplateInspectConfig.new(obj['inspectConfig'], to_s)] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, } end diff --git a/libraries/google_dlp_job_triggers.rb b/libraries/google_dlp_job_triggers.rb index 2ce6f36e3..7e343a1ea 100644 --- a/libraries/google_dlp_job_triggers.rb +++ b/libraries/google_dlp_job_triggers.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'lastRunTime' => ->(obj) { return :last_run_time, parse_time_string(obj['lastRunTime']) }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'triggers' => ->(obj) { return :triggers, GoogleInSpec::DLP::Property::JobTriggerTriggersArray.parse(obj['triggers'], to_s) }, - 'inspectJob' => ->(obj) { return :inspect_job, GoogleInSpec::DLP::Property::JobTriggerInspectJob.new(obj['inspectJob'], to_s) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'lastRunTime' => ->(obj) { [:last_run_time, parse_time_string(obj['lastRunTime'])] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'triggers' => ->(obj) { [:triggers, GoogleInSpec::DLP::Property::JobTriggerTriggersArray.parse(obj['triggers'], to_s)] }, + 'inspectJob' => ->(obj) { [:inspect_job, GoogleInSpec::DLP::Property::JobTriggerInspectJob.new(obj['inspectJob'], to_s)] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, } end diff --git a/libraries/google_dlp_jobs.rb b/libraries/google_dlp_jobs.rb index b66c1a2cc..1b6ed3b44 100644 --- a/libraries/google_dlp_jobs.rb +++ b/libraries/google_dlp_jobs.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'jobTriggerName' => ->(obj) { return :job_trigger_name, obj['jobTriggerName'] }, - 'errors' => ->(obj) { return :errors, GoogleInSpec::DLP::Property::JobErrorsArray.parse(obj['errors'], to_s) }, - 'actDet' => ->(obj) { return :act_det, GoogleInSpec::DLP::Property::JobActDetArray.parse(obj['actDet'], to_s) }, - 'riskDetails' => ->(obj) { return :risk_details, obj['riskDetails'] }, - 'inspectDetails' => ->(obj) { return :inspect_details, obj['inspectDetails'] }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'jobTriggerName' => ->(obj) { [:job_trigger_name, obj['jobTriggerName']] }, + 'errors' => ->(obj) { [:errors, GoogleInSpec::DLP::Property::JobErrorsArray.parse(obj['errors'], to_s)] }, + 'actDet' => ->(obj) { [:act_det, GoogleInSpec::DLP::Property::JobActDetArray.parse(obj['actDet'], to_s)] }, + 'riskDetails' => ->(obj) { [:risk_details, obj['riskDetails']] }, + 'inspectDetails' => ->(obj) { [:inspect_details, obj['inspectDetails']] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, } end diff --git a/libraries/google_dlp_stored_info_types.rb b/libraries/google_dlp_stored_info_types.rb index 0b668c0ab..d6f6d3008 100644 --- a/libraries/google_dlp_stored_info_types.rb +++ b/libraries/google_dlp_stored_info_types.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'regex' => ->(obj) { return :regex, GoogleInSpec::DLP::Property::StoredInfoTypeRegex.new(obj['regex'], to_s) }, - 'dictionary' => ->(obj) { return :dictionary, GoogleInSpec::DLP::Property::StoredInfoTypeDictionary.new(obj['dictionary'], to_s) }, - 'largeCustomDictionary' => ->(obj) { return :large_custom_dictionary, GoogleInSpec::DLP::Property::StoredInfoTypeLargeCustomDictionary.new(obj['largeCustomDictionary'], to_s) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'regex' => ->(obj) { [:regex, GoogleInSpec::DLP::Property::StoredInfoTypeRegex.new(obj['regex'], to_s)] }, + 'dictionary' => ->(obj) { [:dictionary, GoogleInSpec::DLP::Property::StoredInfoTypeDictionary.new(obj['dictionary'], to_s)] }, + 'largeCustomDictionary' => ->(obj) { [:large_custom_dictionary, GoogleInSpec::DLP::Property::StoredInfoTypeLargeCustomDictionary.new(obj['largeCustomDictionary'], to_s)] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, } end diff --git a/libraries/google_dns_managed_zones.rb b/libraries/google_dns_managed_zones.rb index c806d6630..cab456ed3 100644 --- a/libraries/google_dns_managed_zones.rb +++ b/libraries/google_dns_managed_zones.rb @@ -79,21 +79,21 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'dnsName' => ->(obj) { return :zone_dns_name, obj['dnsName'] }, - 'dnssecConfig' => ->(obj) { return :dnssec_config, GoogleInSpec::DNS::Property::ManagedZoneDnssecConfig.new(obj['dnssecConfig'], to_s) }, - 'id' => ->(obj) { return :zone_id, obj['id'] }, - 'name' => ->(obj) { return :zone_name, obj['name'] }, - 'nameServers' => ->(obj) { return :name_servers, obj['nameServers'] }, - 'nameServerSet' => ->(obj) { return :name_server_set, obj['nameServerSet'] }, - 'creationTime' => ->(obj) { return :creation_time, parse_time_string(obj['creationTime']) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'visibility' => ->(obj) { return :visibility, obj['visibility'] }, - 'privateVisibilityConfig' => ->(obj) { return :private_visibility_config, GoogleInSpec::DNS::Property::ManagedZonePrivateVisibilityConfig.new(obj['privateVisibilityConfig'], to_s) }, - 'forwardingConfig' => ->(obj) { return :forwarding_config, GoogleInSpec::DNS::Property::ManagedZoneForwardingConfig.new(obj['forwardingConfig'], to_s) }, - 'peeringConfig' => ->(obj) { return :peering_config, GoogleInSpec::DNS::Property::ManagedZonePeeringConfig.new(obj['peeringConfig'], to_s) }, - 'reverseLookupConfig' => ->(obj) { return :reverse_lookup, obj['reverseLookupConfig'] }, - 'serviceDirectoryConfig' => ->(obj) { return :service_directory_config, GoogleInSpec::DNS::Property::ManagedZoneServiceDirectoryConfig.new(obj['serviceDirectoryConfig'], to_s) }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'dnsName' => ->(obj) { [:zone_dns_name, obj['dnsName']] }, + 'dnssecConfig' => ->(obj) { [:dnssec_config, GoogleInSpec::DNS::Property::ManagedZoneDnssecConfig.new(obj['dnssecConfig'], to_s)] }, + 'id' => ->(obj) { [:zone_id, obj['id']] }, + 'name' => ->(obj) { [:zone_name, obj['name']] }, + 'nameServers' => ->(obj) { [:name_servers, obj['nameServers']] }, + 'nameServerSet' => ->(obj) { [:name_server_set, obj['nameServerSet']] }, + 'creationTime' => ->(obj) { [:creation_time, parse_time_string(obj['creationTime'])] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'visibility' => ->(obj) { [:visibility, obj['visibility']] }, + 'privateVisibilityConfig' => ->(obj) { [:private_visibility_config, GoogleInSpec::DNS::Property::ManagedZonePrivateVisibilityConfig.new(obj['privateVisibilityConfig'], to_s)] }, + 'forwardingConfig' => ->(obj) { [:forwarding_config, GoogleInSpec::DNS::Property::ManagedZoneForwardingConfig.new(obj['forwardingConfig'], to_s)] }, + 'peeringConfig' => ->(obj) { [:peering_config, GoogleInSpec::DNS::Property::ManagedZonePeeringConfig.new(obj['peeringConfig'], to_s)] }, + 'reverseLookupConfig' => ->(obj) { [:reverse_lookup, obj['reverseLookupConfig']] }, + 'serviceDirectoryConfig' => ->(obj) { [:service_directory_config, GoogleInSpec::DNS::Property::ManagedZoneServiceDirectoryConfig.new(obj['serviceDirectoryConfig'], to_s)] }, } end diff --git a/libraries/google_dns_resource_record_sets.rb b/libraries/google_dns_resource_record_sets.rb index 0df4c5914..a046571f3 100644 --- a/libraries/google_dns_resource_record_sets.rb +++ b/libraries/google_dns_resource_record_sets.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'type' => ->(obj) { return :type, obj['type'] }, - 'ttl' => ->(obj) { return :ttl, obj['ttl'] }, - 'rrdatas' => ->(obj) { return :target, obj['rrdatas'] }, - 'managed_zone' => ->(obj) { return :managed_zone, obj['managed_zone'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'type' => ->(obj) { [:type, obj['type']] }, + 'ttl' => ->(obj) { [:ttl, obj['ttl']] }, + 'rrdatas' => ->(obj) { [:target, obj['rrdatas']] }, + 'managed_zone' => ->(obj) { [:managed_zone, obj['managed_zone']] }, } end diff --git a/libraries/google_filestore_instances.rb b/libraries/google_filestore_instances.rb index 5bf42616f..79f14ff7a 100644 --- a/libraries/google_filestore_instances.rb +++ b/libraries/google_filestore_instances.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'tier' => ->(obj) { return :tier, obj['tier'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'fileShares' => ->(obj) { return :file_shares, GoogleInSpec::Filestore::Property::InstanceFileSharesArray.parse(obj['fileShares'], to_s) }, - 'networks' => ->(obj) { return :networks, GoogleInSpec::Filestore::Property::InstanceNetworksArray.parse(obj['networks'], to_s) }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'zone' => ->(obj) { return :zone, obj['zone'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'tier' => ->(obj) { [:tier, obj['tier']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'fileShares' => ->(obj) { [:file_shares, GoogleInSpec::Filestore::Property::InstanceFileSharesArray.parse(obj['fileShares'], to_s)] }, + 'networks' => ->(obj) { [:networks, GoogleInSpec::Filestore::Property::InstanceNetworksArray.parse(obj['networks'], to_s)] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'zone' => ->(obj) { [:zone, obj['zone']] }, } end diff --git a/libraries/google_iam_organization_custom_roles.rb b/libraries/google_iam_organization_custom_roles.rb index e877af2b1..3fbcf3365 100644 --- a/libraries/google_iam_organization_custom_roles.rb +++ b/libraries/google_iam_organization_custom_roles.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'title' => ->(obj) { return :title, obj['title'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'includedPermissions' => ->(obj) { return :included_permissions, obj['includedPermissions'] }, - 'stage' => ->(obj) { return :stage, obj['stage'] }, - 'deleted' => ->(obj) { return :deleted, obj['deleted'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'title' => ->(obj) { [:title, obj['title']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'includedPermissions' => ->(obj) { [:included_permissions, obj['includedPermissions']] }, + 'stage' => ->(obj) { [:stage, obj['stage']] }, + 'deleted' => ->(obj) { [:deleted, obj['deleted']] }, } end diff --git a/libraries/google_kms_crypto_keys.rb b/libraries/google_kms_crypto_keys.rb index 947429abf..913dccd43 100644 --- a/libraries/google_kms_crypto_keys.rb +++ b/libraries/google_kms_crypto_keys.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :crypto_key_name, name_from_self_link(obj['name']) }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'purpose' => ->(obj) { return :purpose, obj['purpose'] }, - 'rotationPeriod' => ->(obj) { return :rotation_period, obj['rotationPeriod'] }, - 'versionTemplate' => ->(obj) { return :version_template, GoogleInSpec::KMS::Property::CryptoKeyVersionTemplate.new(obj['versionTemplate'], to_s) }, - 'nextRotationTime' => ->(obj) { return :next_rotation_time, parse_time_string(obj['nextRotationTime']) }, - 'keyRing' => ->(obj) { return :key_ring, obj['keyRing'] }, - 'skipInitialVersionCreation' => ->(obj) { return :skip_initial_version_creation, obj['skipInitialVersionCreation'] }, + 'name' => ->(obj) { [:crypto_key_name, name_from_self_link(obj['name'])] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'purpose' => ->(obj) { [:purpose, obj['purpose']] }, + 'rotationPeriod' => ->(obj) { [:rotation_period, obj['rotationPeriod']] }, + 'versionTemplate' => ->(obj) { [:version_template, GoogleInSpec::KMS::Property::CryptoKeyVersionTemplate.new(obj['versionTemplate'], to_s)] }, + 'nextRotationTime' => ->(obj) { [:next_rotation_time, parse_time_string(obj['nextRotationTime'])] }, + 'keyRing' => ->(obj) { [:key_ring, obj['keyRing']] }, + 'skipInitialVersionCreation' => ->(obj) { [:skip_initial_version_creation, obj['skipInitialVersionCreation']] }, } end diff --git a/libraries/google_kms_ekm_connections.rb b/libraries/google_kms_ekm_connections.rb index 871e1d0a4..fb8fae9bd 100644 --- a/libraries/google_kms_ekm_connections.rb +++ b/libraries/google_kms_ekm_connections.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'serviceResolvers' => ->(obj) { return :service_resolvers, GoogleInSpec::KMS::Property::EkmConnectionServiceResolvers.new(obj['serviceResolvers'], to_s) }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'serviceResolvers' => ->(obj) { [:service_resolvers, GoogleInSpec::KMS::Property::EkmConnectionServiceResolvers.new(obj['serviceResolvers'], to_s)] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/libraries/google_kms_key_ring_import_jobs.rb b/libraries/google_kms_key_ring_import_jobs.rb index 2db8a4cf5..e5bb23c4e 100644 --- a/libraries/google_kms_key_ring_import_jobs.rb +++ b/libraries/google_kms_key_ring_import_jobs.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'importMethod' => ->(obj) { return :import_method, obj['importMethod'] }, - 'protectionLevel' => ->(obj) { return :protection_level, obj['protectionLevel'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'generateTime' => ->(obj) { return :generate_time, parse_time_string(obj['generateTime']) }, - 'expireTime' => ->(obj) { return :expire_time, parse_time_string(obj['expireTime']) }, - 'expireEventTime' => ->(obj) { return :expire_event_time, parse_time_string(obj['expireEventTime']) }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'publicKey' => ->(obj) { return :public_key, GoogleInSpec::KMS::Property::KeyRingImportJobPublicKey.new(obj['publicKey'], to_s) }, - 'attestation' => ->(obj) { return :attestation, GoogleInSpec::KMS::Property::KeyRingImportJobAttestation.new(obj['attestation'], to_s) }, - 'keyRing' => ->(obj) { return :key_ring, obj['keyRing'] }, - 'importJobId' => ->(obj) { return :import_job_id, obj['importJobId'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'importMethod' => ->(obj) { [:import_method, obj['importMethod']] }, + 'protectionLevel' => ->(obj) { [:protection_level, obj['protectionLevel']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'generateTime' => ->(obj) { [:generate_time, parse_time_string(obj['generateTime'])] }, + 'expireTime' => ->(obj) { [:expire_time, parse_time_string(obj['expireTime'])] }, + 'expireEventTime' => ->(obj) { [:expire_event_time, parse_time_string(obj['expireEventTime'])] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'publicKey' => ->(obj) { [:public_key, GoogleInSpec::KMS::Property::KeyRingImportJobPublicKey.new(obj['publicKey'], to_s)] }, + 'attestation' => ->(obj) { [:attestation, GoogleInSpec::KMS::Property::KeyRingImportJobAttestation.new(obj['attestation'], to_s)] }, + 'keyRing' => ->(obj) { [:key_ring, obj['keyRing']] }, + 'importJobId' => ->(obj) { [:import_job_id, obj['importJobId']] }, } end diff --git a/libraries/google_kms_key_rings.rb b/libraries/google_kms_key_rings.rb index d79fc10a8..2d06dbc15 100644 --- a/libraries/google_kms_key_rings.rb +++ b/libraries/google_kms_key_rings.rb @@ -67,9 +67,9 @@ def transform(key, value) def transformers { - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'name' => ->(obj) { return :key_ring_url, obj['name'] }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'name' => ->(obj) { [:key_ring_url, obj['name']] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/libraries/google_kms_locations.rb b/libraries/google_kms_locations.rb index 03bec2609..eb3424ccc 100644 --- a/libraries/google_kms_locations.rb +++ b/libraries/google_kms_locations.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'locationId' => ->(obj) { return :location_id, obj['locationId'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'location' => ->(obj) { return :location, obj['location'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'locationId' => ->(obj) { [:location_id, obj['locationId']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'location' => ->(obj) { [:location, obj['location']] }, } end diff --git a/libraries/google_logging_folder_exclusions.rb b/libraries/google_logging_folder_exclusions.rb index 700fce7dd..5383b4b40 100644 --- a/libraries/google_logging_folder_exclusions.rb +++ b/libraries/google_logging_folder_exclusions.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'folder' => ->(obj) { return :folder, obj['folder'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'disabled' => ->(obj) { return :disabled, obj['disabled'] }, + 'folder' => ->(obj) { [:folder, obj['folder']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'disabled' => ->(obj) { [:disabled, obj['disabled']] }, } end diff --git a/libraries/google_logging_folder_log_sinks.rb b/libraries/google_logging_folder_log_sinks.rb index cf721b4fe..e8bc5cfee 100644 --- a/libraries/google_logging_folder_log_sinks.rb +++ b/libraries/google_logging_folder_log_sinks.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'folder' => ->(obj) { return :folder, obj['folder'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'destination' => ->(obj) { return :destination, obj['destination'] }, - 'writerIdentity' => ->(obj) { return :writer_identity, obj['writerIdentity'] }, - 'includeChildren' => ->(obj) { return :include_children, obj['includeChildren'] }, + 'folder' => ->(obj) { [:folder, obj['folder']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'destination' => ->(obj) { [:destination, obj['destination']] }, + 'writerIdentity' => ->(obj) { [:writer_identity, obj['writerIdentity']] }, + 'includeChildren' => ->(obj) { [:include_children, obj['includeChildren']] }, } end diff --git a/libraries/google_logging_organization_log_sinks.rb b/libraries/google_logging_organization_log_sinks.rb index 97497779c..a40a78873 100644 --- a/libraries/google_logging_organization_log_sinks.rb +++ b/libraries/google_logging_organization_log_sinks.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'organization' => ->(obj) { return :organization, obj['organization'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'destination' => ->(obj) { return :destination, obj['destination'] }, - 'writerIdentity' => ->(obj) { return :writer_identity, obj['writerIdentity'] }, - 'includeChildren' => ->(obj) { return :include_children, obj['includeChildren'] }, + 'organization' => ->(obj) { [:organization, obj['organization']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'destination' => ->(obj) { [:destination, obj['destination']] }, + 'writerIdentity' => ->(obj) { [:writer_identity, obj['writerIdentity']] }, + 'includeChildren' => ->(obj) { [:include_children, obj['includeChildren']] }, } end diff --git a/libraries/google_logging_project_exclusions.rb b/libraries/google_logging_project_exclusions.rb index a6d1aa9ec..e42c90229 100644 --- a/libraries/google_logging_project_exclusions.rb +++ b/libraries/google_logging_project_exclusions.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'project' => ->(obj) { return :project, obj['project'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'disabled' => ->(obj) { return :disabled, obj['disabled'] }, + 'project' => ->(obj) { [:project, obj['project']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'disabled' => ->(obj) { [:disabled, obj['disabled']] }, } end diff --git a/libraries/google_logging_project_sinks.rb b/libraries/google_logging_project_sinks.rb index 890e5fde2..d128962d6 100644 --- a/libraries/google_logging_project_sinks.rb +++ b/libraries/google_logging_project_sinks.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'project' => ->(obj) { return :project, obj['project'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'destination' => ->(obj) { return :destination, obj['destination'] }, - 'writerIdentity' => ->(obj) { return :writer_identity, obj['writerIdentity'] }, - 'includeChildren' => ->(obj) { return :include_children, obj['includeChildren'] }, + 'project' => ->(obj) { [:project, obj['project']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'destination' => ->(obj) { [:destination, obj['destination']] }, + 'writerIdentity' => ->(obj) { [:writer_identity, obj['writerIdentity']] }, + 'includeChildren' => ->(obj) { [:include_children, obj['includeChildren']] }, } end diff --git a/libraries/google_memcache_instances.rb b/libraries/google_memcache_instances.rb index 44a7106c0..6d3cf948c 100644 --- a/libraries/google_memcache_instances.rb +++ b/libraries/google_memcache_instances.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'memcacheNodes' => ->(obj) { return :memcache_nodes, GoogleInSpec::Memcache::Property::InstanceMemcacheNodesArray.parse(obj['memcacheNodes'], to_s) }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'discoveryEndpoint' => ->(obj) { return :discovery_endpoint, obj['discoveryEndpoint'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'memcacheFullVersion' => ->(obj) { return :memcache_full_version, obj['memcacheFullVersion'] }, - 'zones' => ->(obj) { return :zones, obj['zones'] }, - 'authorizedNetwork' => ->(obj) { return :authorized_network, obj['authorizedNetwork'] }, - 'nodeCount' => ->(obj) { return :node_count, obj['nodeCount'] }, - 'memcacheVersion' => ->(obj) { return :memcache_version, obj['memcacheVersion'] }, - 'nodeConfig' => ->(obj) { return :node_config, GoogleInSpec::Memcache::Property::InstanceNodeConfig.new(obj['nodeConfig'], to_s) }, - 'parameters' => ->(obj) { return :parameters, GoogleInSpec::Memcache::Property::InstanceParameters.new(obj['parameters'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'memcacheNodes' => ->(obj) { [:memcache_nodes, GoogleInSpec::Memcache::Property::InstanceMemcacheNodesArray.parse(obj['memcacheNodes'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'discoveryEndpoint' => ->(obj) { [:discovery_endpoint, obj['discoveryEndpoint']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'memcacheFullVersion' => ->(obj) { [:memcache_full_version, obj['memcacheFullVersion']] }, + 'zones' => ->(obj) { [:zones, obj['zones']] }, + 'authorizedNetwork' => ->(obj) { [:authorized_network, obj['authorizedNetwork']] }, + 'nodeCount' => ->(obj) { [:node_count, obj['nodeCount']] }, + 'memcacheVersion' => ->(obj) { [:memcache_version, obj['memcacheVersion']] }, + 'nodeConfig' => ->(obj) { [:node_config, GoogleInSpec::Memcache::Property::InstanceNodeConfig.new(obj['nodeConfig'], to_s)] }, + 'parameters' => ->(obj) { [:parameters, GoogleInSpec::Memcache::Property::InstanceParameters.new(obj['parameters'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_ml_engine_models.rb b/libraries/google_ml_engine_models.rb index a0c5e4f90..450b80210 100644 --- a/libraries/google_ml_engine_models.rb +++ b/libraries/google_ml_engine_models.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'defaultVersion' => ->(obj) { return :default_version, GoogleInSpec::MLEngine::Property::ModelDefaultVersion.new(obj['defaultVersion'], to_s) }, - 'regions' => ->(obj) { return :regions, obj['regions'] }, - 'onlinePredictionLogging' => ->(obj) { return :online_prediction_logging, obj['onlinePredictionLogging'] }, - 'onlinePredictionConsoleLogging' => ->(obj) { return :online_prediction_console_logging, obj['onlinePredictionConsoleLogging'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'defaultVersion' => ->(obj) { [:default_version, GoogleInSpec::MLEngine::Property::ModelDefaultVersion.new(obj['defaultVersion'], to_s)] }, + 'regions' => ->(obj) { [:regions, obj['regions']] }, + 'onlinePredictionLogging' => ->(obj) { [:online_prediction_logging, obj['onlinePredictionLogging']] }, + 'onlinePredictionConsoleLogging' => ->(obj) { [:online_prediction_console_logging, obj['onlinePredictionConsoleLogging']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, } end diff --git a/libraries/google_organizations.rb b/libraries/google_organizations.rb index b85f1c798..b7bd81481 100644 --- a/libraries/google_organizations.rb +++ b/libraries/google_organizations.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'lifecycleState' => ->(obj) { return :lifecycle_state, obj['lifecycleState'] }, - 'creationTime' => ->(obj) { return :creation_time, parse_time_string(obj['creationTime']) }, - 'owner' => ->(obj) { return :owner, GoogleInSpec::ResourceManager::Property::OrganizationOwner.new(obj['owner'], to_s) }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'lifecycleState' => ->(obj) { [:lifecycle_state, obj['lifecycleState']] }, + 'creationTime' => ->(obj) { [:creation_time, parse_time_string(obj['creationTime'])] }, + 'owner' => ->(obj) { [:owner, GoogleInSpec::ResourceManager::Property::OrganizationOwner.new(obj['owner'], to_s)] }, } end diff --git a/libraries/google_project_alert_policies.rb b/libraries/google_project_alert_policies.rb index 366086afa..1b4f10994 100644 --- a/libraries/google_project_alert_policies.rb +++ b/libraries/google_project_alert_policies.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :policy_names, obj['name'] }, - 'displayName' => ->(obj) { return :policy_display_names, obj['displayName'] }, - 'combiner' => ->(obj) { return :combiner, obj['combiner'] }, - 'creationRecord' => ->(obj) { return :creation_record, GoogleInSpec::Monitoring::Property::AlertPolicyCreationRecord.new(obj['creationRecord'], to_s) }, - 'enabled' => ->(obj) { return :policy_enabled_state, obj['enabled'] }, - 'conditions' => ->(obj) { return :conditions, GoogleInSpec::Monitoring::Property::AlertPolicyConditionsArray.parse(obj['conditions'], to_s) }, - 'notificationChannels' => ->(obj) { return :notification_channels, obj['notificationChannels'] }, - 'userLabels' => ->(obj) { return :user_labels, obj['userLabels'] }, - 'documentation' => ->(obj) { return :documentation, GoogleInSpec::Monitoring::Property::AlertPolicyDocumentation.new(obj['documentation'], to_s) }, + 'name' => ->(obj) { [:policy_names, obj['name']] }, + 'displayName' => ->(obj) { [:policy_display_names, obj['displayName']] }, + 'combiner' => ->(obj) { [:combiner, obj['combiner']] }, + 'creationRecord' => ->(obj) { [:creation_record, GoogleInSpec::Monitoring::Property::AlertPolicyCreationRecord.new(obj['creationRecord'], to_s)] }, + 'enabled' => ->(obj) { [:policy_enabled_state, obj['enabled']] }, + 'conditions' => ->(obj) { [:conditions, GoogleInSpec::Monitoring::Property::AlertPolicyConditionsArray.parse(obj['conditions'], to_s)] }, + 'notificationChannels' => ->(obj) { [:notification_channels, obj['notificationChannels']] }, + 'userLabels' => ->(obj) { [:user_labels, obj['userLabels']] }, + 'documentation' => ->(obj) { [:documentation, GoogleInSpec::Monitoring::Property::AlertPolicyDocumentation.new(obj['documentation'], to_s)] }, } end diff --git a/libraries/google_project_iam_custom_roles.rb b/libraries/google_project_iam_custom_roles.rb index cf53943ff..797d3e45e 100644 --- a/libraries/google_project_iam_custom_roles.rb +++ b/libraries/google_project_iam_custom_roles.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'title' => ->(obj) { return :title, obj['title'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'includedPermissions' => ->(obj) { return :included_permissions, obj['includedPermissions'] }, - 'stage' => ->(obj) { return :stage, obj['stage'] }, - 'deleted' => ->(obj) { return :deleted, obj['deleted'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'title' => ->(obj) { [:title, obj['title']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'includedPermissions' => ->(obj) { [:included_permissions, obj['includedPermissions']] }, + 'stage' => ->(obj) { [:stage, obj['stage']] }, + 'deleted' => ->(obj) { [:deleted, obj['deleted']] }, } end diff --git a/libraries/google_project_metrics.rb b/libraries/google_project_metrics.rb index 5e850398c..4e6233e4f 100644 --- a/libraries/google_project_metrics.rb +++ b/libraries/google_project_metrics.rb @@ -71,13 +71,13 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :metric_name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'filter' => ->(obj) { return :metric_filter, obj['filter'] }, - 'metricDescriptor' => ->(obj) { return :metric_descriptor, GoogleInSpec::Logging::Property::MetricMetricDescriptor.new(obj['metricDescriptor'], to_s) }, - 'labelExtractors' => ->(obj) { return :label_extractors, obj['labelExtractors'] }, - 'valueExtractor' => ->(obj) { return :value_extractor, obj['valueExtractor'] }, - 'bucketOptions' => ->(obj) { return :bucket_options, GoogleInSpec::Logging::Property::MetricBucketOptions.new(obj['bucketOptions'], to_s) }, + 'name' => ->(obj) { [:metric_name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'filter' => ->(obj) { [:metric_filter, obj['filter']] }, + 'metricDescriptor' => ->(obj) { [:metric_descriptor, GoogleInSpec::Logging::Property::MetricMetricDescriptor.new(obj['metricDescriptor'], to_s)] }, + 'labelExtractors' => ->(obj) { [:label_extractors, obj['labelExtractors']] }, + 'valueExtractor' => ->(obj) { [:value_extractor, obj['valueExtractor']] }, + 'bucketOptions' => ->(obj) { [:bucket_options, GoogleInSpec::Logging::Property::MetricBucketOptions.new(obj['bucketOptions'], to_s)] }, } end diff --git a/libraries/google_project_services.rb b/libraries/google_project_services.rb index 0e90a1bf5..5e0d70983 100644 --- a/libraries/google_project_services.rb +++ b/libraries/google_project_services.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'disableDependentServices' => ->(obj) { return :disable_dependent_services, obj['disableDependentServices'] }, - 'config' => ->(obj) { return :config, GoogleInSpec::ServiceUsage::Property::ServiceConfig.new(obj['config'], to_s) }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'disableDependentServices' => ->(obj) { [:disable_dependent_services, obj['disableDependentServices']] }, + 'config' => ->(obj) { [:config, GoogleInSpec::ServiceUsage::Property::ServiceConfig.new(obj['config'], to_s)] }, } end diff --git a/libraries/google_projects.rb b/libraries/google_projects.rb index ab0cc1740..686477a49 100644 --- a/libraries/google_projects.rb +++ b/libraries/google_projects.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'projectNumber' => ->(obj) { return :project_number, obj['projectNumber'] }, - 'lifecycleState' => ->(obj) { return :lifecycle_state, obj['lifecycleState'] }, - 'name' => ->(obj) { return :project_name, obj['name'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'parent' => ->(obj) { return :parent, GoogleInSpec::ResourceManager::Property::ProjectParent.new(obj['parent'], to_s) }, - 'projectId' => ->(obj) { return :project_id, obj['projectId'] }, + 'projectNumber' => ->(obj) { [:project_number, obj['projectNumber']] }, + 'lifecycleState' => ->(obj) { [:lifecycle_state, obj['lifecycleState']] }, + 'name' => ->(obj) { [:project_name, obj['name']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'parent' => ->(obj) { [:parent, GoogleInSpec::ResourceManager::Property::ProjectParent.new(obj['parent'], to_s)] }, + 'projectId' => ->(obj) { [:project_id, obj['projectId']] }, } end diff --git a/libraries/google_pubsub_subscriptions.rb b/libraries/google_pubsub_subscriptions.rb index c8b08152d..aacdd896b 100644 --- a/libraries/google_pubsub_subscriptions.rb +++ b/libraries/google_pubsub_subscriptions.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, name_from_self_link(obj['name']) }, - 'topic' => ->(obj) { return :topic, obj['topic'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'pushConfig' => ->(obj) { return :push_config, GoogleInSpec::Pubsub::Property::SubscriptionPushConfig.new(obj['pushConfig'], to_s) }, - 'ackDeadlineSeconds' => ->(obj) { return :ack_deadline_seconds, obj['ackDeadlineSeconds'] }, - 'messageRetentionDuration' => ->(obj) { return :message_retention_duration, obj['messageRetentionDuration'] }, - 'retainAckedMessages' => ->(obj) { return :retain_acked_messages, obj['retainAckedMessages'] }, - 'expirationPolicy' => ->(obj) { return :expiration_policy, GoogleInSpec::Pubsub::Property::SubscriptionExpirationPolicy.new(obj['expirationPolicy'], to_s) }, - 'filter' => ->(obj) { return :filter, obj['filter'] }, - 'deadLetterPolicy' => ->(obj) { return :dead_letter_policy, GoogleInSpec::Pubsub::Property::SubscriptionDeadLetterPolicy.new(obj['deadLetterPolicy'], to_s) }, - 'retryPolicy' => ->(obj) { return :retry_policy, GoogleInSpec::Pubsub::Property::SubscriptionRetryPolicy.new(obj['retryPolicy'], to_s) }, - 'enableMessageOrdering' => ->(obj) { return :enable_message_ordering, obj['enableMessageOrdering'] }, + 'name' => ->(obj) { [:name, name_from_self_link(obj['name'])] }, + 'topic' => ->(obj) { [:topic, obj['topic']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'pushConfig' => ->(obj) { [:push_config, GoogleInSpec::Pubsub::Property::SubscriptionPushConfig.new(obj['pushConfig'], to_s)] }, + 'ackDeadlineSeconds' => ->(obj) { [:ack_deadline_seconds, obj['ackDeadlineSeconds']] }, + 'messageRetentionDuration' => ->(obj) { [:message_retention_duration, obj['messageRetentionDuration']] }, + 'retainAckedMessages' => ->(obj) { [:retain_acked_messages, obj['retainAckedMessages']] }, + 'expirationPolicy' => ->(obj) { [:expiration_policy, GoogleInSpec::Pubsub::Property::SubscriptionExpirationPolicy.new(obj['expirationPolicy'], to_s)] }, + 'filter' => ->(obj) { [:filter, obj['filter']] }, + 'deadLetterPolicy' => ->(obj) { [:dead_letter_policy, GoogleInSpec::Pubsub::Property::SubscriptionDeadLetterPolicy.new(obj['deadLetterPolicy'], to_s)] }, + 'retryPolicy' => ->(obj) { [:retry_policy, GoogleInSpec::Pubsub::Property::SubscriptionRetryPolicy.new(obj['retryPolicy'], to_s)] }, + 'enableMessageOrdering' => ->(obj) { [:enable_message_ordering, obj['enableMessageOrdering']] }, } end diff --git a/libraries/google_pubsub_topics.rb b/libraries/google_pubsub_topics.rb index 3c7538077..eb6c5a079 100644 --- a/libraries/google_pubsub_topics.rb +++ b/libraries/google_pubsub_topics.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, name_from_self_link(obj['name']) }, - 'kmsKeyName' => ->(obj) { return :kms_key_name, obj['kmsKeyName'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'messageStoragePolicy' => ->(obj) { return :message_storage_policy, GoogleInSpec::Pubsub::Property::TopicMessageStoragePolicy.new(obj['messageStoragePolicy'], to_s) }, + 'name' => ->(obj) { [:name, name_from_self_link(obj['name'])] }, + 'kmsKeyName' => ->(obj) { [:kms_key_name, obj['kmsKeyName']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'messageStoragePolicy' => ->(obj) { [:message_storage_policy, GoogleInSpec::Pubsub::Property::TopicMessageStoragePolicy.new(obj['messageStoragePolicy'], to_s)] }, } end diff --git a/libraries/google_redis_instances.rb b/libraries/google_redis_instances.rb index 4af94057f..4ab18c3a0 100644 --- a/libraries/google_redis_instances.rb +++ b/libraries/google_redis_instances.rb @@ -83,27 +83,27 @@ def transform(key, value) def transformers { - 'alternativeLocationId' => ->(obj) { return :alternative_location_id, obj['alternativeLocationId'] }, - 'authEnabled' => ->(obj) { return :auth_enabled, obj['authEnabled'] }, - 'authorizedNetwork' => ->(obj) { return :authorized_network, obj['authorizedNetwork'] }, - 'connectMode' => ->(obj) { return :connect_mode, obj['connectMode'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'currentLocationId' => ->(obj) { return :current_location_id, obj['currentLocationId'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'host' => ->(obj) { return :host, obj['host'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'redisConfigs' => ->(obj) { return :redis_configs, obj['redisConfigs'] }, - 'locationId' => ->(obj) { return :location_id, obj['locationId'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'memorySizeGb' => ->(obj) { return :memory_size_gb, obj['memorySizeGb'] }, - 'port' => ->(obj) { return :port, obj['port'] }, - 'persistenceIamIdentity' => ->(obj) { return :persistence_iam_identity, obj['persistenceIamIdentity'] }, - 'redisVersion' => ->(obj) { return :redis_version, obj['redisVersion'] }, - 'reservedIpRange' => ->(obj) { return :reserved_ip_range, obj['reservedIpRange'] }, - 'tier' => ->(obj) { return :tier, obj['tier'] }, - 'transitEncryptionMode' => ->(obj) { return :transit_encryption_mode, obj['transitEncryptionMode'] }, - 'serverCaCerts' => ->(obj) { return :server_ca_certs, GoogleInSpec::Redis::Property::InstanceServerCaCertsArray.parse(obj['serverCaCerts'], to_s) }, - 'region' => ->(obj) { return :region, obj['region'] }, + 'alternativeLocationId' => ->(obj) { [:alternative_location_id, obj['alternativeLocationId']] }, + 'authEnabled' => ->(obj) { [:auth_enabled, obj['authEnabled']] }, + 'authorizedNetwork' => ->(obj) { [:authorized_network, obj['authorizedNetwork']] }, + 'connectMode' => ->(obj) { [:connect_mode, obj['connectMode']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'currentLocationId' => ->(obj) { [:current_location_id, obj['currentLocationId']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'host' => ->(obj) { [:host, obj['host']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'redisConfigs' => ->(obj) { [:redis_configs, obj['redisConfigs']] }, + 'locationId' => ->(obj) { [:location_id, obj['locationId']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'memorySizeGb' => ->(obj) { [:memory_size_gb, obj['memorySizeGb']] }, + 'port' => ->(obj) { [:port, obj['port']] }, + 'persistenceIamIdentity' => ->(obj) { [:persistence_iam_identity, obj['persistenceIamIdentity']] }, + 'redisVersion' => ->(obj) { [:redis_version, obj['redisVersion']] }, + 'reservedIpRange' => ->(obj) { [:reserved_ip_range, obj['reservedIpRange']] }, + 'tier' => ->(obj) { [:tier, obj['tier']] }, + 'transitEncryptionMode' => ->(obj) { [:transit_encryption_mode, obj['transitEncryptionMode']] }, + 'serverCaCerts' => ->(obj) { [:server_ca_certs, GoogleInSpec::Redis::Property::InstanceServerCaCertsArray.parse(obj['serverCaCerts'], to_s)] }, + 'region' => ->(obj) { [:region, obj['region']] }, } end diff --git a/libraries/google_resourcemanager_folders.rb b/libraries/google_resourcemanager_folders.rb index ff2ffa00e..5f7666550 100644 --- a/libraries/google_resourcemanager_folders.rb +++ b/libraries/google_resourcemanager_folders.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'lifecycleState' => ->(obj) { return :lifecycle_state, obj['lifecycleState'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'parent' => ->(obj) { return :parent, obj['parent'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'lifecycleState' => ->(obj) { [:lifecycle_state, obj['lifecycleState']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'parent' => ->(obj) { [:parent, obj['parent']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, } end diff --git a/libraries/google_runtime_config_configs.rb b/libraries/google_runtime_config_configs.rb index c634e0cce..ab252842d 100644 --- a/libraries/google_runtime_config_configs.rb +++ b/libraries/google_runtime_config_configs.rb @@ -64,8 +64,8 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_runtime_config_variables.rb b/libraries/google_runtime_config_variables.rb index a985507b3..9967aaa14 100644 --- a/libraries/google_runtime_config_variables.rb +++ b/libraries/google_runtime_config_variables.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'value' => ->(obj) { return :value, obj['value'] }, - 'text' => ->(obj) { return :text, obj['text'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'config' => ->(obj) { return :config, obj['config'] }, + 'value' => ->(obj) { [:value, obj['value']] }, + 'text' => ->(obj) { [:text, obj['text']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'config' => ->(obj) { [:config, obj['config']] }, } end diff --git a/libraries/google_service_account_keys.rb b/libraries/google_service_account_keys.rb index 27eb9944f..facedd7f0 100644 --- a/libraries/google_service_account_keys.rb +++ b/libraries/google_service_account_keys.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :key_name, obj['name'] }, - 'privateKeyType' => ->(obj) { return :private_key_type, obj['privateKeyType'] }, - 'keyAlgorithm' => ->(obj) { return :key_algorithm, obj['keyAlgorithm'] }, - 'privateKeyData' => ->(obj) { return :private_key_data, obj['privateKeyData'] }, - 'publicKeyData' => ->(obj) { return :public_key_data, obj['publicKeyData'] }, - 'validAfterTime' => ->(obj) { return :valid_after_time, parse_time_string(obj['validAfterTime']) }, - 'validBeforeTime' => ->(obj) { return :valid_before_time, parse_time_string(obj['validBeforeTime']) }, - 'keyType' => ->(obj) { return :key_type, obj['keyType'] }, - 'serviceAccount' => ->(obj) { return :service_account, obj['serviceAccount'] }, - 'path' => ->(obj) { return :path, obj['path'] }, + 'name' => ->(obj) { [:key_name, obj['name']] }, + 'privateKeyType' => ->(obj) { [:private_key_type, obj['privateKeyType']] }, + 'keyAlgorithm' => ->(obj) { [:key_algorithm, obj['keyAlgorithm']] }, + 'privateKeyData' => ->(obj) { [:private_key_data, obj['privateKeyData']] }, + 'publicKeyData' => ->(obj) { [:public_key_data, obj['publicKeyData']] }, + 'validAfterTime' => ->(obj) { [:valid_after_time, parse_time_string(obj['validAfterTime'])] }, + 'validBeforeTime' => ->(obj) { [:valid_before_time, parse_time_string(obj['validBeforeTime'])] }, + 'keyType' => ->(obj) { [:key_type, obj['keyType']] }, + 'serviceAccount' => ->(obj) { [:service_account, obj['serviceAccount']] }, + 'path' => ->(obj) { [:path, obj['path']] }, } end diff --git a/libraries/google_service_accounts.rb b/libraries/google_service_accounts.rb index 54e24734c..b793a4e15 100644 --- a/libraries/google_service_accounts.rb +++ b/libraries/google_service_accounts.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :service_account_name, obj['name'] }, - 'projectId' => ->(obj) { return :project_id, obj['projectId'] }, - 'uniqueId' => ->(obj) { return :service_account_id, obj['uniqueId'] }, - 'email' => ->(obj) { return :service_account_email, obj['email'] }, - 'displayName' => ->(obj) { return :service_account_display_name, obj['displayName'] }, - 'oauth2ClientId' => ->(obj) { return :oauth2_client_id, obj['oauth2ClientId'] }, + 'name' => ->(obj) { [:service_account_name, obj['name']] }, + 'projectId' => ->(obj) { [:project_id, obj['projectId']] }, + 'uniqueId' => ->(obj) { [:service_account_id, obj['uniqueId']] }, + 'email' => ->(obj) { [:service_account_email, obj['email']] }, + 'displayName' => ->(obj) { [:service_account_display_name, obj['displayName']] }, + 'oauth2ClientId' => ->(obj) { [:oauth2_client_id, obj['oauth2ClientId']] }, } end diff --git a/libraries/google_sourcerepo_repositories.rb b/libraries/google_sourcerepo_repositories.rb index 3fe360ecb..40c3b4166 100644 --- a/libraries/google_sourcerepo_repositories.rb +++ b/libraries/google_sourcerepo_repositories.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'url' => ->(obj) { return :url, obj['url'] }, - 'size' => ->(obj) { return :size, obj['size'] }, - 'pubsubConfigs' => ->(obj) { return :pubsub_configs, obj['pubsubConfigs'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'url' => ->(obj) { [:url, obj['url']] }, + 'size' => ->(obj) { [:size, obj['size']] }, + 'pubsubConfigs' => ->(obj) { [:pubsub_configs, obj['pubsubConfigs']] }, } end diff --git a/libraries/google_spanner_databases.rb b/libraries/google_spanner_databases.rb index 58a3874b2..d00ebe64d 100644 --- a/libraries/google_spanner_databases.rb +++ b/libraries/google_spanner_databases.rb @@ -64,8 +64,8 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'instance' => ->(obj) { return :instance, obj['instance'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'instance' => ->(obj) { [:instance, obj['instance']] }, } end diff --git a/libraries/google_spanner_instances.rb b/libraries/google_spanner_instances.rb index f80abb030..dfb0e67b7 100644 --- a/libraries/google_spanner_instances.rb +++ b/libraries/google_spanner_instances.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'config' => ->(obj) { return :config, obj['config'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'nodeCount' => ->(obj) { return :node_count, obj['nodeCount'] }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'config' => ->(obj) { [:config, obj['config']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'nodeCount' => ->(obj) { [:node_count, obj['nodeCount']] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, } end diff --git a/libraries/google_sql_database_instances.rb b/libraries/google_sql_database_instances.rb index 0764801b0..59f9c49be 100644 --- a/libraries/google_sql_database_instances.rb +++ b/libraries/google_sql_database_instances.rb @@ -81,25 +81,25 @@ def transform(key, value) def transformers { - 'backendType' => ->(obj) { return :backend_type, obj['backendType'] }, - 'kind' => ->(obj) { return :kind, obj['kind'] }, - 'connectionName' => ->(obj) { return :connection_name, obj['connectionName'] }, - 'databaseVersion' => ->(obj) { return :instance_version, obj['databaseVersion'] }, - 'failoverReplica' => ->(obj) { return :failover_replica, GoogleInSpec::SQL::Property::DatabaseInstanceFailoverReplica.new(obj['failoverReplica'], to_s) }, - 'instanceType' => ->(obj) { return :instance_type, obj['instanceType'] }, - 'ipAddresses' => ->(obj) { return :ip_addresses, GoogleInSpec::SQL::Property::DatabaseInstanceIpAddressesArray.parse(obj['ipAddresses'], to_s) }, - 'ipv6Address' => ->(obj) { return :ipv6_address, obj['ipv6Address'] }, - 'masterInstanceName' => ->(obj) { return :master_instance_name, obj['masterInstanceName'] }, - 'maxDiskSize' => ->(obj) { return :max_disk_size, obj['maxDiskSize'] }, - 'name' => ->(obj) { return :instance_name, obj['name'] }, - 'region' => ->(obj) { return :instance_region, obj['region'] }, - 'replicaConfiguration' => ->(obj) { return :replica_configuration, GoogleInSpec::SQL::Property::DatabaseInstanceReplicaConfiguration.new(obj['replicaConfiguration'], to_s) }, - 'settings' => ->(obj) { return :settings, GoogleInSpec::SQL::Property::DatabaseInstanceSettings.new(obj['settings'], to_s) }, - 'gceZone' => ->(obj) { return :instance_zone, obj['gceZone'] }, - 'state' => ->(obj) { return :instance_state, obj['state'] }, - 'diskEncryptionConfiguration' => ->(obj) { return :disk_encryption_configuration, GoogleInSpec::SQL::Property::DatabaseInstanceDiskEncryptionConfiguration.new(obj['diskEncryptionConfiguration'], to_s) }, - 'diskEncryptionStatus' => ->(obj) { return :disk_encryption_status, GoogleInSpec::SQL::Property::DatabaseInstanceDiskEncryptionStatus.new(obj['diskEncryptionStatus'], to_s) }, - 'serverCaCert' => ->(obj) { return :server_ca_cert, GoogleInSpec::SQL::Property::DatabaseInstanceServerCaCert.new(obj['serverCaCert'], to_s) }, + 'backendType' => ->(obj) { [:backend_type, obj['backendType']] }, + 'kind' => ->(obj) { [:kind, obj['kind']] }, + 'connectionName' => ->(obj) { [:connection_name, obj['connectionName']] }, + 'databaseVersion' => ->(obj) { [:instance_version, obj['databaseVersion']] }, + 'failoverReplica' => ->(obj) { [:failover_replica, GoogleInSpec::SQL::Property::DatabaseInstanceFailoverReplica.new(obj['failoverReplica'], to_s)] }, + 'instanceType' => ->(obj) { [:instance_type, obj['instanceType']] }, + 'ipAddresses' => ->(obj) { [:ip_addresses, GoogleInSpec::SQL::Property::DatabaseInstanceIpAddressesArray.parse(obj['ipAddresses'], to_s)] }, + 'ipv6Address' => ->(obj) { [:ipv6_address, obj['ipv6Address']] }, + 'masterInstanceName' => ->(obj) { [:master_instance_name, obj['masterInstanceName']] }, + 'maxDiskSize' => ->(obj) { [:max_disk_size, obj['maxDiskSize']] }, + 'name' => ->(obj) { [:instance_name, obj['name']] }, + 'region' => ->(obj) { [:instance_region, obj['region']] }, + 'replicaConfiguration' => ->(obj) { [:replica_configuration, GoogleInSpec::SQL::Property::DatabaseInstanceReplicaConfiguration.new(obj['replicaConfiguration'], to_s)] }, + 'settings' => ->(obj) { [:settings, GoogleInSpec::SQL::Property::DatabaseInstanceSettings.new(obj['settings'], to_s)] }, + 'gceZone' => ->(obj) { [:instance_zone, obj['gceZone']] }, + 'state' => ->(obj) { [:instance_state, obj['state']] }, + 'diskEncryptionConfiguration' => ->(obj) { [:disk_encryption_configuration, GoogleInSpec::SQL::Property::DatabaseInstanceDiskEncryptionConfiguration.new(obj['diskEncryptionConfiguration'], to_s)] }, + 'diskEncryptionStatus' => ->(obj) { [:disk_encryption_status, GoogleInSpec::SQL::Property::DatabaseInstanceDiskEncryptionStatus.new(obj['diskEncryptionStatus'], to_s)] }, + 'serverCaCert' => ->(obj) { [:server_ca_cert, GoogleInSpec::SQL::Property::DatabaseInstanceServerCaCert.new(obj['serverCaCert'], to_s)] }, } end diff --git a/libraries/google_sql_databases.rb b/libraries/google_sql_databases.rb index 0d7b3dfae..35f758179 100644 --- a/libraries/google_sql_databases.rb +++ b/libraries/google_sql_databases.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'charset' => ->(obj) { return :charset, obj['charset'] }, - 'collation' => ->(obj) { return :collation, obj['collation'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'instance' => ->(obj) { return :instance, obj['instance'] }, + 'charset' => ->(obj) { [:charset, obj['charset']] }, + 'collation' => ->(obj) { [:collation, obj['collation']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'instance' => ->(obj) { [:instance, obj['instance']] }, } end diff --git a/libraries/google_sql_flags.rb b/libraries/google_sql_flags.rb index 5cd59215c..e831bc765 100644 --- a/libraries/google_sql_flags.rb +++ b/libraries/google_sql_flags.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'allowedStringValues' => ->(obj) { return :allowed_string_values, obj['allowedStringValues'] }, - 'appliesTo' => ->(obj) { return :applies_to, obj['appliesTo'] }, - 'maxValue' => ->(obj) { return :max_value, obj['maxValue'] }, - 'minValue' => ->(obj) { return :min_value, obj['minValue'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'requiresRestart' => ->(obj) { return :requires_restart, obj['requiresRestart'] }, - 'type' => ->(obj) { return :type, obj['type'] }, + 'allowedStringValues' => ->(obj) { [:allowed_string_values, obj['allowedStringValues']] }, + 'appliesTo' => ->(obj) { [:applies_to, obj['appliesTo']] }, + 'maxValue' => ->(obj) { [:max_value, obj['maxValue']] }, + 'minValue' => ->(obj) { [:min_value, obj['minValue']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'requiresRestart' => ->(obj) { [:requires_restart, obj['requiresRestart']] }, + 'type' => ->(obj) { [:type, obj['type']] }, } end diff --git a/libraries/google_sql_operations.rb b/libraries/google_sql_operations.rb index fcab5609a..bdc954076 100644 --- a/libraries/google_sql_operations.rb +++ b/libraries/google_sql_operations.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'user' => ->(obj) { return :user, obj['user'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'status' => ->(obj) { return :status, obj['status'] }, - 'operationType' => ->(obj) { return :operation_type, obj['operationType'] }, - 'instance' => ->(obj) { return :instance, obj['instance'] }, + 'user' => ->(obj) { [:user, obj['user']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'status' => ->(obj) { [:status, obj['status']] }, + 'operationType' => ->(obj) { [:operation_type, obj['operationType']] }, + 'instance' => ->(obj) { [:instance, obj['instance']] }, } end diff --git a/libraries/google_sql_ssl_certs.rb b/libraries/google_sql_ssl_certs.rb index f1d4bf2c0..9c247dc0b 100644 --- a/libraries/google_sql_ssl_certs.rb +++ b/libraries/google_sql_ssl_certs.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'cert' => ->(obj) { return :cert, obj['cert'] }, - 'certSerialNumber' => ->(obj) { return :cert_serial_number, obj['certSerialNumber'] }, - 'commonName' => ->(obj) { return :common_name, obj['commonName'] }, - 'createTime' => ->(obj) { return :create_time, parse_time_string(obj['createTime']) }, - 'expirationTime' => ->(obj) { return :expiration_time, parse_time_string(obj['expirationTime']) }, - 'instance' => ->(obj) { return :instance, obj['instance'] }, - 'sha1Fingerprint' => ->(obj) { return :sha1_fingerprint, obj['sha1Fingerprint'] }, + 'cert' => ->(obj) { [:cert, obj['cert']] }, + 'certSerialNumber' => ->(obj) { [:cert_serial_number, obj['certSerialNumber']] }, + 'commonName' => ->(obj) { [:common_name, obj['commonName']] }, + 'createTime' => ->(obj) { [:create_time, parse_time_string(obj['createTime'])] }, + 'expirationTime' => ->(obj) { [:expiration_time, parse_time_string(obj['expirationTime'])] }, + 'instance' => ->(obj) { [:instance, obj['instance']] }, + 'sha1Fingerprint' => ->(obj) { [:sha1_fingerprint, obj['sha1Fingerprint']] }, } end diff --git a/libraries/google_sql_users.rb b/libraries/google_sql_users.rb index 71ddbdb2d..6d7af9a23 100644 --- a/libraries/google_sql_users.rb +++ b/libraries/google_sql_users.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'host' => ->(obj) { return :user_host, obj['host'] }, - 'name' => ->(obj) { return :user_name, obj['name'] }, - 'instance' => ->(obj) { return :user_instance, obj['instance'] }, - 'password' => ->(obj) { return :password, obj['password'] }, + 'host' => ->(obj) { [:user_host, obj['host']] }, + 'name' => ->(obj) { [:user_name, obj['name']] }, + 'instance' => ->(obj) { [:user_instance, obj['instance']] }, + 'password' => ->(obj) { [:password, obj['password']] }, } end diff --git a/libraries/google_storage_bucket_objects.rb b/libraries/google_storage_bucket_objects.rb index 34fa26659..b652cf1a5 100644 --- a/libraries/google_storage_bucket_objects.rb +++ b/libraries/google_storage_bucket_objects.rb @@ -79,23 +79,23 @@ def transform(key, value) def transformers { - 'bucket' => ->(obj) { return :object_bucket, obj['bucket'] }, - 'object' => ->(obj) { return :object, obj['object'] }, - 'contentType' => ->(obj) { return :content_type, obj['contentType'] }, - 'crc32c' => ->(obj) { return :crc32c, obj['crc32c'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'generation' => ->(obj) { return :generation, obj['generation'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'md5Hash' => ->(obj) { return :md5_hash, obj['md5Hash'] }, - 'mediaLink' => ->(obj) { return :media_link, obj['mediaLink'] }, - 'metageneration' => ->(obj) { return :metageneration, obj['metageneration'] }, - 'name' => ->(obj) { return :object_name, obj['name'] }, - 'size' => ->(obj) { return :size, obj['size'] }, - 'storageClass' => ->(obj) { return :storage_class, obj['storageClass'] }, - 'timeCreated' => ->(obj) { return :object_created_times, parse_time_string(obj['timeCreated']) }, - 'timeDeleted' => ->(obj) { return :time_deleted, parse_time_string(obj['timeDeleted']) }, - 'timeStorageClassUpdated' => ->(obj) { return :time_storage_class_updated, parse_time_string(obj['timeStorageClassUpdated']) }, - 'updated' => ->(obj) { return :time_updated, parse_time_string(obj['updated']) }, + 'bucket' => ->(obj) { [:object_bucket, obj['bucket']] }, + 'object' => ->(obj) { [:object, obj['object']] }, + 'contentType' => ->(obj) { [:content_type, obj['contentType']] }, + 'crc32c' => ->(obj) { [:crc32c, obj['crc32c']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'generation' => ->(obj) { [:generation, obj['generation']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'md5Hash' => ->(obj) { [:md5_hash, obj['md5Hash']] }, + 'mediaLink' => ->(obj) { [:media_link, obj['mediaLink']] }, + 'metageneration' => ->(obj) { [:metageneration, obj['metageneration']] }, + 'name' => ->(obj) { [:object_name, obj['name']] }, + 'size' => ->(obj) { [:size, obj['size']] }, + 'storageClass' => ->(obj) { [:storage_class, obj['storageClass']] }, + 'timeCreated' => ->(obj) { [:object_created_times, parse_time_string(obj['timeCreated'])] }, + 'timeDeleted' => ->(obj) { [:time_deleted, parse_time_string(obj['timeDeleted'])] }, + 'timeStorageClassUpdated' => ->(obj) { [:time_storage_class_updated, parse_time_string(obj['timeStorageClassUpdated'])] }, + 'updated' => ->(obj) { [:time_updated, parse_time_string(obj['updated'])] }, } end diff --git a/libraries/google_storage_buckets.rb b/libraries/google_storage_buckets.rb index 5eb9dc9ad..f03f4e8e2 100644 --- a/libraries/google_storage_buckets.rb +++ b/libraries/google_storage_buckets.rb @@ -84,28 +84,28 @@ def transform(key, value) def transformers { - 'acl' => ->(obj) { return :acl, GoogleInSpec::Storage::Property::BucketAclArray.parse(obj['acl'], to_s) }, - 'cors' => ->(obj) { return :cors, GoogleInSpec::Storage::Property::BucketCorsArray.parse(obj['cors'], to_s) }, - 'defaultEventBasedHold' => ->(obj) { return :default_event_based_hold, obj['defaultEventBasedHold'] }, - 'defaultObjectAcl' => ->(obj) { return :default_object_acl, GoogleInSpec::Storage::Property::BucketDefaultObjectAclArray.parse(obj['defaultObjectAcl'], to_s) }, - 'id' => ->(obj) { return :bucket_id, obj['id'] }, - 'lifecycle' => ->(obj) { return :lifecycle, GoogleInSpec::Storage::Property::BucketLifecycle.new(obj['lifecycle'], to_s) }, - 'location' => ->(obj) { return :bucket_location, obj['location'] }, - 'logging' => ->(obj) { return :logging, GoogleInSpec::Storage::Property::BucketLogging.new(obj['logging'], to_s) }, - 'metageneration' => ->(obj) { return :metageneration, obj['metageneration'] }, - 'name' => ->(obj) { return :bucket_name, obj['name'] }, - 'owner' => ->(obj) { return :owner, GoogleInSpec::Storage::Property::BucketOwner.new(obj['owner'], to_s) }, - 'projectNumber' => ->(obj) { return :bucket_project_number, obj['projectNumber'] }, - 'storageClass' => ->(obj) { return :storage_class, obj['storageClass'] }, - 'timeCreated' => ->(obj) { return :time_created, parse_time_string(obj['timeCreated']) }, - 'updated' => ->(obj) { return :updated, parse_time_string(obj['updated']) }, - 'versioning' => ->(obj) { return :versioning, GoogleInSpec::Storage::Property::BucketVersioning.new(obj['versioning'], to_s) }, - 'website' => ->(obj) { return :website, GoogleInSpec::Storage::Property::BucketWebsite.new(obj['website'], to_s) }, - 'labels' => ->(obj) { return :labels, obj['labels'] }, - 'encryption' => ->(obj) { return :encryption, GoogleInSpec::Storage::Property::BucketEncryption.new(obj['encryption'], to_s) }, - 'retentionPolicy' => ->(obj) { return :retention_policy, GoogleInSpec::Storage::Property::BucketRetentionPolicy.new(obj['retentionPolicy'], to_s) }, - 'project' => ->(obj) { return :project, obj['project'] }, - 'predefinedDefaultObjectAcl' => ->(obj) { return :predefined_default_object_acl, obj['predefinedDefaultObjectAcl'] }, + 'acl' => ->(obj) { [:acl, GoogleInSpec::Storage::Property::BucketAclArray.parse(obj['acl'], to_s)] }, + 'cors' => ->(obj) { [:cors, GoogleInSpec::Storage::Property::BucketCorsArray.parse(obj['cors'], to_s)] }, + 'defaultEventBasedHold' => ->(obj) { [:default_event_based_hold, obj['defaultEventBasedHold']] }, + 'defaultObjectAcl' => ->(obj) { [:default_object_acl, GoogleInSpec::Storage::Property::BucketDefaultObjectAclArray.parse(obj['defaultObjectAcl'], to_s)] }, + 'id' => ->(obj) { [:bucket_id, obj['id']] }, + 'lifecycle' => ->(obj) { [:lifecycle, GoogleInSpec::Storage::Property::BucketLifecycle.new(obj['lifecycle'], to_s)] }, + 'location' => ->(obj) { [:bucket_location, obj['location']] }, + 'logging' => ->(obj) { [:logging, GoogleInSpec::Storage::Property::BucketLogging.new(obj['logging'], to_s)] }, + 'metageneration' => ->(obj) { [:metageneration, obj['metageneration']] }, + 'name' => ->(obj) { [:bucket_name, obj['name']] }, + 'owner' => ->(obj) { [:owner, GoogleInSpec::Storage::Property::BucketOwner.new(obj['owner'], to_s)] }, + 'projectNumber' => ->(obj) { [:bucket_project_number, obj['projectNumber']] }, + 'storageClass' => ->(obj) { [:storage_class, obj['storageClass']] }, + 'timeCreated' => ->(obj) { [:time_created, parse_time_string(obj['timeCreated'])] }, + 'updated' => ->(obj) { [:updated, parse_time_string(obj['updated'])] }, + 'versioning' => ->(obj) { [:versioning, GoogleInSpec::Storage::Property::BucketVersioning.new(obj['versioning'], to_s)] }, + 'website' => ->(obj) { [:website, GoogleInSpec::Storage::Property::BucketWebsite.new(obj['website'], to_s)] }, + 'labels' => ->(obj) { [:labels, obj['labels']] }, + 'encryption' => ->(obj) { [:encryption, GoogleInSpec::Storage::Property::BucketEncryption.new(obj['encryption'], to_s)] }, + 'retentionPolicy' => ->(obj) { [:retention_policy, GoogleInSpec::Storage::Property::BucketRetentionPolicy.new(obj['retentionPolicy'], to_s)] }, + 'project' => ->(obj) { [:project, obj['project']] }, + 'predefinedDefaultObjectAcl' => ->(obj) { [:predefined_default_object_acl, obj['predefinedDefaultObjectAcl']] }, } end diff --git a/libraries/google_vertex_ai_batch_prediction_jobs.rb b/libraries/google_vertex_ai_batch_prediction_jobs.rb index af413a962..25e16cb1b 100644 --- a/libraries/google_vertex_ai_batch_prediction_jobs.rb +++ b/libraries/google_vertex_ai_batch_prediction_jobs.rb @@ -89,33 +89,33 @@ def transform(key, value) def transformers { - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'modelParameters' => ->(obj) { return :model_parameters, obj['modelParameters'] }, - 'instanceConfig' => ->(obj) { return :instance_config, GoogleInSpec::VertexAI::Property::BatchPredictionJobInstanceConfig.new(obj['instanceConfig'], to_s) }, - 'modelVersionId' => ->(obj) { return :model_version_id, obj['modelVersionId'] }, - 'dedicatedResources' => ->(obj) { return :dedicated_resources, GoogleInSpec::VertexAI::Property::BatchPredictionJobDedicatedResources.new(obj['dedicatedResources'], to_s) }, - 'outputInfo' => ->(obj) { return :output_info, GoogleInSpec::VertexAI::Property::BatchPredictionJobOutputInfo.new(obj['outputInfo'], to_s) }, - 'disableContainerLogging' => ->(obj) { return :disable_container_logging, obj['disableContainerLogging'] }, - 'explanationSpec' => ->(obj) { return :explanation_spec, GoogleInSpec::VertexAI::Property::BatchPredictionJobExplanationSpec.new(obj['explanationSpec'], to_s) }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'generateExplanation' => ->(obj) { return :generate_explanation, obj['generateExplanation'] }, - 'resourcesConsumed' => ->(obj) { return :resources_consumed, GoogleInSpec::VertexAI::Property::BatchPredictionJobResourcesConsumed.new(obj['resourcesConsumed'], to_s) }, - 'error' => ->(obj) { return :error, GoogleInSpec::VertexAI::Property::BatchPredictionJobError.new(obj['error'], to_s) }, - 'inputConfig' => ->(obj) { return :input_config, GoogleInSpec::VertexAI::Property::BatchPredictionJobInputConfig.new(obj['inputConfig'], to_s) }, - 'unmanagedContainerModel' => ->(obj) { return :unmanaged_container_model, GoogleInSpec::VertexAI::Property::BatchPredictionJobUnmanagedContainerModel.new(obj['unmanagedContainerModel'], to_s) }, - 'completionStats' => ->(obj) { return :completion_stats, GoogleInSpec::VertexAI::Property::BatchPredictionJobCompletionStats.new(obj['completionStats'], to_s) }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'manualBatchTuningParameters' => ->(obj) { return :manual_batch_tuning_parameters, GoogleInSpec::VertexAI::Property::BatchPredictionJobManualBatchTuningParameters.new(obj['manualBatchTuningParameters'], to_s) }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::BatchPredictionJobLabels.new(obj['labels'], to_s) }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::BatchPredictionJobEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'partialFailures' => ->(obj) { return :partial_failures, GoogleInSpec::VertexAI::Property::BatchPredictionJobPartialFailuresArray.parse(obj['partialFailures'], to_s) }, - 'model' => ->(obj) { return :model, obj['model'] }, - 'outputConfig' => ->(obj) { return :output_config, GoogleInSpec::VertexAI::Property::BatchPredictionJobOutputConfig.new(obj['outputConfig'], to_s) }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'serviceAccount' => ->(obj) { return :service_account, obj['serviceAccount'] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'modelParameters' => ->(obj) { [:model_parameters, obj['modelParameters']] }, + 'instanceConfig' => ->(obj) { [:instance_config, GoogleInSpec::VertexAI::Property::BatchPredictionJobInstanceConfig.new(obj['instanceConfig'], to_s)] }, + 'modelVersionId' => ->(obj) { [:model_version_id, obj['modelVersionId']] }, + 'dedicatedResources' => ->(obj) { [:dedicated_resources, GoogleInSpec::VertexAI::Property::BatchPredictionJobDedicatedResources.new(obj['dedicatedResources'], to_s)] }, + 'outputInfo' => ->(obj) { [:output_info, GoogleInSpec::VertexAI::Property::BatchPredictionJobOutputInfo.new(obj['outputInfo'], to_s)] }, + 'disableContainerLogging' => ->(obj) { [:disable_container_logging, obj['disableContainerLogging']] }, + 'explanationSpec' => ->(obj) { [:explanation_spec, GoogleInSpec::VertexAI::Property::BatchPredictionJobExplanationSpec.new(obj['explanationSpec'], to_s)] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'generateExplanation' => ->(obj) { [:generate_explanation, obj['generateExplanation']] }, + 'resourcesConsumed' => ->(obj) { [:resources_consumed, GoogleInSpec::VertexAI::Property::BatchPredictionJobResourcesConsumed.new(obj['resourcesConsumed'], to_s)] }, + 'error' => ->(obj) { [:error, GoogleInSpec::VertexAI::Property::BatchPredictionJobError.new(obj['error'], to_s)] }, + 'inputConfig' => ->(obj) { [:input_config, GoogleInSpec::VertexAI::Property::BatchPredictionJobInputConfig.new(obj['inputConfig'], to_s)] }, + 'unmanagedContainerModel' => ->(obj) { [:unmanaged_container_model, GoogleInSpec::VertexAI::Property::BatchPredictionJobUnmanagedContainerModel.new(obj['unmanagedContainerModel'], to_s)] }, + 'completionStats' => ->(obj) { [:completion_stats, GoogleInSpec::VertexAI::Property::BatchPredictionJobCompletionStats.new(obj['completionStats'], to_s)] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'manualBatchTuningParameters' => ->(obj) { [:manual_batch_tuning_parameters, GoogleInSpec::VertexAI::Property::BatchPredictionJobManualBatchTuningParameters.new(obj['manualBatchTuningParameters'], to_s)] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::BatchPredictionJobLabels.new(obj['labels'], to_s)] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::BatchPredictionJobEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'partialFailures' => ->(obj) { [:partial_failures, GoogleInSpec::VertexAI::Property::BatchPredictionJobPartialFailuresArray.parse(obj['partialFailures'], to_s)] }, + 'model' => ->(obj) { [:model, obj['model']] }, + 'outputConfig' => ->(obj) { [:output_config, GoogleInSpec::VertexAI::Property::BatchPredictionJobOutputConfig.new(obj['outputConfig'], to_s)] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'serviceAccount' => ->(obj) { [:service_account, obj['serviceAccount']] }, } end diff --git a/libraries/google_vertex_ai_custom_jobs.rb b/libraries/google_vertex_ai_custom_jobs.rb index d2bdb03b5..09ead2252 100644 --- a/libraries/google_vertex_ai_custom_jobs.rb +++ b/libraries/google_vertex_ai_custom_jobs.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'error' => ->(obj) { return :error, GoogleInSpec::VertexAI::Property::CustomJobError.new(obj['error'], to_s) }, - 'webAccessUris' => ->(obj) { return :web_access_uris, GoogleInSpec::VertexAI::Property::CustomJobWebAccessUris.new(obj['webAccessUris'], to_s) }, - 'jobSpec' => ->(obj) { return :job_spec, GoogleInSpec::VertexAI::Property::CustomJobJobSpec.new(obj['jobSpec'], to_s) }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::CustomJobLabels.new(obj['labels'], to_s) }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::CustomJobEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'error' => ->(obj) { [:error, GoogleInSpec::VertexAI::Property::CustomJobError.new(obj['error'], to_s)] }, + 'webAccessUris' => ->(obj) { [:web_access_uris, GoogleInSpec::VertexAI::Property::CustomJobWebAccessUris.new(obj['webAccessUris'], to_s)] }, + 'jobSpec' => ->(obj) { [:job_spec, GoogleInSpec::VertexAI::Property::CustomJobJobSpec.new(obj['jobSpec'], to_s)] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::CustomJobLabels.new(obj['labels'], to_s)] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::CustomJobEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_vertex_ai_dataset_data_item_annotations.rb b/libraries/google_vertex_ai_dataset_data_item_annotations.rb index e40ec5875..1312a0843 100644 --- a/libraries/google_vertex_ai_dataset_data_item_annotations.rb +++ b/libraries/google_vertex_ai_dataset_data_item_annotations.rb @@ -69,14 +69,14 @@ def transform(key, value) def transformers { - 'payloadSchemaUri' => ->(obj) { return :payload_schema_uri, obj['payloadSchemaUri'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::DatasetDataItemAnnotationLabels.new(obj['labels'], to_s) }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'payload' => ->(obj) { return :payload, obj['payload'] }, - 'annotationSource' => ->(obj) { return :annotation_source, obj['annotationSource'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'payloadSchemaUri' => ->(obj) { [:payload_schema_uri, obj['payloadSchemaUri']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::DatasetDataItemAnnotationLabels.new(obj['labels'], to_s)] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'payload' => ->(obj) { [:payload, obj['payload']] }, + 'annotationSource' => ->(obj) { [:annotation_source, obj['annotationSource']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_vertex_ai_datasets.rb b/libraries/google_vertex_ai_datasets.rb index 97b383af7..6fa0a9235 100644 --- a/libraries/google_vertex_ai_datasets.rb +++ b/libraries/google_vertex_ai_datasets.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'savedQueries' => ->(obj) { return :saved_queries, GoogleInSpec::VertexAI::Property::DatasetSavedQueriesArray.parse(obj['savedQueries'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::DatasetEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::DatasetLabels.new(obj['labels'], to_s) }, - 'metadataSchemaUri' => ->(obj) { return :metadata_schema_uri, obj['metadataSchemaUri'] }, - 'metadataArtifact' => ->(obj) { return :metadata_artifact, obj['metadataArtifact'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'dataItemCount' => ->(obj) { return :data_item_count, obj['dataItemCount'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, + 'savedQueries' => ->(obj) { [:saved_queries, GoogleInSpec::VertexAI::Property::DatasetSavedQueriesArray.parse(obj['savedQueries'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::DatasetEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::DatasetLabels.new(obj['labels'], to_s)] }, + 'metadataSchemaUri' => ->(obj) { [:metadata_schema_uri, obj['metadataSchemaUri']] }, + 'metadataArtifact' => ->(obj) { [:metadata_artifact, obj['metadataArtifact']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'dataItemCount' => ->(obj) { [:data_item_count, obj['dataItemCount']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, } end diff --git a/libraries/google_vertex_ai_datasets_data_items.rb b/libraries/google_vertex_ai_datasets_data_items.rb index 9f17ff850..ad294ac4f 100644 --- a/libraries/google_vertex_ai_datasets_data_items.rb +++ b/libraries/google_vertex_ai_datasets_data_items.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'payload' => ->(obj) { return :payload, obj['payload'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::DatasetsDataItemLabels.new(obj['labels'], to_s) }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'payload' => ->(obj) { [:payload, obj['payload']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::DatasetsDataItemLabels.new(obj['labels'], to_s)] }, } end diff --git a/libraries/google_vertex_ai_datasets_saved_queries.rb b/libraries/google_vertex_ai_datasets_saved_queries.rb index bdd6146b3..f22b3fd2e 100644 --- a/libraries/google_vertex_ai_datasets_saved_queries.rb +++ b/libraries/google_vertex_ai_datasets_saved_queries.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'annotationSpecCount' => ->(obj) { return :annotation_spec_count, obj['annotationSpecCount'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'supportAutomlTraining' => ->(obj) { return :support_automl_training, obj['supportAutomlTraining'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'problemType' => ->(obj) { return :problem_type, obj['problemType'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'annotationFilter' => ->(obj) { return :annotation_filter, obj['annotationFilter'] }, + 'annotationSpecCount' => ->(obj) { [:annotation_spec_count, obj['annotationSpecCount']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'supportAutomlTraining' => ->(obj) { [:support_automl_training, obj['supportAutomlTraining']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'problemType' => ->(obj) { [:problem_type, obj['problemType']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'annotationFilter' => ->(obj) { [:annotation_filter, obj['annotationFilter']] }, } end diff --git a/libraries/google_vertex_ai_endpoints.rb b/libraries/google_vertex_ai_endpoints.rb index c31c6b91a..189af0409 100644 --- a/libraries/google_vertex_ai_endpoints.rb +++ b/libraries/google_vertex_ai_endpoints.rb @@ -76,20 +76,20 @@ def transform(key, value) def transformers { - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::EndpointEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'enablePrivateServiceConnect' => ->(obj) { return :enable_private_service_connect, obj['enablePrivateServiceConnect'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'modelDeploymentMonitoringJob' => ->(obj) { return :model_deployment_monitoring_job, obj['modelDeploymentMonitoringJob'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'deployedModels' => ->(obj) { return :deployed_models, GoogleInSpec::VertexAI::Property::EndpointDeployedModelsArray.parse(obj['deployedModels'], to_s) }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'trafficSplit' => ->(obj) { return :traffic_split, GoogleInSpec::VertexAI::Property::EndpointTrafficSplit.new(obj['trafficSplit'], to_s) }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::EndpointLabels.new(obj['labels'], to_s) }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'predictRequestResponseLoggingConfig' => ->(obj) { return :predict_request_response_logging_config, GoogleInSpec::VertexAI::Property::EndpointPredictRequestResponseLoggingConfig.new(obj['predictRequestResponseLoggingConfig'], to_s) }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::EndpointEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'enablePrivateServiceConnect' => ->(obj) { [:enable_private_service_connect, obj['enablePrivateServiceConnect']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'modelDeploymentMonitoringJob' => ->(obj) { [:model_deployment_monitoring_job, obj['modelDeploymentMonitoringJob']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'deployedModels' => ->(obj) { [:deployed_models, GoogleInSpec::VertexAI::Property::EndpointDeployedModelsArray.parse(obj['deployedModels'], to_s)] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'trafficSplit' => ->(obj) { [:traffic_split, GoogleInSpec::VertexAI::Property::EndpointTrafficSplit.new(obj['trafficSplit'], to_s)] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::EndpointLabels.new(obj['labels'], to_s)] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'predictRequestResponseLoggingConfig' => ->(obj) { [:predict_request_response_logging_config, GoogleInSpec::VertexAI::Property::EndpointPredictRequestResponseLoggingConfig.new(obj['predictRequestResponseLoggingConfig'], to_s)] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_vertex_ai_featurestore_entity_type_features.rb b/libraries/google_vertex_ai_featurestore_entity_type_features.rb index 043e99f5c..42869d217 100644 --- a/libraries/google_vertex_ai_featurestore_entity_type_features.rb +++ b/libraries/google_vertex_ai_featurestore_entity_type_features.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'monitoringStatsAnomalies' => ->(obj) { return :monitoring_stats_anomalies, obj['monitoringStatsAnomalies'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::FeaturestoreEntityTypeFeatureLabels.new(obj['labels'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'disableMonitoring' => ->(obj) { return :disable_monitoring, obj['disableMonitoring'] }, - 'valueType' => ->(obj) { return :value_type, obj['valueType'] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'monitoringStatsAnomalies' => ->(obj) { [:monitoring_stats_anomalies, obj['monitoringStatsAnomalies']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::FeaturestoreEntityTypeFeatureLabels.new(obj['labels'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'disableMonitoring' => ->(obj) { [:disable_monitoring, obj['disableMonitoring']] }, + 'valueType' => ->(obj) { [:value_type, obj['valueType']] }, } end diff --git a/libraries/google_vertex_ai_featurestores.rb b/libraries/google_vertex_ai_featurestores.rb index c9c555ffd..fea7df564 100644 --- a/libraries/google_vertex_ai_featurestores.rb +++ b/libraries/google_vertex_ai_featurestores.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'state' => ->(obj) { return :state, obj['state'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'onlineStorageTtlDays' => ->(obj) { return :online_storage_ttl_days, obj['onlineStorageTtlDays'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::FeaturestoreEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::FeaturestoreLabels.new(obj['labels'], to_s) }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'onlineServingConfig' => ->(obj) { return :online_serving_config, GoogleInSpec::VertexAI::Property::FeaturestoreOnlineServingConfig.new(obj['onlineServingConfig'], to_s) }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'onlineStorageTtlDays' => ->(obj) { [:online_storage_ttl_days, obj['onlineStorageTtlDays']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::FeaturestoreEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::FeaturestoreLabels.new(obj['labels'], to_s)] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'onlineServingConfig' => ->(obj) { [:online_serving_config, GoogleInSpec::VertexAI::Property::FeaturestoreOnlineServingConfig.new(obj['onlineServingConfig'], to_s)] }, } end diff --git a/libraries/google_vertex_ai_featurestores_entity_types.rb b/libraries/google_vertex_ai_featurestores_entity_types.rb index 044f563fe..e8cdade42 100644 --- a/libraries/google_vertex_ai_featurestores_entity_types.rb +++ b/libraries/google_vertex_ai_featurestores_entity_types.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::FeaturestoresEntityTypeLabels.new(obj['labels'], to_s) }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'monitoringConfig' => ->(obj) { return :monitoring_config, GoogleInSpec::VertexAI::Property::FeaturestoresEntityTypeMonitoringConfig.new(obj['monitoringConfig'], to_s) }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'offlineStorageTtlDays' => ->(obj) { return :offline_storage_ttl_days, obj['offlineStorageTtlDays'] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::FeaturestoresEntityTypeLabels.new(obj['labels'], to_s)] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'monitoringConfig' => ->(obj) { [:monitoring_config, GoogleInSpec::VertexAI::Property::FeaturestoresEntityTypeMonitoringConfig.new(obj['monitoringConfig'], to_s)] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'offlineStorageTtlDays' => ->(obj) { [:offline_storage_ttl_days, obj['offlineStorageTtlDays']] }, } end diff --git a/libraries/google_vertex_ai_hyperparameter_tuning_jobs.rb b/libraries/google_vertex_ai_hyperparameter_tuning_jobs.rb index 3aef9e395..63531262c 100644 --- a/libraries/google_vertex_ai_hyperparameter_tuning_jobs.rb +++ b/libraries/google_vertex_ai_hyperparameter_tuning_jobs.rb @@ -78,22 +78,22 @@ def transform(key, value) def transformers { - 'studySpec' => ->(obj) { return :study_spec, obj['studySpec'] }, - 'trials' => ->(obj) { return :trials, obj['trials'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'maxFailedTrialCount' => ->(obj) { return :max_failed_trial_count, obj['maxFailedTrialCount'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, obj['encryptionSpec'] }, - 'error' => ->(obj) { return :error, obj['error'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::HyperparameterTuningJobLabels.new(obj['labels'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'parallelTrialCount' => ->(obj) { return :parallel_trial_count, obj['parallelTrialCount'] }, - 'trialJobSpec' => ->(obj) { return :trial_job_spec, obj['trialJobSpec'] }, - 'maxTrialCount' => ->(obj) { return :max_trial_count, obj['maxTrialCount'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'studySpec' => ->(obj) { [:study_spec, obj['studySpec']] }, + 'trials' => ->(obj) { [:trials, obj['trials']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'maxFailedTrialCount' => ->(obj) { [:max_failed_trial_count, obj['maxFailedTrialCount']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, obj['encryptionSpec']] }, + 'error' => ->(obj) { [:error, obj['error']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::HyperparameterTuningJobLabels.new(obj['labels'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'parallelTrialCount' => ->(obj) { [:parallel_trial_count, obj['parallelTrialCount']] }, + 'trialJobSpec' => ->(obj) { [:trial_job_spec, obj['trialJobSpec']] }, + 'maxTrialCount' => ->(obj) { [:max_trial_count, obj['maxTrialCount']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_vertex_ai_index_endpoints.rb b/libraries/google_vertex_ai_index_endpoints.rb index 0832a49fd..cb13ae6e6 100644 --- a/libraries/google_vertex_ai_index_endpoints.rb +++ b/libraries/google_vertex_ai_index_endpoints.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'deployedIndexes' => ->(obj) { return :deployed_indexes, GoogleInSpec::VertexAI::Property::IndexEndpointDeployedIndexesArray.parse(obj['deployedIndexes'], to_s) }, - 'privateServiceConnectConfig' => ->(obj) { return :private_service_connect_config, GoogleInSpec::VertexAI::Property::IndexEndpointPrivateServiceConnectConfig.new(obj['privateServiceConnectConfig'], to_s) }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'publicEndpointEnabled' => ->(obj) { return :public_endpoint_enabled, obj['publicEndpointEnabled'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::IndexEndpointLabels.new(obj['labels'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'publicEndpointDomainName' => ->(obj) { return :public_endpoint_domain_name, obj['publicEndpointDomainName'] }, - 'enablePrivateServiceConnect' => ->(obj) { return :enable_private_service_connect, obj['enablePrivateServiceConnect'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'description' => ->(obj) { return :description, obj['description'] }, + 'deployedIndexes' => ->(obj) { [:deployed_indexes, GoogleInSpec::VertexAI::Property::IndexEndpointDeployedIndexesArray.parse(obj['deployedIndexes'], to_s)] }, + 'privateServiceConnectConfig' => ->(obj) { [:private_service_connect_config, GoogleInSpec::VertexAI::Property::IndexEndpointPrivateServiceConnectConfig.new(obj['privateServiceConnectConfig'], to_s)] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'publicEndpointEnabled' => ->(obj) { [:public_endpoint_enabled, obj['publicEndpointEnabled']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::IndexEndpointLabels.new(obj['labels'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'publicEndpointDomainName' => ->(obj) { [:public_endpoint_domain_name, obj['publicEndpointDomainName']] }, + 'enablePrivateServiceConnect' => ->(obj) { [:enable_private_service_connect, obj['enablePrivateServiceConnect']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'description' => ->(obj) { [:description, obj['description']] }, } end diff --git a/libraries/google_vertex_ai_indices.rb b/libraries/google_vertex_ai_indices.rb index 1c9e2504e..279844818 100644 --- a/libraries/google_vertex_ai_indices.rb +++ b/libraries/google_vertex_ai_indices.rb @@ -73,18 +73,18 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'indexStats' => ->(obj) { return :index_stats, obj['indexStats'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'deployedIndexes' => ->(obj) { return :deployed_indexes, obj['deployedIndexes'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'metadataSchemaUri' => ->(obj) { return :metadata_schema_uri, obj['metadataSchemaUri'] }, - 'indexUpdateMethod' => ->(obj) { return :index_update_method, obj['indexUpdateMethod'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::IndexLabels.new(obj['labels'], to_s) }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'indexStats' => ->(obj) { [:index_stats, obj['indexStats']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'deployedIndexes' => ->(obj) { [:deployed_indexes, obj['deployedIndexes']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'metadataSchemaUri' => ->(obj) { [:metadata_schema_uri, obj['metadataSchemaUri']] }, + 'indexUpdateMethod' => ->(obj) { [:index_update_method, obj['indexUpdateMethod']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::IndexLabels.new(obj['labels'], to_s)] }, } end diff --git a/libraries/google_vertex_ai_metadata_stores.rb b/libraries/google_vertex_ai_metadata_stores.rb index b4fdb2843..201ffc1ff 100644 --- a/libraries/google_vertex_ai_metadata_stores.rb +++ b/libraries/google_vertex_ai_metadata_stores.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::MetadataStoreEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'state' => ->(obj) { return :state, GoogleInSpec::VertexAI::Property::MetadataStoreState.new(obj['state'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::MetadataStoreEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'state' => ->(obj) { [:state, GoogleInSpec::VertexAI::Property::MetadataStoreState.new(obj['state'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_vertex_ai_metadata_stores_artifacts.rb b/libraries/google_vertex_ai_metadata_stores_artifacts.rb index 307e0ff7f..20426c146 100644 --- a/libraries/google_vertex_ai_metadata_stores_artifacts.rb +++ b/libraries/google_vertex_ai_metadata_stores_artifacts.rb @@ -73,18 +73,18 @@ def transform(key, value) def transformers { - 'schemaVersion' => ->(obj) { return :schema_version, obj['schemaVersion'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'metadata' => ->(obj) { return :metadata, GoogleInSpec::VertexAI::Property::MetadataStoresArtifactMetadata.new(obj['metadata'], to_s) }, - 'uri' => ->(obj) { return :uri, obj['uri'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'schemaTitle' => ->(obj) { return :schema_title, obj['schemaTitle'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::MetadataStoresArtifactLabels.new(obj['labels'], to_s) }, + 'schemaVersion' => ->(obj) { [:schema_version, obj['schemaVersion']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'metadata' => ->(obj) { [:metadata, GoogleInSpec::VertexAI::Property::MetadataStoresArtifactMetadata.new(obj['metadata'], to_s)] }, + 'uri' => ->(obj) { [:uri, obj['uri']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'schemaTitle' => ->(obj) { [:schema_title, obj['schemaTitle']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::MetadataStoresArtifactLabels.new(obj['labels'], to_s)] }, } end diff --git a/libraries/google_vertex_ai_metadata_stores_contexts.rb b/libraries/google_vertex_ai_metadata_stores_contexts.rb index 348dd1e3c..a842335c6 100644 --- a/libraries/google_vertex_ai_metadata_stores_contexts.rb +++ b/libraries/google_vertex_ai_metadata_stores_contexts.rb @@ -72,17 +72,17 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'schemaTitle' => ->(obj) { return :schema_title, obj['schemaTitle'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'schemaVersion' => ->(obj) { return :schema_version, obj['schemaVersion'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::MetadataStoresContextLabels.new(obj['labels'], to_s) }, - 'metadata' => ->(obj) { return :metadata, GoogleInSpec::VertexAI::Property::MetadataStoresContextMetadata.new(obj['metadata'], to_s) }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'parentContexts' => ->(obj) { return :parent_contexts, obj['parentContexts'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'schemaTitle' => ->(obj) { [:schema_title, obj['schemaTitle']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'schemaVersion' => ->(obj) { [:schema_version, obj['schemaVersion']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::MetadataStoresContextLabels.new(obj['labels'], to_s)] }, + 'metadata' => ->(obj) { [:metadata, GoogleInSpec::VertexAI::Property::MetadataStoresContextMetadata.new(obj['metadata'], to_s)] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'parentContexts' => ->(obj) { [:parent_contexts, obj['parentContexts']] }, } end diff --git a/libraries/google_vertex_ai_metadata_stores_executions.rb b/libraries/google_vertex_ai_metadata_stores_executions.rb index 4a40f784b..f2ca8fbbc 100644 --- a/libraries/google_vertex_ai_metadata_stores_executions.rb +++ b/libraries/google_vertex_ai_metadata_stores_executions.rb @@ -72,17 +72,17 @@ def transform(key, value) def transformers { - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::MetadataStoresExecutionLabels.new(obj['labels'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'schemaVersion' => ->(obj) { return :schema_version, obj['schemaVersion'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'metadata' => ->(obj) { return :metadata, GoogleInSpec::VertexAI::Property::MetadataStoresExecutionMetadata.new(obj['metadata'], to_s) }, - 'schemaTitle' => ->(obj) { return :schema_title, obj['schemaTitle'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::MetadataStoresExecutionLabels.new(obj['labels'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'schemaVersion' => ->(obj) { [:schema_version, obj['schemaVersion']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'metadata' => ->(obj) { [:metadata, GoogleInSpec::VertexAI::Property::MetadataStoresExecutionMetadata.new(obj['metadata'], to_s)] }, + 'schemaTitle' => ->(obj) { [:schema_title, obj['schemaTitle']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, } end diff --git a/libraries/google_vertex_ai_metadata_stores_metadata_schemas.rb b/libraries/google_vertex_ai_metadata_stores_metadata_schemas.rb index 88ab5d9b2..b68204daa 100644 --- a/libraries/google_vertex_ai_metadata_stores_metadata_schemas.rb +++ b/libraries/google_vertex_ai_metadata_stores_metadata_schemas.rb @@ -67,12 +67,12 @@ def transform(key, value) def transformers { - 'schemaType' => ->(obj) { return :schema_type, obj['schemaType'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'schemaVersion' => ->(obj) { return :schema_version, obj['schemaVersion'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'schema' => ->(obj) { return :schema, obj['schema'] }, + 'schemaType' => ->(obj) { [:schema_type, obj['schemaType']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'schemaVersion' => ->(obj) { [:schema_version, obj['schemaVersion']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'schema' => ->(obj) { [:schema, obj['schema']] }, } end diff --git a/libraries/google_vertex_ai_model_deployment_monitoring_jobs.rb b/libraries/google_vertex_ai_model_deployment_monitoring_jobs.rb index ec5ef7d02..55055686c 100644 --- a/libraries/google_vertex_ai_model_deployment_monitoring_jobs.rb +++ b/libraries/google_vertex_ai_model_deployment_monitoring_jobs.rb @@ -85,29 +85,29 @@ def transform(key, value) def transformers { - 'modelDeploymentMonitoringObjectiveConfigs' => ->(obj) { return :model_deployment_monitoring_objective_configs, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobModelDeploymentMonitoringObjectiveConfigsArray.parse(obj['modelDeploymentMonitoringObjectiveConfigs'], to_s) }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobLabels.new(obj['labels'], to_s) }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'analysisInstanceSchemaUri' => ->(obj) { return :analysis_instance_schema_uri, obj['analysisInstanceSchemaUri'] }, - 'enableMonitoringPipelineLogs' => ->(obj) { return :enable_monitoring_pipeline_logs, obj['enableMonitoringPipelineLogs'] }, - 'endpoint' => ->(obj) { return :endpoint, obj['endpoint'] }, - 'loggingSamplingStrategy' => ->(obj) { return :logging_sampling_strategy, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobLoggingSamplingStrategy.new(obj['loggingSamplingStrategy'], to_s) }, - 'bigqueryTables' => ->(obj) { return :bigquery_tables, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobBigqueryTablesArray.parse(obj['bigqueryTables'], to_s) }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'scheduleState' => ->(obj) { return :schedule_state, obj['scheduleState'] }, - 'error' => ->(obj) { return :error, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobError.new(obj['error'], to_s) }, - 'modelMonitoringAlertConfig' => ->(obj) { return :model_monitoring_alert_config, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobModelMonitoringAlertConfig.new(obj['modelMonitoringAlertConfig'], to_s) }, - 'latestMonitoringPipelineMetadata' => ->(obj) { return :latest_monitoring_pipeline_metadata, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata.new(obj['latestMonitoringPipelineMetadata'], to_s) }, - 'samplePredictInstance' => ->(obj) { return :sample_predict_instance, obj['samplePredictInstance'] }, - 'predictInstanceSchemaUri' => ->(obj) { return :predict_instance_schema_uri, obj['predictInstanceSchemaUri'] }, - 'nextScheduleTime' => ->(obj) { return :next_schedule_time, obj['nextScheduleTime'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'logTtl' => ->(obj) { return :log_ttl, obj['logTtl'] }, - 'statsAnomaliesBaseDirectory' => ->(obj) { return :stats_anomalies_base_directory, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobStatsAnomaliesBaseDirectory.new(obj['statsAnomaliesBaseDirectory'], to_s) }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'modelDeploymentMonitoringScheduleConfig' => ->(obj) { return :model_deployment_monitoring_schedule_config, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobModelDeploymentMonitoringScheduleConfig.new(obj['modelDeploymentMonitoringScheduleConfig'], to_s) }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'modelDeploymentMonitoringObjectiveConfigs' => ->(obj) { [:model_deployment_monitoring_objective_configs, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobModelDeploymentMonitoringObjectiveConfigsArray.parse(obj['modelDeploymentMonitoringObjectiveConfigs'], to_s)] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobLabels.new(obj['labels'], to_s)] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'analysisInstanceSchemaUri' => ->(obj) { [:analysis_instance_schema_uri, obj['analysisInstanceSchemaUri']] }, + 'enableMonitoringPipelineLogs' => ->(obj) { [:enable_monitoring_pipeline_logs, obj['enableMonitoringPipelineLogs']] }, + 'endpoint' => ->(obj) { [:endpoint, obj['endpoint']] }, + 'loggingSamplingStrategy' => ->(obj) { [:logging_sampling_strategy, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobLoggingSamplingStrategy.new(obj['loggingSamplingStrategy'], to_s)] }, + 'bigqueryTables' => ->(obj) { [:bigquery_tables, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobBigqueryTablesArray.parse(obj['bigqueryTables'], to_s)] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'scheduleState' => ->(obj) { [:schedule_state, obj['scheduleState']] }, + 'error' => ->(obj) { [:error, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobError.new(obj['error'], to_s)] }, + 'modelMonitoringAlertConfig' => ->(obj) { [:model_monitoring_alert_config, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobModelMonitoringAlertConfig.new(obj['modelMonitoringAlertConfig'], to_s)] }, + 'latestMonitoringPipelineMetadata' => ->(obj) { [:latest_monitoring_pipeline_metadata, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata.new(obj['latestMonitoringPipelineMetadata'], to_s)] }, + 'samplePredictInstance' => ->(obj) { [:sample_predict_instance, obj['samplePredictInstance']] }, + 'predictInstanceSchemaUri' => ->(obj) { [:predict_instance_schema_uri, obj['predictInstanceSchemaUri']] }, + 'nextScheduleTime' => ->(obj) { [:next_schedule_time, obj['nextScheduleTime']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'logTtl' => ->(obj) { [:log_ttl, obj['logTtl']] }, + 'statsAnomaliesBaseDirectory' => ->(obj) { [:stats_anomalies_base_directory, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobStatsAnomaliesBaseDirectory.new(obj['statsAnomaliesBaseDirectory'], to_s)] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'modelDeploymentMonitoringScheduleConfig' => ->(obj) { [:model_deployment_monitoring_schedule_config, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobModelDeploymentMonitoringScheduleConfig.new(obj['modelDeploymentMonitoringScheduleConfig'], to_s)] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::ModelDeploymentMonitoringJobEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_vertex_ai_model_evaluation_slices.rb b/libraries/google_vertex_ai_model_evaluation_slices.rb index abbf80640..396d70e78 100644 --- a/libraries/google_vertex_ai_model_evaluation_slices.rb +++ b/libraries/google_vertex_ai_model_evaluation_slices.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'modelExplanation' => ->(obj) { return :model_explanation, GoogleInSpec::VertexAI::Property::ModelEvaluationSliceModelExplanation.new(obj['modelExplanation'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'metrics' => ->(obj) { return :metrics, obj['metrics'] }, - 'slice' => ->(obj) { return :slice, GoogleInSpec::VertexAI::Property::ModelEvaluationSliceSlice.new(obj['slice'], to_s) }, - 'metricsSchemaUri' => ->(obj) { return :metrics_schema_uri, obj['metricsSchemaUri'] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'modelExplanation' => ->(obj) { [:model_explanation, GoogleInSpec::VertexAI::Property::ModelEvaluationSliceModelExplanation.new(obj['modelExplanation'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'metrics' => ->(obj) { [:metrics, obj['metrics']] }, + 'slice' => ->(obj) { [:slice, GoogleInSpec::VertexAI::Property::ModelEvaluationSliceSlice.new(obj['slice'], to_s)] }, + 'metricsSchemaUri' => ->(obj) { [:metrics_schema_uri, obj['metricsSchemaUri']] }, } end diff --git a/libraries/google_vertex_ai_models.rb b/libraries/google_vertex_ai_models.rb index e0387b328..48f09b955 100644 --- a/libraries/google_vertex_ai_models.rb +++ b/libraries/google_vertex_ai_models.rb @@ -91,35 +91,35 @@ def transform(key, value) def transformers { - 'modelSourceInfo' => ->(obj) { return :model_source_info, GoogleInSpec::VertexAI::Property::ModelModelSourceInfo.new(obj['modelSourceInfo'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'deployedModels' => ->(obj) { return :deployed_models, GoogleInSpec::VertexAI::Property::ModelDeployedModelsArray.parse(obj['deployedModels'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'explanationSpec' => ->(obj) { return :explanation_spec, GoogleInSpec::VertexAI::Property::ModelExplanationSpec.new(obj['explanationSpec'], to_s) }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::ModelEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'pipelineJob' => ->(obj) { return :pipeline_job, obj['pipelineJob'] }, - 'predictSchemata' => ->(obj) { return :predict_schemata, GoogleInSpec::VertexAI::Property::ModelPredictSchemata.new(obj['predictSchemata'], to_s) }, - 'versionUpdateTime' => ->(obj) { return :version_update_time, obj['versionUpdateTime'] }, - 'supportedExportFormats' => ->(obj) { return :supported_export_formats, GoogleInSpec::VertexAI::Property::ModelSupportedExportFormatsArray.parse(obj['supportedExportFormats'], to_s) }, - 'originalModelInfo' => ->(obj) { return :original_model_info, GoogleInSpec::VertexAI::Property::ModelOriginalModelInfo.new(obj['originalModelInfo'], to_s) }, - 'metadataArtifact' => ->(obj) { return :metadata_artifact, obj['metadataArtifact'] }, - 'supportedInputStorageFormats' => ->(obj) { return :supported_input_storage_formats, obj['supportedInputStorageFormats'] }, - 'metadataSchemaUri' => ->(obj) { return :metadata_schema_uri, obj['metadataSchemaUri'] }, - 'containerSpec' => ->(obj) { return :container_spec, GoogleInSpec::VertexAI::Property::ModelContainerSpec.new(obj['containerSpec'], to_s) }, - 'versionId' => ->(obj) { return :version_id, obj['versionId'] }, - 'artifactUri' => ->(obj) { return :artifact_uri, obj['artifactUri'] }, - 'trainingPipeline' => ->(obj) { return :training_pipeline, obj['trainingPipeline'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'supportedDeploymentResourcesTypes' => ->(obj) { return :supported_deployment_resources_types, obj['supportedDeploymentResourcesTypes'] }, - 'supportedOutputStorageFormats' => ->(obj) { return :supported_output_storage_formats, obj['supportedOutputStorageFormats'] }, - 'versionAliases' => ->(obj) { return :version_aliases, obj['versionAliases'] }, - 'versionCreateTime' => ->(obj) { return :version_create_time, obj['versionCreateTime'] }, - 'versionDescription' => ->(obj) { return :version_description, obj['versionDescription'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::ModelLabels.new(obj['labels'], to_s) }, + 'modelSourceInfo' => ->(obj) { [:model_source_info, GoogleInSpec::VertexAI::Property::ModelModelSourceInfo.new(obj['modelSourceInfo'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'deployedModels' => ->(obj) { [:deployed_models, GoogleInSpec::VertexAI::Property::ModelDeployedModelsArray.parse(obj['deployedModels'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'explanationSpec' => ->(obj) { [:explanation_spec, GoogleInSpec::VertexAI::Property::ModelExplanationSpec.new(obj['explanationSpec'], to_s)] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::ModelEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'pipelineJob' => ->(obj) { [:pipeline_job, obj['pipelineJob']] }, + 'predictSchemata' => ->(obj) { [:predict_schemata, GoogleInSpec::VertexAI::Property::ModelPredictSchemata.new(obj['predictSchemata'], to_s)] }, + 'versionUpdateTime' => ->(obj) { [:version_update_time, obj['versionUpdateTime']] }, + 'supportedExportFormats' => ->(obj) { [:supported_export_formats, GoogleInSpec::VertexAI::Property::ModelSupportedExportFormatsArray.parse(obj['supportedExportFormats'], to_s)] }, + 'originalModelInfo' => ->(obj) { [:original_model_info, GoogleInSpec::VertexAI::Property::ModelOriginalModelInfo.new(obj['originalModelInfo'], to_s)] }, + 'metadataArtifact' => ->(obj) { [:metadata_artifact, obj['metadataArtifact']] }, + 'supportedInputStorageFormats' => ->(obj) { [:supported_input_storage_formats, obj['supportedInputStorageFormats']] }, + 'metadataSchemaUri' => ->(obj) { [:metadata_schema_uri, obj['metadataSchemaUri']] }, + 'containerSpec' => ->(obj) { [:container_spec, GoogleInSpec::VertexAI::Property::ModelContainerSpec.new(obj['containerSpec'], to_s)] }, + 'versionId' => ->(obj) { [:version_id, obj['versionId']] }, + 'artifactUri' => ->(obj) { [:artifact_uri, obj['artifactUri']] }, + 'trainingPipeline' => ->(obj) { [:training_pipeline, obj['trainingPipeline']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'supportedDeploymentResourcesTypes' => ->(obj) { [:supported_deployment_resources_types, obj['supportedDeploymentResourcesTypes']] }, + 'supportedOutputStorageFormats' => ->(obj) { [:supported_output_storage_formats, obj['supportedOutputStorageFormats']] }, + 'versionAliases' => ->(obj) { [:version_aliases, obj['versionAliases']] }, + 'versionCreateTime' => ->(obj) { [:version_create_time, obj['versionCreateTime']] }, + 'versionDescription' => ->(obj) { [:version_description, obj['versionDescription']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::ModelLabels.new(obj['labels'], to_s)] }, } end diff --git a/libraries/google_vertex_ai_models_evaluations.rb b/libraries/google_vertex_ai_models_evaluations.rb index 0ff597826..422ba5e4b 100644 --- a/libraries/google_vertex_ai_models_evaluations.rb +++ b/libraries/google_vertex_ai_models_evaluations.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'dataItemSchemaUri' => ->(obj) { return :data_item_schema_uri, obj['dataItemSchemaUri'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'metricsSchemaUri' => ->(obj) { return :metrics_schema_uri, obj['metricsSchemaUri'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'annotationSchemaUri' => ->(obj) { return :annotation_schema_uri, obj['annotationSchemaUri'] }, - 'metrics' => ->(obj) { return :metrics, obj['metrics'] }, - 'explanationSpecs' => ->(obj) { return :explanation_specs, GoogleInSpec::VertexAI::Property::ModelsEvaluationExplanationSpecsArray.parse(obj['explanationSpecs'], to_s) }, - 'sliceDimensions' => ->(obj) { return :slice_dimensions, obj['sliceDimensions'] }, - 'modelExplanation' => ->(obj) { return :model_explanation, GoogleInSpec::VertexAI::Property::ModelsEvaluationModelExplanation.new(obj['modelExplanation'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, + 'dataItemSchemaUri' => ->(obj) { [:data_item_schema_uri, obj['dataItemSchemaUri']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'metricsSchemaUri' => ->(obj) { [:metrics_schema_uri, obj['metricsSchemaUri']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'annotationSchemaUri' => ->(obj) { [:annotation_schema_uri, obj['annotationSchemaUri']] }, + 'metrics' => ->(obj) { [:metrics, obj['metrics']] }, + 'explanationSpecs' => ->(obj) { [:explanation_specs, GoogleInSpec::VertexAI::Property::ModelsEvaluationExplanationSpecsArray.parse(obj['explanationSpecs'], to_s)] }, + 'sliceDimensions' => ->(obj) { [:slice_dimensions, obj['sliceDimensions']] }, + 'modelExplanation' => ->(obj) { [:model_explanation, GoogleInSpec::VertexAI::Property::ModelsEvaluationModelExplanation.new(obj['modelExplanation'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, } end diff --git a/libraries/google_vertex_ai_nas_jobs.rb b/libraries/google_vertex_ai_nas_jobs.rb index f80c295fa..dcdfee2d3 100644 --- a/libraries/google_vertex_ai_nas_jobs.rb +++ b/libraries/google_vertex_ai_nas_jobs.rb @@ -75,19 +75,19 @@ def transform(key, value) def transformers { - 'nasJobOutput' => ->(obj) { return :nas_job_output, GoogleInSpec::VertexAI::Property::NasJobNasJobOutput.new(obj['nasJobOutput'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'error' => ->(obj) { return :error, GoogleInSpec::VertexAI::Property::NasJobError.new(obj['error'], to_s) }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'nasJobSpec' => ->(obj) { return :nas_job_spec, GoogleInSpec::VertexAI::Property::NasJobNasJobSpec.new(obj['nasJobSpec'], to_s) }, - 'enableRestrictedImageTraining' => ->(obj) { return :enable_restricted_image_training, obj['enableRestrictedImageTraining'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::NasJobEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::NasJobLabels.new(obj['labels'], to_s) }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, + 'nasJobOutput' => ->(obj) { [:nas_job_output, GoogleInSpec::VertexAI::Property::NasJobNasJobOutput.new(obj['nasJobOutput'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'error' => ->(obj) { [:error, GoogleInSpec::VertexAI::Property::NasJobError.new(obj['error'], to_s)] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'nasJobSpec' => ->(obj) { [:nas_job_spec, GoogleInSpec::VertexAI::Property::NasJobNasJobSpec.new(obj['nasJobSpec'], to_s)] }, + 'enableRestrictedImageTraining' => ->(obj) { [:enable_restricted_image_training, obj['enableRestrictedImageTraining']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::NasJobEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::NasJobLabels.new(obj['labels'], to_s)] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, } end diff --git a/libraries/google_vertex_ai_nas_jobs_nas_trial_details.rb b/libraries/google_vertex_ai_nas_jobs_nas_trial_details.rb index 67acb6ffa..560dc777d 100644 --- a/libraries/google_vertex_ai_nas_jobs_nas_trial_details.rb +++ b/libraries/google_vertex_ai_nas_jobs_nas_trial_details.rb @@ -65,10 +65,10 @@ def transform(key, value) def transformers { - 'parameters' => ->(obj) { return :parameters, obj['parameters'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'searchTrial' => ->(obj) { return :search_trial, GoogleInSpec::VertexAI::Property::NasJobsNasTrialDetailSearchTrial.new(obj['searchTrial'], to_s) }, - 'trainTrial' => ->(obj) { return :train_trial, GoogleInSpec::VertexAI::Property::NasJobsNasTrialDetailTrainTrial.new(obj['trainTrial'], to_s) }, + 'parameters' => ->(obj) { [:parameters, obj['parameters']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'searchTrial' => ->(obj) { [:search_trial, GoogleInSpec::VertexAI::Property::NasJobsNasTrialDetailSearchTrial.new(obj['searchTrial'], to_s)] }, + 'trainTrial' => ->(obj) { [:train_trial, GoogleInSpec::VertexAI::Property::NasJobsNasTrialDetailTrainTrial.new(obj['trainTrial'], to_s)] }, } end diff --git a/libraries/google_vertex_ai_pipeline_jobs.rb b/libraries/google_vertex_ai_pipeline_jobs.rb index c45188093..292ef914b 100644 --- a/libraries/google_vertex_ai_pipeline_jobs.rb +++ b/libraries/google_vertex_ai_pipeline_jobs.rb @@ -81,25 +81,25 @@ def transform(key, value) def transformers { - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::PipelineJobEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'error' => ->(obj) { return :error, GoogleInSpec::VertexAI::Property::PipelineJobError.new(obj['error'], to_s) }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'jobDetail' => ->(obj) { return :job_detail, GoogleInSpec::VertexAI::Property::PipelineJobJobDetail.new(obj['jobDetail'], to_s) }, - 'templateMetadata' => ->(obj) { return :template_metadata, GoogleInSpec::VertexAI::Property::PipelineJobTemplateMetadata.new(obj['templateMetadata'], to_s) }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'scheduleName' => ->(obj) { return :schedule_name, obj['scheduleName'] }, - 'reservedIpRanges' => ->(obj) { return :reserved_ip_ranges, obj['reservedIpRanges'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'serviceAccount' => ->(obj) { return :service_account, obj['serviceAccount'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'templateUri' => ->(obj) { return :template_uri, obj['templateUri'] }, - 'pipelineSpec' => ->(obj) { return :pipeline_spec, GoogleInSpec::VertexAI::Property::PipelineJobPipelineSpec.new(obj['pipelineSpec'], to_s) }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::PipelineJobLabels.new(obj['labels'], to_s) }, - 'runtimeConfig' => ->(obj) { return :runtime_config, GoogleInSpec::VertexAI::Property::PipelineJobRuntimeConfig.new(obj['runtimeConfig'], to_s) }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::PipelineJobEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'error' => ->(obj) { [:error, GoogleInSpec::VertexAI::Property::PipelineJobError.new(obj['error'], to_s)] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'jobDetail' => ->(obj) { [:job_detail, GoogleInSpec::VertexAI::Property::PipelineJobJobDetail.new(obj['jobDetail'], to_s)] }, + 'templateMetadata' => ->(obj) { [:template_metadata, GoogleInSpec::VertexAI::Property::PipelineJobTemplateMetadata.new(obj['templateMetadata'], to_s)] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'scheduleName' => ->(obj) { [:schedule_name, obj['scheduleName']] }, + 'reservedIpRanges' => ->(obj) { [:reserved_ip_ranges, obj['reservedIpRanges']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'serviceAccount' => ->(obj) { [:service_account, obj['serviceAccount']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'templateUri' => ->(obj) { [:template_uri, obj['templateUri']] }, + 'pipelineSpec' => ->(obj) { [:pipeline_spec, GoogleInSpec::VertexAI::Property::PipelineJobPipelineSpec.new(obj['pipelineSpec'], to_s)] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::PipelineJobLabels.new(obj['labels'], to_s)] }, + 'runtimeConfig' => ->(obj) { [:runtime_config, GoogleInSpec::VertexAI::Property::PipelineJobRuntimeConfig.new(obj['runtimeConfig'], to_s)] }, } end diff --git a/libraries/google_vertex_ai_schedules.rb b/libraries/google_vertex_ai_schedules.rb index 0fdddc6a5..257cc0a28 100644 --- a/libraries/google_vertex_ai_schedules.rb +++ b/libraries/google_vertex_ai_schedules.rb @@ -80,24 +80,24 @@ def transform(key, value) def transformers { - 'startedRunCount' => ->(obj) { return :started_run_count, obj['startedRunCount'] }, - 'allowQueueing' => ->(obj) { return :allow_queueing, obj['allowQueueing'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'cron' => ->(obj) { return :cron, obj['cron'] }, - 'lastPauseTime' => ->(obj) { return :last_pause_time, obj['lastPauseTime'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'maxRunCount' => ->(obj) { return :max_run_count, obj['maxRunCount'] }, - 'nextRunTime' => ->(obj) { return :next_run_time, obj['nextRunTime'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'lastScheduledRunResponse' => ->(obj) { return :last_scheduled_run_response, GoogleInSpec::VertexAI::Property::ScheduleLastScheduledRunResponse.new(obj['lastScheduledRunResponse'], to_s) }, - 'lastResumeTime' => ->(obj) { return :last_resume_time, obj['lastResumeTime'] }, - 'maxConcurrentRunCount' => ->(obj) { return :max_concurrent_run_count, obj['maxConcurrentRunCount'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'createPipelineJobRequest' => ->(obj) { return :create_pipeline_job_request, GoogleInSpec::VertexAI::Property::ScheduleCreatePipelineJobRequest.new(obj['createPipelineJobRequest'], to_s) }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'catchUp' => ->(obj) { return :catch_up, obj['catchUp'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, + 'startedRunCount' => ->(obj) { [:started_run_count, obj['startedRunCount']] }, + 'allowQueueing' => ->(obj) { [:allow_queueing, obj['allowQueueing']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'cron' => ->(obj) { [:cron, obj['cron']] }, + 'lastPauseTime' => ->(obj) { [:last_pause_time, obj['lastPauseTime']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'maxRunCount' => ->(obj) { [:max_run_count, obj['maxRunCount']] }, + 'nextRunTime' => ->(obj) { [:next_run_time, obj['nextRunTime']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'lastScheduledRunResponse' => ->(obj) { [:last_scheduled_run_response, GoogleInSpec::VertexAI::Property::ScheduleLastScheduledRunResponse.new(obj['lastScheduledRunResponse'], to_s)] }, + 'lastResumeTime' => ->(obj) { [:last_resume_time, obj['lastResumeTime']] }, + 'maxConcurrentRunCount' => ->(obj) { [:max_concurrent_run_count, obj['maxConcurrentRunCount']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createPipelineJobRequest' => ->(obj) { [:create_pipeline_job_request, GoogleInSpec::VertexAI::Property::ScheduleCreatePipelineJobRequest.new(obj['createPipelineJobRequest'], to_s)] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'catchUp' => ->(obj) { [:catch_up, obj['catchUp']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, } end diff --git a/libraries/google_vertex_ai_studies.rb b/libraries/google_vertex_ai_studies.rb index b9571c294..0494594ee 100644 --- a/libraries/google_vertex_ai_studies.rb +++ b/libraries/google_vertex_ai_studies.rb @@ -68,12 +68,12 @@ def transform(key, value) def transformers { - 'studySpec' => ->(obj) { return :study_spec, obj['studySpec'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'inactiveReason' => ->(obj) { return :inactive_reason, obj['inactiveReason'] }, + 'studySpec' => ->(obj) { [:study_spec, obj['studySpec']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'inactiveReason' => ->(obj) { [:inactive_reason, obj['inactiveReason']] }, } end diff --git a/libraries/google_vertex_ai_studies_trials.rb b/libraries/google_vertex_ai_studies_trials.rb index 529098fdb..eb1e48466 100644 --- a/libraries/google_vertex_ai_studies_trials.rb +++ b/libraries/google_vertex_ai_studies_trials.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'measurements' => ->(obj) { return :measurements, GoogleInSpec::VertexAI::Property::StudiesTrialMeasurementsArray.parse(obj['measurements'], to_s) }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'parameters' => ->(obj) { return :parameters, GoogleInSpec::VertexAI::Property::StudiesTrialParametersArray.parse(obj['parameters'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'infeasibleReason' => ->(obj) { return :infeasible_reason, obj['infeasibleReason'] }, - 'finalMeasurement' => ->(obj) { return :final_measurement, GoogleInSpec::VertexAI::Property::StudiesTrialFinalMeasurement.new(obj['finalMeasurement'], to_s) }, - 'clientId' => ->(obj) { return :client_id, obj['clientId'] }, - 'customJob' => ->(obj) { return :custom_job, obj['customJob'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'webAccessUris' => ->(obj) { return :web_access_uris, GoogleInSpec::VertexAI::Property::StudiesTrialWebAccessUris.new(obj['webAccessUris'], to_s) }, - 'id' => ->(obj) { return :id, obj['id'] }, + 'measurements' => ->(obj) { [:measurements, GoogleInSpec::VertexAI::Property::StudiesTrialMeasurementsArray.parse(obj['measurements'], to_s)] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'parameters' => ->(obj) { [:parameters, GoogleInSpec::VertexAI::Property::StudiesTrialParametersArray.parse(obj['parameters'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'infeasibleReason' => ->(obj) { [:infeasible_reason, obj['infeasibleReason']] }, + 'finalMeasurement' => ->(obj) { [:final_measurement, GoogleInSpec::VertexAI::Property::StudiesTrialFinalMeasurement.new(obj['finalMeasurement'], to_s)] }, + 'clientId' => ->(obj) { [:client_id, obj['clientId']] }, + 'customJob' => ->(obj) { [:custom_job, obj['customJob']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'webAccessUris' => ->(obj) { [:web_access_uris, GoogleInSpec::VertexAI::Property::StudiesTrialWebAccessUris.new(obj['webAccessUris'], to_s)] }, + 'id' => ->(obj) { [:id, obj['id']] }, } end diff --git a/libraries/google_vertex_ai_tensorboard_experiment_run_time_series_resources.rb b/libraries/google_vertex_ai_tensorboard_experiment_run_time_series_resources.rb index 21f6ef862..bc1527c73 100644 --- a/libraries/google_vertex_ai_tensorboard_experiment_run_time_series_resources.rb +++ b/libraries/google_vertex_ai_tensorboard_experiment_run_time_series_resources.rb @@ -72,16 +72,16 @@ def transform(key, value) def transformers { - 'pluginName' => ->(obj) { return :plugin_name, obj['pluginName'] }, - 'pluginData' => ->(obj) { return :plugin_data, obj['pluginData'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'metadata' => ->(obj) { return :metadata, obj['metadata'] }, - 'valueType' => ->(obj) { return :value_type, obj['valueType'] }, + 'pluginName' => ->(obj) { [:plugin_name, obj['pluginName']] }, + 'pluginData' => ->(obj) { [:plugin_data, obj['pluginData']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'metadata' => ->(obj) { [:metadata, obj['metadata']] }, + 'valueType' => ->(obj) { [:value_type, obj['valueType']] }, } end diff --git a/libraries/google_vertex_ai_tensorboard_experiment_runs.rb b/libraries/google_vertex_ai_tensorboard_experiment_runs.rb index 9016e1299..ec8a71d13 100644 --- a/libraries/google_vertex_ai_tensorboard_experiment_runs.rb +++ b/libraries/google_vertex_ai_tensorboard_experiment_runs.rb @@ -69,13 +69,13 @@ def transform(key, value) def transformers { - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::TensorboardExperimentRunLabels.new(obj['labels'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::TensorboardExperimentRunLabels.new(obj['labels'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end diff --git a/libraries/google_vertex_ai_tensorboards.rb b/libraries/google_vertex_ai_tensorboards.rb index cf82cb55d..f4a078039 100644 --- a/libraries/google_vertex_ai_tensorboards.rb +++ b/libraries/google_vertex_ai_tensorboards.rb @@ -73,17 +73,17 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'isDefault' => ->(obj) { return :is_default, obj['isDefault'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::TensorboardLabels.new(obj['labels'], to_s) }, - 'blobStoragePathPrefix' => ->(obj) { return :blob_storage_path_prefix, obj['blobStoragePathPrefix'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'runCount' => ->(obj) { return :run_count, obj['runCount'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::TensorboardEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'description' => ->(obj) { return :description, obj['description'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'isDefault' => ->(obj) { [:is_default, obj['isDefault']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::TensorboardLabels.new(obj['labels'], to_s)] }, + 'blobStoragePathPrefix' => ->(obj) { [:blob_storage_path_prefix, obj['blobStoragePathPrefix']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'runCount' => ->(obj) { [:run_count, obj['runCount']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::TensorboardEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'description' => ->(obj) { [:description, obj['description']] }, } end diff --git a/libraries/google_vertex_ai_tensorboards_experiments.rb b/libraries/google_vertex_ai_tensorboards_experiments.rb index b1160bf7a..b5ea7d63b 100644 --- a/libraries/google_vertex_ai_tensorboards_experiments.rb +++ b/libraries/google_vertex_ai_tensorboards_experiments.rb @@ -70,14 +70,14 @@ def transform(key, value) def transformers { - 'description' => ->(obj) { return :description, obj['description'] }, - 'source' => ->(obj) { return :source, obj['source'] }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::TensorboardsExperimentLabels.new(obj['labels'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'etag' => ->(obj) { return :etag, obj['etag'] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'source' => ->(obj) { [:source, obj['source']] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::TensorboardsExperimentLabels.new(obj['labels'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'etag' => ->(obj) { [:etag, obj['etag']] }, } end diff --git a/libraries/google_vertex_ai_training_pipelines.rb b/libraries/google_vertex_ai_training_pipelines.rb index d8042e622..cb44e1d89 100644 --- a/libraries/google_vertex_ai_training_pipelines.rb +++ b/libraries/google_vertex_ai_training_pipelines.rb @@ -79,23 +79,23 @@ def transform(key, value) def transformers { - 'endTime' => ->(obj) { return :end_time, obj['endTime'] }, - 'error' => ->(obj) { return :error, GoogleInSpec::VertexAI::Property::TrainingPipelineError.new(obj['error'], to_s) }, - 'displayName' => ->(obj) { return :display_name, obj['displayName'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'inputDataConfig' => ->(obj) { return :input_data_config, GoogleInSpec::VertexAI::Property::TrainingPipelineInputDataConfig.new(obj['inputDataConfig'], to_s) }, - 'parentModel' => ->(obj) { return :parent_model, obj['parentModel'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::VertexAI::Property::TrainingPipelineLabels.new(obj['labels'], to_s) }, - 'trainingTaskDefinition' => ->(obj) { return :training_task_definition, obj['trainingTaskDefinition'] }, - 'startTime' => ->(obj) { return :start_time, obj['startTime'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'trainingTaskMetadata' => ->(obj) { return :training_task_metadata, obj['trainingTaskMetadata'] }, - 'trainingTaskInputs' => ->(obj) { return :training_task_inputs, obj['trainingTaskInputs'] }, - 'modelId' => ->(obj) { return :model_id, obj['modelId'] }, - 'encryptionSpec' => ->(obj) { return :encryption_spec, GoogleInSpec::VertexAI::Property::TrainingPipelineEncryptionSpec.new(obj['encryptionSpec'], to_s) }, - 'modelToUpload' => ->(obj) { return :model_to_upload, GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUpload.new(obj['modelToUpload'], to_s) }, + 'endTime' => ->(obj) { [:end_time, obj['endTime']] }, + 'error' => ->(obj) { [:error, GoogleInSpec::VertexAI::Property::TrainingPipelineError.new(obj['error'], to_s)] }, + 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'inputDataConfig' => ->(obj) { [:input_data_config, GoogleInSpec::VertexAI::Property::TrainingPipelineInputDataConfig.new(obj['inputDataConfig'], to_s)] }, + 'parentModel' => ->(obj) { [:parent_model, obj['parentModel']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::VertexAI::Property::TrainingPipelineLabels.new(obj['labels'], to_s)] }, + 'trainingTaskDefinition' => ->(obj) { [:training_task_definition, obj['trainingTaskDefinition']] }, + 'startTime' => ->(obj) { [:start_time, obj['startTime']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'trainingTaskMetadata' => ->(obj) { [:training_task_metadata, obj['trainingTaskMetadata']] }, + 'trainingTaskInputs' => ->(obj) { [:training_task_inputs, obj['trainingTaskInputs']] }, + 'modelId' => ->(obj) { [:model_id, obj['modelId']] }, + 'encryptionSpec' => ->(obj) { [:encryption_spec, GoogleInSpec::VertexAI::Property::TrainingPipelineEncryptionSpec.new(obj['encryptionSpec'], to_s)] }, + 'modelToUpload' => ->(obj) { [:model_to_upload, GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUpload.new(obj['modelToUpload'], to_s)] }, } end From ca0b04bcdbfcd0c71e5b0cbc92758c4a9e6052b7 Mon Sep 17 00:00:00 2001 From: Nik08 Date: Tue, 5 Dec 2023 17:57:56 +0530 Subject: [PATCH 17/83] Fix resource_base_url and wrap_path for google artifactregistry project location repository resources Signed-off-by: Nik08 --- .../google_artifactregistry_project_location_repositories.rb | 4 ++-- .../google_artifactregistry_project_location_repository.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/google_artifactregistry_project_location_repositories.rb b/libraries/google_artifactregistry_project_location_repositories.rb index 0b1c4c15c..9814e8860 100644 --- a/libraries/google_artifactregistry_project_location_repositories.rb +++ b/libraries/google_artifactregistry_project_location_repositories.rb @@ -45,7 +45,7 @@ class ArtifactregistryProjectLocationRepositorys < GcpResourceBase def initialize(params = {}) super(params.merge({ use_http_transport: true })) @params = params - @table = fetch_wrapped_resource('projectLocationRepositories') + @table = fetch_wrapped_resource('repositories') end def fetch_wrapped_resource(wrap_path) @@ -104,6 +104,6 @@ def product_url(_ = nil) end def resource_base_url - 'v1beta1/{{parent}}/repositories' + '{{parent}}/repositories' end end diff --git a/libraries/google_artifactregistry_project_location_repository.rb b/libraries/google_artifactregistry_project_location_repository.rb index 060973f94..cff85e08d 100644 --- a/libraries/google_artifactregistry_project_location_repository.rb +++ b/libraries/google_artifactregistry_project_location_repository.rb @@ -97,6 +97,6 @@ def product_url(_ = nil) end def resource_base_url - 'v1beta1/{{name}}' + '{{name}}' end end From 211afbaa00eaacc36ffdd09fa72e159cf99dc165 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Tue, 5 Dec 2023 18:44:46 +0530 Subject: [PATCH 18/83] Updates the apigee organization envgroup attachments plural resource to use correct key to fetch the data list API Signed-off-by: Vasu1105 --- libraries/google_apigee_organization_envgroup_attachments.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_apigee_organization_envgroup_attachments.rb b/libraries/google_apigee_organization_envgroup_attachments.rb index c8c5c3b41..7678bfae7 100644 --- a/libraries/google_apigee_organization_envgroup_attachments.rb +++ b/libraries/google_apigee_organization_envgroup_attachments.rb @@ -33,7 +33,7 @@ class ApigeeOrganizationEnvgroupAttachments < GcpResourceBase def initialize(params = {}) super(params.merge({ use_http_transport: true })) @params = params - @table = fetch_wrapped_resource('organizationEnvgroupAttachments') + @table = fetch_wrapped_resource('environmentGroupAttachments') end def fetch_wrapped_resource(wrap_path) From b3f9e1fc1c372fa658b2d35fcbf3d79f840b29de Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Tue, 5 Dec 2023 18:46:07 +0530 Subject: [PATCH 19/83] Updates test for apigee organization envgrop attachment singular and plural resource Signed-off-by: Vasu1105 --- ...apigee_organization_envgroup_attachment.rb | 18 ++++++------- ...pigee_organization_envgroup_attachments.rb | 27 +++++++++++-------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb index 8ca838d60..1d0117ab4 100644 --- a/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb @@ -14,26 +14,24 @@ title 'Test GCP google_apigee_organization_envgroup_attachment resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - - organization_envgroup_attachment = input('organization_envgroup_attachment', value: { - "name": "value_name", - "parent": "value_parent", - "created_at": "value_createdat", - "environment": "value_environment", - "environment_group_id": "value_environmentgroupid" +organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "6741d6ad-1307-4f03-b02a-9fb4562c0ff3", + "parent": "organizations/ppradhan/envgroups/test-env-group/attachments", + "created_at": "1698227493793", + "environment": "test-env", + "environment_group_id": "test-env-group" }, description: 'organization_envgroup_attachment description') + control 'google_apigee_organization_envgroup_attachment-1.0' do impact 1.0 title 'google_apigee_organization_envgroup_attachment resource test' - describe google_apigee_organization_envgroup_attachment(name: organization_envgroup_attachment['name']) do + describe google_apigee_organization_envgroup_attachment(name: "#{organization_envgroup_attachment['parent']}/#{organization_envgroup_attachment['name']}") do it { should exist } its('created_at') { should cmp organization_envgroup_attachment['created_at'] } its('environment') { should cmp organization_envgroup_attachment['environment'] } its('environment_group_id') { should cmp organization_envgroup_attachment['environment_group_id'] } its('name') { should cmp organization_envgroup_attachment['name'] } - end describe google_apigee_organization_envgroup_attachment(name: "does_not_exit") do diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb index 331e1e067..2c3a380c6 100644 --- a/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb @@ -14,20 +14,25 @@ title 'Test GCP google_apigee_organization_envgroup_attachments resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - - organization_envgroup_attachment = input('organization_envgroup_attachment', value: { - "name": "value_name", - "parent": "value_parent", - "created_at": "value_createdat", - "environment": "value_environment", - "environment_group_id": "value_environmentgroupid" +organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "6741d6ad-1307-4f03-b02a-9fb4562c0ff3", + "parent": "organizations/ppradhan/envgroups/test-env-group", + "created_at": "1698227493793", + "environment": "test-env", + "environment_group_id": "test-env-group" }, description: 'organization_envgroup_attachment description') + control 'google_apigee_organization_envgroup_attachments-1.0' do impact 1.0 title 'google_apigee_organization_envgroup_attachments resource test' - describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']) do - it { should exist } - end + describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']) do + it { should exist } + end + + describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']).where(name: organization_envgroup_attachment['name']) do + it { should exist } + its("environment_group_ids") { should include organization_envgroup_attachment['environment_group_id'] } + its("environments") { should include organization_envgroup_attachment['environment'] } + end end From 12f061edc33c991ec05ca0e2db65bd3d94654037 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Tue, 5 Dec 2023 18:46:29 +0530 Subject: [PATCH 20/83] Updates docs Signed-off-by: Vasu1105 --- .../google_apigee_organization_envgroup_attachment.md | 9 ++++++--- .../google_apigee_organization_envgroup_attachments.md | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/resources/google_apigee_organization_envgroup_attachment.md b/docs/resources/google_apigee_organization_envgroup_attachment.md index 4fc3b56da..2269b54d0 100644 --- a/docs/resources/google_apigee_organization_envgroup_attachment.md +++ b/docs/resources/google_apigee_organization_envgroup_attachment.md @@ -4,9 +4,11 @@ platform: gcp --- ## Syntax + A `google_apigee_organization_envgroup_attachment` is used to test a Google OrganizationEnvgroupAttachment resource ## Examples + ``` describe google_apigee_organization_envgroup_attachment(name: ' value_name') do it { should exist } @@ -23,14 +25,15 @@ end ``` ## Properties + Properties that can be accessed from the `google_apigee_organization_envgroup_attachment` resource: - * `created_at`: Output only. The time at which the environment group attachment was created as milliseconds since epoch. + * `created_at`: The time at which the environment group attachment was created as milliseconds since epoch. - * `environment`: Required. ID of the attached environment. + * `environment`: ID of the attached environment. - * `environment_group_id`: Output only. ID of the environment group. + * `environment_group_id`: ID of the environment group. * `name`: ID of the environment group attachment. diff --git a/docs/resources/google_apigee_organization_envgroup_attachments.md b/docs/resources/google_apigee_organization_envgroup_attachments.md index 3b6d2ed02..283d0132a 100644 --- a/docs/resources/google_apigee_organization_envgroup_attachments.md +++ b/docs/resources/google_apigee_organization_envgroup_attachments.md @@ -4,9 +4,11 @@ platform: gcp --- ## Syntax + A `google_apigee_organization_envgroup_attachments` is used to test a Google OrganizationEnvgroupAttachment resource ## Examples + ``` describe google_apigee_organization_envgroup_attachments(parent: ' value_parent') do it { should exist } @@ -14,6 +16,7 @@ A `google_apigee_organization_envgroup_attachments` is used to test a Google Org ``` ## Properties + Properties that can be accessed from the `google_apigee_organization_envgroup_attachments` resource: See [google_apigee_organization_envgroup_attachment.md](google_apigee_organization_envgroup_attachment.md) for more detailed information @@ -23,6 +26,7 @@ See [google_apigee_organization_envgroup_attachment.md](google_apigee_organizati * `names`: an array of `google_apigee_organization_envgroup_attachment` name ## 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. From a4ab1bc7a3f1a6ac51e74b5dda3a14653cff4f3e Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Tue, 5 Dec 2023 18:47:46 +0530 Subject: [PATCH 21/83] Updates values in mm-attributes.yml file for apigee organization envgroup attachment resource Signed-off-by: Vasu1105 --- .../configuration/mm-attributes.yml | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index 8f92b70e6..c3b880ef9 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -895,22 +895,9 @@ organization: state : "ACTIVE" analytics_region : "us-west1" -vpn_gateway: - project : "value_project" - region : "value_region" - vpn_gateway : "value_vpngateway" - kind : "value_kind" - id : "value_id" - creation_timestamp : "value_creationtimestamp" - name : "value_name" - description : "value_description" - network : "value_network" - self_link : "value_selflink" - label_fingerprint : "value_labelfingerprint" - stack_type : "value_stacktype" organization_envgroup_attachment: - name : "value_name" - parent : "value_parent" - created_at : "value_createdat" - environment : "value_environment" - environment_group_id : "value_environmentgroupid" + name: "6741d6ad-1307-4f03-b02a-9fb4562c0ff3", + parent: "organizations/ppradhan/envgroups/test-env-group/attachments", + created_at: "1698227493793", + environment: "test-env", + environment_group_id: "test-env-group" \ No newline at end of file From f3cb76abc3d8ad194094a8671bac7655b48cf426 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Tue, 5 Dec 2023 13:49:01 +0000 Subject: [PATCH 22/83] Bump version to 1.11.55 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb4021c1d..ab46ac7c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.55](https://github.com/inspec/inspec-gcp/tree/v1.11.55) (2023-12-05) + +#### Merged Pull Requests +- Chore: Remove redundant `return` statement to fix rubocop 1.58.0 lint offense [#548](https://github.com/inspec/inspec-gcp/pull/548) ([ahasunos](https://github.com/ahasunos)) + + ## [v1.11.54](https://github.com/inspec/inspec-gcp/tree/v1.11.54) (2023-12-01) #### Merged Pull Requests - CHEF-7355-MAGIC-MODULE-apigee-Organization - Resource Implementation [#541](https://github.com/inspec/inspec-gcp/pull/541) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.53](https://github.com/inspec/inspec-gcp/tree/v1.11.53) (2023-11-29) diff --git a/VERSION b/VERSION index 1027fe014..7f42d6b41 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.54 \ No newline at end of file +1.11.55 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index f72d3a600..2a3e3d8fc 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.54 +version: 1.11.55 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 928ecbebcbed43aeceea73d61ac0d8259b457917 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Wed, 6 Dec 2023 10:56:31 +0530 Subject: [PATCH 23/83] chore: remove redundant returns to fix lint offense Signed-off-by: Sonu Saha --- ...e_composer_project_location_environments.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libraries/google_composer_project_location_environments.rb b/libraries/google_composer_project_location_environments.rb index 64867463c..df635d5fe 100644 --- a/libraries/google_composer_project_location_environments.rb +++ b/libraries/google_composer_project_location_environments.rb @@ -71,15 +71,15 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'config' => ->(obj) { return :config, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfig.new(obj['config'], to_s) }, - 'uuid' => ->(obj) { return :uuid, obj['uuid'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentLabels.new(obj['labels'], to_s) }, - 'satisfiesPzs' => ->(obj) { return :satisfies_pzs, obj['satisfiesPzs'] }, - 'storageConfig' => ->(obj) { return :storage_config, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentStorageConfig.new(obj['storageConfig'], to_s) }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'config' => ->(obj) { [:config, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentConfig.new(obj['config'], to_s)] }, + 'uuid' => ->(obj) { [:uuid, obj['uuid']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentLabels.new(obj['labels'], to_s)] }, + 'satisfiesPzs' => ->(obj) { [:satisfies_pzs, obj['satisfiesPzs']] }, + 'storageConfig' => ->(obj) { [:storage_config, GoogleInSpec::Composer::Property::ProjectLocationEnvironmentStorageConfig.new(obj['storageConfig'], to_s)] }, } end From c5362767d255441590853c498e8786bf85bcba1a Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Wed, 6 Dec 2023 11:03:52 +0530 Subject: [PATCH 24/83] chore: uncomment terraform scripts Signed-off-by: Sonu Saha --- .../inspec/test/integration/build/gcp-mm.tf | 2660 ++++++++--------- build/inspec/test/integration/build/gcp-mm.tf | 2658 ++++++++-------- 2 files changed, 2659 insertions(+), 2659 deletions(-) diff --git a/build/inspec/build/inspec/test/integration/build/gcp-mm.tf b/build/inspec/build/inspec/test/integration/build/gcp-mm.tf index f86c2ac7c..9036ca451 100644 --- a/build/inspec/build/inspec/test/integration/build/gcp-mm.tf +++ b/build/inspec/build/inspec/test/integration/build/gcp-mm.tf @@ -1,1335 +1,1335 @@ -#variable "ssl_policy" { -# type = any -#} -# -#variable "topic" { -# type = any -#} -# -#variable "subscription" { -# type = any -#} -# -#variable "managed_zone" { -# type = any -#} -# -#variable "record_set" { -# type = any -#} -# -#variable "instance_group_manager" { -# type = any -#} -# -#variable "autoscaler" { -# type = any -#} -# -#variable "target_pool" { -# type = any -#} -# -#variable "trigger" { -# type = any -#} -# -#variable "health_check" { -# type = any -#} -# -#variable "backend_service" { -# type = any -#} -# -#variable "http_health_check" { -# type = any -#} -# -#variable "https_health_check" { -# type = any -#} -# -#variable "instance_template" { -# type = any -#} -# -#variable "global_address" { -# type = any -#} -# -#variable "url_map" { -# type = any -#} -# -#variable "http_proxy" { -# type = any -#} -# -#variable "global_forwarding_rule" { -# type = any -#} -# -#variable "target_tcp_proxy" { -# type = any -#} -# -#variable "route" { -# type = any -#} -# -#variable "router" { -# type = any -#} -# -#variable "snapshot" { -# type = any -#} -# -#variable "https_proxy" { -# type = any -#} -# -#variable "ssl_certificate" { -# type = any -#} -# -#variable "dataset" { -# type = any -#} -# -#variable "bigquery_table" { -# type = any -#} -# -#variable "repository" { -# type = any -#} -# -#variable "folder" { -# type = any -#} -# -#variable "gcp_organization_id" { -# type = string -# default = "none" -#} -# -#variable "cloudfunction" { -# type = any -#} -# -#variable "backend_bucket" { -# type = any -#} -# -#variable "gcp_cloud_function_region" {} -# -#variable "regional_node_pool" { -# type = any -#} -# -#variable "region_backend_service_health_check" { -# type = any -#} -# -#variable "region_backend_service" { -# type = any -#} -# -#variable "org_sink" { -# type = any -#} -# -#variable "standardappversion" { -# type = any -#} -# -#variable "ml_model" { -# type = any -#} -# -#variable "dataproc_cluster" { -# type = any -#} -# -#variable "folder_exclusion" { -# type = any -#} -# -#variable "filestore_instance" { -# type = any -#} -# -#variable "folder_sink" { -# type = any -#} -# -#variable "runtimeconfig_config" { -# type = any -#} -# -#variable "runtimeconfig_variable" { -# type = any -#} -# -#variable "redis" { -# type = any -#} -# -#variable "network_endpoint_group" { -# type = any -#} -# -#variable "node_template" { -# type = any -#} -# -#variable "node_group" { -# type = any -#} -# -#variable "router_nat" { -# type = any -#} -# -#variable "service" { -# type = any -#} -# -#variable "spannerinstance" { -# type = any -#} -# -#variable "spannerdatabase" { -# type = any -#} -# -#variable "scheduler_job" { -# type = any -#} -# -# -#resource "google_compute_ssl_policy" "custom-ssl-policy" { -# name = var.ssl_policy["name"] -# min_tls_version = var.ssl_policy["min_tls_version"] -# profile = var.ssl_policy["profile"] -# custom_features = [var.ssl_policy["custom_feature"], var.ssl_policy["custom_feature2"]] -# project = var.gcp_project_id -#} -# -#resource "google_pubsub_topic" "topic" { -# project = var.gcp_project_id -# name = var.topic["name"] -#} -# -#resource "google_pubsub_subscription" "default" { -# project = var.gcp_project_id -# name = var.subscription["name"] -# topic = google_pubsub_topic.topic.name -# ack_deadline_seconds = var.subscription["ack_deadline_seconds"] -#} -# -#resource "google_dns_managed_zone" "prod" { -# name = var.managed_zone["name"] -# dns_name = var.managed_zone["dns_name"] -# description = var.managed_zone["description"] -# -# labels = { -# key = var.managed_zone["label_value"] -# } -# project = var.gcp_project_id -#} -# -#resource "google_dns_record_set" "a" { -# name = var.record_set["name"] -# managed_zone = google_dns_managed_zone.prod.name -# type = var.record_set["type"] -# ttl = var.record_set["ttl"] -# -# rrdatas = [var.record_set["rrdatas1"], var.record_set["rrdatas2"]] -# project = var.gcp_project_id -#} -# -#resource "google_compute_instance_group_manager" "gcp-inspec-igm" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group_manager["name"] -# version { -# instance_template = google_compute_instance_template.default.self_link -# } -# base_instance_name = var.instance_group_manager["base_instance_name"] -# target_pools = [] -# target_size = 0 -# named_port { -# name = var.instance_group_manager["named_port_name"] -# port = var.instance_group_manager["named_port_port"] -# } -#} -# -#resource "google_compute_autoscaler" "gcp-inspec-autoscaler" { -# project = var.gcp_project_id -# name = var.autoscaler["name"] -# zone = var.gcp_zone -# target = google_compute_instance_group_manager.gcp-inspec-igm.self_link -# -# autoscaling_policy { -# max_replicas = var.autoscaler["max_replicas"] -# min_replicas = var.autoscaler["min_replicas"] -# cooldown_period = var.autoscaler["cooldown_period"] -# -# cpu_utilization { -# target = var.autoscaler["cpu_utilization_target"] -# } -# } -#} -# -#resource "google_compute_target_pool" "gcp-inspec-target-pool" { -# project = var.gcp_project_id -# name = var.target_pool["name"] -# session_affinity = var.target_pool["session_affinity"] -# -# instances = [ -# "${var.gcp_zone}/${var.gcp_ext_vm_name}", -# ] -#} -# -#resource "google_cloudbuild_trigger" "gcp-inspec-cloudbuild-trigger" { -# project = var.gcp_project_id -# trigger_template { -# branch_name = var.trigger["trigger_template_branch"] -# project_id = var.trigger["trigger_template_project"] -# repo_name = var.trigger["trigger_template_repo"] -# } -# filename = var.trigger["filename"] -#} -# -#resource "google_compute_health_check" "gcp-inspec-health-check" { -# project = var.gcp_project_id -# name = var.health_check["name"] -# -# timeout_sec = var.health_check["timeout_sec"] -# check_interval_sec = var.health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_backend_service" "gcp-inspec-backend-service" { -# project = var.gcp_project_id -# name = var.backend_service["name"] -# description = var.backend_service["description"] -# port_name = var.backend_service["port_name"] -# protocol = var.backend_service["protocol"] -# timeout_sec = var.backend_service["timeout_sec"] -# enable_cdn = var.backend_service["enable_cdn"] -# -# backend { -# group = google_compute_instance_group_manager.gcp-inspec-igm.instance_group -# } -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_health_check" "gcp-inspec-region-backend-service-hc" { -# project = var.gcp_project_id -# name = var.region_backend_service_health_check["name"] -# -# timeout_sec = var.region_backend_service_health_check["timeout_sec"] -# check_interval_sec = var.region_backend_service_health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.region_backend_service_health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_region_backend_service" "gcp-inspec-region-backend-service" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.region_backend_service["name"] -# description = var.region_backend_service["description"] -# protocol = var.region_backend_service["protocol"] -# timeout_sec = var.region_backend_service["timeout_sec"] -# -# health_checks = [google_compute_health_check.gcp-inspec-region-backend-service-hc.self_link] -#} -# -#resource "google_compute_http_health_check" "gcp-inspec-http-health-check" { -# project = var.gcp_project_id -# name = var.http_health_check["name"] -# request_path = var.http_health_check["request_path"] -# -# timeout_sec = var.http_health_check["timeout_sec"] -# check_interval_sec = var.http_health_check["check_interval_sec"] -#} -# -#resource "google_compute_https_health_check" "gcp-inspec-https-health-check" { -# project = var.gcp_project_id -# name = var.https_health_check["name"] -# request_path = var.https_health_check["request_path"] -# -# timeout_sec = var.https_health_check["timeout_sec"] -# check_interval_sec = var.https_health_check["check_interval_sec"] -# unhealthy_threshold = var.https_health_check["unhealthy_threshold"] -#} -# -#resource "google_compute_instance_template" "gcp-inspec-instance-template" { -# project = var.gcp_project_id -# name = var.instance_template["name"] -# description = var.instance_template["description"] -# -# tags = [var.instance_template["tag"]] -# -# instance_description = var.instance_template["instance_description"] -# machine_type = var.instance_template["machine_type"] -# can_ip_forward = var.instance_template["can_ip_forward"] -# -# scheduling { -# automatic_restart = var.instance_template["scheduling_automatic_restart"] -# on_host_maintenance = var.instance_template["scheduling_on_host_maintenance"] -# } -# -# // Create a new boot disk from an image -# disk { -# source_image = var.instance_template["disk_source_image"] -# auto_delete = var.instance_template["disk_auto_delete"] -# boot = var.instance_template["disk_boot"] -# } -# -# network_interface { -# network = var.instance_template["network_interface_network"] -# } -# -# service_account { -# scopes = [var.instance_template["service_account_scope"]] -# } -#} -# -#resource "google_compute_global_address" "gcp-inspec-global-address" { -# project = var.gcp_project_id -# name = var.global_address["name"] -# ip_version = var.global_address["ip_version"] -#} -# -#resource "google_compute_url_map" "gcp-inspec-url-map" { -# project = var.gcp_project_id -# name = var.url_map["name"] -# description = var.url_map["description"] -# -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# host_rule { -# hosts = [var.url_map["host_rule_host"]] -# path_matcher = var.url_map["path_matcher_name"] -# } -# -# path_matcher { -# name = var.url_map["path_matcher_name"] -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# path_rule { -# paths = [var.url_map["path_rule_path"]] -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# } -# } -# -# test { -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# host = var.url_map["test_host"] -# path = var.url_map["test_path"] -# } -#} -# -#resource "google_compute_target_http_proxy" "gcp-inspec-http-proxy" { -# project = var.gcp_project_id -# name = var.http_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.http_proxy["description"] -#} -# -#resource "google_compute_global_forwarding_rule" "gcp-inspec-global-forwarding-rule" { -# project = var.gcp_project_id -# name = var.global_forwarding_rule["name"] -# target = google_compute_target_http_proxy.gcp-inspec-http-proxy.self_link -# port_range = var.global_forwarding_rule["port_range"] -#} -# -#resource "google_compute_backend_service" "gcp-inspec-tcp-backend-service" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["tcp_backend_service_name"] -# protocol = "TCP" -# timeout_sec = 10 -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_target_tcp_proxy" "gcp-inspec-target-tcp-proxy" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["name"] -# proxy_header = var.target_tcp_proxy["proxy_header"] -# backend_service = google_compute_backend_service.gcp-inspec-tcp-backend-service.self_link -#} -# -#resource "google_compute_route" "gcp-inspec-route" { -# project = var.gcp_project_id -# name = var.route["name"] -# dest_range = var.route["dest_range"] -# network = google_compute_network.inspec-gcp-network.name -# next_hop_ip = var.route["next_hop_ip"] -# priority = var.route["priority"] -# # google_compute_route depends on next_hop_ip belonging to a subnetwork -# # of the named network in this block. Since inspec-gcp-network does not -# # automatically create subnetworks, we need to create a dependency so -# # the route is not created before the subnetwork -# depends_on = [google_compute_subnetwork.inspec-gcp-subnetwork] -#} -# -#resource "google_compute_router" "gcp-inspec-router" { -# project = var.gcp_project_id -# name = var.router["name"] -# network = google_compute_network.inspec-gcp-network.name -# bgp { -# asn = var.router["bgp_asn"] -# advertise_mode = var.router["bgp_advertise_mode"] -# advertised_groups = [var.router["bgp_advertised_group"]] -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range1"] -# } -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range2"] -# } -# } -#} -# -#resource "google_compute_disk" "snapshot-disk" { -# project = var.gcp_project_id -# name = var.snapshot["disk_name"] -# type = var.snapshot["disk_type"] -# zone = var.gcp_zone -# image = var.snapshot["disk_image"] -# labels = { -# environment = "generic_compute_disk_label" -# } -#} -# -#resource "google_compute_snapshot" "gcp-inspec-snapshot" { -# project = var.gcp_project_id -# name = var.snapshot["name"] -# source_disk = google_compute_disk.snapshot-disk.name -# zone = var.gcp_zone -#} -# -#resource "google_compute_ssl_certificate" "gcp-inspec-ssl-certificate" { -# project = var.gcp_project_id -# name = var.ssl_certificate["name"] -# private_key = var.ssl_certificate["private_key"] -# certificate = var.ssl_certificate["certificate"] -# description = var.ssl_certificate["description"] -#} -# -#resource "google_compute_target_https_proxy" "gcp-inspec-https-proxy" { -# project = var.gcp_project_id -# name = var.https_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.https_proxy["description"] -# ssl_certificates = [google_compute_ssl_certificate.gcp-inspec-ssl-certificate.self_link] -#} -# -#resource "google_bigquery_dataset" "gcp-inspec-dataset" { -# project = var.gcp_project_id -# dataset_id = var.dataset["dataset_id"] -# friendly_name = var.dataset["friendly_name"] -# description = var.dataset["description"] -# location = var.dataset["location"] -# default_table_expiration_ms = var.dataset["default_table_expiration_ms"] -# -# access { -# role = var.dataset["access_writer_role"] -# special_group = var.dataset["access_writer_special_group"] -# } -# -# access { -# role = "OWNER" -# special_group = "projectOwners" -# } -#} -# -#resource "google_bigquery_table" "gcp-inspec-bigquery-table" { -# project = var.gcp_project_id -# dataset_id = google_bigquery_dataset.gcp-inspec-dataset.dataset_id -# table_id = var.bigquery_table["table_id"] -# -# time_partitioning { -# type = var.bigquery_table["time_partitioning_type"] -# } -# -# description = var.bigquery_table["description"] -# expiration_time = var.bigquery_table["expiration_time"] -#} -# -#resource "google_sourcerepo_repository" "gcp-inspec-sourcerepo-repository" { -# project = var.gcp_project_id -# name = var.repository["name"] -#} -# -#resource "google_folder" "inspec-gcp-folder" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# display_name = var.folder["display_name"] -# parent = "organizations/${var.gcp_organization_id}" -#} -# -#resource "google_storage_bucket_object" "archive" { -# name = "index.js.zip" -# bucket = google_storage_bucket.generic-storage-bucket.name -# source = "../configuration/index.js.zip" -#} -# -#resource "google_cloudfunctions_function" "function" { -# project = var.gcp_project_id -# region = var.gcp_cloud_function_region -# name = var.cloudfunction["name"] -# description = var.cloudfunction["description"] -# available_memory_mb = var.cloudfunction["available_memory_mb"] -# source_archive_bucket = google_storage_bucket.generic-storage-bucket.name -# source_archive_object = google_storage_bucket_object.archive.name -# trigger_http = var.cloudfunction["trigger_http"] -# timeout = var.cloudfunction["timeout"] -# entry_point = var.cloudfunction["entry_point"] -# runtime = "nodejs8" -# -# environment_variables = { -# MY_ENV_VAR = var.cloudfunction["env_var_value"] -# } -#} -# -#resource "google_compute_backend_bucket" "image_backend" { -# project = var.gcp_project_id -# name = var.backend_bucket["name"] -# description = var.backend_bucket["description"] -# bucket_name = google_storage_bucket.generic-storage-bucket.name -# enable_cdn = var.backend_bucket["enable_cdn"] -#} -# -#resource "google_container_node_pool" "inspec-gcp-node-pool" { -# project = var.gcp_project_id -# name = var.regional_node_pool["name"] -# location = google_container_cluster.primary.location -# cluster = google_container_cluster.primary.name -# node_count = var.regional_node_pool["node_count"] -#} -# -#resource "google_logging_organization_sink" "my-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.org_sink.name -# org_id = var.gcp_organization_id -# -# # Can export to pubsub, cloud storage, or bigquery -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# # Log all WARN or higher severity messages relating to instances -# filter = var.org_sink.filter -#} -# -#variable "project_sink" { -# type = any -#} -# -#resource "google_logging_project_sink" "project-logging-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# -# name = var.project_sink.name -# destination = "storage.googleapis.com/${google_storage_bucket.project-logging-bucket[0].name}" -# -# filter = var.project_sink.filter -# -# unique_writer_identity = true -#} -# -#resource "google_storage_bucket" "bucket" { -# name = "inspec-gcp-static-${var.gcp_project_id}" -# project = var.gcp_project_id -# location = var.gcp_location -# force_destroy = true -# -# labels = { -# "key" = "value" -# } -# -# retention_policy { -# retention_period = 1000 -# } -#} -# -#resource "google_storage_bucket_object" "object" { -# name = "hello-world.zip" -# bucket = google_storage_bucket.bucket.name -# source = "../configuration/hello-world.zip" -#} -# -#resource "google_app_engine_standard_app_version" "default" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# version_id = var.standardappversion["version_id"] -# service = var.standardappversion["service"] -# runtime = var.standardappversion["runtime"] -# noop_on_destroy = true -# entrypoint { -# shell = var.standardappversion["entrypoint"] -# } -# -# deployment { -# zip { -# source_url = "https://storage.googleapis.com/${google_storage_bucket.bucket.name}/hello-world.zip" -# } -# } -# -# env_variables = { -# port = var.standardappversion["port"] -# } -#} -# -#resource "google_ml_engine_model" "inspec-gcp-model" { -# project = var.gcp_project_id -# name = var.ml_model["name"] -# description = var.ml_model["description"] -# regions = [var.ml_model["region"]] -# online_prediction_logging = var.ml_model["online_prediction_logging"] -# online_prediction_console_logging = var.ml_model["online_prediction_console_logging"] -#} -# -#resource "google_compute_firewall" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-firewall" -# network = google_compute_network.dataproc.name -# -# source_ranges = ["10.128.0.0/9"] -# allow { -# protocol = "icmp" -# } -# -# allow { -# protocol = "tcp" -# ports = ["0-65535"] -# } -# allow { -# protocol = "udp" -# ports = ["0-65535"] -# } -#} -# -#resource "google_compute_network" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-network" -#} -# -#resource "google_dataproc_cluster" "mycluster" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.dataproc_cluster["name"] -# -# labels = { -# "${var.dataproc_cluster["label_key"]}" = var.dataproc_cluster["label_value"] -# } -# -# cluster_config { -# master_config { -# num_instances = var.dataproc_cluster["config"]["master_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["master_config"]["machine_type"] -# disk_config { -# boot_disk_type = var.dataproc_cluster["config"]["master_config"]["boot_disk_type"] -# boot_disk_size_gb = var.dataproc_cluster["config"]["master_config"]["boot_disk_size_gb"] -# } -# } -# -# worker_config { -# num_instances = var.dataproc_cluster["config"]["worker_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["worker_config"]["machine_type"] -# disk_config { -# boot_disk_size_gb = var.dataproc_cluster["config"]["worker_config"]["boot_disk_size_gb"] -# num_local_ssds = var.dataproc_cluster["config"]["worker_config"]["num_local_ssds"] -# } -# } -# -# # Override or set some custom properties -# software_config { -# override_properties = { -# "${var.dataproc_cluster["config"]["software_config"]["prop_key"]}" = var.dataproc_cluster["config"]["software_config"]["prop_value"] -# } -# } -# -# gce_cluster_config { -# network = google_compute_network.dataproc.self_link -# tags = [var.dataproc_cluster["config"]["gce_cluster_config"]["tag"]] -# } -# } -#} -# -#resource "google_logging_folder_exclusion" "my-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_exclusion["name"] -# folder = google_folder.inspec-gcp-folder.0.name -# -# description = var.folder_exclusion["description"] -# -# filter = var.folder_exclusion["filter"] -#} -# -#variable "project_exclusion" { -# type = any -#} -# -#resource "google_logging_project_exclusion" "project-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.project_exclusion["name"] -# project = var.gcp_project_id -# -# description = var.project_exclusion["description"] -# -# filter = var.project_exclusion["filter"] -#} -# -#resource "google_filestore_instance" "instance" { -# project = var.gcp_project_id -# name = var.filestore_instance["name"] -# zone = var.filestore_instance["zone"] -# tier = var.filestore_instance["tier"] -# -# file_shares { -# capacity_gb = var.filestore_instance["fileshare_capacity_gb"] -# name = var.filestore_instance["fileshare_name"] -# } -# -# networks { -# network = var.filestore_instance["network_name"] -# modes = [var.filestore_instance["network_mode"]] -# } -#} -# -#resource "google_logging_folder_sink" "folder-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_sink.name -# folder = google_folder.inspec-gcp-folder.0.name -# -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# filter = var.folder_sink.filter -#} -# -#resource "google_runtimeconfig_config" "inspec-runtime-config" { -# project = var.gcp_project_id -# name = var.runtimeconfig_config["name"] -# description = var.runtimeconfig_config["description"] -#} -# -#resource "google_runtimeconfig_variable" "inspec-runtime-variable" { -# project = var.gcp_project_id -# parent = google_runtimeconfig_config.inspec-runtime-config.name -# name = var.runtimeconfig_variable["name"] -# text = var.runtimeconfig_variable["text"] -#} -# -#resource "google_redis_instance" "inspec-redis" { -# project = var.gcp_project_id -# name = var.redis["name"] -# tier = var.redis["tier"] -# memory_size_gb = var.redis["memory_size_gb"] -# -# location_id = var.redis["location_id"] -# alternative_location_id = var.redis["alternative_location_id"] -# -# redis_version = var.redis["redis_version"] -# display_name = var.redis["display_name"] -# reserved_ip_range = var.redis["reserved_ip_range"] -# -# labels = { -# "${var.redis["label_key"]}" = var.redis["label_value"] -# } -#} -# -#resource "google_compute_network_endpoint_group" "inspec-endpoint-group" { -# project = var.gcp_project_id -# name = var.network_endpoint_group["name"] -# network = google_compute_subnetwork.inspec-gcp-subnetwork.network -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# default_port = var.network_endpoint_group["default_port"] -# zone = var.gcp_zone -#} -# -#data "google_compute_node_types" "zone-node-type" { -# project = var.gcp_project_id -# zone = var.gcp_zone -#} -# -#resource "google_compute_node_template" "inspec-template" { -# project = var.gcp_project_id -# region = var.gcp_location -# -# name = var.node_template["name"] -# node_type = data.google_compute_node_types.zone-node-type.names[0] -# -# node_affinity_labels = { -# "${var.node_template["label_key"]}" = var.node_template["label_value"] -# } -#} -# -#resource "google_compute_node_group" "inspec-node-group" { -# project = var.gcp_project_id -# name = var.node_group["name"] -# zone = var.gcp_zone -# description = var.node_group["description"] -# -# size = var.node_group["size"] -# node_template = google_compute_node_template.inspec-template.self_link -#} -# -#resource "google_compute_router_nat" "inspec-nat" { -# project = var.gcp_project_id -# name = var.router_nat["name"] -# router = google_compute_router.gcp-inspec-router.name -# region = google_compute_router.gcp-inspec-router.region -# nat_ip_allocate_option = var.router_nat["nat_ip_allocate_option"] -# source_subnetwork_ip_ranges_to_nat = var.router_nat["source_subnetwork_ip_ranges_to_nat"] -# min_ports_per_vm = var.router_nat["min_ports_per_vm"] -# -# log_config { -# enable = var.router_nat["log_config_enable"] -# filter = var.router_nat["log_config_filter"] -# } -#} -# -#resource "google_project_service" "project" { -# project = var.gcp_project_id -# service = var.service["name"] -#} -# -#resource "google_service_account" "spanner_service_account" { -# project = var.gcp_project_id -# account_id = "${var.gcp_service_account_display_name}-sp" -# display_name = "${var.gcp_service_account_display_name}-sp" -#} -# -#resource "google_service_account_key" "userkey" { -# service_account_id = google_service_account.spanner_service_account.name -# public_key_type = "TYPE_X509_PEM_FILE" -#} -# -#resource "google_spanner_instance" "spanner_instance" { -# project = var.gcp_project_id -# config = var.spannerinstance["config"] -# name = var.spannerinstance["name"] -# display_name = var.spannerinstance["display_name"] -# num_nodes = var.spannerinstance["num_nodes"] -# labels = { -# "${var.spannerinstance["label_key"]}" = var.spannerinstance["label_value"] -# } -#} -# -#resource "google_spanner_instance_iam_binding" "instance" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# role = "roles/editor" -# -# members = [ -# "serviceAccount:${google_service_account.spanner_service_account.email}", -# ] -#} -# -#resource "google_spanner_database" "database" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# name = var.spannerdatabase["name"] -# ddl = [var.spannerdatabase["ddl"]] -#} -# -#resource "google_cloud_scheduler_job" "job" { -# project = var.gcp_project_id -# region = var.scheduler_job["region"] -# name = var.scheduler_job["name"] -# description = var.scheduler_job["description"] -# schedule = var.scheduler_job["schedule"] -# time_zone = var.scheduler_job["time_zone"] -# -# http_target { -# http_method = var.scheduler_job["http_method"] -# uri = var.scheduler_job["http_target_uri"] -# } -#} -# -#variable "service_perimeter" { -# type = any -#} -# -#resource "google_access_context_manager_service_perimeter" "service-perimeter" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/servicePerimeters/${var.service_perimeter["name"]}" -# title = var.service_perimeter["title"] -# status { -# restricted_services = [var.service_perimeter["restricted_service"]] -# } -#} -# -#resource "google_access_context_manager_access_policy" "access-policy" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "organizations/${var.gcp_organization_id}" -# title = var.service_perimeter["policy_title"] -#} -# -#resource "google_access_context_manager_access_level" "access-level" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/accessLevels/os_lock" -# title = "os_lock" -# basic { -# conditions { -# device_policy { -# require_screen_lock = true -# } -# regions = [ -# "CH", -# "IT", -# "US", -# ] -# } -# } -#} -# -#variable "firewall" { -# type = any -#} -# -#resource "google_compute_firewall" "mm-firewall" { -# project = var.gcp_project_id -# name = var.firewall["name"] -# enable_logging = true -# network = google_compute_network.inspec-gcp-network.name -# -# allow { -# protocol = "tcp" -# ports = ["80", "8080", "1000-2000"] -# } -# -# source_tags = [var.firewall["source_tag"]] -#} -# -#variable "address" { -# type = any -#} -# -#resource "google_compute_address" "internal_with_subnet_and_address" { -# project = var.gcp_project_id -# name = var.address["name"] -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# address_type = var.address["address_type"] -# address = var.address["address"] -# region = var.gcp_location -#} -# -#variable "instance_group" { -# type = any -#} -# -#resource "google_compute_instance_group" "inspec-instance-group" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group["name"] -# description = var.instance_group["description"] -# -# named_port { -# name = var.instance_group["named_port_name"] -# port = var.instance_group["named_port_port"] -# } -#} -# -#variable "instance" { -# type = any -#} -# -#resource "google_compute_instance" "inspec-instance" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance["name"] -# machine_type = var.instance["machine_type"] -# -# tags = [var.instance["tag_1"], var.instance["tag_2"]] -# -# boot_disk { -# initialize_params { -# image = "debian-cloud/debian-9" -# } -# } -# -# network_interface { -# network = "default" -# -# access_config { -# // Ephemeral IP -# } -# } -# -# metadata = { -# "${var.instance["metadata_key"]}" = var.instance["metadata_value"] -# } -# -# metadata_startup_script = var.instance["startup_script"] -# -# service_account { -# scopes = [var.instance["sa_scope"]] -# } -#} -# -#variable "network" { -# type = any -#} -# -#resource "google_compute_network" "inspec-network" { -# project = var.gcp_project_id -# name = var.network["name"] -# routing_mode = var.network["routing_mode"] -#} -# -#variable "subnetwork" { -# type = any -#} -# -#resource "google_compute_subnetwork" "subnet-with-logging" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.subnetwork["name"] -# ip_cidr_range = var.subnetwork["ip_cidr_range"] -# network = google_compute_network.inspec-network.self_link -# -# log_config { -# aggregation_interval = var.subnetwork["log_interval"] -# flow_sampling = var.subnetwork["log_sampling"] -# metadata = var.subnetwork["log_metadata"] -# } -#} -# -#variable "rigm" { -# type = any -#} -# +variable "ssl_policy" { + type = any +} + +variable "topic" { + type = any +} + +variable "subscription" { + type = any +} + +variable "managed_zone" { + type = any +} + +variable "record_set" { + type = any +} + +variable "instance_group_manager" { + type = any +} + +variable "autoscaler" { + type = any +} + +variable "target_pool" { + type = any +} + +variable "trigger" { + type = any +} + +variable "health_check" { + type = any +} + +variable "backend_service" { + type = any +} + +variable "http_health_check" { + type = any +} + +variable "https_health_check" { + type = any +} + +variable "instance_template" { + type = any +} + +variable "global_address" { + type = any +} + +variable "url_map" { + type = any +} + +variable "http_proxy" { + type = any +} + +variable "global_forwarding_rule" { + type = any +} + +variable "target_tcp_proxy" { + type = any +} + +variable "route" { + type = any +} + +variable "router" { + type = any +} + +variable "snapshot" { + type = any +} + +variable "https_proxy" { + type = any +} + +variable "ssl_certificate" { + type = any +} + +variable "dataset" { + type = any +} + +variable "bigquery_table" { + type = any +} + +variable "repository" { + type = any +} + +variable "folder" { + type = any +} + +variable "gcp_organization_id" { + type = string + default = "none" +} + +variable "cloudfunction" { + type = any +} + +variable "backend_bucket" { + type = any +} + +variable "gcp_cloud_function_region" {} + +variable "regional_node_pool" { + type = any +} + +variable "region_backend_service_health_check" { + type = any +} + +variable "region_backend_service" { + type = any +} + +variable "org_sink" { + type = any +} + +variable "standardappversion" { + type = any +} + +variable "ml_model" { + type = any +} + +variable "dataproc_cluster" { + type = any +} + +variable "folder_exclusion" { + type = any +} + +variable "filestore_instance" { + type = any +} + +variable "folder_sink" { + type = any +} + +variable "runtimeconfig_config" { + type = any +} + +variable "runtimeconfig_variable" { + type = any +} + +variable "redis" { + type = any +} + +variable "network_endpoint_group" { + type = any +} + +variable "node_template" { + type = any +} + +variable "node_group" { + type = any +} + +variable "router_nat" { + type = any +} + +variable "service" { + type = any +} + +variable "spannerinstance" { + type = any +} + +variable "spannerdatabase" { + type = any +} + +variable "scheduler_job" { + type = any +} + + +resource "google_compute_ssl_policy" "custom-ssl-policy" { + name = var.ssl_policy["name"] + min_tls_version = var.ssl_policy["min_tls_version"] + profile = var.ssl_policy["profile"] + custom_features = [var.ssl_policy["custom_feature"], var.ssl_policy["custom_feature2"]] + project = var.gcp_project_id +} + +resource "google_pubsub_topic" "topic" { + project = var.gcp_project_id + name = var.topic["name"] +} + +resource "google_pubsub_subscription" "default" { + project = var.gcp_project_id + name = var.subscription["name"] + topic = google_pubsub_topic.topic.name + ack_deadline_seconds = var.subscription["ack_deadline_seconds"] +} + +resource "google_dns_managed_zone" "prod" { + name = var.managed_zone["name"] + dns_name = var.managed_zone["dns_name"] + description = var.managed_zone["description"] + + labels = { + key = var.managed_zone["label_value"] + } + project = var.gcp_project_id +} + +resource "google_dns_record_set" "a" { + name = var.record_set["name"] + managed_zone = google_dns_managed_zone.prod.name + type = var.record_set["type"] + ttl = var.record_set["ttl"] + + rrdatas = [var.record_set["rrdatas1"], var.record_set["rrdatas2"]] + project = var.gcp_project_id +} + +resource "google_compute_instance_group_manager" "gcp-inspec-igm" { + project = var.gcp_project_id + zone = var.gcp_zone + name = var.instance_group_manager["name"] + version { + instance_template = google_compute_instance_template.default.self_link + } + base_instance_name = var.instance_group_manager["base_instance_name"] + target_pools = [] + target_size = 0 + named_port { + name = var.instance_group_manager["named_port_name"] + port = var.instance_group_manager["named_port_port"] + } +} + +resource "google_compute_autoscaler" "gcp-inspec-autoscaler" { + project = var.gcp_project_id + name = var.autoscaler["name"] + zone = var.gcp_zone + target = google_compute_instance_group_manager.gcp-inspec-igm.self_link + + autoscaling_policy { + max_replicas = var.autoscaler["max_replicas"] + min_replicas = var.autoscaler["min_replicas"] + cooldown_period = var.autoscaler["cooldown_period"] + + cpu_utilization { + target = var.autoscaler["cpu_utilization_target"] + } + } +} + +resource "google_compute_target_pool" "gcp-inspec-target-pool" { + project = var.gcp_project_id + name = var.target_pool["name"] + session_affinity = var.target_pool["session_affinity"] + + instances = [ + "${var.gcp_zone}/${var.gcp_ext_vm_name}", + ] +} + +resource "google_cloudbuild_trigger" "gcp-inspec-cloudbuild-trigger" { + project = var.gcp_project_id + trigger_template { + branch_name = var.trigger["trigger_template_branch"] + project_id = var.trigger["trigger_template_project"] + repo_name = var.trigger["trigger_template_repo"] + } + filename = var.trigger["filename"] +} + +resource "google_compute_health_check" "gcp-inspec-health-check" { +project = var.gcp_project_id +name = var.health_check["name"] + +timeout_sec = var.health_check["timeout_sec"] +check_interval_sec = var.health_check["check_interval_sec"] + +tcp_health_check { + port = var.health_check["tcp_health_check_port"] +} +} + +resource "google_compute_backend_service" "gcp-inspec-backend-service" { + project = var.gcp_project_id + name = var.backend_service["name"] + description = var.backend_service["description"] + port_name = var.backend_service["port_name"] + protocol = var.backend_service["protocol"] + timeout_sec = var.backend_service["timeout_sec"] + enable_cdn = var.backend_service["enable_cdn"] + + backend { + group = google_compute_instance_group_manager.gcp-inspec-igm.instance_group + } + + health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] +} + +resource "google_compute_health_check" "gcp-inspec-region-backend-service-hc" { +project = var.gcp_project_id +name = var.region_backend_service_health_check["name"] + +timeout_sec = var.region_backend_service_health_check["timeout_sec"] +check_interval_sec = var.region_backend_service_health_check["check_interval_sec"] + +tcp_health_check { + port = var.region_backend_service_health_check["tcp_health_check_port"] +} +} + +resource "google_compute_region_backend_service" "gcp-inspec-region-backend-service" { + project = var.gcp_project_id + region = var.gcp_location + name = var.region_backend_service["name"] + description = var.region_backend_service["description"] + protocol = var.region_backend_service["protocol"] + timeout_sec = var.region_backend_service["timeout_sec"] + + health_checks = [google_compute_health_check.gcp-inspec-region-backend-service-hc.self_link] +} + +resource "google_compute_http_health_check" "gcp-inspec-http-health-check" { + project = var.gcp_project_id + name = var.http_health_check["name"] + request_path = var.http_health_check["request_path"] + + timeout_sec = var.http_health_check["timeout_sec"] + check_interval_sec = var.http_health_check["check_interval_sec"] +} + +resource "google_compute_https_health_check" "gcp-inspec-https-health-check" { + project = var.gcp_project_id + name = var.https_health_check["name"] + request_path = var.https_health_check["request_path"] + + timeout_sec = var.https_health_check["timeout_sec"] + check_interval_sec = var.https_health_check["check_interval_sec"] + unhealthy_threshold = var.https_health_check["unhealthy_threshold"] +} + +resource "google_compute_instance_template" "gcp-inspec-instance-template" { + project = var.gcp_project_id + name = var.instance_template["name"] + description = var.instance_template["description"] + + tags = [var.instance_template["tag"]] + + instance_description = var.instance_template["instance_description"] + machine_type = var.instance_template["machine_type"] + can_ip_forward = var.instance_template["can_ip_forward"] + + scheduling { + automatic_restart = var.instance_template["scheduling_automatic_restart"] + on_host_maintenance = var.instance_template["scheduling_on_host_maintenance"] + } + + // Create a new boot disk from an image + disk { + source_image = var.instance_template["disk_source_image"] + auto_delete = var.instance_template["disk_auto_delete"] + boot = var.instance_template["disk_boot"] + } + + network_interface { + network = var.instance_template["network_interface_network"] + } + + service_account { + scopes = [var.instance_template["service_account_scope"]] + } +} + +resource "google_compute_global_address" "gcp-inspec-global-address" { + project = var.gcp_project_id + name = var.global_address["name"] + ip_version = var.global_address["ip_version"] +} + +resource "google_compute_url_map" "gcp-inspec-url-map" { + project = var.gcp_project_id + name = var.url_map["name"] + description = var.url_map["description"] + + default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link + + host_rule { + hosts = [var.url_map["host_rule_host"]] + path_matcher = var.url_map["path_matcher_name"] + } + + path_matcher { + name = var.url_map["path_matcher_name"] + default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link + + path_rule { + paths = [var.url_map["path_rule_path"]] + service = google_compute_backend_service.gcp-inspec-backend-service.self_link + } + } + + test { + service = google_compute_backend_service.gcp-inspec-backend-service.self_link + host = var.url_map["test_host"] + path = var.url_map["test_path"] + } +} + +resource "google_compute_target_http_proxy" "gcp-inspec-http-proxy" { + project = var.gcp_project_id + name = var.http_proxy["name"] + url_map = google_compute_url_map.gcp-inspec-url-map.self_link + description = var.http_proxy["description"] +} + +resource "google_compute_global_forwarding_rule" "gcp-inspec-global-forwarding-rule" { + project = var.gcp_project_id + name = var.global_forwarding_rule["name"] + target = google_compute_target_http_proxy.gcp-inspec-http-proxy.self_link + port_range = var.global_forwarding_rule["port_range"] +} + +resource "google_compute_backend_service" "gcp-inspec-tcp-backend-service" { + project = var.gcp_project_id + name = var.target_tcp_proxy["tcp_backend_service_name"] + protocol = "TCP" + timeout_sec = 10 + + health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] +} + +resource "google_compute_target_tcp_proxy" "gcp-inspec-target-tcp-proxy" { + project = var.gcp_project_id + name = var.target_tcp_proxy["name"] + proxy_header = var.target_tcp_proxy["proxy_header"] + backend_service = google_compute_backend_service.gcp-inspec-tcp-backend-service.self_link +} + +resource "google_compute_route" "gcp-inspec-route" { + project = var.gcp_project_id + name = var.route["name"] + dest_range = var.route["dest_range"] + network = google_compute_network.inspec-gcp-network.name + next_hop_ip = var.route["next_hop_ip"] + priority = var.route["priority"] + # google_compute_route depends on next_hop_ip belonging to a subnetwork + # of the named network in this block. Since inspec-gcp-network does not + # automatically create subnetworks, we need to create a dependency so + # the route is not created before the subnetwork + depends_on = [google_compute_subnetwork.inspec-gcp-subnetwork] +} + +resource "google_compute_router" "gcp-inspec-router" { + project = var.gcp_project_id + name = var.router["name"] + network = google_compute_network.inspec-gcp-network.name + bgp { + asn = var.router["bgp_asn"] + advertise_mode = var.router["bgp_advertise_mode"] + advertised_groups = [var.router["bgp_advertised_group"]] + advertised_ip_ranges { + range = var.router["bgp_advertised_ip_range1"] + } + advertised_ip_ranges { + range = var.router["bgp_advertised_ip_range2"] + } + } +} + +resource "google_compute_disk" "snapshot-disk" { + project = var.gcp_project_id + name = var.snapshot["disk_name"] + type = var.snapshot["disk_type"] + zone = var.gcp_zone + image = var.snapshot["disk_image"] + labels = { + environment = "generic_compute_disk_label" + } +} + +resource "google_compute_snapshot" "gcp-inspec-snapshot" { + project = var.gcp_project_id + name = var.snapshot["name"] + source_disk = google_compute_disk.snapshot-disk.name + zone = var.gcp_zone +} + +resource "google_compute_ssl_certificate" "gcp-inspec-ssl-certificate" { + project = var.gcp_project_id + name = var.ssl_certificate["name"] + private_key = var.ssl_certificate["private_key"] + certificate = var.ssl_certificate["certificate"] + description = var.ssl_certificate["description"] +} + +resource "google_compute_target_https_proxy" "gcp-inspec-https-proxy" { + project = var.gcp_project_id + name = var.https_proxy["name"] + url_map = google_compute_url_map.gcp-inspec-url-map.self_link + description = var.https_proxy["description"] + ssl_certificates = [google_compute_ssl_certificate.gcp-inspec-ssl-certificate.self_link] +} + +resource "google_bigquery_dataset" "gcp-inspec-dataset" { + project = var.gcp_project_id + dataset_id = var.dataset["dataset_id"] + friendly_name = var.dataset["friendly_name"] + description = var.dataset["description"] + location = var.dataset["location"] + default_table_expiration_ms = var.dataset["default_table_expiration_ms"] + + access { + role = var.dataset["access_writer_role"] + special_group = var.dataset["access_writer_special_group"] + } + + access { + role = "OWNER" + special_group = "projectOwners" + } +} + +resource "google_bigquery_table" "gcp-inspec-bigquery-table" { + project = var.gcp_project_id + dataset_id = google_bigquery_dataset.gcp-inspec-dataset.dataset_id + table_id = var.bigquery_table["table_id"] + + time_partitioning { + type = var.bigquery_table["time_partitioning_type"] + } + + description = var.bigquery_table["description"] + expiration_time = var.bigquery_table["expiration_time"] +} + +resource "google_sourcerepo_repository" "gcp-inspec-sourcerepo-repository" { + project = var.gcp_project_id + name = var.repository["name"] +} + +resource "google_folder" "inspec-gcp-folder" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + display_name = var.folder["display_name"] + parent = "organizations/${var.gcp_organization_id}" +} + +resource "google_storage_bucket_object" "archive" { + name = "index.js.zip" + bucket = google_storage_bucket.generic-storage-bucket.name + source = "../configuration/index.js.zip" +} + +resource "google_cloudfunctions_function" "function" { + project = var.gcp_project_id + region = var.gcp_cloud_function_region + name = var.cloudfunction["name"] + description = var.cloudfunction["description"] + available_memory_mb = var.cloudfunction["available_memory_mb"] + source_archive_bucket = google_storage_bucket.generic-storage-bucket.name + source_archive_object = google_storage_bucket_object.archive.name + trigger_http = var.cloudfunction["trigger_http"] + timeout = var.cloudfunction["timeout"] + entry_point = var.cloudfunction["entry_point"] + runtime = "nodejs8" + + environment_variables = { + MY_ENV_VAR = var.cloudfunction["env_var_value"] + } +} + +resource "google_compute_backend_bucket" "image_backend" { + project = var.gcp_project_id + name = var.backend_bucket["name"] + description = var.backend_bucket["description"] + bucket_name = google_storage_bucket.generic-storage-bucket.name + enable_cdn = var.backend_bucket["enable_cdn"] +} + +resource "google_container_node_pool" "inspec-gcp-node-pool" { + project = var.gcp_project_id + name = var.regional_node_pool["name"] + location = google_container_cluster.primary.location + cluster = google_container_cluster.primary.name + node_count = var.regional_node_pool["node_count"] +} + +resource "google_logging_organization_sink" "my-sink" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.org_sink.name + org_id = var.gcp_organization_id + + # Can export to pubsub, cloud storage, or bigquery + destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" + + # Log all WARN or higher severity messages relating to instances + filter = var.org_sink.filter +} + +variable "project_sink" { + type = any +} + +resource "google_logging_project_sink" "project-logging-sink" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + project = var.gcp_project_id + + name = var.project_sink.name + destination = "storage.googleapis.com/${google_storage_bucket.project-logging-bucket[0].name}" + + filter = var.project_sink.filter + + unique_writer_identity = true +} + +resource "google_storage_bucket" "bucket" { + name = "inspec-gcp-static-${var.gcp_project_id}" + project = var.gcp_project_id + location = var.gcp_location + force_destroy = true + + labels = { + "key" = "value" + } + + retention_policy { + retention_period = 1000 + } +} + +resource "google_storage_bucket_object" "object" { + name = "hello-world.zip" + bucket = google_storage_bucket.bucket.name + source = "../configuration/hello-world.zip" +} + +resource "google_app_engine_standard_app_version" "default" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + project = var.gcp_project_id + version_id = var.standardappversion["version_id"] + service = var.standardappversion["service"] + runtime = var.standardappversion["runtime"] + noop_on_destroy = true + entrypoint { + shell = var.standardappversion["entrypoint"] + } + + deployment { + zip { + source_url = "https://storage.googleapis.com/${google_storage_bucket.bucket.name}/hello-world.zip" + } + } + + env_variables = { + port = var.standardappversion["port"] + } +} + +resource "google_ml_engine_model" "inspec-gcp-model" { + project = var.gcp_project_id + name = var.ml_model["name"] + description = var.ml_model["description"] + regions = [var.ml_model["region"]] + online_prediction_logging = var.ml_model["online_prediction_logging"] + online_prediction_console_logging = var.ml_model["online_prediction_console_logging"] +} + +resource "google_compute_firewall" "dataproc" { + project = var.gcp_project_id + name = "dataproc-firewall" + network = google_compute_network.dataproc.name + + source_ranges = ["10.128.0.0/9"] + allow { + protocol = "icmp" + } + + allow { + protocol = "tcp" + ports = ["0-65535"] + } + allow { + protocol = "udp" + ports = ["0-65535"] + } +} + +resource "google_compute_network" "dataproc" { + project = var.gcp_project_id + name = "dataproc-network" +} + +resource "google_dataproc_cluster" "mycluster" { + project = var.gcp_project_id + region = var.gcp_location + name = var.dataproc_cluster["name"] + + labels = { + "${var.dataproc_cluster["label_key"]}" = var.dataproc_cluster["label_value"] + } + + cluster_config { + master_config { + num_instances = var.dataproc_cluster["config"]["master_config"]["num_instances"] + machine_type = var.dataproc_cluster["config"]["master_config"]["machine_type"] + disk_config { + boot_disk_type = var.dataproc_cluster["config"]["master_config"]["boot_disk_type"] + boot_disk_size_gb = var.dataproc_cluster["config"]["master_config"]["boot_disk_size_gb"] + } + } + + worker_config { + num_instances = var.dataproc_cluster["config"]["worker_config"]["num_instances"] + machine_type = var.dataproc_cluster["config"]["worker_config"]["machine_type"] + disk_config { + boot_disk_size_gb = var.dataproc_cluster["config"]["worker_config"]["boot_disk_size_gb"] + num_local_ssds = var.dataproc_cluster["config"]["worker_config"]["num_local_ssds"] + } + } + + # Override or set some custom properties + software_config { + override_properties = { + "${var.dataproc_cluster["config"]["software_config"]["prop_key"]}" = var.dataproc_cluster["config"]["software_config"]["prop_value"] + } + } + + gce_cluster_config { + network = google_compute_network.dataproc.self_link + tags = [var.dataproc_cluster["config"]["gce_cluster_config"]["tag"]] + } + } +} + +resource "google_logging_folder_exclusion" "my-exclusion" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.folder_exclusion["name"] + folder = google_folder.inspec-gcp-folder.0.name + + description = var.folder_exclusion["description"] + + filter = var.folder_exclusion["filter"] +} + +variable "project_exclusion" { + type = any +} + +resource "google_logging_project_exclusion" "project-exclusion" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.project_exclusion["name"] + project = var.gcp_project_id + + description = var.project_exclusion["description"] + + filter = var.project_exclusion["filter"] +} + +resource "google_filestore_instance" "instance" { + project = var.gcp_project_id + name = var.filestore_instance["name"] + zone = var.filestore_instance["zone"] + tier = var.filestore_instance["tier"] + + file_shares { + capacity_gb = var.filestore_instance["fileshare_capacity_gb"] + name = var.filestore_instance["fileshare_name"] + } + + networks { + network = var.filestore_instance["network_name"] + modes = [var.filestore_instance["network_mode"]] + } +} + +resource "google_logging_folder_sink" "folder-sink" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.folder_sink.name + folder = google_folder.inspec-gcp-folder.0.name + + destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" + + filter = var.folder_sink.filter +} + +resource "google_runtimeconfig_config" "inspec-runtime-config" { + project = var.gcp_project_id + name = var.runtimeconfig_config["name"] + description = var.runtimeconfig_config["description"] +} + +resource "google_runtimeconfig_variable" "inspec-runtime-variable" { + project = var.gcp_project_id + parent = google_runtimeconfig_config.inspec-runtime-config.name + name = var.runtimeconfig_variable["name"] + text = var.runtimeconfig_variable["text"] +} + +resource "google_redis_instance" "inspec-redis" { + project = var.gcp_project_id + name = var.redis["name"] + tier = var.redis["tier"] + memory_size_gb = var.redis["memory_size_gb"] + + location_id = var.redis["location_id"] + alternative_location_id = var.redis["alternative_location_id"] + + redis_version = var.redis["redis_version"] + display_name = var.redis["display_name"] + reserved_ip_range = var.redis["reserved_ip_range"] + + labels = { + "${var.redis["label_key"]}" = var.redis["label_value"] + } +} + +resource "google_compute_network_endpoint_group" "inspec-endpoint-group" { + project = var.gcp_project_id + name = var.network_endpoint_group["name"] + network = google_compute_subnetwork.inspec-gcp-subnetwork.network + subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link + default_port = var.network_endpoint_group["default_port"] + zone = var.gcp_zone +} + +data "google_compute_node_types" "zone-node-type" { + project = var.gcp_project_id + zone = var.gcp_zone +} + +resource "google_compute_node_template" "inspec-template" { + project = var.gcp_project_id + region = var.gcp_location + + name = var.node_template["name"] + node_type = data.google_compute_node_types.zone-node-type.names[0] + + node_affinity_labels = { + "${var.node_template["label_key"]}" = var.node_template["label_value"] + } +} + +resource "google_compute_node_group" "inspec-node-group" { + project = var.gcp_project_id + name = var.node_group["name"] + zone = var.gcp_zone + description = var.node_group["description"] + + size = var.node_group["size"] + node_template = google_compute_node_template.inspec-template.self_link +} + +resource "google_compute_router_nat" "inspec-nat" { + project = var.gcp_project_id + name = var.router_nat["name"] + router = google_compute_router.gcp-inspec-router.name + region = google_compute_router.gcp-inspec-router.region + nat_ip_allocate_option = var.router_nat["nat_ip_allocate_option"] + source_subnetwork_ip_ranges_to_nat = var.router_nat["source_subnetwork_ip_ranges_to_nat"] + min_ports_per_vm = var.router_nat["min_ports_per_vm"] + + log_config { + enable = var.router_nat["log_config_enable"] + filter = var.router_nat["log_config_filter"] + } +} + +resource "google_project_service" "project" { + project = var.gcp_project_id + service = var.service["name"] +} + +resource "google_service_account" "spanner_service_account" { + project = var.gcp_project_id + account_id = "${var.gcp_service_account_display_name}-sp" + display_name = "${var.gcp_service_account_display_name}-sp" +} + +resource "google_service_account_key" "userkey" { + service_account_id = google_service_account.spanner_service_account.name + public_key_type = "TYPE_X509_PEM_FILE" +} + +resource "google_spanner_instance" "spanner_instance" { + project = var.gcp_project_id + config = var.spannerinstance["config"] + name = var.spannerinstance["name"] + display_name = var.spannerinstance["display_name"] + num_nodes = var.spannerinstance["num_nodes"] + labels = { + "${var.spannerinstance["label_key"]}" = var.spannerinstance["label_value"] + } +} + +resource "google_spanner_instance_iam_binding" "instance" { + project = var.gcp_project_id + instance = google_spanner_instance.spanner_instance.name + role = "roles/editor" + + members = [ + "serviceAccount:${google_service_account.spanner_service_account.email}", + ] +} + +resource "google_spanner_database" "database" { + project = var.gcp_project_id + instance = google_spanner_instance.spanner_instance.name + name = var.spannerdatabase["name"] + ddl = [var.spannerdatabase["ddl"]] +} + +resource "google_cloud_scheduler_job" "job" { + project = var.gcp_project_id + region = var.scheduler_job["region"] + name = var.scheduler_job["name"] + description = var.scheduler_job["description"] + schedule = var.scheduler_job["schedule"] + time_zone = var.scheduler_job["time_zone"] + + http_target { + http_method = var.scheduler_job["http_method"] + uri = var.scheduler_job["http_target_uri"] + } +} + +variable "service_perimeter" { + type = any +} + +resource "google_access_context_manager_service_perimeter" "service-perimeter" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" + name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/servicePerimeters/${var.service_perimeter["name"]}" + title = var.service_perimeter["title"] + status { + restricted_services = [var.service_perimeter["restricted_service"]] + } +} + +resource "google_access_context_manager_access_policy" "access-policy" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + parent = "organizations/${var.gcp_organization_id}" + title = var.service_perimeter["policy_title"] +} + +resource "google_access_context_manager_access_level" "access-level" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" + name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/accessLevels/os_lock" + title = "os_lock" + basic { + conditions { + device_policy { + require_screen_lock = true + } + regions = [ + "CH", + "IT", + "US", + ] + } + } +} + +variable "firewall" { + type = any +} + +resource "google_compute_firewall" "mm-firewall" { + project = var.gcp_project_id + name = var.firewall["name"] + enable_logging = true + network = google_compute_network.inspec-gcp-network.name + + allow { + protocol = "tcp" + ports = ["80", "8080", "1000-2000"] + } + + source_tags = [var.firewall["source_tag"]] +} + +variable "address" { + type = any +} + +resource "google_compute_address" "internal_with_subnet_and_address" { + project = var.gcp_project_id + name = var.address["name"] + subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link + address_type = var.address["address_type"] + address = var.address["address"] + region = var.gcp_location +} + +variable "instance_group" { + type = any +} + +resource "google_compute_instance_group" "inspec-instance-group" { + project = var.gcp_project_id + zone = var.gcp_zone + name = var.instance_group["name"] + description = var.instance_group["description"] + + named_port { + name = var.instance_group["named_port_name"] + port = var.instance_group["named_port_port"] + } +} + +variable "instance" { + type = any +} + +resource "google_compute_instance" "inspec-instance" { + project = var.gcp_project_id + zone = var.gcp_zone + name = var.instance["name"] + machine_type = var.instance["machine_type"] + + tags = [var.instance["tag_1"], var.instance["tag_2"]] + + boot_disk { + initialize_params { + image = "debian-cloud/debian-9" + } + } + + network_interface { + network = "default" + + access_config { + // Ephemeral IP + } + } + + metadata = { + "${var.instance["metadata_key"]}" = var.instance["metadata_value"] + } + + metadata_startup_script = var.instance["startup_script"] + + service_account { + scopes = [var.instance["sa_scope"]] + } +} + +variable "network" { + type = any +} + +resource "google_compute_network" "inspec-network" { + project = var.gcp_project_id + name = var.network["name"] + routing_mode = var.network["routing_mode"] +} + +variable "subnetwork" { + type = any +} + +resource "google_compute_subnetwork" "subnet-with-logging" { + project = var.gcp_project_id + region = var.gcp_location + name = var.subnetwork["name"] + ip_cidr_range = var.subnetwork["ip_cidr_range"] + network = google_compute_network.inspec-network.self_link + + log_config { + aggregation_interval = var.subnetwork["log_interval"] + flow_sampling = var.subnetwork["log_sampling"] + metadata = var.subnetwork["log_metadata"] + } +} + +variable "rigm" { + type = any +} + variable "sql_connect" { type = any } -# -#resource "google_compute_region_instance_group_manager" "inspec-rigm" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.rigm["name"] -# -# base_instance_name = var.rigm["base_instance_name"] -# -# version { -# instance_template = google_compute_instance_template.gcp-inspec-instance-template.self_link -# } -# -# target_pools = [google_compute_target_pool.gcp-inspec-target-pool.self_link] -# target_size = var.rigm["target_size"] -# -# named_port { -# name = var.rigm["named_port_name"] -# port = var.rigm["named_port_port"] -# } -# -# auto_healing_policies { -# health_check = google_compute_health_check.gcp-inspec-health-check.self_link -# initial_delay_sec = var.rigm["healing_delay"] -# } -#} -# -#variable "vpn_tunnel" { -# type = any -#} -# -#resource "google_compute_vpn_tunnel" "tunnel1" { -# project = var.gcp_project_id -# name = var.vpn_tunnel["name"] -# peer_ip = var.vpn_tunnel["peer_ip"] -# shared_secret = var.vpn_tunnel["shared_secret"] -# -# remote_traffic_selector = ["0.0.0.0/0"] -# local_traffic_selector = ["0.0.0.0/0"] -# target_vpn_gateway = google_compute_vpn_gateway.inspec-gcp-vpn-gateway.self_link -# -# depends_on = [ -# google_compute_forwarding_rule.inspec-gcp-fr-esp, -# google_compute_forwarding_rule.inspec-gcp-fr-udp500, -# google_compute_forwarding_rule.inspec-gcp-fr-udp4500, -# ] -#} -# -#variable "alert_policy" { -# type = any -#} -# -#resource "google_monitoring_alert_policy" "alert_policy" { -# project = var.gcp_project_id -# display_name = var.alert_policy["display_name"] -# combiner = var.alert_policy["combiner"] -# conditions { -# display_name = var.alert_policy["condition_display_name"] -# condition_threshold { -# filter = var.alert_policy["condition_filter"] -# duration = var.alert_policy["condition_duration"] -# comparison = var.alert_policy["condition_comparison"] -# aggregations { -# alignment_period = "60s" -# per_series_aligner = "ALIGN_RATE" -# } -# } -# } -#} -# -#variable "dns_managed_zone" { -# type = any -#} -# -#variable "gcp_dns_zone_name" {} -# -#resource "google_dns_managed_zone" "example-zone" { -# project = var.gcp_project_id -# name = var.dns_managed_zone["name"] -# dns_name = "${var.gcp_dns_zone_name}" -# description = var.dns_managed_zone["description"] -# dnssec_config { -# state = var.dns_managed_zone["dnssec_config_state"] -# default_key_specs { -# algorithm = "rsasha256" -# key_type = "zoneSigning" -# key_length = 2048 -# } -# default_key_specs { -# algorithm = "rsasha512" -# key_type = "keySigning" -# key_length = 2048 -# } -# } -#} -# -#variable "logging_metric" { -# type = any -#} -# -#resource "google_logging_metric" "logging_metric" { -# project = var.gcp_project_id -# name = var.logging_metric["name"] -# filter = var.logging_metric["filter"] -# metric_descriptor { -# metric_kind = var.logging_metric["metric_kind"] -# value_type = var.logging_metric["value_type"] -# } -#} -# -#variable "compute_image" { -# type = any -#} -# -#resource "google_compute_image" "example" { -# project = var.gcp_project_id -# name = var.compute_image["name"] -# -# raw_disk { -# source = var.compute_image["source"] -# } -#} -# -#variable "gcp_organization_iam_custom_role_id" {} -# -#resource "google_organization_iam_custom_role" "generic_org_iam_custom_role" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# org_id = var.gcp_organization_id -# role_id = var.gcp_organization_iam_custom_role_id -# title = "GCP Inspec Generic Organization IAM Custom Role" -# description = "Custom role allowing to list IAM roles only" -# permissions = ["iam.roles.list"] -#} -# -#variable "security_policy" { -# type = any -#} -# -#resource "google_compute_security_policy" "policy" { -# project = var.gcp_project_id -# name = var.security_policy["name"] -# -# rule { -# action = var.security_policy["action"] -# priority = var.security_policy["priority"] -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = [var.security_policy["ip_range"]] -# } -# } -# description = var.security_policy["description"] -# } -# -# rule { -# action = "allow" -# priority = "2147483647" -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = ["*"] -# } -# } -# description = "default rule" -# } -#} -# -#variable "memcache_instance" { -# type = any -#} -# -#resource "google_compute_network" "memcache_network" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -#} -# -#resource "google_compute_global_address" "service_range" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -# purpose = "VPC_PEERING" -# address_type = "INTERNAL" -# prefix_length = 16 -# network = google_compute_network.memcache_network.id -#} -# -#resource "google_service_networking_connection" "private_service_connection" { -# provider = google-beta -# network = google_compute_network.memcache_network.id -# service = "servicenetworking.googleapis.com" -# reserved_peering_ranges = [google_compute_global_address.service_range.name] -#} -# -#resource "google_memcache_instance" "instance" { -# provider = google-beta -# name = var.memcache_instance["name"] -# project = var.gcp_project_id -# region = var.gcp_location -# authorized_network = google_service_networking_connection.private_service_connection.network -# -# node_config { -# cpu_count = 1 -# memory_size_mb = 1024 -# } -# node_count = 1 -#} -# -#resource "google_compute_interconnect_attachment" "on_prem" { -# name = "on-prem-attachment" -# edge_availability_domain = "AVAILABILITY_DOMAIN_1" -# type = "PARTNER" -# router = google_compute_router.gcp-inspec-router.id -# mtu = 1500 -#} -# + +resource "google_compute_region_instance_group_manager" "inspec-rigm" { + project = var.gcp_project_id + region = var.gcp_location + name = var.rigm["name"] + + base_instance_name = var.rigm["base_instance_name"] + + version { + instance_template = google_compute_instance_template.gcp-inspec-instance-template.self_link + } + + target_pools = [google_compute_target_pool.gcp-inspec-target-pool.self_link] + target_size = var.rigm["target_size"] + + named_port { + name = var.rigm["named_port_name"] + port = var.rigm["named_port_port"] + } + + auto_healing_policies { + health_check = google_compute_health_check.gcp-inspec-health-check.self_link + initial_delay_sec = var.rigm["healing_delay"] + } +} + +variable "vpn_tunnel" { + type = any +} + +resource "google_compute_vpn_tunnel" "tunnel1" { + project = var.gcp_project_id + name = var.vpn_tunnel["name"] + peer_ip = var.vpn_tunnel["peer_ip"] + shared_secret = var.vpn_tunnel["shared_secret"] + + remote_traffic_selector = ["0.0.0.0/0"] + local_traffic_selector = ["0.0.0.0/0"] + target_vpn_gateway = google_compute_vpn_gateway.inspec-gcp-vpn-gateway.self_link + + depends_on = [ + google_compute_forwarding_rule.inspec-gcp-fr-esp, + google_compute_forwarding_rule.inspec-gcp-fr-udp500, + google_compute_forwarding_rule.inspec-gcp-fr-udp4500, + ] +} + +variable "alert_policy" { + type = any +} + +resource "google_monitoring_alert_policy" "alert_policy" { + project = var.gcp_project_id + display_name = var.alert_policy["display_name"] + combiner = var.alert_policy["combiner"] + conditions { + display_name = var.alert_policy["condition_display_name"] + condition_threshold { + filter = var.alert_policy["condition_filter"] + duration = var.alert_policy["condition_duration"] + comparison = var.alert_policy["condition_comparison"] + aggregations { + alignment_period = "60s" + per_series_aligner = "ALIGN_RATE" + } + } + } +} + +variable "dns_managed_zone" { + type = any +} + +variable "gcp_dns_zone_name" {} + +resource "google_dns_managed_zone" "example-zone" { + project = var.gcp_project_id + name = var.dns_managed_zone["name"] + dns_name = "${var.gcp_dns_zone_name}" + description = var.dns_managed_zone["description"] + dnssec_config { + state = var.dns_managed_zone["dnssec_config_state"] + default_key_specs { + algorithm = "rsasha256" + key_type = "zoneSigning" + key_length = 2048 + } + default_key_specs { + algorithm = "rsasha512" + key_type = "keySigning" + key_length = 2048 + } + } +} + +variable "logging_metric" { + type = any +} + +resource "google_logging_metric" "logging_metric" { + project = var.gcp_project_id + name = var.logging_metric["name"] + filter = var.logging_metric["filter"] + metric_descriptor { + metric_kind = var.logging_metric["metric_kind"] + value_type = var.logging_metric["value_type"] + } +} + +variable "compute_image" { + type = any +} + +resource "google_compute_image" "example" { + project = var.gcp_project_id + name = var.compute_image["name"] + + raw_disk { + source = var.compute_image["source"] + } +} + +variable "gcp_organization_iam_custom_role_id" {} + +resource "google_organization_iam_custom_role" "generic_org_iam_custom_role" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + org_id = var.gcp_organization_id + role_id = var.gcp_organization_iam_custom_role_id + title = "GCP Inspec Generic Organization IAM Custom Role" + description = "Custom role allowing to list IAM roles only" + permissions = ["iam.roles.list"] +} + +variable "security_policy" { + type = any +} + +resource "google_compute_security_policy" "policy" { + project = var.gcp_project_id + name = var.security_policy["name"] + + rule { + action = var.security_policy["action"] + priority = var.security_policy["priority"] + match { + versioned_expr = "SRC_IPS_V1" + config { + src_ip_ranges = [var.security_policy["ip_range"]] + } + } + description = var.security_policy["description"] + } + + rule { + action = "allow" + priority = "2147483647" + match { + versioned_expr = "SRC_IPS_V1" + config { + src_ip_ranges = ["*"] + } + } + description = "default rule" + } +} + +variable "memcache_instance" { + type = any +} + +resource "google_compute_network" "memcache_network" { + provider = google-beta + project = var.gcp_project_id + name = "inspec-gcp-memcache" +} + +resource "google_compute_global_address" "service_range" { + provider = google-beta + project = var.gcp_project_id + name = "inspec-gcp-memcache" + purpose = "VPC_PEERING" + address_type = "INTERNAL" + prefix_length = 16 + network = google_compute_network.memcache_network.id +} + +resource "google_service_networking_connection" "private_service_connection" { + provider = google-beta + network = google_compute_network.memcache_network.id + service = "servicenetworking.googleapis.com" + reserved_peering_ranges = [google_compute_global_address.service_range.name] +} + +resource "google_memcache_instance" "instance" { + provider = google-beta + name = var.memcache_instance["name"] + project = var.gcp_project_id + region = var.gcp_location + authorized_network = google_service_networking_connection.private_service_connection.network + + node_config { + cpu_count = 1 + memory_size_mb = 1024 + } + node_count = 1 +} + +resource "google_compute_interconnect_attachment" "on_prem" { + name = "on-prem-attachment" + edge_availability_domain = "AVAILABILITY_DOMAIN_1" + type = "PARTNER" + router = google_compute_router.gcp-inspec-router.id + mtu = 1500 +} + resource "google_sql_ssl_cert" "client_cert" { common_name = var.sql_connect["common_name"] instance = var.gcp_db_instance_name @@ -1344,4 +1344,4 @@ resource "google_data_loss_prevention_stored_info_type" "basic" { pattern = "patient" group_indexes = [2] } -} \ No newline at end of file +} diff --git a/build/inspec/test/integration/build/gcp-mm.tf b/build/inspec/test/integration/build/gcp-mm.tf index 53de3d66a..fa2bd84fc 100644 --- a/build/inspec/test/integration/build/gcp-mm.tf +++ b/build/inspec/test/integration/build/gcp-mm.tf @@ -1,1335 +1,1335 @@ -#variable "ssl_policy" { -# type = any -#} -# -#variable "topic" { -# type = any -#} -# -#variable "subscription" { -# type = any -#} -# -#variable "managed_zone" { -# type = any -#} -# -#variable "record_set" { -# type = any -#} -# -#variable "instance_group_manager" { -# type = any -#} -# -#variable "autoscaler" { -# type = any -#} -# -#variable "target_pool" { -# type = any -#} -# -#variable "trigger" { -# type = any -#} -# -#variable "health_check" { -# type = any -#} -# -#variable "backend_service" { -# type = any -#} -# -#variable "http_health_check" { -# type = any -#} -# -#variable "https_health_check" { -# type = any -#} -# -#variable "instance_template" { -# type = any -#} -# -#variable "global_address" { -# type = any -#} -# -#variable "url_map" { -# type = any -#} -# -#variable "http_proxy" { -# type = any -#} -# -#variable "global_forwarding_rule" { -# type = any -#} -# -#variable "target_tcp_proxy" { -# type = any -#} -# -#variable "route" { -# type = any -#} -# -#variable "router" { -# type = any -#} -# -#variable "snapshot" { -# type = any -#} -# -#variable "https_proxy" { -# type = any -#} -# -#variable "ssl_certificate" { -# type = any -#} -# -#variable "dataset" { -# type = any -#} -# -#variable "bigquery_table" { -# type = any -#} -# -#variable "repository" { -# type = any -#} -# -#variable "folder" { -# type = any -#} -# -#variable "gcp_organization_id" { -# type = string -# default = "none" -#} -# -#variable "cloudfunction" { -# type = any -#} -# -#variable "backend_bucket" { -# type = any -#} -# -#variable "gcp_cloud_function_region" {} -# -#variable "regional_node_pool" { -# type = any -#} -# -#variable "region_backend_service_health_check" { -# type = any -#} -# -#variable "region_backend_service" { -# type = any -#} -# -#variable "org_sink" { -# type = any -#} -# -#variable "standardappversion" { -# type = any -#} -# -#variable "ml_model" { -# type = any -#} -# -#variable "dataproc_cluster" { -# type = any -#} -# -#variable "folder_exclusion" { -# type = any -#} -# -#variable "filestore_instance" { -# type = any -#} -# -#variable "folder_sink" { -# type = any -#} -# -#variable "runtimeconfig_config" { -# type = any -#} -# -#variable "runtimeconfig_variable" { -# type = any -#} -# -#variable "redis" { -# type = any -#} -# -#variable "network_endpoint_group" { -# type = any -#} -# -#variable "node_template" { -# type = any -#} -# -#variable "node_group" { -# type = any -#} -# -#variable "router_nat" { -# type = any -#} -# -#variable "service" { -# type = any -#} -# -#variable "spannerinstance" { -# type = any -#} -# -#variable "spannerdatabase" { -# type = any -#} -# -#variable "scheduler_job" { -# type = any -#} -# -# -#resource "google_compute_ssl_policy" "custom-ssl-policy" { -# name = var.ssl_policy["name"] -# min_tls_version = var.ssl_policy["min_tls_version"] -# profile = var.ssl_policy["profile"] -# custom_features = [var.ssl_policy["custom_feature"], var.ssl_policy["custom_feature2"]] -# project = var.gcp_project_id -#} -# -#resource "google_pubsub_topic" "topic" { -# project = var.gcp_project_id -# name = var.topic["name"] -#} -# -#resource "google_pubsub_subscription" "default" { -# project = var.gcp_project_id -# name = var.subscription["name"] -# topic = google_pubsub_topic.topic.name -# ack_deadline_seconds = var.subscription["ack_deadline_seconds"] -#} -# -#resource "google_dns_managed_zone" "prod" { -# name = var.managed_zone["name"] -# dns_name = var.managed_zone["dns_name"] -# description = var.managed_zone["description"] -# -# labels = { -# key = var.managed_zone["label_value"] -# } -# project = var.gcp_project_id -#} -# -#resource "google_dns_record_set" "a" { -# name = var.record_set["name"] -# managed_zone = google_dns_managed_zone.prod.name -# type = var.record_set["type"] -# ttl = var.record_set["ttl"] -# -# rrdatas = [var.record_set["rrdatas1"], var.record_set["rrdatas2"]] -# project = var.gcp_project_id -#} -# -#resource "google_compute_instance_group_manager" "gcp-inspec-igm" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group_manager["name"] -# version { -# instance_template = google_compute_instance_template.default.self_link -# } -# base_instance_name = var.instance_group_manager["base_instance_name"] -# target_pools = [] -# target_size = 0 -# named_port { -# name = var.instance_group_manager["named_port_name"] -# port = var.instance_group_manager["named_port_port"] -# } -#} -# -#resource "google_compute_autoscaler" "gcp-inspec-autoscaler" { -# project = var.gcp_project_id -# name = var.autoscaler["name"] -# zone = var.gcp_zone -# target = google_compute_instance_group_manager.gcp-inspec-igm.self_link -# -# autoscaling_policy { -# max_replicas = var.autoscaler["max_replicas"] -# min_replicas = var.autoscaler["min_replicas"] -# cooldown_period = var.autoscaler["cooldown_period"] -# -# cpu_utilization { -# target = var.autoscaler["cpu_utilization_target"] -# } -# } -#} -# -#resource "google_compute_target_pool" "gcp-inspec-target-pool" { -# project = var.gcp_project_id -# name = var.target_pool["name"] -# session_affinity = var.target_pool["session_affinity"] -# -# instances = [ -# "${var.gcp_zone}/${var.gcp_ext_vm_name}", -# ] -#} -# -#resource "google_cloudbuild_trigger" "gcp-inspec-cloudbuild-trigger" { -# project = var.gcp_project_id -# trigger_template { -# branch_name = var.trigger["trigger_template_branch"] -# project_id = var.trigger["trigger_template_project"] -# repo_name = var.trigger["trigger_template_repo"] -# } -# filename = var.trigger["filename"] -#} -# -#resource "google_compute_health_check" "gcp-inspec-health-check" { -# project = var.gcp_project_id -# name = var.health_check["name"] -# -# timeout_sec = var.health_check["timeout_sec"] -# check_interval_sec = var.health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_backend_service" "gcp-inspec-backend-service" { -# project = var.gcp_project_id -# name = var.backend_service["name"] -# description = var.backend_service["description"] -# port_name = var.backend_service["port_name"] -# protocol = var.backend_service["protocol"] -# timeout_sec = var.backend_service["timeout_sec"] -# enable_cdn = var.backend_service["enable_cdn"] -# -# backend { -# group = google_compute_instance_group_manager.gcp-inspec-igm.instance_group -# } -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_health_check" "gcp-inspec-region-backend-service-hc" { -# project = var.gcp_project_id -# name = var.region_backend_service_health_check["name"] -# -# timeout_sec = var.region_backend_service_health_check["timeout_sec"] -# check_interval_sec = var.region_backend_service_health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.region_backend_service_health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_region_backend_service" "gcp-inspec-region-backend-service" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.region_backend_service["name"] -# description = var.region_backend_service["description"] -# protocol = var.region_backend_service["protocol"] -# timeout_sec = var.region_backend_service["timeout_sec"] -# -# health_checks = [google_compute_health_check.gcp-inspec-region-backend-service-hc.self_link] -#} -# -#resource "google_compute_http_health_check" "gcp-inspec-http-health-check" { -# project = var.gcp_project_id -# name = var.http_health_check["name"] -# request_path = var.http_health_check["request_path"] -# -# timeout_sec = var.http_health_check["timeout_sec"] -# check_interval_sec = var.http_health_check["check_interval_sec"] -#} -# -#resource "google_compute_https_health_check" "gcp-inspec-https-health-check" { -# project = var.gcp_project_id -# name = var.https_health_check["name"] -# request_path = var.https_health_check["request_path"] -# -# timeout_sec = var.https_health_check["timeout_sec"] -# check_interval_sec = var.https_health_check["check_interval_sec"] -# unhealthy_threshold = var.https_health_check["unhealthy_threshold"] -#} -# -#resource "google_compute_instance_template" "gcp-inspec-instance-template" { -# project = var.gcp_project_id -# name = var.instance_template["name"] -# description = var.instance_template["description"] -# -# tags = [var.instance_template["tag"]] -# -# instance_description = var.instance_template["instance_description"] -# machine_type = var.instance_template["machine_type"] -# can_ip_forward = var.instance_template["can_ip_forward"] -# -# scheduling { -# automatic_restart = var.instance_template["scheduling_automatic_restart"] -# on_host_maintenance = var.instance_template["scheduling_on_host_maintenance"] -# } -# -# // Create a new boot disk from an image -# disk { -# source_image = var.instance_template["disk_source_image"] -# auto_delete = var.instance_template["disk_auto_delete"] -# boot = var.instance_template["disk_boot"] -# } -# -# network_interface { -# network = var.instance_template["network_interface_network"] -# } -# -# service_account { -# scopes = [var.instance_template["service_account_scope"]] -# } -#} -# -#resource "google_compute_global_address" "gcp-inspec-global-address" { -# project = var.gcp_project_id -# name = var.global_address["name"] -# ip_version = var.global_address["ip_version"] -#} -# -#resource "google_compute_url_map" "gcp-inspec-url-map" { -# project = var.gcp_project_id -# name = var.url_map["name"] -# description = var.url_map["description"] -# -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# host_rule { -# hosts = [var.url_map["host_rule_host"]] -# path_matcher = var.url_map["path_matcher_name"] -# } -# -# path_matcher { -# name = var.url_map["path_matcher_name"] -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# path_rule { -# paths = [var.url_map["path_rule_path"]] -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# } -# } -# -# test { -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# host = var.url_map["test_host"] -# path = var.url_map["test_path"] -# } -#} -# -#resource "google_compute_target_http_proxy" "gcp-inspec-http-proxy" { -# project = var.gcp_project_id -# name = var.http_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.http_proxy["description"] -#} -# -#resource "google_compute_global_forwarding_rule" "gcp-inspec-global-forwarding-rule" { -# project = var.gcp_project_id -# name = var.global_forwarding_rule["name"] -# target = google_compute_target_http_proxy.gcp-inspec-http-proxy.self_link -# port_range = var.global_forwarding_rule["port_range"] -#} -# -#resource "google_compute_backend_service" "gcp-inspec-tcp-backend-service" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["tcp_backend_service_name"] -# protocol = "TCP" -# timeout_sec = 10 -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_target_tcp_proxy" "gcp-inspec-target-tcp-proxy" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["name"] -# proxy_header = var.target_tcp_proxy["proxy_header"] -# backend_service = google_compute_backend_service.gcp-inspec-tcp-backend-service.self_link -#} -# -#resource "google_compute_route" "gcp-inspec-route" { -# project = var.gcp_project_id -# name = var.route["name"] -# dest_range = var.route["dest_range"] -# network = google_compute_network.inspec-gcp-network.name -# next_hop_ip = var.route["next_hop_ip"] -# priority = var.route["priority"] -# # google_compute_route depends on next_hop_ip belonging to a subnetwork -# # of the named network in this block. Since inspec-gcp-network does not -# # automatically create subnetworks, we need to create a dependency so -# # the route is not created before the subnetwork -# depends_on = [google_compute_subnetwork.inspec-gcp-subnetwork] -#} -# -#resource "google_compute_router" "gcp-inspec-router" { -# project = var.gcp_project_id -# name = var.router["name"] -# network = google_compute_network.inspec-gcp-network.name -# bgp { -# asn = var.router["bgp_asn"] -# advertise_mode = var.router["bgp_advertise_mode"] -# advertised_groups = [var.router["bgp_advertised_group"]] -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range1"] -# } -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range2"] -# } -# } -#} -# -#resource "google_compute_disk" "snapshot-disk" { -# project = var.gcp_project_id -# name = var.snapshot["disk_name"] -# type = var.snapshot["disk_type"] -# zone = var.gcp_zone -# image = var.snapshot["disk_image"] -# labels = { -# environment = "generic_compute_disk_label" -# } -#} -# -#resource "google_compute_snapshot" "gcp-inspec-snapshot" { -# project = var.gcp_project_id -# name = var.snapshot["name"] -# source_disk = google_compute_disk.snapshot-disk.name -# zone = var.gcp_zone -#} -# -#resource "google_compute_ssl_certificate" "gcp-inspec-ssl-certificate" { -# project = var.gcp_project_id -# name = var.ssl_certificate["name"] -# private_key = var.ssl_certificate["private_key"] -# certificate = var.ssl_certificate["certificate"] -# description = var.ssl_certificate["description"] -#} -# -#resource "google_compute_target_https_proxy" "gcp-inspec-https-proxy" { -# project = var.gcp_project_id -# name = var.https_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.https_proxy["description"] -# ssl_certificates = [google_compute_ssl_certificate.gcp-inspec-ssl-certificate.self_link] -#} -# -#resource "google_bigquery_dataset" "gcp-inspec-dataset" { -# project = var.gcp_project_id -# dataset_id = var.dataset["dataset_id"] -# friendly_name = var.dataset["friendly_name"] -# description = var.dataset["description"] -# location = var.dataset["location"] -# default_table_expiration_ms = var.dataset["default_table_expiration_ms"] -# -# access { -# role = var.dataset["access_writer_role"] -# special_group = var.dataset["access_writer_special_group"] -# } -# -# access { -# role = "OWNER" -# special_group = "projectOwners" -# } -#} -# -#resource "google_bigquery_table" "gcp-inspec-bigquery-table" { -# project = var.gcp_project_id -# dataset_id = google_bigquery_dataset.gcp-inspec-dataset.dataset_id -# table_id = var.bigquery_table["table_id"] -# -# time_partitioning { -# type = var.bigquery_table["time_partitioning_type"] -# } -# -# description = var.bigquery_table["description"] -# expiration_time = var.bigquery_table["expiration_time"] -#} -# -#resource "google_sourcerepo_repository" "gcp-inspec-sourcerepo-repository" { -# project = var.gcp_project_id -# name = var.repository["name"] -#} -# -#resource "google_folder" "inspec-gcp-folder" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# display_name = var.folder["display_name"] -# parent = "organizations/${var.gcp_organization_id}" -#} -# -#resource "google_storage_bucket_object" "archive" { -# name = "index.js.zip" -# bucket = google_storage_bucket.generic-storage-bucket.name -# source = "../configuration/index.js.zip" -#} -# -#resource "google_cloudfunctions_function" "function" { -# project = var.gcp_project_id -# region = var.gcp_cloud_function_region -# name = var.cloudfunction["name"] -# description = var.cloudfunction["description"] -# available_memory_mb = var.cloudfunction["available_memory_mb"] -# source_archive_bucket = google_storage_bucket.generic-storage-bucket.name -# source_archive_object = google_storage_bucket_object.archive.name -# trigger_http = var.cloudfunction["trigger_http"] -# timeout = var.cloudfunction["timeout"] -# entry_point = var.cloudfunction["entry_point"] -# runtime = "nodejs8" -# -# environment_variables = { -# MY_ENV_VAR = var.cloudfunction["env_var_value"] -# } -#} -# -#resource "google_compute_backend_bucket" "image_backend" { -# project = var.gcp_project_id -# name = var.backend_bucket["name"] -# description = var.backend_bucket["description"] -# bucket_name = google_storage_bucket.generic-storage-bucket.name -# enable_cdn = var.backend_bucket["enable_cdn"] -#} -# -#resource "google_container_node_pool" "inspec-gcp-node-pool" { -# project = var.gcp_project_id -# name = var.regional_node_pool["name"] -# location = google_container_cluster.primary.location -# cluster = google_container_cluster.primary.name -# node_count = var.regional_node_pool["node_count"] -#} -# -#resource "google_logging_organization_sink" "my-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.org_sink.name -# org_id = var.gcp_organization_id -# -# # Can export to pubsub, cloud storage, or bigquery -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# # Log all WARN or higher severity messages relating to instances -# filter = var.org_sink.filter -#} -# -#variable "project_sink" { -# type = any -#} -# -#resource "google_logging_project_sink" "project-logging-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# -# name = var.project_sink.name -# destination = "storage.googleapis.com/${google_storage_bucket.project-logging-bucket[0].name}" -# -# filter = var.project_sink.filter -# -# unique_writer_identity = true -#} -# -#resource "google_storage_bucket" "bucket" { -# name = "inspec-gcp-static-${var.gcp_project_id}" -# project = var.gcp_project_id -# location = var.gcp_location -# force_destroy = true -# -# labels = { -# "key" = "value" -# } -# -# retention_policy { -# retention_period = 1000 -# } -#} -# -#resource "google_storage_bucket_object" "object" { -# name = "hello-world.zip" -# bucket = google_storage_bucket.bucket.name -# source = "../configuration/hello-world.zip" -#} -# -#resource "google_app_engine_standard_app_version" "default" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# version_id = var.standardappversion["version_id"] -# service = var.standardappversion["service"] -# runtime = var.standardappversion["runtime"] -# noop_on_destroy = true -# entrypoint { -# shell = var.standardappversion["entrypoint"] -# } -# -# deployment { -# zip { -# source_url = "https://storage.googleapis.com/${google_storage_bucket.bucket.name}/hello-world.zip" -# } -# } -# -# env_variables = { -# port = var.standardappversion["port"] -# } -#} -# -#resource "google_ml_engine_model" "inspec-gcp-model" { -# project = var.gcp_project_id -# name = var.ml_model["name"] -# description = var.ml_model["description"] -# regions = [var.ml_model["region"]] -# online_prediction_logging = var.ml_model["online_prediction_logging"] -# online_prediction_console_logging = var.ml_model["online_prediction_console_logging"] -#} -# -#resource "google_compute_firewall" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-firewall" -# network = google_compute_network.dataproc.name -# -# source_ranges = ["10.128.0.0/9"] -# allow { -# protocol = "icmp" -# } -# -# allow { -# protocol = "tcp" -# ports = ["0-65535"] -# } -# allow { -# protocol = "udp" -# ports = ["0-65535"] -# } -#} -# -#resource "google_compute_network" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-network" -#} -# -#resource "google_dataproc_cluster" "mycluster" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.dataproc_cluster["name"] -# -# labels = { -# "${var.dataproc_cluster["label_key"]}" = var.dataproc_cluster["label_value"] -# } -# -# cluster_config { -# master_config { -# num_instances = var.dataproc_cluster["config"]["master_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["master_config"]["machine_type"] -# disk_config { -# boot_disk_type = var.dataproc_cluster["config"]["master_config"]["boot_disk_type"] -# boot_disk_size_gb = var.dataproc_cluster["config"]["master_config"]["boot_disk_size_gb"] -# } -# } -# -# worker_config { -# num_instances = var.dataproc_cluster["config"]["worker_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["worker_config"]["machine_type"] -# disk_config { -# boot_disk_size_gb = var.dataproc_cluster["config"]["worker_config"]["boot_disk_size_gb"] -# num_local_ssds = var.dataproc_cluster["config"]["worker_config"]["num_local_ssds"] -# } -# } -# -# # Override or set some custom properties -# software_config { -# override_properties = { -# "${var.dataproc_cluster["config"]["software_config"]["prop_key"]}" = var.dataproc_cluster["config"]["software_config"]["prop_value"] -# } -# } -# -# gce_cluster_config { -# network = google_compute_network.dataproc.self_link -# tags = [var.dataproc_cluster["config"]["gce_cluster_config"]["tag"]] -# } -# } -#} -# -#resource "google_logging_folder_exclusion" "my-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_exclusion["name"] -# folder = google_folder.inspec-gcp-folder.0.name -# -# description = var.folder_exclusion["description"] -# -# filter = var.folder_exclusion["filter"] -#} -# -#variable "project_exclusion" { -# type = any -#} -# -#resource "google_logging_project_exclusion" "project-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.project_exclusion["name"] -# project = var.gcp_project_id -# -# description = var.project_exclusion["description"] -# -# filter = var.project_exclusion["filter"] -#} -# -#resource "google_filestore_instance" "instance" { -# project = var.gcp_project_id -# name = var.filestore_instance["name"] -# zone = var.filestore_instance["zone"] -# tier = var.filestore_instance["tier"] -# -# file_shares { -# capacity_gb = var.filestore_instance["fileshare_capacity_gb"] -# name = var.filestore_instance["fileshare_name"] -# } -# -# networks { -# network = var.filestore_instance["network_name"] -# modes = [var.filestore_instance["network_mode"]] -# } -#} -# -#resource "google_logging_folder_sink" "folder-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_sink.name -# folder = google_folder.inspec-gcp-folder.0.name -# -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# filter = var.folder_sink.filter -#} -# -#resource "google_runtimeconfig_config" "inspec-runtime-config" { -# project = var.gcp_project_id -# name = var.runtimeconfig_config["name"] -# description = var.runtimeconfig_config["description"] -#} -# -#resource "google_runtimeconfig_variable" "inspec-runtime-variable" { -# project = var.gcp_project_id -# parent = google_runtimeconfig_config.inspec-runtime-config.name -# name = var.runtimeconfig_variable["name"] -# text = var.runtimeconfig_variable["text"] -#} -# -#resource "google_redis_instance" "inspec-redis" { -# project = var.gcp_project_id -# name = var.redis["name"] -# tier = var.redis["tier"] -# memory_size_gb = var.redis["memory_size_gb"] -# -# location_id = var.redis["location_id"] -# alternative_location_id = var.redis["alternative_location_id"] -# -# redis_version = var.redis["redis_version"] -# display_name = var.redis["display_name"] -# reserved_ip_range = var.redis["reserved_ip_range"] -# -# labels = { -# "${var.redis["label_key"]}" = var.redis["label_value"] -# } -#} -# -#resource "google_compute_network_endpoint_group" "inspec-endpoint-group" { -# project = var.gcp_project_id -# name = var.network_endpoint_group["name"] -# network = google_compute_subnetwork.inspec-gcp-subnetwork.network -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# default_port = var.network_endpoint_group["default_port"] -# zone = var.gcp_zone -#} -# -#data "google_compute_node_types" "zone-node-type" { -# project = var.gcp_project_id -# zone = var.gcp_zone -#} -# -#resource "google_compute_node_template" "inspec-template" { -# project = var.gcp_project_id -# region = var.gcp_location -# -# name = var.node_template["name"] -# node_type = data.google_compute_node_types.zone-node-type.names[0] -# -# node_affinity_labels = { -# "${var.node_template["label_key"]}" = var.node_template["label_value"] -# } -#} -# -#resource "google_compute_node_group" "inspec-node-group" { -# project = var.gcp_project_id -# name = var.node_group["name"] -# zone = var.gcp_zone -# description = var.node_group["description"] -# -# size = var.node_group["size"] -# node_template = google_compute_node_template.inspec-template.self_link -#} -# -#resource "google_compute_router_nat" "inspec-nat" { -# project = var.gcp_project_id -# name = var.router_nat["name"] -# router = google_compute_router.gcp-inspec-router.name -# region = google_compute_router.gcp-inspec-router.region -# nat_ip_allocate_option = var.router_nat["nat_ip_allocate_option"] -# source_subnetwork_ip_ranges_to_nat = var.router_nat["source_subnetwork_ip_ranges_to_nat"] -# min_ports_per_vm = var.router_nat["min_ports_per_vm"] -# -# log_config { -# enable = var.router_nat["log_config_enable"] -# filter = var.router_nat["log_config_filter"] -# } -#} -# -#resource "google_project_service" "project" { -# project = var.gcp_project_id -# service = var.service["name"] -#} -# -#resource "google_service_account" "spanner_service_account" { -# project = var.gcp_project_id -# account_id = "${var.gcp_service_account_display_name}-sp" -# display_name = "${var.gcp_service_account_display_name}-sp" -#} -# -#resource "google_service_account_key" "userkey" { -# service_account_id = google_service_account.spanner_service_account.name -# public_key_type = "TYPE_X509_PEM_FILE" -#} -# -#resource "google_spanner_instance" "spanner_instance" { -# project = var.gcp_project_id -# config = var.spannerinstance["config"] -# name = var.spannerinstance["name"] -# display_name = var.spannerinstance["display_name"] -# num_nodes = var.spannerinstance["num_nodes"] -# labels = { -# "${var.spannerinstance["label_key"]}" = var.spannerinstance["label_value"] -# } -#} -# -#resource "google_spanner_instance_iam_binding" "instance" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# role = "roles/editor" -# -# members = [ -# "serviceAccount:${google_service_account.spanner_service_account.email}", -# ] -#} -# -#resource "google_spanner_database" "database" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# name = var.spannerdatabase["name"] -# ddl = [var.spannerdatabase["ddl"]] -#} -# -#resource "google_cloud_scheduler_job" "job" { -# project = var.gcp_project_id -# region = var.scheduler_job["region"] -# name = var.scheduler_job["name"] -# description = var.scheduler_job["description"] -# schedule = var.scheduler_job["schedule"] -# time_zone = var.scheduler_job["time_zone"] -# -# http_target { -# http_method = var.scheduler_job["http_method"] -# uri = var.scheduler_job["http_target_uri"] -# } -#} -# -#variable "service_perimeter" { -# type = any -#} -# -#resource "google_access_context_manager_service_perimeter" "service-perimeter" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/servicePerimeters/${var.service_perimeter["name"]}" -# title = var.service_perimeter["title"] -# status { -# restricted_services = [var.service_perimeter["restricted_service"]] -# } -#} -# -#resource "google_access_context_manager_access_policy" "access-policy" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "organizations/${var.gcp_organization_id}" -# title = var.service_perimeter["policy_title"] -#} -# -#resource "google_access_context_manager_access_level" "access-level" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/accessLevels/os_lock" -# title = "os_lock" -# basic { -# conditions { -# device_policy { -# require_screen_lock = true -# } -# regions = [ -# "CH", -# "IT", -# "US", -# ] -# } -# } -#} -# -#variable "firewall" { -# type = any -#} -# -#resource "google_compute_firewall" "mm-firewall" { -# project = var.gcp_project_id -# name = var.firewall["name"] -# enable_logging = true -# network = google_compute_network.inspec-gcp-network.name -# -# allow { -# protocol = "tcp" -# ports = ["80", "8080", "1000-2000"] -# } -# -# source_tags = [var.firewall["source_tag"]] -#} -# -#variable "address" { -# type = any -#} -# -#resource "google_compute_address" "internal_with_subnet_and_address" { -# project = var.gcp_project_id -# name = var.address["name"] -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# address_type = var.address["address_type"] -# address = var.address["address"] -# region = var.gcp_location -#} -# -#variable "instance_group" { -# type = any -#} -# -#resource "google_compute_instance_group" "inspec-instance-group" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group["name"] -# description = var.instance_group["description"] -# -# named_port { -# name = var.instance_group["named_port_name"] -# port = var.instance_group["named_port_port"] -# } -#} -# -#variable "instance" { -# type = any -#} -# -#resource "google_compute_instance" "inspec-instance" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance["name"] -# machine_type = var.instance["machine_type"] -# -# tags = [var.instance["tag_1"], var.instance["tag_2"]] -# -# boot_disk { -# initialize_params { -# image = "debian-cloud/debian-9" -# } -# } -# -# network_interface { -# network = "default" -# -# access_config { -# // Ephemeral IP -# } -# } -# -# metadata = { -# "${var.instance["metadata_key"]}" = var.instance["metadata_value"] -# } -# -# metadata_startup_script = var.instance["startup_script"] -# -# service_account { -# scopes = [var.instance["sa_scope"]] -# } -#} -# -#variable "network" { -# type = any -#} -# -#resource "google_compute_network" "inspec-network" { -# project = var.gcp_project_id -# name = var.network["name"] -# routing_mode = var.network["routing_mode"] -#} -# -#variable "subnetwork" { -# type = any -#} -# -#resource "google_compute_subnetwork" "subnet-with-logging" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.subnetwork["name"] -# ip_cidr_range = var.subnetwork["ip_cidr_range"] -# network = google_compute_network.inspec-network.self_link -# -# log_config { -# aggregation_interval = var.subnetwork["log_interval"] -# flow_sampling = var.subnetwork["log_sampling"] -# metadata = var.subnetwork["log_metadata"] -# } -#} -# -#variable "rigm" { -# type = any -#} -# +variable "ssl_policy" { + type = any +} + +variable "topic" { + type = any +} + +variable "subscription" { + type = any +} + +variable "managed_zone" { + type = any +} + +variable "record_set" { + type = any +} + +variable "instance_group_manager" { + type = any +} + +variable "autoscaler" { + type = any +} + +variable "target_pool" { + type = any +} + +variable "trigger" { + type = any +} + +variable "health_check" { + type = any +} + +variable "backend_service" { + type = any +} + +variable "http_health_check" { + type = any +} + +variable "https_health_check" { + type = any +} + +variable "instance_template" { + type = any +} + +variable "global_address" { + type = any +} + +variable "url_map" { + type = any +} + +variable "http_proxy" { + type = any +} + +variable "global_forwarding_rule" { + type = any +} + +variable "target_tcp_proxy" { + type = any +} + +variable "route" { + type = any +} + +variable "router" { + type = any +} + +variable "snapshot" { + type = any +} + +variable "https_proxy" { + type = any +} + +variable "ssl_certificate" { + type = any +} + +variable "dataset" { + type = any +} + +variable "bigquery_table" { + type = any +} + +variable "repository" { + type = any +} + +variable "folder" { + type = any +} + +variable "gcp_organization_id" { + type = string + default = "none" +} + +variable "cloudfunction" { + type = any +} + +variable "backend_bucket" { + type = any +} + +variable "gcp_cloud_function_region" {} + +variable "regional_node_pool" { + type = any +} + +variable "region_backend_service_health_check" { + type = any +} + +variable "region_backend_service" { + type = any +} + +variable "org_sink" { + type = any +} + +variable "standardappversion" { + type = any +} + +variable "ml_model" { + type = any +} + +variable "dataproc_cluster" { + type = any +} + +variable "folder_exclusion" { + type = any +} + +variable "filestore_instance" { + type = any +} + +variable "folder_sink" { + type = any +} + +variable "runtimeconfig_config" { + type = any +} + +variable "runtimeconfig_variable" { + type = any +} + +variable "redis" { + type = any +} + +variable "network_endpoint_group" { + type = any +} + +variable "node_template" { + type = any +} + +variable "node_group" { + type = any +} + +variable "router_nat" { + type = any +} + +variable "service" { + type = any +} + +variable "spannerinstance" { + type = any +} + +variable "spannerdatabase" { + type = any +} + +variable "scheduler_job" { + type = any +} + + +resource "google_compute_ssl_policy" "custom-ssl-policy" { + name = var.ssl_policy["name"] + min_tls_version = var.ssl_policy["min_tls_version"] + profile = var.ssl_policy["profile"] + custom_features = [var.ssl_policy["custom_feature"], var.ssl_policy["custom_feature2"]] + project = var.gcp_project_id +} + +resource "google_pubsub_topic" "topic" { + project = var.gcp_project_id + name = var.topic["name"] +} + +resource "google_pubsub_subscription" "default" { + project = var.gcp_project_id + name = var.subscription["name"] + topic = google_pubsub_topic.topic.name + ack_deadline_seconds = var.subscription["ack_deadline_seconds"] +} + +resource "google_dns_managed_zone" "prod" { + name = var.managed_zone["name"] + dns_name = var.managed_zone["dns_name"] + description = var.managed_zone["description"] + + labels = { + key = var.managed_zone["label_value"] + } + project = var.gcp_project_id +} + +resource "google_dns_record_set" "a" { + name = var.record_set["name"] + managed_zone = google_dns_managed_zone.prod.name + type = var.record_set["type"] + ttl = var.record_set["ttl"] + + rrdatas = [var.record_set["rrdatas1"], var.record_set["rrdatas2"]] + project = var.gcp_project_id +} + +resource "google_compute_instance_group_manager" "gcp-inspec-igm" { + project = var.gcp_project_id + zone = var.gcp_zone + name = var.instance_group_manager["name"] + version { + instance_template = google_compute_instance_template.default.self_link + } + base_instance_name = var.instance_group_manager["base_instance_name"] + target_pools = [] + target_size = 0 + named_port { + name = var.instance_group_manager["named_port_name"] + port = var.instance_group_manager["named_port_port"] + } +} + +resource "google_compute_autoscaler" "gcp-inspec-autoscaler" { + project = var.gcp_project_id + name = var.autoscaler["name"] + zone = var.gcp_zone + target = google_compute_instance_group_manager.gcp-inspec-igm.self_link + + autoscaling_policy { + max_replicas = var.autoscaler["max_replicas"] + min_replicas = var.autoscaler["min_replicas"] + cooldown_period = var.autoscaler["cooldown_period"] + + cpu_utilization { + target = var.autoscaler["cpu_utilization_target"] + } + } +} + +resource "google_compute_target_pool" "gcp-inspec-target-pool" { + project = var.gcp_project_id + name = var.target_pool["name"] + session_affinity = var.target_pool["session_affinity"] + + instances = [ + "${var.gcp_zone}/${var.gcp_ext_vm_name}", + ] +} + +resource "google_cloudbuild_trigger" "gcp-inspec-cloudbuild-trigger" { + project = var.gcp_project_id + trigger_template { + branch_name = var.trigger["trigger_template_branch"] + project_id = var.trigger["trigger_template_project"] + repo_name = var.trigger["trigger_template_repo"] + } + filename = var.trigger["filename"] +} + +resource "google_compute_health_check" "gcp-inspec-health-check" { +project = var.gcp_project_id +name = var.health_check["name"] + +timeout_sec = var.health_check["timeout_sec"] +check_interval_sec = var.health_check["check_interval_sec"] + +tcp_health_check { + port = var.health_check["tcp_health_check_port"] +} +} + +resource "google_compute_backend_service" "gcp-inspec-backend-service" { + project = var.gcp_project_id + name = var.backend_service["name"] + description = var.backend_service["description"] + port_name = var.backend_service["port_name"] + protocol = var.backend_service["protocol"] + timeout_sec = var.backend_service["timeout_sec"] + enable_cdn = var.backend_service["enable_cdn"] + + backend { + group = google_compute_instance_group_manager.gcp-inspec-igm.instance_group + } + + health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] +} + +resource "google_compute_health_check" "gcp-inspec-region-backend-service-hc" { +project = var.gcp_project_id +name = var.region_backend_service_health_check["name"] + +timeout_sec = var.region_backend_service_health_check["timeout_sec"] +check_interval_sec = var.region_backend_service_health_check["check_interval_sec"] + +tcp_health_check { + port = var.region_backend_service_health_check["tcp_health_check_port"] +} +} + +resource "google_compute_region_backend_service" "gcp-inspec-region-backend-service" { + project = var.gcp_project_id + region = var.gcp_location + name = var.region_backend_service["name"] + description = var.region_backend_service["description"] + protocol = var.region_backend_service["protocol"] + timeout_sec = var.region_backend_service["timeout_sec"] + + health_checks = [google_compute_health_check.gcp-inspec-region-backend-service-hc.self_link] +} + +resource "google_compute_http_health_check" "gcp-inspec-http-health-check" { + project = var.gcp_project_id + name = var.http_health_check["name"] + request_path = var.http_health_check["request_path"] + + timeout_sec = var.http_health_check["timeout_sec"] + check_interval_sec = var.http_health_check["check_interval_sec"] +} + +resource "google_compute_https_health_check" "gcp-inspec-https-health-check" { + project = var.gcp_project_id + name = var.https_health_check["name"] + request_path = var.https_health_check["request_path"] + + timeout_sec = var.https_health_check["timeout_sec"] + check_interval_sec = var.https_health_check["check_interval_sec"] + unhealthy_threshold = var.https_health_check["unhealthy_threshold"] +} + +resource "google_compute_instance_template" "gcp-inspec-instance-template" { + project = var.gcp_project_id + name = var.instance_template["name"] + description = var.instance_template["description"] + + tags = [var.instance_template["tag"]] + + instance_description = var.instance_template["instance_description"] + machine_type = var.instance_template["machine_type"] + can_ip_forward = var.instance_template["can_ip_forward"] + + scheduling { + automatic_restart = var.instance_template["scheduling_automatic_restart"] + on_host_maintenance = var.instance_template["scheduling_on_host_maintenance"] + } + + // Create a new boot disk from an image + disk { + source_image = var.instance_template["disk_source_image"] + auto_delete = var.instance_template["disk_auto_delete"] + boot = var.instance_template["disk_boot"] + } + + network_interface { + network = var.instance_template["network_interface_network"] + } + + service_account { + scopes = [var.instance_template["service_account_scope"]] + } +} + +resource "google_compute_global_address" "gcp-inspec-global-address" { + project = var.gcp_project_id + name = var.global_address["name"] + ip_version = var.global_address["ip_version"] +} + +resource "google_compute_url_map" "gcp-inspec-url-map" { + project = var.gcp_project_id + name = var.url_map["name"] + description = var.url_map["description"] + + default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link + + host_rule { + hosts = [var.url_map["host_rule_host"]] + path_matcher = var.url_map["path_matcher_name"] + } + + path_matcher { + name = var.url_map["path_matcher_name"] + default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link + + path_rule { + paths = [var.url_map["path_rule_path"]] + service = google_compute_backend_service.gcp-inspec-backend-service.self_link + } + } + + test { + service = google_compute_backend_service.gcp-inspec-backend-service.self_link + host = var.url_map["test_host"] + path = var.url_map["test_path"] + } +} + +resource "google_compute_target_http_proxy" "gcp-inspec-http-proxy" { + project = var.gcp_project_id + name = var.http_proxy["name"] + url_map = google_compute_url_map.gcp-inspec-url-map.self_link + description = var.http_proxy["description"] +} + +resource "google_compute_global_forwarding_rule" "gcp-inspec-global-forwarding-rule" { + project = var.gcp_project_id + name = var.global_forwarding_rule["name"] + target = google_compute_target_http_proxy.gcp-inspec-http-proxy.self_link + port_range = var.global_forwarding_rule["port_range"] +} + +resource "google_compute_backend_service" "gcp-inspec-tcp-backend-service" { + project = var.gcp_project_id + name = var.target_tcp_proxy["tcp_backend_service_name"] + protocol = "TCP" + timeout_sec = 10 + + health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] +} + +resource "google_compute_target_tcp_proxy" "gcp-inspec-target-tcp-proxy" { + project = var.gcp_project_id + name = var.target_tcp_proxy["name"] + proxy_header = var.target_tcp_proxy["proxy_header"] + backend_service = google_compute_backend_service.gcp-inspec-tcp-backend-service.self_link +} + +resource "google_compute_route" "gcp-inspec-route" { + project = var.gcp_project_id + name = var.route["name"] + dest_range = var.route["dest_range"] + network = google_compute_network.inspec-gcp-network.name + next_hop_ip = var.route["next_hop_ip"] + priority = var.route["priority"] + # google_compute_route depends on next_hop_ip belonging to a subnetwork + # of the named network in this block. Since inspec-gcp-network does not + # automatically create subnetworks, we need to create a dependency so + # the route is not created before the subnetwork + depends_on = [google_compute_subnetwork.inspec-gcp-subnetwork] +} + +resource "google_compute_router" "gcp-inspec-router" { + project = var.gcp_project_id + name = var.router["name"] + network = google_compute_network.inspec-gcp-network.name + bgp { + asn = var.router["bgp_asn"] + advertise_mode = var.router["bgp_advertise_mode"] + advertised_groups = [var.router["bgp_advertised_group"]] + advertised_ip_ranges { + range = var.router["bgp_advertised_ip_range1"] + } + advertised_ip_ranges { + range = var.router["bgp_advertised_ip_range2"] + } + } +} + +resource "google_compute_disk" "snapshot-disk" { + project = var.gcp_project_id + name = var.snapshot["disk_name"] + type = var.snapshot["disk_type"] + zone = var.gcp_zone + image = var.snapshot["disk_image"] + labels = { + environment = "generic_compute_disk_label" + } +} + +resource "google_compute_snapshot" "gcp-inspec-snapshot" { + project = var.gcp_project_id + name = var.snapshot["name"] + source_disk = google_compute_disk.snapshot-disk.name + zone = var.gcp_zone +} + +resource "google_compute_ssl_certificate" "gcp-inspec-ssl-certificate" { + project = var.gcp_project_id + name = var.ssl_certificate["name"] + private_key = var.ssl_certificate["private_key"] + certificate = var.ssl_certificate["certificate"] + description = var.ssl_certificate["description"] +} + +resource "google_compute_target_https_proxy" "gcp-inspec-https-proxy" { + project = var.gcp_project_id + name = var.https_proxy["name"] + url_map = google_compute_url_map.gcp-inspec-url-map.self_link + description = var.https_proxy["description"] + ssl_certificates = [google_compute_ssl_certificate.gcp-inspec-ssl-certificate.self_link] +} + +resource "google_bigquery_dataset" "gcp-inspec-dataset" { + project = var.gcp_project_id + dataset_id = var.dataset["dataset_id"] + friendly_name = var.dataset["friendly_name"] + description = var.dataset["description"] + location = var.dataset["location"] + default_table_expiration_ms = var.dataset["default_table_expiration_ms"] + + access { + role = var.dataset["access_writer_role"] + special_group = var.dataset["access_writer_special_group"] + } + + access { + role = "OWNER" + special_group = "projectOwners" + } +} + +resource "google_bigquery_table" "gcp-inspec-bigquery-table" { + project = var.gcp_project_id + dataset_id = google_bigquery_dataset.gcp-inspec-dataset.dataset_id + table_id = var.bigquery_table["table_id"] + + time_partitioning { + type = var.bigquery_table["time_partitioning_type"] + } + + description = var.bigquery_table["description"] + expiration_time = var.bigquery_table["expiration_time"] +} + +resource "google_sourcerepo_repository" "gcp-inspec-sourcerepo-repository" { + project = var.gcp_project_id + name = var.repository["name"] +} + +resource "google_folder" "inspec-gcp-folder" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + display_name = var.folder["display_name"] + parent = "organizations/${var.gcp_organization_id}" +} + +resource "google_storage_bucket_object" "archive" { + name = "index.js.zip" + bucket = google_storage_bucket.generic-storage-bucket.name + source = "../configuration/index.js.zip" +} + +resource "google_cloudfunctions_function" "function" { + project = var.gcp_project_id + region = var.gcp_cloud_function_region + name = var.cloudfunction["name"] + description = var.cloudfunction["description"] + available_memory_mb = var.cloudfunction["available_memory_mb"] + source_archive_bucket = google_storage_bucket.generic-storage-bucket.name + source_archive_object = google_storage_bucket_object.archive.name + trigger_http = var.cloudfunction["trigger_http"] + timeout = var.cloudfunction["timeout"] + entry_point = var.cloudfunction["entry_point"] + runtime = "nodejs8" + + environment_variables = { + MY_ENV_VAR = var.cloudfunction["env_var_value"] + } +} + +resource "google_compute_backend_bucket" "image_backend" { + project = var.gcp_project_id + name = var.backend_bucket["name"] + description = var.backend_bucket["description"] + bucket_name = google_storage_bucket.generic-storage-bucket.name + enable_cdn = var.backend_bucket["enable_cdn"] +} + +resource "google_container_node_pool" "inspec-gcp-node-pool" { + project = var.gcp_project_id + name = var.regional_node_pool["name"] + location = google_container_cluster.primary.location + cluster = google_container_cluster.primary.name + node_count = var.regional_node_pool["node_count"] +} + +resource "google_logging_organization_sink" "my-sink" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.org_sink.name + org_id = var.gcp_organization_id + + # Can export to pubsub, cloud storage, or bigquery + destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" + + # Log all WARN or higher severity messages relating to instances + filter = var.org_sink.filter +} + +variable "project_sink" { + type = any +} + +resource "google_logging_project_sink" "project-logging-sink" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + project = var.gcp_project_id + + name = var.project_sink.name + destination = "storage.googleapis.com/${google_storage_bucket.project-logging-bucket[0].name}" + + filter = var.project_sink.filter + + unique_writer_identity = true +} + +resource "google_storage_bucket" "bucket" { + name = "inspec-gcp-static-${var.gcp_project_id}" + project = var.gcp_project_id + location = var.gcp_location + force_destroy = true + + labels = { + "key" = "value" + } + + retention_policy { + retention_period = 1000 + } +} + +resource "google_storage_bucket_object" "object" { + name = "hello-world.zip" + bucket = google_storage_bucket.bucket.name + source = "../configuration/hello-world.zip" +} + +resource "google_app_engine_standard_app_version" "default" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + project = var.gcp_project_id + version_id = var.standardappversion["version_id"] + service = var.standardappversion["service"] + runtime = var.standardappversion["runtime"] + noop_on_destroy = true + entrypoint { + shell = var.standardappversion["entrypoint"] + } + + deployment { + zip { + source_url = "https://storage.googleapis.com/${google_storage_bucket.bucket.name}/hello-world.zip" + } + } + + env_variables = { + port = var.standardappversion["port"] + } +} + +resource "google_ml_engine_model" "inspec-gcp-model" { + project = var.gcp_project_id + name = var.ml_model["name"] + description = var.ml_model["description"] + regions = [var.ml_model["region"]] + online_prediction_logging = var.ml_model["online_prediction_logging"] + online_prediction_console_logging = var.ml_model["online_prediction_console_logging"] +} + +resource "google_compute_firewall" "dataproc" { + project = var.gcp_project_id + name = "dataproc-firewall" + network = google_compute_network.dataproc.name + + source_ranges = ["10.128.0.0/9"] + allow { + protocol = "icmp" + } + + allow { + protocol = "tcp" + ports = ["0-65535"] + } + allow { + protocol = "udp" + ports = ["0-65535"] + } +} + +resource "google_compute_network" "dataproc" { + project = var.gcp_project_id + name = "dataproc-network" +} + +resource "google_dataproc_cluster" "mycluster" { + project = var.gcp_project_id + region = var.gcp_location + name = var.dataproc_cluster["name"] + + labels = { + "${var.dataproc_cluster["label_key"]}" = var.dataproc_cluster["label_value"] + } + + cluster_config { + master_config { + num_instances = var.dataproc_cluster["config"]["master_config"]["num_instances"] + machine_type = var.dataproc_cluster["config"]["master_config"]["machine_type"] + disk_config { + boot_disk_type = var.dataproc_cluster["config"]["master_config"]["boot_disk_type"] + boot_disk_size_gb = var.dataproc_cluster["config"]["master_config"]["boot_disk_size_gb"] + } + } + + worker_config { + num_instances = var.dataproc_cluster["config"]["worker_config"]["num_instances"] + machine_type = var.dataproc_cluster["config"]["worker_config"]["machine_type"] + disk_config { + boot_disk_size_gb = var.dataproc_cluster["config"]["worker_config"]["boot_disk_size_gb"] + num_local_ssds = var.dataproc_cluster["config"]["worker_config"]["num_local_ssds"] + } + } + + # Override or set some custom properties + software_config { + override_properties = { + "${var.dataproc_cluster["config"]["software_config"]["prop_key"]}" = var.dataproc_cluster["config"]["software_config"]["prop_value"] + } + } + + gce_cluster_config { + network = google_compute_network.dataproc.self_link + tags = [var.dataproc_cluster["config"]["gce_cluster_config"]["tag"]] + } + } +} + +resource "google_logging_folder_exclusion" "my-exclusion" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.folder_exclusion["name"] + folder = google_folder.inspec-gcp-folder.0.name + + description = var.folder_exclusion["description"] + + filter = var.folder_exclusion["filter"] +} + +variable "project_exclusion" { + type = any +} + +resource "google_logging_project_exclusion" "project-exclusion" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.project_exclusion["name"] + project = var.gcp_project_id + + description = var.project_exclusion["description"] + + filter = var.project_exclusion["filter"] +} + +resource "google_filestore_instance" "instance" { + project = var.gcp_project_id + name = var.filestore_instance["name"] + zone = var.filestore_instance["zone"] + tier = var.filestore_instance["tier"] + + file_shares { + capacity_gb = var.filestore_instance["fileshare_capacity_gb"] + name = var.filestore_instance["fileshare_name"] + } + + networks { + network = var.filestore_instance["network_name"] + modes = [var.filestore_instance["network_mode"]] + } +} + +resource "google_logging_folder_sink" "folder-sink" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + name = var.folder_sink.name + folder = google_folder.inspec-gcp-folder.0.name + + destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" + + filter = var.folder_sink.filter +} + +resource "google_runtimeconfig_config" "inspec-runtime-config" { + project = var.gcp_project_id + name = var.runtimeconfig_config["name"] + description = var.runtimeconfig_config["description"] +} + +resource "google_runtimeconfig_variable" "inspec-runtime-variable" { + project = var.gcp_project_id + parent = google_runtimeconfig_config.inspec-runtime-config.name + name = var.runtimeconfig_variable["name"] + text = var.runtimeconfig_variable["text"] +} + +resource "google_redis_instance" "inspec-redis" { + project = var.gcp_project_id + name = var.redis["name"] + tier = var.redis["tier"] + memory_size_gb = var.redis["memory_size_gb"] + + location_id = var.redis["location_id"] + alternative_location_id = var.redis["alternative_location_id"] + + redis_version = var.redis["redis_version"] + display_name = var.redis["display_name"] + reserved_ip_range = var.redis["reserved_ip_range"] + + labels = { + "${var.redis["label_key"]}" = var.redis["label_value"] + } +} + +resource "google_compute_network_endpoint_group" "inspec-endpoint-group" { + project = var.gcp_project_id + name = var.network_endpoint_group["name"] + network = google_compute_subnetwork.inspec-gcp-subnetwork.network + subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link + default_port = var.network_endpoint_group["default_port"] + zone = var.gcp_zone +} + +data "google_compute_node_types" "zone-node-type" { + project = var.gcp_project_id + zone = var.gcp_zone +} + +resource "google_compute_node_template" "inspec-template" { + project = var.gcp_project_id + region = var.gcp_location + + name = var.node_template["name"] + node_type = data.google_compute_node_types.zone-node-type.names[0] + + node_affinity_labels = { + "${var.node_template["label_key"]}" = var.node_template["label_value"] + } +} + +resource "google_compute_node_group" "inspec-node-group" { + project = var.gcp_project_id + name = var.node_group["name"] + zone = var.gcp_zone + description = var.node_group["description"] + + size = var.node_group["size"] + node_template = google_compute_node_template.inspec-template.self_link +} + +resource "google_compute_router_nat" "inspec-nat" { + project = var.gcp_project_id + name = var.router_nat["name"] + router = google_compute_router.gcp-inspec-router.name + region = google_compute_router.gcp-inspec-router.region + nat_ip_allocate_option = var.router_nat["nat_ip_allocate_option"] + source_subnetwork_ip_ranges_to_nat = var.router_nat["source_subnetwork_ip_ranges_to_nat"] + min_ports_per_vm = var.router_nat["min_ports_per_vm"] + + log_config { + enable = var.router_nat["log_config_enable"] + filter = var.router_nat["log_config_filter"] + } +} + +resource "google_project_service" "project" { + project = var.gcp_project_id + service = var.service["name"] +} + +resource "google_service_account" "spanner_service_account" { + project = var.gcp_project_id + account_id = "${var.gcp_service_account_display_name}-sp" + display_name = "${var.gcp_service_account_display_name}-sp" +} + +resource "google_service_account_key" "userkey" { + service_account_id = google_service_account.spanner_service_account.name + public_key_type = "TYPE_X509_PEM_FILE" +} + +resource "google_spanner_instance" "spanner_instance" { + project = var.gcp_project_id + config = var.spannerinstance["config"] + name = var.spannerinstance["name"] + display_name = var.spannerinstance["display_name"] + num_nodes = var.spannerinstance["num_nodes"] + labels = { + "${var.spannerinstance["label_key"]}" = var.spannerinstance["label_value"] + } +} + +resource "google_spanner_instance_iam_binding" "instance" { + project = var.gcp_project_id + instance = google_spanner_instance.spanner_instance.name + role = "roles/editor" + + members = [ + "serviceAccount:${google_service_account.spanner_service_account.email}", + ] +} + +resource "google_spanner_database" "database" { + project = var.gcp_project_id + instance = google_spanner_instance.spanner_instance.name + name = var.spannerdatabase["name"] + ddl = [var.spannerdatabase["ddl"]] +} + +resource "google_cloud_scheduler_job" "job" { + project = var.gcp_project_id + region = var.scheduler_job["region"] + name = var.scheduler_job["name"] + description = var.scheduler_job["description"] + schedule = var.scheduler_job["schedule"] + time_zone = var.scheduler_job["time_zone"] + + http_target { + http_method = var.scheduler_job["http_method"] + uri = var.scheduler_job["http_target_uri"] + } +} + +variable "service_perimeter" { + type = any +} + +resource "google_access_context_manager_service_perimeter" "service-perimeter" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" + name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/servicePerimeters/${var.service_perimeter["name"]}" + title = var.service_perimeter["title"] + status { + restricted_services = [var.service_perimeter["restricted_service"]] + } +} + +resource "google_access_context_manager_access_policy" "access-policy" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + parent = "organizations/${var.gcp_organization_id}" + title = var.service_perimeter["policy_title"] +} + +resource "google_access_context_manager_access_level" "access-level" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" + name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/accessLevels/os_lock" + title = "os_lock" + basic { + conditions { + device_policy { + require_screen_lock = true + } + regions = [ + "CH", + "IT", + "US", + ] + } + } +} + +variable "firewall" { + type = any +} + +resource "google_compute_firewall" "mm-firewall" { + project = var.gcp_project_id + name = var.firewall["name"] + enable_logging = true + network = google_compute_network.inspec-gcp-network.name + + allow { + protocol = "tcp" + ports = ["80", "8080", "1000-2000"] + } + + source_tags = [var.firewall["source_tag"]] +} + +variable "address" { + type = any +} + +resource "google_compute_address" "internal_with_subnet_and_address" { + project = var.gcp_project_id + name = var.address["name"] + subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link + address_type = var.address["address_type"] + address = var.address["address"] + region = var.gcp_location +} + +variable "instance_group" { + type = any +} + +resource "google_compute_instance_group" "inspec-instance-group" { + project = var.gcp_project_id + zone = var.gcp_zone + name = var.instance_group["name"] + description = var.instance_group["description"] + + named_port { + name = var.instance_group["named_port_name"] + port = var.instance_group["named_port_port"] + } +} + +variable "instance" { + type = any +} + +resource "google_compute_instance" "inspec-instance" { + project = var.gcp_project_id + zone = var.gcp_zone + name = var.instance["name"] + machine_type = var.instance["machine_type"] + + tags = [var.instance["tag_1"], var.instance["tag_2"]] + + boot_disk { + initialize_params { + image = "debian-cloud/debian-9" + } + } + + network_interface { + network = "default" + + access_config { + // Ephemeral IP + } + } + + metadata = { + "${var.instance["metadata_key"]}" = var.instance["metadata_value"] + } + + metadata_startup_script = var.instance["startup_script"] + + service_account { + scopes = [var.instance["sa_scope"]] + } +} + +variable "network" { + type = any +} + +resource "google_compute_network" "inspec-network" { + project = var.gcp_project_id + name = var.network["name"] + routing_mode = var.network["routing_mode"] +} + +variable "subnetwork" { + type = any +} + +resource "google_compute_subnetwork" "subnet-with-logging" { + project = var.gcp_project_id + region = var.gcp_location + name = var.subnetwork["name"] + ip_cidr_range = var.subnetwork["ip_cidr_range"] + network = google_compute_network.inspec-network.self_link + + log_config { + aggregation_interval = var.subnetwork["log_interval"] + flow_sampling = var.subnetwork["log_sampling"] + metadata = var.subnetwork["log_metadata"] + } +} + +variable "rigm" { + type = any +} + variable "sql_connect" { type = any } -# -#resource "google_compute_region_instance_group_manager" "inspec-rigm" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.rigm["name"] -# -# base_instance_name = var.rigm["base_instance_name"] -# -# version { -# instance_template = google_compute_instance_template.gcp-inspec-instance-template.self_link -# } -# -# target_pools = [google_compute_target_pool.gcp-inspec-target-pool.self_link] -# target_size = var.rigm["target_size"] -# -# named_port { -# name = var.rigm["named_port_name"] -# port = var.rigm["named_port_port"] -# } -# -# auto_healing_policies { -# health_check = google_compute_health_check.gcp-inspec-health-check.self_link -# initial_delay_sec = var.rigm["healing_delay"] -# } -#} -# -#variable "vpn_tunnel" { -# type = any -#} -# -#resource "google_compute_vpn_tunnel" "tunnel1" { -# project = var.gcp_project_id -# name = var.vpn_tunnel["name"] -# peer_ip = var.vpn_tunnel["peer_ip"] -# shared_secret = var.vpn_tunnel["shared_secret"] -# -# remote_traffic_selector = ["0.0.0.0/0"] -# local_traffic_selector = ["0.0.0.0/0"] -# target_vpn_gateway = google_compute_vpn_gateway.inspec-gcp-vpn-gateway.self_link -# -# depends_on = [ -# google_compute_forwarding_rule.inspec-gcp-fr-esp, -# google_compute_forwarding_rule.inspec-gcp-fr-udp500, -# google_compute_forwarding_rule.inspec-gcp-fr-udp4500, -# ] -#} -# -#variable "alert_policy" { -# type = any -#} -# -#resource "google_monitoring_alert_policy" "alert_policy" { -# project = var.gcp_project_id -# display_name = var.alert_policy["display_name"] -# combiner = var.alert_policy["combiner"] -# conditions { -# display_name = var.alert_policy["condition_display_name"] -# condition_threshold { -# filter = var.alert_policy["condition_filter"] -# duration = var.alert_policy["condition_duration"] -# comparison = var.alert_policy["condition_comparison"] -# aggregations { -# alignment_period = "60s" -# per_series_aligner = "ALIGN_RATE" -# } -# } -# } -#} -# -#variable "dns_managed_zone" { -# type = any -#} -# -#variable "gcp_dns_zone_name" {} -# -#resource "google_dns_managed_zone" "example-zone" { -# project = var.gcp_project_id -# name = var.dns_managed_zone["name"] -# dns_name = "${var.gcp_dns_zone_name}" -# description = var.dns_managed_zone["description"] -# dnssec_config { -# state = var.dns_managed_zone["dnssec_config_state"] -# default_key_specs { -# algorithm = "rsasha256" -# key_type = "zoneSigning" -# key_length = 2048 -# } -# default_key_specs { -# algorithm = "rsasha512" -# key_type = "keySigning" -# key_length = 2048 -# } -# } -#} -# -#variable "logging_metric" { -# type = any -#} -# -#resource "google_logging_metric" "logging_metric" { -# project = var.gcp_project_id -# name = var.logging_metric["name"] -# filter = var.logging_metric["filter"] -# metric_descriptor { -# metric_kind = var.logging_metric["metric_kind"] -# value_type = var.logging_metric["value_type"] -# } -#} -# -#variable "compute_image" { -# type = any -#} -# -#resource "google_compute_image" "example" { -# project = var.gcp_project_id -# name = var.compute_image["name"] -# -# raw_disk { -# source = var.compute_image["source"] -# } -#} -# -#variable "gcp_organization_iam_custom_role_id" {} -# -#resource "google_organization_iam_custom_role" "generic_org_iam_custom_role" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# org_id = var.gcp_organization_id -# role_id = var.gcp_organization_iam_custom_role_id -# title = "GCP Inspec Generic Organization IAM Custom Role" -# description = "Custom role allowing to list IAM roles only" -# permissions = ["iam.roles.list"] -#} -# -#variable "security_policy" { -# type = any -#} -# -#resource "google_compute_security_policy" "policy" { -# project = var.gcp_project_id -# name = var.security_policy["name"] -# -# rule { -# action = var.security_policy["action"] -# priority = var.security_policy["priority"] -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = [var.security_policy["ip_range"]] -# } -# } -# description = var.security_policy["description"] -# } -# -# rule { -# action = "allow" -# priority = "2147483647" -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = ["*"] -# } -# } -# description = "default rule" -# } -#} -# -#variable "memcache_instance" { -# type = any -#} -# -#resource "google_compute_network" "memcache_network" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -#} -# -#resource "google_compute_global_address" "service_range" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -# purpose = "VPC_PEERING" -# address_type = "INTERNAL" -# prefix_length = 16 -# network = google_compute_network.memcache_network.id -#} -# -#resource "google_service_networking_connection" "private_service_connection" { -# provider = google-beta -# network = google_compute_network.memcache_network.id -# service = "servicenetworking.googleapis.com" -# reserved_peering_ranges = [google_compute_global_address.service_range.name] -#} -# -#resource "google_memcache_instance" "instance" { -# provider = google-beta -# name = var.memcache_instance["name"] -# project = var.gcp_project_id -# region = var.gcp_location -# authorized_network = google_service_networking_connection.private_service_connection.network -# -# node_config { -# cpu_count = 1 -# memory_size_mb = 1024 -# } -# node_count = 1 -#} -# -#resource "google_compute_interconnect_attachment" "on_prem" { -# name = "on-prem-attachment" -# edge_availability_domain = "AVAILABILITY_DOMAIN_1" -# type = "PARTNER" -# router = google_compute_router.gcp-inspec-router.id -# mtu = 1500 -#} -# + +resource "google_compute_region_instance_group_manager" "inspec-rigm" { + project = var.gcp_project_id + region = var.gcp_location + name = var.rigm["name"] + + base_instance_name = var.rigm["base_instance_name"] + + version { + instance_template = google_compute_instance_template.gcp-inspec-instance-template.self_link + } + + target_pools = [google_compute_target_pool.gcp-inspec-target-pool.self_link] + target_size = var.rigm["target_size"] + + named_port { + name = var.rigm["named_port_name"] + port = var.rigm["named_port_port"] + } + + auto_healing_policies { + health_check = google_compute_health_check.gcp-inspec-health-check.self_link + initial_delay_sec = var.rigm["healing_delay"] + } +} + +variable "vpn_tunnel" { + type = any +} + +resource "google_compute_vpn_tunnel" "tunnel1" { + project = var.gcp_project_id + name = var.vpn_tunnel["name"] + peer_ip = var.vpn_tunnel["peer_ip"] + shared_secret = var.vpn_tunnel["shared_secret"] + + remote_traffic_selector = ["0.0.0.0/0"] + local_traffic_selector = ["0.0.0.0/0"] + target_vpn_gateway = google_compute_vpn_gateway.inspec-gcp-vpn-gateway.self_link + + depends_on = [ + google_compute_forwarding_rule.inspec-gcp-fr-esp, + google_compute_forwarding_rule.inspec-gcp-fr-udp500, + google_compute_forwarding_rule.inspec-gcp-fr-udp4500, + ] +} + +variable "alert_policy" { + type = any +} + +resource "google_monitoring_alert_policy" "alert_policy" { + project = var.gcp_project_id + display_name = var.alert_policy["display_name"] + combiner = var.alert_policy["combiner"] + conditions { + display_name = var.alert_policy["condition_display_name"] + condition_threshold { + filter = var.alert_policy["condition_filter"] + duration = var.alert_policy["condition_duration"] + comparison = var.alert_policy["condition_comparison"] + aggregations { + alignment_period = "60s" + per_series_aligner = "ALIGN_RATE" + } + } + } +} + +variable "dns_managed_zone" { + type = any +} + +variable "gcp_dns_zone_name" {} + +resource "google_dns_managed_zone" "example-zone" { + project = var.gcp_project_id + name = var.dns_managed_zone["name"] + dns_name = "${var.gcp_dns_zone_name}" + description = var.dns_managed_zone["description"] + dnssec_config { + state = var.dns_managed_zone["dnssec_config_state"] + default_key_specs { + algorithm = "rsasha256" + key_type = "zoneSigning" + key_length = 2048 + } + default_key_specs { + algorithm = "rsasha512" + key_type = "keySigning" + key_length = 2048 + } + } +} + +variable "logging_metric" { + type = any +} + +resource "google_logging_metric" "logging_metric" { + project = var.gcp_project_id + name = var.logging_metric["name"] + filter = var.logging_metric["filter"] + metric_descriptor { + metric_kind = var.logging_metric["metric_kind"] + value_type = var.logging_metric["value_type"] + } +} + +variable "compute_image" { + type = any +} + +resource "google_compute_image" "example" { + project = var.gcp_project_id + name = var.compute_image["name"] + + raw_disk { + source = var.compute_image["source"] + } +} + +variable "gcp_organization_iam_custom_role_id" {} + +resource "google_organization_iam_custom_role" "generic_org_iam_custom_role" { + count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" + org_id = var.gcp_organization_id + role_id = var.gcp_organization_iam_custom_role_id + title = "GCP Inspec Generic Organization IAM Custom Role" + description = "Custom role allowing to list IAM roles only" + permissions = ["iam.roles.list"] +} + +variable "security_policy" { + type = any +} + +resource "google_compute_security_policy" "policy" { + project = var.gcp_project_id + name = var.security_policy["name"] + + rule { + action = var.security_policy["action"] + priority = var.security_policy["priority"] + match { + versioned_expr = "SRC_IPS_V1" + config { + src_ip_ranges = [var.security_policy["ip_range"]] + } + } + description = var.security_policy["description"] + } + + rule { + action = "allow" + priority = "2147483647" + match { + versioned_expr = "SRC_IPS_V1" + config { + src_ip_ranges = ["*"] + } + } + description = "default rule" + } +} + +variable "memcache_instance" { + type = any +} + +resource "google_compute_network" "memcache_network" { + provider = google-beta + project = var.gcp_project_id + name = "inspec-gcp-memcache" +} + +resource "google_compute_global_address" "service_range" { + provider = google-beta + project = var.gcp_project_id + name = "inspec-gcp-memcache" + purpose = "VPC_PEERING" + address_type = "INTERNAL" + prefix_length = 16 + network = google_compute_network.memcache_network.id +} + +resource "google_service_networking_connection" "private_service_connection" { + provider = google-beta + network = google_compute_network.memcache_network.id + service = "servicenetworking.googleapis.com" + reserved_peering_ranges = [google_compute_global_address.service_range.name] +} + +resource "google_memcache_instance" "instance" { + provider = google-beta + name = var.memcache_instance["name"] + project = var.gcp_project_id + region = var.gcp_location + authorized_network = google_service_networking_connection.private_service_connection.network + + node_config { + cpu_count = 1 + memory_size_mb = 1024 + } + node_count = 1 +} + +resource "google_compute_interconnect_attachment" "on_prem" { + name = "on-prem-attachment" + edge_availability_domain = "AVAILABILITY_DOMAIN_1" + type = "PARTNER" + router = google_compute_router.gcp-inspec-router.id + mtu = 1500 +} + resource "google_sql_ssl_cert" "client_cert" { common_name = var.sql_connect["common_name"] instance = var.gcp_db_instance_name From 1fea003ef0d43fbc85e6acf783a81ce31aafe66c Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Wed, 6 Dec 2023 12:03:05 +0530 Subject: [PATCH 25/83] labels updated Signed-off-by: Samir Anand --- .../composer/property/projectlocationenvironment_labels.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/google/composer/property/projectlocationenvironment_labels.rb b/libraries/google/composer/property/projectlocationenvironment_labels.rb index 5da4c3f7c..ea7eae333 100644 --- a/libraries/google/composer/property/projectlocationenvironment_labels.rb +++ b/libraries/google/composer/property/projectlocationenvironment_labels.rb @@ -21,8 +21,9 @@ class ProjectLocationEnvironmentLabels def initialize(args = nil, parent_identifier = nil) return if args.nil? + @parent_identifier = parent_identifier - @additional_properties = args['additionalProperties'] + @additional_properties = args end def to_s @@ -31,4 +32,4 @@ def to_s end end end -end +end \ No newline at end of file From 21061cf43b7e877bceee071f612ed7f07c9271b7 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Wed, 6 Dec 2023 09:15:25 +0000 Subject: [PATCH 26/83] Bump version to 1.11.56 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab46ac7c8..78c3a667e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.56](https://github.com/inspec/inspec-gcp/tree/v1.11.56) (2023-12-06) + +#### Merged Pull Requests +- CHEF-7369 Updated dataproc_cluster resource [#545](https://github.com/inspec/inspec-gcp/pull/545) ([Nik08](https://github.com/Nik08)) + + ## [v1.11.55](https://github.com/inspec/inspec-gcp/tree/v1.11.55) (2023-12-05) #### Merged Pull Requests - Chore: Remove redundant `return` statement to fix rubocop 1.58.0 lint offense [#548](https://github.com/inspec/inspec-gcp/pull/548) ([ahasunos](https://github.com/ahasunos)) - ## [v1.11.54](https://github.com/inspec/inspec-gcp/tree/v1.11.54) (2023-12-01) diff --git a/VERSION b/VERSION index 7f42d6b41..0c9970226 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.55 \ No newline at end of file +1.11.56 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 2a3e3d8fc..e715b0e52 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.55 +version: 1.11.56 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From afdbb350db8fa066e5b3871719f18774c927fae7 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Wed, 6 Dec 2023 14:57:49 +0530 Subject: [PATCH 27/83] chore: fix lint offense; missing newline Signed-off-by: Sonu Saha --- .../composer/property/projectlocationenvironment_labels.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google/composer/property/projectlocationenvironment_labels.rb b/libraries/google/composer/property/projectlocationenvironment_labels.rb index ea7eae333..6ff6720b7 100644 --- a/libraries/google/composer/property/projectlocationenvironment_labels.rb +++ b/libraries/google/composer/property/projectlocationenvironment_labels.rb @@ -32,4 +32,4 @@ def to_s end end end -end \ No newline at end of file +end From aafe98633948041d9c6e66b9c837c1adcf8c28de Mon Sep 17 00:00:00 2001 From: Nik08 Date: Wed, 6 Dec 2023 15:10:06 +0530 Subject: [PATCH 28/83] Updated test cases with actual values of name and parent of artifact registry repositories Signed-off-by: Nik08 --- ...rtifactregistry_project_location_repositories.rb | 13 +++++++------ ..._artifactregistry_project_location_repository.rb | 8 ++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb b/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb index c28d93efe..921b7290c 100644 --- a/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb +++ b/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb @@ -15,16 +15,17 @@ title 'Test GCP google_artifactregistry_project_location_repositories resource.' gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') +gcp_location = input(:gcp_location, value: 'gcp_location', description: 'The GCP project identifier.') - project_location_repository = input('project_location_repository', value: { - "name": "value_name", - "parent": "value_parent" +project_location_repository = input('project_location_repository', value: { + "name": "projects/#{gcp_project_id}/locations/#{gcp_location}/repositories/test-repository", + "parent": "projects/#{gcp_project_id}/locations/#{gcp_location}" }, description: 'project_location_repository description') control 'google_artifactregistry_project_location_repositories-1.0' do impact 1.0 title 'google_artifactregistry_project_location_repositories resource test' - describe google_artifactregistry_project_location_repositories(parent: project_location_repository['parent']) do - it { should exist } - end + describe google_artifactregistry_project_location_repositories(parent: project_location_repository['parent']) do + it { should exist } + end end diff --git a/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb b/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb index 1402c937b..f4b60b98d 100644 --- a/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb +++ b/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb @@ -15,10 +15,11 @@ title 'Test GCP google_artifactregistry_project_location_repository resource.' gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') +gcp_location = input(:gcp_location, value: 'gcp_location', description: 'The GCP project identifier.') - project_location_repository = input('project_location_repository', value: { - "name": "value_name", - "parent": "value_parent" +project_location_repository = input('project_location_repository', value: { + "name": "projects/#{gcp_project_id}/locations/#{gcp_location}/repositories/test-repository", + "parent": "projects/#{gcp_project_id}/locations/#{gcp_location}" }, description: 'project_location_repository description') control 'google_artifactregistry_project_location_repository-1.0' do impact 1.0 @@ -26,7 +27,6 @@ describe google_artifactregistry_project_location_repository(name: project_location_repository['name']) do it { should exist } - end describe google_artifactregistry_project_location_repository(name: "does_not_exit") do From 28d2d941d11fcd0573b1c206dcc73fe8322480ab Mon Sep 17 00:00:00 2001 From: Nik08 Date: Wed, 6 Dec 2023 15:19:15 +0530 Subject: [PATCH 29/83] Updated resource documentation list with new resources - google_artifactregistry_project_location_repository & google_artifactregistry_project_location_repositories Signed-off-by: Nik08 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9dde7920..1c4194f66 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,7 @@ The following resources are available in the InSpec GCP Profile | [google_vertex_ai_tensorboard_experiment_run](docs/resources/google_vertex_ai_tensorboard_experiment_run.md) | [google_vertex_ai_tensorboard_experiment_runs](docs/resources/google_vertex_ai_tensorboard_experiment_runs.md) | | [google_vertex_ai_tensorboard_experiment_run_time_series_resource](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resource.md) | [google_vertex_ai_tensorboard_experiment_run_time_series_resources](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resources.md) | | [google_vertex_ai_training_pipeline](docs/resources/google_vertex_ai_training_pipeline.md) | [google_vertex_ai_training_pipelines](docs/resources/google_vertex_ai_training_pipelines.md) | +| [google_artifactregistry_project_location_repository](docs/resources/google_artifactregistry_project_location_repository.md) | [google_artifactregistry_project_location_repositories](docs/resources/google_artifactregistry_project_location_repositories.md) | ## Examples From 5fc9a2d250da14ae040da0828fbca4c4be3d61b6 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Wed, 6 Dec 2023 16:09:20 +0530 Subject: [PATCH 30/83] specs: update test with realistic examples Signed-off-by: Sonu Saha --- ...e_composer_project_location_environment.rb | 90 ++++++++++++++--- ..._composer_project_location_environments.rb | 97 ++++++++++++++++--- 2 files changed, 161 insertions(+), 26 deletions(-) diff --git a/test/integration/verify/controls/google_composer_project_location_environment.rb b/test/integration/verify/controls/google_composer_project_location_environment.rb index 4de9f9d26..d42da7437 100644 --- a/test/integration/verify/controls/google_composer_project_location_environment.rb +++ b/test/integration/verify/controls/google_composer_project_location_environment.rb @@ -16,14 +16,77 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - project_location_environment = input('project_location_environment', value: { - "name": "value_name", - "parent": "value_parent", - "uuid": "value_uuid", - "state": "value_state", - "create_time": "value_createtime", - "update_time": "value_updatetime" -}, description: 'project_location_environment description') +# here ppradhan is a sample project id in the parent and name field + +project_location_environment = input('project_location_environment', value: { + "parent": "projects/ppradhan/locations/asia-east2", + "name": "projects/ppradhan/locations/asia-east2/environments/inspec-test-composer-2", + "config": { + "gkeCluster": "projects/ppradhan/zones/asia-east2-a/clusters/asia-east2-inspec-test-comp-88997323-gke", + "dagGcsPrefix": "gs://asia-east2-inspec-test-comp-88997323-bucket/dags", + "nodeCount": 3, + "softwareConfig": { + "imageVersion": "composer-1.20.12-airflow-2.4.3", + "pythonVersion": "3", + "schedulerCount": 1 + }, + "nodeConfig": { + "location": "projects/ppradhan/zones/asia-east2-a", + "machineType": "projects/ppradhan/zones/asia-east2-a/machineTypes/n1-standard-1", + "network": "projects/ppradhan/global/networks/default", + "diskSizeGb": 100, + "oauthScopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "serviceAccount": "165434197229-compute@developer.gserviceaccount.com", + "ipAllocationPolicy": {} + }, + "airflowUri": "https://ue20b0f31e51f44b8p-tp.appspot.com", + "privateEnvironmentConfig": { + "privateClusterConfig": {}, + "webServerIpv4CidrBlock": "172.31.255.0/24", + "cloudSqlIpv4CidrBlock": "10.0.0.0/12" + }, + "webServerNetworkAccessControl": { + "allowedIpRanges": [ + { + "value": "0.0.0.0/0", + "description": "Allows access from all IPv4 addresses (default value)" + }, + { + "value": "::0/0", + "description": "Allows access from all IPv6 addresses (default value)" + } + ] + }, + "databaseConfig": { + "machineType": "db-n1-standard-2" + }, + "webServerConfig": { + "machineType": "composer-n1-webserver-2" + }, + "encryptionConfig": {}, + "maintenanceWindow": { + "startTime": "2023-12-04T18:30:00Z", + "endTime": "2023-12-04T22:30:00Z", + "recurrence": "FREQ=WEEKLY;BYDAY=TH,FR,SA" + }, + "workloadsConfig": {} + }, + "labels": { + "user": "inspec", + "org": "chef", + }, + "uuid": "e117678d-9dbf-4fe2-8bb0-888efb9bc97e", + "state": "RUNNING", + "createTime": "2023-12-05T07:45:52.257367Z", + "updateTime": "2023-12-05T10:06:10.077790Z", + "storageConfig": { + "bucket": "asia-east2-inspec-test-comp-88997323-bucket" + }, + }, + description: 'project_location_environment description') + control 'google_composer_project_location_environment-1.0' do impact 1.0 title 'google_composer_project_location_environment resource test' @@ -33,12 +96,15 @@ its('name') { should cmp project_location_environment['name'] } its('uuid') { should cmp project_location_environment['uuid'] } its('state') { should cmp project_location_environment['state'] } - its('create_time') { should cmp project_location_environment['create_time'] } - its('update_time') { should cmp project_location_environment['update_time'] } - + its('create_time') { should cmp project_location_environment['createTime'] } + its('update_time') { should cmp project_location_environment['updateTime'] } + its('config.gke_cluster') { should cmp project_location_environment['config'][:gkeCluster] } + its('labels.additional_properties') { should cmp project_location_environment['labels'].transform_keys(&:to_s) } + its('satisfies_pzs') { should cmp project_location_environment['satisfies_pzs'] } + its('storage_config.bucket') { should cmp project_location_environment['storageConfig'][:bucket] } end - describe google_composer_project_location_environment(name: "does_not_exit") do + describe google_composer_project_location_environment(name: "does_not_exist") do it { should_not exist } end end diff --git a/test/integration/verify/controls/google_composer_project_location_environments.rb b/test/integration/verify/controls/google_composer_project_location_environments.rb index 4d1202fa6..af0793125 100644 --- a/test/integration/verify/controls/google_composer_project_location_environments.rb +++ b/test/integration/verify/controls/google_composer_project_location_environments.rb @@ -16,19 +16,88 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - project_location_environment = input('project_location_environment', value: { - "name": "value_name", - "parent": "value_parent", - "uuid": "value_uuid", - "state": "value_state", - "create_time": "value_createtime", - "update_time": "value_updatetime" -}, description: 'project_location_environment description') -control 'google_composer_project_location_environments-1.0' do - impact 1.0 - title 'google_composer_project_location_environments resource test' +# here ppradhan is a sample project id in the parent and name field +project_location_environment = input('project_location_environment', value: { + "parent": "projects/ppradhan/locations/asia-east2", + "name": "projects/ppradhan/locations/asia-east2/environments/inspec-test-composer-2", + "config": { + "gkeCluster": "projects/ppradhan/zones/asia-east2-a/clusters/asia-east2-inspec-test-comp-88997323-gke", + "dagGcsPrefix": "gs://asia-east2-inspec-test-comp-88997323-bucket/dags", + "nodeCount": 3, + "softwareConfig": { + "imageVersion": "composer-1.20.12-airflow-2.4.3", + "pythonVersion": "3", + "schedulerCount": 1 + }, + "nodeConfig": { + "location": "projects/ppradhan/zones/asia-east2-a", + "machineType": "projects/ppradhan/zones/asia-east2-a/machineTypes/n1-standard-1", + "network": "projects/ppradhan/global/networks/default", + "diskSizeGb": 100, + "oauthScopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "serviceAccount": "165434197229-compute@developer.gserviceaccount.com", + "ipAllocationPolicy": {} + }, + "airflowUri": "https://ue20b0f31e51f44b8p-tp.appspot.com", + "privateEnvironmentConfig": { + "privateClusterConfig": {}, + "webServerIpv4CidrBlock": "172.31.255.0/24", + "cloudSqlIpv4CidrBlock": "10.0.0.0/12" + }, + "webServerNetworkAccessControl": { + "allowedIpRanges": [ + { + "value": "0.0.0.0/0", + "description": "Allows access from all IPv4 addresses (default value)" + }, + { + "value": "::0/0", + "description": "Allows access from all IPv6 addresses (default value)" + } + ] + }, + "databaseConfig": { + "machineType": "db-n1-standard-2" + }, + "webServerConfig": { + "machineType": "composer-n1-webserver-2" + }, + "encryptionConfig": {}, + "maintenanceWindow": { + "startTime": "2023-12-04T18:30:00Z", + "endTime": "2023-12-04T22:30:00Z", + "recurrence": "FREQ=WEEKLY;BYDAY=TH,FR,SA" + }, + "workloadsConfig": {} + }, + "labels": { + "user": "inspec", + "org": "chef", + }, + "uuid": "e117678d-9dbf-4fe2-8bb0-888efb9bc97e", + "state": "RUNNING", + "createTime": "2023-12-05T07:45:52.257367Z", + "updateTime": "2023-12-05T10:06:10.077790Z", + "storageConfig": { + "bucket": "asia-east2-inspec-test-comp-88997323-bucket" + }, + }, + description: 'project_location_environment description') - describe google_composer_project_location_environments(parent: project_location_environment['parent']) do - it { should exist } - end +control 'google_composer_project_location_environments-2.0' do + describe google_composer_project_location_environments(parent: project_location_environment['parent']) do + it { should exist } + its('names') { should include(project_location_environment['name']) } + its('uuids') { should include(project_location_environment['uuid']) } + its('states') { should include(project_location_environment['state']) } + its('create_times') { should include(project_location_environment['createTime']) } + its('update_times') { should include(project_location_environment['updateTime']) } + its('satisfies_pzs') { should include(project_location_environment['satisfies_pzs']) } + end + + describe google_composer_project_location_environments(parent: "projects/ppradhan/locations/us-east2") do + it { should_not exist } + end end From 67526eb5dfb2550c59ed00879b087fc625b98d4b Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Wed, 6 Dec 2023 16:17:45 +0530 Subject: [PATCH 31/83] docs: update docs with more test for properties Signed-off-by: Sonu Saha --- .../google_composer_project_location_environment.md | 13 ++++++++----- ...google_composer_project_location_environments.md | 6 ++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/resources/google_composer_project_location_environment.md b/docs/resources/google_composer_project_location_environment.md index fec74bbc0..eddffc04d 100644 --- a/docs/resources/google_composer_project_location_environment.md +++ b/docs/resources/google_composer_project_location_environment.md @@ -15,7 +15,10 @@ describe google_composer_project_location_environment(name: ' value_name') do its('state') { should cmp 'value_state' } its('create_time') { should cmp 'value_createtime' } its('update_time') { should cmp 'value_updatetime' } - + its('satisfies_pzs') { should cmp 'value_satisfies_pzs' } + its('config.gke_cluster') { should cmp 'value_gke_cluster' } + its('labels.additional_properties') { should cmp label_hash } + its('storage_config.bucket') { should cmp 'value_bucket_id' } end describe google_composer_project_location_environment(name: "does_not_exit") do @@ -43,15 +46,15 @@ Properties that can be accessed from the `google_composer_project_location_envir * `airflow_config_overrides`: Optional. Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and must not contain an equals sign ("=") or semicolon (";"). Section and property names must not contain a period ("."). Apache Airflow configuration property names must be written in [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are [blocked](/composer/docs/concepts/airflow-configurations), and cannot be overridden. - * `additional_properties`: + * `additional_properties`: * `pypi_packages`: Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as "numpy" and values are the lowercase extras and version specifier such as "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a package without pinning it to a version specifier, use the empty string as the value. - * `additional_properties`: + * `additional_properties`: * `env_variables`: Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression `a-zA-Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER` * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` * `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER` - * `additional_properties`: + * `additional_properties`: * `python_version`: Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be updated. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3. @@ -248,7 +251,7 @@ Properties that can be accessed from the `google_composer_project_location_envir * `labels`: Optional. User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size. - * `additional_properties`: + * `additional_properties`: * `satisfies_pzs`: Output only. Reserved for future use. diff --git a/docs/resources/google_composer_project_location_environments.md b/docs/resources/google_composer_project_location_environments.md index a14578e87..5f8268837 100644 --- a/docs/resources/google_composer_project_location_environments.md +++ b/docs/resources/google_composer_project_location_environments.md @@ -10,6 +10,12 @@ A `google_composer_project_location_environments` is used to test a Google Proje ``` describe google_composer_project_location_environments(parent: ' value_parent') do it { should exist } + its('name') { should include('value_name') } + its('uuid') { should include('value_uuid') } + its('state') { should include('value_state') } + its('create_time') { should include('value_createtime') } + its('update_time') { should include('value_updatetime') } + its('satisfies_pzs') { should include('value_satisfies_pzs') } end ``` From 0bf1a48995a0e3b72b421412a532da921b695191 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Wed, 6 Dec 2023 16:20:44 +0530 Subject: [PATCH 32/83] docs: update root readme with google_composer_project_location_environment(s) resource Signed-off-by: Sonu Saha --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9dde7920..825ddf82b 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,7 @@ The following resources are available in the InSpec GCP Profile | [google_vertex_ai_tensorboard_experiment_run](docs/resources/google_vertex_ai_tensorboard_experiment_run.md) | [google_vertex_ai_tensorboard_experiment_runs](docs/resources/google_vertex_ai_tensorboard_experiment_runs.md) | | [google_vertex_ai_tensorboard_experiment_run_time_series_resource](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resource.md) | [google_vertex_ai_tensorboard_experiment_run_time_series_resources](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resources.md) | | [google_vertex_ai_training_pipeline](docs/resources/google_vertex_ai_training_pipeline.md) | [google_vertex_ai_training_pipelines](docs/resources/google_vertex_ai_training_pipelines.md) | +| [google_composer_project_location_environment](docs/resources/google_composer_project_location_environment.md) | [google_composer_project_location_environments](docs/resources/google_composer_project_location_environment.md) | ## Examples From 47683a7d566966667c61cb0df72452be5736b8bb Mon Sep 17 00:00:00 2001 From: Nik08 Date: Wed, 6 Dec 2023 17:28:23 +0530 Subject: [PATCH 33/83] Terraform changes for integration testing Signed-off-by: Nik08 --- .../test/integration/configuration/mm-attributes.yml | 5 +---- test/integration/build/gcp-mm.tf | 11 +++++++++++ test/integration/configuration/mm-attributes.yml | 8 ++++++++ ..._artifactregistry_project_location_repositories.rb | 2 +- ...le_artifactregistry_project_location_repository.rb | 2 +- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml index 8846c65a2..ee0783a9e 100644 --- a/build/inspec/test/integration/configuration/mm-attributes.yml +++ b/build/inspec/test/integration/configuration/mm-attributes.yml @@ -895,7 +895,4 @@ vpn_gateway: network : "value_network" self_link : "value_selflink" label_fingerprint : "value_labelfingerprint" - stack_type : "value_stacktype" -project_location_repository: - name : "value_name" - parent : "value_parent" \ No newline at end of file + stack_type : "value_stacktype" \ No newline at end of file diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 748179b4c..641213bbe 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -216,6 +216,10 @@ variable "scheduler_job" { type = any } +variable "project_location_repository" { + type = any +} + resource "google_compute_ssl_policy" "custom-ssl-policy" { name = var.ssl_policy["name"] @@ -1552,3 +1556,10 @@ resource "google_vertex_ai_index" "index" { } index_update_method = "STREAM_UPDATE" } + +resource "google_artifact_registry_repository" "example" { + project = var.project_location_repository.project_id + repository_id = var.project_location_repository.display_name + location = var.project_location_repository.location + format = var.project_location_repository.format +} diff --git a/test/integration/configuration/mm-attributes.yml b/test/integration/configuration/mm-attributes.yml index db5c85cba..a491ac1a8 100644 --- a/test/integration/configuration/mm-attributes.yml +++ b/test/integration/configuration/mm-attributes.yml @@ -557,3 +557,11 @@ dlp: name: "dlp-template-inspec" location: "europe-west2" type: "Infotype" + +project_location_repository: + name : "projects/ppradhan/locations/us-central1/repositories/test-repository-1" + parent : "projects/ppradhan/locations/us-central1" + display_name: "test-repository-1" + location: "us-central1" + format: "DOCKER" + project_id: "ppradhan" diff --git a/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb b/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb index 921b7290c..baf5d71fd 100644 --- a/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb +++ b/test/integration/verify/controls/google_artifactregistry_project_location_repositories.rb @@ -18,7 +18,7 @@ gcp_location = input(:gcp_location, value: 'gcp_location', description: 'The GCP project identifier.') project_location_repository = input('project_location_repository', value: { - "name": "projects/#{gcp_project_id}/locations/#{gcp_location}/repositories/test-repository", + "name": "projects/#{gcp_project_id}/locations/#{gcp_location}/repositories/test-repository-1", "parent": "projects/#{gcp_project_id}/locations/#{gcp_location}" }, description: 'project_location_repository description') control 'google_artifactregistry_project_location_repositories-1.0' do diff --git a/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb b/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb index f4b60b98d..b3e6956c6 100644 --- a/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb +++ b/test/integration/verify/controls/google_artifactregistry_project_location_repository.rb @@ -18,7 +18,7 @@ gcp_location = input(:gcp_location, value: 'gcp_location', description: 'The GCP project identifier.') project_location_repository = input('project_location_repository', value: { - "name": "projects/#{gcp_project_id}/locations/#{gcp_location}/repositories/test-repository", + "name": "projects/#{gcp_project_id}/locations/#{gcp_location}/repositories/test-repository-1", "parent": "projects/#{gcp_project_id}/locations/#{gcp_location}" }, description: 'project_location_repository description') control 'google_artifactregistry_project_location_repository-1.0' do From 09f2defec9676519551a52a88dbbd08187128a30 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Wed, 6 Dec 2023 16:24:48 +0000 Subject: [PATCH 34/83] Bump version to 1.11.57 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78c3a667e..779b21ca7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.57](https://github.com/inspec/inspec-gcp/tree/v1.11.57) (2023-12-06) + +#### Merged Pull Requests +- chore: uncomment terraform scripts [#549](https://github.com/inspec/inspec-gcp/pull/549) ([ahasunos](https://github.com/ahasunos)) + + ## [v1.11.56](https://github.com/inspec/inspec-gcp/tree/v1.11.56) (2023-12-06) #### Merged Pull Requests - CHEF-7369 Updated dataproc_cluster resource [#545](https://github.com/inspec/inspec-gcp/pull/545) ([Nik08](https://github.com/Nik08)) - ## [v1.11.55](https://github.com/inspec/inspec-gcp/tree/v1.11.55) (2023-12-05) diff --git a/VERSION b/VERSION index 0c9970226..74c9c4059 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.56 \ No newline at end of file +1.11.57 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index e715b0e52..39dff58cd 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.56 +version: 1.11.57 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 646b0d950307804eb38bd127c3b17ffb379c288e Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Thu, 7 Dec 2023 16:36:55 +0530 Subject: [PATCH 35/83] iac: add terraform script for google_composer_v1_environment resource Signed-off-by: Sonu Saha --- test/integration/build/gcp-mm.tf | 13 +++++++++++++ test/integration/configuration/mm-attributes.yml | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 748179b4c..12f43a6bd 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -216,6 +216,9 @@ variable "scheduler_job" { type = any } +variable "cloud_composer" { + type = any +} resource "google_compute_ssl_policy" "custom-ssl-policy" { name = var.ssl_policy["name"] @@ -1552,3 +1555,13 @@ resource "google_vertex_ai_index" "index" { } index_update_method = "STREAM_UPDATE" } + +resource "google_composer_v1_environment" "test" { + name = var.cloud_composer_v1["name"] + region = var.cloud_composer_v1["region"] + config { + software_config { + image_version = var.cloud_composer_v1["image_version"] + } + } +} diff --git a/test/integration/configuration/mm-attributes.yml b/test/integration/configuration/mm-attributes.yml index db5c85cba..37074e018 100644 --- a/test/integration/configuration/mm-attributes.yml +++ b/test/integration/configuration/mm-attributes.yml @@ -557,3 +557,8 @@ dlp: name: "dlp-template-inspec" location: "europe-west2" type: "Infotype" + +cloud_composer_v1: + name : "example-composer-env" + region : "us-central1" + image_version : "composer-1.20.12-airflow-2.4.3" From 8ba78c003818fd8769ba11661eabf1b6ecabe17a Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Thu, 7 Dec 2023 16:37:43 +0530 Subject: [PATCH 36/83] specs: update test to match terraform deployed resource name Signed-off-by: Sonu Saha --- ...e_composer_project_location_environment.rb | 75 +------------------ ..._composer_project_location_environments.rb | 73 +----------------- 2 files changed, 5 insertions(+), 143 deletions(-) diff --git a/test/integration/verify/controls/google_composer_project_location_environment.rb b/test/integration/verify/controls/google_composer_project_location_environment.rb index d42da7437..661995fe6 100644 --- a/test/integration/verify/controls/google_composer_project_location_environment.rb +++ b/test/integration/verify/controls/google_composer_project_location_environment.rb @@ -16,74 +16,10 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') -# here ppradhan is a sample project id in the parent and name field - project_location_environment = input('project_location_environment', value: { - "parent": "projects/ppradhan/locations/asia-east2", - "name": "projects/ppradhan/locations/asia-east2/environments/inspec-test-composer-2", - "config": { - "gkeCluster": "projects/ppradhan/zones/asia-east2-a/clusters/asia-east2-inspec-test-comp-88997323-gke", - "dagGcsPrefix": "gs://asia-east2-inspec-test-comp-88997323-bucket/dags", - "nodeCount": 3, - "softwareConfig": { - "imageVersion": "composer-1.20.12-airflow-2.4.3", - "pythonVersion": "3", - "schedulerCount": 1 - }, - "nodeConfig": { - "location": "projects/ppradhan/zones/asia-east2-a", - "machineType": "projects/ppradhan/zones/asia-east2-a/machineTypes/n1-standard-1", - "network": "projects/ppradhan/global/networks/default", - "diskSizeGb": 100, - "oauthScopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "serviceAccount": "165434197229-compute@developer.gserviceaccount.com", - "ipAllocationPolicy": {} - }, - "airflowUri": "https://ue20b0f31e51f44b8p-tp.appspot.com", - "privateEnvironmentConfig": { - "privateClusterConfig": {}, - "webServerIpv4CidrBlock": "172.31.255.0/24", - "cloudSqlIpv4CidrBlock": "10.0.0.0/12" - }, - "webServerNetworkAccessControl": { - "allowedIpRanges": [ - { - "value": "0.0.0.0/0", - "description": "Allows access from all IPv4 addresses (default value)" - }, - { - "value": "::0/0", - "description": "Allows access from all IPv6 addresses (default value)" - } - ] - }, - "databaseConfig": { - "machineType": "db-n1-standard-2" - }, - "webServerConfig": { - "machineType": "composer-n1-webserver-2" - }, - "encryptionConfig": {}, - "maintenanceWindow": { - "startTime": "2023-12-04T18:30:00Z", - "endTime": "2023-12-04T22:30:00Z", - "recurrence": "FREQ=WEEKLY;BYDAY=TH,FR,SA" - }, - "workloadsConfig": {} - }, - "labels": { - "user": "inspec", - "org": "chef", - }, - "uuid": "e117678d-9dbf-4fe2-8bb0-888efb9bc97e", + "parent": "projects/ppradhan/locations/us-central1", + "name": "projects/ppradhan/locations/us-central1/environments/example-composer-env", "state": "RUNNING", - "createTime": "2023-12-05T07:45:52.257367Z", - "updateTime": "2023-12-05T10:06:10.077790Z", - "storageConfig": { - "bucket": "asia-east2-inspec-test-comp-88997323-bucket" - }, }, description: 'project_location_environment description') @@ -94,14 +30,7 @@ describe google_composer_project_location_environment(name: project_location_environment['name']) do it { should exist } its('name') { should cmp project_location_environment['name'] } - its('uuid') { should cmp project_location_environment['uuid'] } its('state') { should cmp project_location_environment['state'] } - its('create_time') { should cmp project_location_environment['createTime'] } - its('update_time') { should cmp project_location_environment['updateTime'] } - its('config.gke_cluster') { should cmp project_location_environment['config'][:gkeCluster] } - its('labels.additional_properties') { should cmp project_location_environment['labels'].transform_keys(&:to_s) } - its('satisfies_pzs') { should cmp project_location_environment['satisfies_pzs'] } - its('storage_config.bucket') { should cmp project_location_environment['storageConfig'][:bucket] } end describe google_composer_project_location_environment(name: "does_not_exist") do diff --git a/test/integration/verify/controls/google_composer_project_location_environments.rb b/test/integration/verify/controls/google_composer_project_location_environments.rb index af0793125..fad86ee6f 100644 --- a/test/integration/verify/controls/google_composer_project_location_environments.rb +++ b/test/integration/verify/controls/google_composer_project_location_environments.rb @@ -16,85 +16,18 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') -# here ppradhan is a sample project id in the parent and name field project_location_environment = input('project_location_environment', value: { - "parent": "projects/ppradhan/locations/asia-east2", - "name": "projects/ppradhan/locations/asia-east2/environments/inspec-test-composer-2", - "config": { - "gkeCluster": "projects/ppradhan/zones/asia-east2-a/clusters/asia-east2-inspec-test-comp-88997323-gke", - "dagGcsPrefix": "gs://asia-east2-inspec-test-comp-88997323-bucket/dags", - "nodeCount": 3, - "softwareConfig": { - "imageVersion": "composer-1.20.12-airflow-2.4.3", - "pythonVersion": "3", - "schedulerCount": 1 - }, - "nodeConfig": { - "location": "projects/ppradhan/zones/asia-east2-a", - "machineType": "projects/ppradhan/zones/asia-east2-a/machineTypes/n1-standard-1", - "network": "projects/ppradhan/global/networks/default", - "diskSizeGb": 100, - "oauthScopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "serviceAccount": "165434197229-compute@developer.gserviceaccount.com", - "ipAllocationPolicy": {} - }, - "airflowUri": "https://ue20b0f31e51f44b8p-tp.appspot.com", - "privateEnvironmentConfig": { - "privateClusterConfig": {}, - "webServerIpv4CidrBlock": "172.31.255.0/24", - "cloudSqlIpv4CidrBlock": "10.0.0.0/12" - }, - "webServerNetworkAccessControl": { - "allowedIpRanges": [ - { - "value": "0.0.0.0/0", - "description": "Allows access from all IPv4 addresses (default value)" - }, - { - "value": "::0/0", - "description": "Allows access from all IPv6 addresses (default value)" - } - ] - }, - "databaseConfig": { - "machineType": "db-n1-standard-2" - }, - "webServerConfig": { - "machineType": "composer-n1-webserver-2" - }, - "encryptionConfig": {}, - "maintenanceWindow": { - "startTime": "2023-12-04T18:30:00Z", - "endTime": "2023-12-04T22:30:00Z", - "recurrence": "FREQ=WEEKLY;BYDAY=TH,FR,SA" - }, - "workloadsConfig": {} - }, - "labels": { - "user": "inspec", - "org": "chef", - }, - "uuid": "e117678d-9dbf-4fe2-8bb0-888efb9bc97e", + "parent": "projects/ppradhan/locations/us-central1", + "name": "projects/ppradhan/locations/us-central1/environments/example-composer-env", "state": "RUNNING", - "createTime": "2023-12-05T07:45:52.257367Z", - "updateTime": "2023-12-05T10:06:10.077790Z", - "storageConfig": { - "bucket": "asia-east2-inspec-test-comp-88997323-bucket" - }, }, description: 'project_location_environment description') control 'google_composer_project_location_environments-2.0' do describe google_composer_project_location_environments(parent: project_location_environment['parent']) do - it { should exist } + it { should exist } its('names') { should include(project_location_environment['name']) } - its('uuids') { should include(project_location_environment['uuid']) } its('states') { should include(project_location_environment['state']) } - its('create_times') { should include(project_location_environment['createTime']) } - its('update_times') { should include(project_location_environment['updateTime']) } - its('satisfies_pzs') { should include(project_location_environment['satisfies_pzs']) } end describe google_composer_project_location_environments(parent: "projects/ppradhan/locations/us-east2") do From 1dbf694bd846c3c3e1b1749e60c69e15e1a5bc74 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Thu, 7 Dec 2023 16:39:33 +0530 Subject: [PATCH 37/83] fix: correct variable name for cloud_composer_v1 Signed-off-by: Sonu Saha --- test/integration/build/gcp-mm.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 12f43a6bd..02e4b7abc 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -216,7 +216,7 @@ variable "scheduler_job" { type = any } -variable "cloud_composer" { +variable "cloud_composer_v1" { type = any } From 4a3afa6a25ee711ee63e5b52c40a8b663bdcca1d Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Fri, 8 Dec 2023 07:45:39 +0000 Subject: [PATCH 38/83] Bump version to 1.11.58 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 779b21ca7..2fd5d6679 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.58](https://github.com/inspec/inspec-gcp/tree/v1.11.58) (2023-12-08) + +#### Merged Pull Requests +- CHEF-7364-MAGIC-MODULE-composer-Projects__locations__environment - Resource Implementation [#546](https://github.com/inspec/inspec-gcp/pull/546) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.57](https://github.com/inspec/inspec-gcp/tree/v1.11.57) (2023-12-06) #### Merged Pull Requests - chore: uncomment terraform scripts [#549](https://github.com/inspec/inspec-gcp/pull/549) ([ahasunos](https://github.com/ahasunos)) - ## [v1.11.56](https://github.com/inspec/inspec-gcp/tree/v1.11.56) (2023-12-06) diff --git a/VERSION b/VERSION index 74c9c4059..ceddaaf6a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.57 \ No newline at end of file +1.11.58 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 39dff58cd..ad8010fd4 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.57 +version: 1.11.58 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 55cf945bb3594b794ef83a730e5b7d483961153b Mon Sep 17 00:00:00 2001 From: Nik08 Date: Fri, 8 Dec 2023 13:49:30 +0530 Subject: [PATCH 39/83] Linting fix Signed-off-by: Nik08 --- ...tregistry_project_location_repositories.rb | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/libraries/google_artifactregistry_project_location_repositories.rb b/libraries/google_artifactregistry_project_location_repositories.rb index 9814e8860..80cdd679f 100644 --- a/libraries/google_artifactregistry_project_location_repositories.rb +++ b/libraries/google_artifactregistry_project_location_repositories.rb @@ -78,22 +78,22 @@ def transform(key, value) def transformers { - 'mavenConfig' => ->(obj) { return :maven_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryMavenConfig.new(obj['mavenConfig'], to_s) }, - 'dockerConfig' => ->(obj) { return :docker_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryDockerConfig.new(obj['dockerConfig'], to_s) }, - 'virtualRepositoryConfig' => ->(obj) { return :virtual_repository_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryVirtualRepositoryConfig.new(obj['virtualRepositoryConfig'], to_s) }, - 'remoteRepositoryConfig' => ->(obj) { return :remote_repository_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfig.new(obj['remoteRepositoryConfig'], to_s) }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'format' => ->(obj) { return :format, obj['format'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryLabels.new(obj['labels'], to_s) }, - 'createTime' => ->(obj) { return :create_time, obj['createTime'] }, - 'updateTime' => ->(obj) { return :update_time, obj['updateTime'] }, - 'kmsKeyName' => ->(obj) { return :kms_key_name, obj['kmsKeyName'] }, - 'mode' => ->(obj) { return :mode, obj['mode'] }, - 'cleanupPolicies' => ->(obj) { return :cleanup_policies, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryCleanupPolicies.new(obj['cleanupPolicies'], to_s) }, - 'sizeBytes' => ->(obj) { return :size_bytes, obj['sizeBytes'] }, - 'satisfiesPzs' => ->(obj) { return :satisfies_pzs, obj['satisfiesPzs'] }, - 'cleanupPolicyDryRun' => ->(obj) { return :cleanup_policy_dry_run, obj['cleanupPolicyDryRun'] }, + 'mavenConfig' => ->(obj) { [:maven_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryMavenConfig.new(obj['mavenConfig'], to_s)] }, + 'dockerConfig' => ->(obj) { [:docker_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryDockerConfig.new(obj['dockerConfig'], to_s)] }, + 'virtualRepositoryConfig' => ->(obj) { [:virtual_repository_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryVirtualRepositoryConfig.new(obj['virtualRepositoryConfig'], to_s)] }, + 'remoteRepositoryConfig' => ->(obj) { [:remote_repository_config, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryRemoteRepositoryConfig.new(obj['remoteRepositoryConfig'], to_s)] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'format' => ->(obj) { [:format, obj['format']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryLabels.new(obj['labels'], to_s)] }, + 'createTime' => ->(obj) { [:create_time, obj['createTime']] }, + 'updateTime' => ->(obj) { [:update_time, obj['updateTime']] }, + 'kmsKeyName' => ->(obj) { [:kms_key_name, obj['kmsKeyName']] }, + 'mode' => ->(obj) { [:mode, obj['mode']] }, + 'cleanupPolicies' => ->(obj) { [:cleanup_policies, GoogleInSpec::Artifactregistry::Property::ProjectLocationRepositoryCleanupPolicies.new(obj['cleanupPolicies'], to_s)] }, + 'sizeBytes' => ->(obj) { [:size_bytes, obj['sizeBytes']] }, + 'satisfiesPzs' => ->(obj) { [:satisfies_pzs, obj['satisfiesPzs']] }, + 'cleanupPolicyDryRun' => ->(obj) { [:cleanup_policy_dry_run, obj['cleanupPolicyDryRun']] }, } end From 46f9168cbffc3ac63594cd3334d93477d1394cbe Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Fri, 8 Dec 2023 14:34:35 +0530 Subject: [PATCH 40/83] Removed worng dir Signed-off-by: Samir Anand --- build/inspec/Gemfile | 20 - .../inspec/test/integration/build/gcp-mm.tf | 1347 -------------- .../integration/configuration/hello-world.zip | Bin 58362 -> 0 bytes .../integration/configuration/index.js.zip | Bin 611 -> 0 bytes .../configuration/mm-attributes.yml | 536 ------ ...e_data_loss_prevention_stored_info_type.md | 75 - ..._data_loss_prevention_stored_info_types.md | 35 - .../property/storedinfotype_dictionary.rb | 39 - ...dinfotype_dictionary_cloud_storage_path.rb | 34 - .../storedinfotype_dictionary_word_list.rb | 34 - .../storedinfotype_large_custom_dictionary.rb | 45 - ...large_custom_dictionary_big_query_field.rb | 39 - ...custom_dictionary_big_query_field_field.rb | 34 - ...custom_dictionary_big_query_field_table.rb | 40 - ...ustom_dictionary_cloud_storage_file_set.rb | 34 - ...ype_large_custom_dictionary_output_path.rb | 34 - .../property/storedinfotype_regex.rb | 37 - .../iam/property/iam_binding_condition.rb | 40 - .../iam/property/iam_policy_audit_configs.rb | 46 - ..._policy_audit_configs_audit_log_configs.rb | 45 - .../iam/property/iam_policy_bindings.rb | 49 - ...e_data_loss_prevention_stored_info_type.rb | 77 - ..._data_loss_prevention_stored_info_types.rb | 91 - build/inspec/test/integration/build/gcp-mm.tf | 1553 ----------------- .../integration/configuration/hello-world.zip | Bin 58362 -> 0 bytes .../integration/configuration/index.js.zip | Bin 611 -> 0 bytes .../configuration/mm-attributes.yml | 896 ---------- ...e_data_loss_prevention_stored_info_type.rb | 53 - ..._data_loss_prevention_stored_info_types.rb | 49 - 29 files changed, 5282 deletions(-) delete mode 100644 build/inspec/Gemfile delete mode 100644 build/inspec/build/inspec/test/integration/build/gcp-mm.tf delete mode 100644 build/inspec/build/inspec/test/integration/configuration/hello-world.zip delete mode 100644 build/inspec/build/inspec/test/integration/configuration/index.js.zip delete mode 100644 build/inspec/build/inspec/test/integration/configuration/mm-attributes.yml delete mode 100644 build/inspec/docs/resources/google_data_loss_prevention_stored_info_type.md delete mode 100644 build/inspec/docs/resources/google_data_loss_prevention_stored_info_types.md delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_cloud_storage_path.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_word_list.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_field.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_table.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_cloud_storage_file_set.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_output_path.rb delete mode 100644 build/inspec/libraries/google/datalossprevention/property/storedinfotype_regex.rb delete mode 100644 build/inspec/libraries/google/iam/property/iam_binding_condition.rb delete mode 100644 build/inspec/libraries/google/iam/property/iam_policy_audit_configs.rb delete mode 100644 build/inspec/libraries/google/iam/property/iam_policy_audit_configs_audit_log_configs.rb delete mode 100644 build/inspec/libraries/google/iam/property/iam_policy_bindings.rb delete mode 100644 build/inspec/libraries/google_data_loss_prevention_stored_info_type.rb delete mode 100644 build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb delete mode 100644 build/inspec/test/integration/build/gcp-mm.tf delete mode 100644 build/inspec/test/integration/configuration/hello-world.zip delete mode 100644 build/inspec/test/integration/configuration/index.js.zip delete mode 100644 build/inspec/test/integration/configuration/mm-attributes.yml delete mode 100644 build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_type.rb delete mode 100644 build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_types.rb diff --git a/build/inspec/Gemfile b/build/inspec/Gemfile deleted file mode 100644 index 1af5bd5d6..000000000 --- a/build/inspec/Gemfile +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -source 'https://rubygems.org' - -gem 'bundle' -gem 'faraday', '>= 0.16.2' -gem 'google-api-client' -gem 'googleauth' -gem 'google-cloud' -gem 'inifile' -gem 'inspec-bin', '4.16.0' -gem 'rubocop', '>= 0.77.0' - -group :development do - gem 'github_changelog_generator' - gem 'pry-coolline' - gem 'rake' - gem 'vcr' - gem 'webmock' -end diff --git a/build/inspec/build/inspec/test/integration/build/gcp-mm.tf b/build/inspec/build/inspec/test/integration/build/gcp-mm.tf deleted file mode 100644 index f86c2ac7c..000000000 --- a/build/inspec/build/inspec/test/integration/build/gcp-mm.tf +++ /dev/null @@ -1,1347 +0,0 @@ -#variable "ssl_policy" { -# type = any -#} -# -#variable "topic" { -# type = any -#} -# -#variable "subscription" { -# type = any -#} -# -#variable "managed_zone" { -# type = any -#} -# -#variable "record_set" { -# type = any -#} -# -#variable "instance_group_manager" { -# type = any -#} -# -#variable "autoscaler" { -# type = any -#} -# -#variable "target_pool" { -# type = any -#} -# -#variable "trigger" { -# type = any -#} -# -#variable "health_check" { -# type = any -#} -# -#variable "backend_service" { -# type = any -#} -# -#variable "http_health_check" { -# type = any -#} -# -#variable "https_health_check" { -# type = any -#} -# -#variable "instance_template" { -# type = any -#} -# -#variable "global_address" { -# type = any -#} -# -#variable "url_map" { -# type = any -#} -# -#variable "http_proxy" { -# type = any -#} -# -#variable "global_forwarding_rule" { -# type = any -#} -# -#variable "target_tcp_proxy" { -# type = any -#} -# -#variable "route" { -# type = any -#} -# -#variable "router" { -# type = any -#} -# -#variable "snapshot" { -# type = any -#} -# -#variable "https_proxy" { -# type = any -#} -# -#variable "ssl_certificate" { -# type = any -#} -# -#variable "dataset" { -# type = any -#} -# -#variable "bigquery_table" { -# type = any -#} -# -#variable "repository" { -# type = any -#} -# -#variable "folder" { -# type = any -#} -# -#variable "gcp_organization_id" { -# type = string -# default = "none" -#} -# -#variable "cloudfunction" { -# type = any -#} -# -#variable "backend_bucket" { -# type = any -#} -# -#variable "gcp_cloud_function_region" {} -# -#variable "regional_node_pool" { -# type = any -#} -# -#variable "region_backend_service_health_check" { -# type = any -#} -# -#variable "region_backend_service" { -# type = any -#} -# -#variable "org_sink" { -# type = any -#} -# -#variable "standardappversion" { -# type = any -#} -# -#variable "ml_model" { -# type = any -#} -# -#variable "dataproc_cluster" { -# type = any -#} -# -#variable "folder_exclusion" { -# type = any -#} -# -#variable "filestore_instance" { -# type = any -#} -# -#variable "folder_sink" { -# type = any -#} -# -#variable "runtimeconfig_config" { -# type = any -#} -# -#variable "runtimeconfig_variable" { -# type = any -#} -# -#variable "redis" { -# type = any -#} -# -#variable "network_endpoint_group" { -# type = any -#} -# -#variable "node_template" { -# type = any -#} -# -#variable "node_group" { -# type = any -#} -# -#variable "router_nat" { -# type = any -#} -# -#variable "service" { -# type = any -#} -# -#variable "spannerinstance" { -# type = any -#} -# -#variable "spannerdatabase" { -# type = any -#} -# -#variable "scheduler_job" { -# type = any -#} -# -# -#resource "google_compute_ssl_policy" "custom-ssl-policy" { -# name = var.ssl_policy["name"] -# min_tls_version = var.ssl_policy["min_tls_version"] -# profile = var.ssl_policy["profile"] -# custom_features = [var.ssl_policy["custom_feature"], var.ssl_policy["custom_feature2"]] -# project = var.gcp_project_id -#} -# -#resource "google_pubsub_topic" "topic" { -# project = var.gcp_project_id -# name = var.topic["name"] -#} -# -#resource "google_pubsub_subscription" "default" { -# project = var.gcp_project_id -# name = var.subscription["name"] -# topic = google_pubsub_topic.topic.name -# ack_deadline_seconds = var.subscription["ack_deadline_seconds"] -#} -# -#resource "google_dns_managed_zone" "prod" { -# name = var.managed_zone["name"] -# dns_name = var.managed_zone["dns_name"] -# description = var.managed_zone["description"] -# -# labels = { -# key = var.managed_zone["label_value"] -# } -# project = var.gcp_project_id -#} -# -#resource "google_dns_record_set" "a" { -# name = var.record_set["name"] -# managed_zone = google_dns_managed_zone.prod.name -# type = var.record_set["type"] -# ttl = var.record_set["ttl"] -# -# rrdatas = [var.record_set["rrdatas1"], var.record_set["rrdatas2"]] -# project = var.gcp_project_id -#} -# -#resource "google_compute_instance_group_manager" "gcp-inspec-igm" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group_manager["name"] -# version { -# instance_template = google_compute_instance_template.default.self_link -# } -# base_instance_name = var.instance_group_manager["base_instance_name"] -# target_pools = [] -# target_size = 0 -# named_port { -# name = var.instance_group_manager["named_port_name"] -# port = var.instance_group_manager["named_port_port"] -# } -#} -# -#resource "google_compute_autoscaler" "gcp-inspec-autoscaler" { -# project = var.gcp_project_id -# name = var.autoscaler["name"] -# zone = var.gcp_zone -# target = google_compute_instance_group_manager.gcp-inspec-igm.self_link -# -# autoscaling_policy { -# max_replicas = var.autoscaler["max_replicas"] -# min_replicas = var.autoscaler["min_replicas"] -# cooldown_period = var.autoscaler["cooldown_period"] -# -# cpu_utilization { -# target = var.autoscaler["cpu_utilization_target"] -# } -# } -#} -# -#resource "google_compute_target_pool" "gcp-inspec-target-pool" { -# project = var.gcp_project_id -# name = var.target_pool["name"] -# session_affinity = var.target_pool["session_affinity"] -# -# instances = [ -# "${var.gcp_zone}/${var.gcp_ext_vm_name}", -# ] -#} -# -#resource "google_cloudbuild_trigger" "gcp-inspec-cloudbuild-trigger" { -# project = var.gcp_project_id -# trigger_template { -# branch_name = var.trigger["trigger_template_branch"] -# project_id = var.trigger["trigger_template_project"] -# repo_name = var.trigger["trigger_template_repo"] -# } -# filename = var.trigger["filename"] -#} -# -#resource "google_compute_health_check" "gcp-inspec-health-check" { -# project = var.gcp_project_id -# name = var.health_check["name"] -# -# timeout_sec = var.health_check["timeout_sec"] -# check_interval_sec = var.health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_backend_service" "gcp-inspec-backend-service" { -# project = var.gcp_project_id -# name = var.backend_service["name"] -# description = var.backend_service["description"] -# port_name = var.backend_service["port_name"] -# protocol = var.backend_service["protocol"] -# timeout_sec = var.backend_service["timeout_sec"] -# enable_cdn = var.backend_service["enable_cdn"] -# -# backend { -# group = google_compute_instance_group_manager.gcp-inspec-igm.instance_group -# } -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_health_check" "gcp-inspec-region-backend-service-hc" { -# project = var.gcp_project_id -# name = var.region_backend_service_health_check["name"] -# -# timeout_sec = var.region_backend_service_health_check["timeout_sec"] -# check_interval_sec = var.region_backend_service_health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.region_backend_service_health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_region_backend_service" "gcp-inspec-region-backend-service" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.region_backend_service["name"] -# description = var.region_backend_service["description"] -# protocol = var.region_backend_service["protocol"] -# timeout_sec = var.region_backend_service["timeout_sec"] -# -# health_checks = [google_compute_health_check.gcp-inspec-region-backend-service-hc.self_link] -#} -# -#resource "google_compute_http_health_check" "gcp-inspec-http-health-check" { -# project = var.gcp_project_id -# name = var.http_health_check["name"] -# request_path = var.http_health_check["request_path"] -# -# timeout_sec = var.http_health_check["timeout_sec"] -# check_interval_sec = var.http_health_check["check_interval_sec"] -#} -# -#resource "google_compute_https_health_check" "gcp-inspec-https-health-check" { -# project = var.gcp_project_id -# name = var.https_health_check["name"] -# request_path = var.https_health_check["request_path"] -# -# timeout_sec = var.https_health_check["timeout_sec"] -# check_interval_sec = var.https_health_check["check_interval_sec"] -# unhealthy_threshold = var.https_health_check["unhealthy_threshold"] -#} -# -#resource "google_compute_instance_template" "gcp-inspec-instance-template" { -# project = var.gcp_project_id -# name = var.instance_template["name"] -# description = var.instance_template["description"] -# -# tags = [var.instance_template["tag"]] -# -# instance_description = var.instance_template["instance_description"] -# machine_type = var.instance_template["machine_type"] -# can_ip_forward = var.instance_template["can_ip_forward"] -# -# scheduling { -# automatic_restart = var.instance_template["scheduling_automatic_restart"] -# on_host_maintenance = var.instance_template["scheduling_on_host_maintenance"] -# } -# -# // Create a new boot disk from an image -# disk { -# source_image = var.instance_template["disk_source_image"] -# auto_delete = var.instance_template["disk_auto_delete"] -# boot = var.instance_template["disk_boot"] -# } -# -# network_interface { -# network = var.instance_template["network_interface_network"] -# } -# -# service_account { -# scopes = [var.instance_template["service_account_scope"]] -# } -#} -# -#resource "google_compute_global_address" "gcp-inspec-global-address" { -# project = var.gcp_project_id -# name = var.global_address["name"] -# ip_version = var.global_address["ip_version"] -#} -# -#resource "google_compute_url_map" "gcp-inspec-url-map" { -# project = var.gcp_project_id -# name = var.url_map["name"] -# description = var.url_map["description"] -# -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# host_rule { -# hosts = [var.url_map["host_rule_host"]] -# path_matcher = var.url_map["path_matcher_name"] -# } -# -# path_matcher { -# name = var.url_map["path_matcher_name"] -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# path_rule { -# paths = [var.url_map["path_rule_path"]] -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# } -# } -# -# test { -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# host = var.url_map["test_host"] -# path = var.url_map["test_path"] -# } -#} -# -#resource "google_compute_target_http_proxy" "gcp-inspec-http-proxy" { -# project = var.gcp_project_id -# name = var.http_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.http_proxy["description"] -#} -# -#resource "google_compute_global_forwarding_rule" "gcp-inspec-global-forwarding-rule" { -# project = var.gcp_project_id -# name = var.global_forwarding_rule["name"] -# target = google_compute_target_http_proxy.gcp-inspec-http-proxy.self_link -# port_range = var.global_forwarding_rule["port_range"] -#} -# -#resource "google_compute_backend_service" "gcp-inspec-tcp-backend-service" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["tcp_backend_service_name"] -# protocol = "TCP" -# timeout_sec = 10 -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_target_tcp_proxy" "gcp-inspec-target-tcp-proxy" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["name"] -# proxy_header = var.target_tcp_proxy["proxy_header"] -# backend_service = google_compute_backend_service.gcp-inspec-tcp-backend-service.self_link -#} -# -#resource "google_compute_route" "gcp-inspec-route" { -# project = var.gcp_project_id -# name = var.route["name"] -# dest_range = var.route["dest_range"] -# network = google_compute_network.inspec-gcp-network.name -# next_hop_ip = var.route["next_hop_ip"] -# priority = var.route["priority"] -# # google_compute_route depends on next_hop_ip belonging to a subnetwork -# # of the named network in this block. Since inspec-gcp-network does not -# # automatically create subnetworks, we need to create a dependency so -# # the route is not created before the subnetwork -# depends_on = [google_compute_subnetwork.inspec-gcp-subnetwork] -#} -# -#resource "google_compute_router" "gcp-inspec-router" { -# project = var.gcp_project_id -# name = var.router["name"] -# network = google_compute_network.inspec-gcp-network.name -# bgp { -# asn = var.router["bgp_asn"] -# advertise_mode = var.router["bgp_advertise_mode"] -# advertised_groups = [var.router["bgp_advertised_group"]] -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range1"] -# } -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range2"] -# } -# } -#} -# -#resource "google_compute_disk" "snapshot-disk" { -# project = var.gcp_project_id -# name = var.snapshot["disk_name"] -# type = var.snapshot["disk_type"] -# zone = var.gcp_zone -# image = var.snapshot["disk_image"] -# labels = { -# environment = "generic_compute_disk_label" -# } -#} -# -#resource "google_compute_snapshot" "gcp-inspec-snapshot" { -# project = var.gcp_project_id -# name = var.snapshot["name"] -# source_disk = google_compute_disk.snapshot-disk.name -# zone = var.gcp_zone -#} -# -#resource "google_compute_ssl_certificate" "gcp-inspec-ssl-certificate" { -# project = var.gcp_project_id -# name = var.ssl_certificate["name"] -# private_key = var.ssl_certificate["private_key"] -# certificate = var.ssl_certificate["certificate"] -# description = var.ssl_certificate["description"] -#} -# -#resource "google_compute_target_https_proxy" "gcp-inspec-https-proxy" { -# project = var.gcp_project_id -# name = var.https_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.https_proxy["description"] -# ssl_certificates = [google_compute_ssl_certificate.gcp-inspec-ssl-certificate.self_link] -#} -# -#resource "google_bigquery_dataset" "gcp-inspec-dataset" { -# project = var.gcp_project_id -# dataset_id = var.dataset["dataset_id"] -# friendly_name = var.dataset["friendly_name"] -# description = var.dataset["description"] -# location = var.dataset["location"] -# default_table_expiration_ms = var.dataset["default_table_expiration_ms"] -# -# access { -# role = var.dataset["access_writer_role"] -# special_group = var.dataset["access_writer_special_group"] -# } -# -# access { -# role = "OWNER" -# special_group = "projectOwners" -# } -#} -# -#resource "google_bigquery_table" "gcp-inspec-bigquery-table" { -# project = var.gcp_project_id -# dataset_id = google_bigquery_dataset.gcp-inspec-dataset.dataset_id -# table_id = var.bigquery_table["table_id"] -# -# time_partitioning { -# type = var.bigquery_table["time_partitioning_type"] -# } -# -# description = var.bigquery_table["description"] -# expiration_time = var.bigquery_table["expiration_time"] -#} -# -#resource "google_sourcerepo_repository" "gcp-inspec-sourcerepo-repository" { -# project = var.gcp_project_id -# name = var.repository["name"] -#} -# -#resource "google_folder" "inspec-gcp-folder" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# display_name = var.folder["display_name"] -# parent = "organizations/${var.gcp_organization_id}" -#} -# -#resource "google_storage_bucket_object" "archive" { -# name = "index.js.zip" -# bucket = google_storage_bucket.generic-storage-bucket.name -# source = "../configuration/index.js.zip" -#} -# -#resource "google_cloudfunctions_function" "function" { -# project = var.gcp_project_id -# region = var.gcp_cloud_function_region -# name = var.cloudfunction["name"] -# description = var.cloudfunction["description"] -# available_memory_mb = var.cloudfunction["available_memory_mb"] -# source_archive_bucket = google_storage_bucket.generic-storage-bucket.name -# source_archive_object = google_storage_bucket_object.archive.name -# trigger_http = var.cloudfunction["trigger_http"] -# timeout = var.cloudfunction["timeout"] -# entry_point = var.cloudfunction["entry_point"] -# runtime = "nodejs8" -# -# environment_variables = { -# MY_ENV_VAR = var.cloudfunction["env_var_value"] -# } -#} -# -#resource "google_compute_backend_bucket" "image_backend" { -# project = var.gcp_project_id -# name = var.backend_bucket["name"] -# description = var.backend_bucket["description"] -# bucket_name = google_storage_bucket.generic-storage-bucket.name -# enable_cdn = var.backend_bucket["enable_cdn"] -#} -# -#resource "google_container_node_pool" "inspec-gcp-node-pool" { -# project = var.gcp_project_id -# name = var.regional_node_pool["name"] -# location = google_container_cluster.primary.location -# cluster = google_container_cluster.primary.name -# node_count = var.regional_node_pool["node_count"] -#} -# -#resource "google_logging_organization_sink" "my-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.org_sink.name -# org_id = var.gcp_organization_id -# -# # Can export to pubsub, cloud storage, or bigquery -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# # Log all WARN or higher severity messages relating to instances -# filter = var.org_sink.filter -#} -# -#variable "project_sink" { -# type = any -#} -# -#resource "google_logging_project_sink" "project-logging-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# -# name = var.project_sink.name -# destination = "storage.googleapis.com/${google_storage_bucket.project-logging-bucket[0].name}" -# -# filter = var.project_sink.filter -# -# unique_writer_identity = true -#} -# -#resource "google_storage_bucket" "bucket" { -# name = "inspec-gcp-static-${var.gcp_project_id}" -# project = var.gcp_project_id -# location = var.gcp_location -# force_destroy = true -# -# labels = { -# "key" = "value" -# } -# -# retention_policy { -# retention_period = 1000 -# } -#} -# -#resource "google_storage_bucket_object" "object" { -# name = "hello-world.zip" -# bucket = google_storage_bucket.bucket.name -# source = "../configuration/hello-world.zip" -#} -# -#resource "google_app_engine_standard_app_version" "default" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# version_id = var.standardappversion["version_id"] -# service = var.standardappversion["service"] -# runtime = var.standardappversion["runtime"] -# noop_on_destroy = true -# entrypoint { -# shell = var.standardappversion["entrypoint"] -# } -# -# deployment { -# zip { -# source_url = "https://storage.googleapis.com/${google_storage_bucket.bucket.name}/hello-world.zip" -# } -# } -# -# env_variables = { -# port = var.standardappversion["port"] -# } -#} -# -#resource "google_ml_engine_model" "inspec-gcp-model" { -# project = var.gcp_project_id -# name = var.ml_model["name"] -# description = var.ml_model["description"] -# regions = [var.ml_model["region"]] -# online_prediction_logging = var.ml_model["online_prediction_logging"] -# online_prediction_console_logging = var.ml_model["online_prediction_console_logging"] -#} -# -#resource "google_compute_firewall" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-firewall" -# network = google_compute_network.dataproc.name -# -# source_ranges = ["10.128.0.0/9"] -# allow { -# protocol = "icmp" -# } -# -# allow { -# protocol = "tcp" -# ports = ["0-65535"] -# } -# allow { -# protocol = "udp" -# ports = ["0-65535"] -# } -#} -# -#resource "google_compute_network" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-network" -#} -# -#resource "google_dataproc_cluster" "mycluster" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.dataproc_cluster["name"] -# -# labels = { -# "${var.dataproc_cluster["label_key"]}" = var.dataproc_cluster["label_value"] -# } -# -# cluster_config { -# master_config { -# num_instances = var.dataproc_cluster["config"]["master_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["master_config"]["machine_type"] -# disk_config { -# boot_disk_type = var.dataproc_cluster["config"]["master_config"]["boot_disk_type"] -# boot_disk_size_gb = var.dataproc_cluster["config"]["master_config"]["boot_disk_size_gb"] -# } -# } -# -# worker_config { -# num_instances = var.dataproc_cluster["config"]["worker_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["worker_config"]["machine_type"] -# disk_config { -# boot_disk_size_gb = var.dataproc_cluster["config"]["worker_config"]["boot_disk_size_gb"] -# num_local_ssds = var.dataproc_cluster["config"]["worker_config"]["num_local_ssds"] -# } -# } -# -# # Override or set some custom properties -# software_config { -# override_properties = { -# "${var.dataproc_cluster["config"]["software_config"]["prop_key"]}" = var.dataproc_cluster["config"]["software_config"]["prop_value"] -# } -# } -# -# gce_cluster_config { -# network = google_compute_network.dataproc.self_link -# tags = [var.dataproc_cluster["config"]["gce_cluster_config"]["tag"]] -# } -# } -#} -# -#resource "google_logging_folder_exclusion" "my-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_exclusion["name"] -# folder = google_folder.inspec-gcp-folder.0.name -# -# description = var.folder_exclusion["description"] -# -# filter = var.folder_exclusion["filter"] -#} -# -#variable "project_exclusion" { -# type = any -#} -# -#resource "google_logging_project_exclusion" "project-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.project_exclusion["name"] -# project = var.gcp_project_id -# -# description = var.project_exclusion["description"] -# -# filter = var.project_exclusion["filter"] -#} -# -#resource "google_filestore_instance" "instance" { -# project = var.gcp_project_id -# name = var.filestore_instance["name"] -# zone = var.filestore_instance["zone"] -# tier = var.filestore_instance["tier"] -# -# file_shares { -# capacity_gb = var.filestore_instance["fileshare_capacity_gb"] -# name = var.filestore_instance["fileshare_name"] -# } -# -# networks { -# network = var.filestore_instance["network_name"] -# modes = [var.filestore_instance["network_mode"]] -# } -#} -# -#resource "google_logging_folder_sink" "folder-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_sink.name -# folder = google_folder.inspec-gcp-folder.0.name -# -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# filter = var.folder_sink.filter -#} -# -#resource "google_runtimeconfig_config" "inspec-runtime-config" { -# project = var.gcp_project_id -# name = var.runtimeconfig_config["name"] -# description = var.runtimeconfig_config["description"] -#} -# -#resource "google_runtimeconfig_variable" "inspec-runtime-variable" { -# project = var.gcp_project_id -# parent = google_runtimeconfig_config.inspec-runtime-config.name -# name = var.runtimeconfig_variable["name"] -# text = var.runtimeconfig_variable["text"] -#} -# -#resource "google_redis_instance" "inspec-redis" { -# project = var.gcp_project_id -# name = var.redis["name"] -# tier = var.redis["tier"] -# memory_size_gb = var.redis["memory_size_gb"] -# -# location_id = var.redis["location_id"] -# alternative_location_id = var.redis["alternative_location_id"] -# -# redis_version = var.redis["redis_version"] -# display_name = var.redis["display_name"] -# reserved_ip_range = var.redis["reserved_ip_range"] -# -# labels = { -# "${var.redis["label_key"]}" = var.redis["label_value"] -# } -#} -# -#resource "google_compute_network_endpoint_group" "inspec-endpoint-group" { -# project = var.gcp_project_id -# name = var.network_endpoint_group["name"] -# network = google_compute_subnetwork.inspec-gcp-subnetwork.network -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# default_port = var.network_endpoint_group["default_port"] -# zone = var.gcp_zone -#} -# -#data "google_compute_node_types" "zone-node-type" { -# project = var.gcp_project_id -# zone = var.gcp_zone -#} -# -#resource "google_compute_node_template" "inspec-template" { -# project = var.gcp_project_id -# region = var.gcp_location -# -# name = var.node_template["name"] -# node_type = data.google_compute_node_types.zone-node-type.names[0] -# -# node_affinity_labels = { -# "${var.node_template["label_key"]}" = var.node_template["label_value"] -# } -#} -# -#resource "google_compute_node_group" "inspec-node-group" { -# project = var.gcp_project_id -# name = var.node_group["name"] -# zone = var.gcp_zone -# description = var.node_group["description"] -# -# size = var.node_group["size"] -# node_template = google_compute_node_template.inspec-template.self_link -#} -# -#resource "google_compute_router_nat" "inspec-nat" { -# project = var.gcp_project_id -# name = var.router_nat["name"] -# router = google_compute_router.gcp-inspec-router.name -# region = google_compute_router.gcp-inspec-router.region -# nat_ip_allocate_option = var.router_nat["nat_ip_allocate_option"] -# source_subnetwork_ip_ranges_to_nat = var.router_nat["source_subnetwork_ip_ranges_to_nat"] -# min_ports_per_vm = var.router_nat["min_ports_per_vm"] -# -# log_config { -# enable = var.router_nat["log_config_enable"] -# filter = var.router_nat["log_config_filter"] -# } -#} -# -#resource "google_project_service" "project" { -# project = var.gcp_project_id -# service = var.service["name"] -#} -# -#resource "google_service_account" "spanner_service_account" { -# project = var.gcp_project_id -# account_id = "${var.gcp_service_account_display_name}-sp" -# display_name = "${var.gcp_service_account_display_name}-sp" -#} -# -#resource "google_service_account_key" "userkey" { -# service_account_id = google_service_account.spanner_service_account.name -# public_key_type = "TYPE_X509_PEM_FILE" -#} -# -#resource "google_spanner_instance" "spanner_instance" { -# project = var.gcp_project_id -# config = var.spannerinstance["config"] -# name = var.spannerinstance["name"] -# display_name = var.spannerinstance["display_name"] -# num_nodes = var.spannerinstance["num_nodes"] -# labels = { -# "${var.spannerinstance["label_key"]}" = var.spannerinstance["label_value"] -# } -#} -# -#resource "google_spanner_instance_iam_binding" "instance" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# role = "roles/editor" -# -# members = [ -# "serviceAccount:${google_service_account.spanner_service_account.email}", -# ] -#} -# -#resource "google_spanner_database" "database" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# name = var.spannerdatabase["name"] -# ddl = [var.spannerdatabase["ddl"]] -#} -# -#resource "google_cloud_scheduler_job" "job" { -# project = var.gcp_project_id -# region = var.scheduler_job["region"] -# name = var.scheduler_job["name"] -# description = var.scheduler_job["description"] -# schedule = var.scheduler_job["schedule"] -# time_zone = var.scheduler_job["time_zone"] -# -# http_target { -# http_method = var.scheduler_job["http_method"] -# uri = var.scheduler_job["http_target_uri"] -# } -#} -# -#variable "service_perimeter" { -# type = any -#} -# -#resource "google_access_context_manager_service_perimeter" "service-perimeter" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/servicePerimeters/${var.service_perimeter["name"]}" -# title = var.service_perimeter["title"] -# status { -# restricted_services = [var.service_perimeter["restricted_service"]] -# } -#} -# -#resource "google_access_context_manager_access_policy" "access-policy" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "organizations/${var.gcp_organization_id}" -# title = var.service_perimeter["policy_title"] -#} -# -#resource "google_access_context_manager_access_level" "access-level" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/accessLevels/os_lock" -# title = "os_lock" -# basic { -# conditions { -# device_policy { -# require_screen_lock = true -# } -# regions = [ -# "CH", -# "IT", -# "US", -# ] -# } -# } -#} -# -#variable "firewall" { -# type = any -#} -# -#resource "google_compute_firewall" "mm-firewall" { -# project = var.gcp_project_id -# name = var.firewall["name"] -# enable_logging = true -# network = google_compute_network.inspec-gcp-network.name -# -# allow { -# protocol = "tcp" -# ports = ["80", "8080", "1000-2000"] -# } -# -# source_tags = [var.firewall["source_tag"]] -#} -# -#variable "address" { -# type = any -#} -# -#resource "google_compute_address" "internal_with_subnet_and_address" { -# project = var.gcp_project_id -# name = var.address["name"] -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# address_type = var.address["address_type"] -# address = var.address["address"] -# region = var.gcp_location -#} -# -#variable "instance_group" { -# type = any -#} -# -#resource "google_compute_instance_group" "inspec-instance-group" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group["name"] -# description = var.instance_group["description"] -# -# named_port { -# name = var.instance_group["named_port_name"] -# port = var.instance_group["named_port_port"] -# } -#} -# -#variable "instance" { -# type = any -#} -# -#resource "google_compute_instance" "inspec-instance" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance["name"] -# machine_type = var.instance["machine_type"] -# -# tags = [var.instance["tag_1"], var.instance["tag_2"]] -# -# boot_disk { -# initialize_params { -# image = "debian-cloud/debian-9" -# } -# } -# -# network_interface { -# network = "default" -# -# access_config { -# // Ephemeral IP -# } -# } -# -# metadata = { -# "${var.instance["metadata_key"]}" = var.instance["metadata_value"] -# } -# -# metadata_startup_script = var.instance["startup_script"] -# -# service_account { -# scopes = [var.instance["sa_scope"]] -# } -#} -# -#variable "network" { -# type = any -#} -# -#resource "google_compute_network" "inspec-network" { -# project = var.gcp_project_id -# name = var.network["name"] -# routing_mode = var.network["routing_mode"] -#} -# -#variable "subnetwork" { -# type = any -#} -# -#resource "google_compute_subnetwork" "subnet-with-logging" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.subnetwork["name"] -# ip_cidr_range = var.subnetwork["ip_cidr_range"] -# network = google_compute_network.inspec-network.self_link -# -# log_config { -# aggregation_interval = var.subnetwork["log_interval"] -# flow_sampling = var.subnetwork["log_sampling"] -# metadata = var.subnetwork["log_metadata"] -# } -#} -# -#variable "rigm" { -# type = any -#} -# -variable "sql_connect" { - type = any -} -# -#resource "google_compute_region_instance_group_manager" "inspec-rigm" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.rigm["name"] -# -# base_instance_name = var.rigm["base_instance_name"] -# -# version { -# instance_template = google_compute_instance_template.gcp-inspec-instance-template.self_link -# } -# -# target_pools = [google_compute_target_pool.gcp-inspec-target-pool.self_link] -# target_size = var.rigm["target_size"] -# -# named_port { -# name = var.rigm["named_port_name"] -# port = var.rigm["named_port_port"] -# } -# -# auto_healing_policies { -# health_check = google_compute_health_check.gcp-inspec-health-check.self_link -# initial_delay_sec = var.rigm["healing_delay"] -# } -#} -# -#variable "vpn_tunnel" { -# type = any -#} -# -#resource "google_compute_vpn_tunnel" "tunnel1" { -# project = var.gcp_project_id -# name = var.vpn_tunnel["name"] -# peer_ip = var.vpn_tunnel["peer_ip"] -# shared_secret = var.vpn_tunnel["shared_secret"] -# -# remote_traffic_selector = ["0.0.0.0/0"] -# local_traffic_selector = ["0.0.0.0/0"] -# target_vpn_gateway = google_compute_vpn_gateway.inspec-gcp-vpn-gateway.self_link -# -# depends_on = [ -# google_compute_forwarding_rule.inspec-gcp-fr-esp, -# google_compute_forwarding_rule.inspec-gcp-fr-udp500, -# google_compute_forwarding_rule.inspec-gcp-fr-udp4500, -# ] -#} -# -#variable "alert_policy" { -# type = any -#} -# -#resource "google_monitoring_alert_policy" "alert_policy" { -# project = var.gcp_project_id -# display_name = var.alert_policy["display_name"] -# combiner = var.alert_policy["combiner"] -# conditions { -# display_name = var.alert_policy["condition_display_name"] -# condition_threshold { -# filter = var.alert_policy["condition_filter"] -# duration = var.alert_policy["condition_duration"] -# comparison = var.alert_policy["condition_comparison"] -# aggregations { -# alignment_period = "60s" -# per_series_aligner = "ALIGN_RATE" -# } -# } -# } -#} -# -#variable "dns_managed_zone" { -# type = any -#} -# -#variable "gcp_dns_zone_name" {} -# -#resource "google_dns_managed_zone" "example-zone" { -# project = var.gcp_project_id -# name = var.dns_managed_zone["name"] -# dns_name = "${var.gcp_dns_zone_name}" -# description = var.dns_managed_zone["description"] -# dnssec_config { -# state = var.dns_managed_zone["dnssec_config_state"] -# default_key_specs { -# algorithm = "rsasha256" -# key_type = "zoneSigning" -# key_length = 2048 -# } -# default_key_specs { -# algorithm = "rsasha512" -# key_type = "keySigning" -# key_length = 2048 -# } -# } -#} -# -#variable "logging_metric" { -# type = any -#} -# -#resource "google_logging_metric" "logging_metric" { -# project = var.gcp_project_id -# name = var.logging_metric["name"] -# filter = var.logging_metric["filter"] -# metric_descriptor { -# metric_kind = var.logging_metric["metric_kind"] -# value_type = var.logging_metric["value_type"] -# } -#} -# -#variable "compute_image" { -# type = any -#} -# -#resource "google_compute_image" "example" { -# project = var.gcp_project_id -# name = var.compute_image["name"] -# -# raw_disk { -# source = var.compute_image["source"] -# } -#} -# -#variable "gcp_organization_iam_custom_role_id" {} -# -#resource "google_organization_iam_custom_role" "generic_org_iam_custom_role" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# org_id = var.gcp_organization_id -# role_id = var.gcp_organization_iam_custom_role_id -# title = "GCP Inspec Generic Organization IAM Custom Role" -# description = "Custom role allowing to list IAM roles only" -# permissions = ["iam.roles.list"] -#} -# -#variable "security_policy" { -# type = any -#} -# -#resource "google_compute_security_policy" "policy" { -# project = var.gcp_project_id -# name = var.security_policy["name"] -# -# rule { -# action = var.security_policy["action"] -# priority = var.security_policy["priority"] -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = [var.security_policy["ip_range"]] -# } -# } -# description = var.security_policy["description"] -# } -# -# rule { -# action = "allow" -# priority = "2147483647" -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = ["*"] -# } -# } -# description = "default rule" -# } -#} -# -#variable "memcache_instance" { -# type = any -#} -# -#resource "google_compute_network" "memcache_network" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -#} -# -#resource "google_compute_global_address" "service_range" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -# purpose = "VPC_PEERING" -# address_type = "INTERNAL" -# prefix_length = 16 -# network = google_compute_network.memcache_network.id -#} -# -#resource "google_service_networking_connection" "private_service_connection" { -# provider = google-beta -# network = google_compute_network.memcache_network.id -# service = "servicenetworking.googleapis.com" -# reserved_peering_ranges = [google_compute_global_address.service_range.name] -#} -# -#resource "google_memcache_instance" "instance" { -# provider = google-beta -# name = var.memcache_instance["name"] -# project = var.gcp_project_id -# region = var.gcp_location -# authorized_network = google_service_networking_connection.private_service_connection.network -# -# node_config { -# cpu_count = 1 -# memory_size_mb = 1024 -# } -# node_count = 1 -#} -# -#resource "google_compute_interconnect_attachment" "on_prem" { -# name = "on-prem-attachment" -# edge_availability_domain = "AVAILABILITY_DOMAIN_1" -# type = "PARTNER" -# router = google_compute_router.gcp-inspec-router.id -# mtu = 1500 -#} -# -resource "google_sql_ssl_cert" "client_cert" { - common_name = var.sql_connect["common_name"] - instance = var.gcp_db_instance_name -} - -resource "google_data_loss_prevention_stored_info_type" "basic" { - parent = "projects/my-project-name" - description = "Description" - display_name = "Displayname" - - regex { - pattern = "patient" - group_indexes = [2] - } -} \ No newline at end of file diff --git a/build/inspec/build/inspec/test/integration/configuration/hello-world.zip b/build/inspec/build/inspec/test/integration/configuration/hello-world.zip deleted file mode 100644 index 34c746dd389de9234b3a34c14a410ca34fe63c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58362 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 ERROR - -runtimeconfig_config: - name: inspec-gcp-runtime-config - description: My runtime configurations - -runtimeconfig_variable: - name: prod-variables/hostname - text: example.com - -redis: - name: my-redis-cache - tier: STANDARD_HA - memory_size_gb: 1 - region: us-central1 - location_id: us-central1-a - alternative_location_id: us-central1-f - redis_version: REDIS_3_2 - display_name: InSpec test instance - reserved_ip_range: "192.168.0.0/29" - label_key: key - label_value: value - -network_endpoint_group: - name: inspec-gcp-endpoint-group - default_port: 90 - -node_template: - name: inspec-node-template - label_key: key - label_value: value - -node_group: - name: inspec-node-group - description: A description of the node group - size: 0 - -router_nat: - name: inspec-router-nat - nat_ip_allocate_option: AUTO_ONLY - source_subnetwork_ip_ranges_to_nat: ALL_SUBNETWORKS_ALL_IP_RANGES - min_ports_per_vm: 2 - log_config_enable: true - log_config_filter: ERRORS_ONLY - -service: - name: maps-android-backend.googleapis.com - -spannerinstance: - config: regional-us-east1 - name: spinstance - display_name: inspectest - num_nodes: 1 - label_key: env - label_value: test - -spannerdatabase: - name: spdatabase - instance: spinstance - ddl: "CREATE TABLE test (test STRING(MAX),) PRIMARY KEY (test)" - -scheduler_job: - # region must match where the appengine instance is deployed - region: us-central1 - name: job-name - description: A description - schedule: "*/8 * * * *" - time_zone: America/New_York - http_method: POST - http_target_uri: https://example.com/ping - -service_perimeter: - name: restrict_all - title: restrict_all - restricted_service: storage.googleapis.com - policy_title: policytitle - -firewall: - name: inspec-gcp-firewall - source_tag: some-tag - -address: - name: inspec-gcp-global-address - address_type: INTERNAL - address: "10.2.0.3" - -instance_group: - name: inspec-instance-group - description: My instance group for testing - named_port_name: https - named_port_port: 8080 - -instance: - name: inspec-instance - machine_type: n1-standard-1 - tag_1: foo - tag_2: bar - metadata_key: '123' - metadata_value: asdf - sa_scope: https://www.googleapis.com/auth/compute.readonly - startup_script: "echo hi > /test.txt" - -network: - name: inspec-network - routing_mode: REGIONAL - -subnetwork: - name: inspec-subnet - ip_cidr_range: "10.2.0.0/16" - log_interval: INTERVAL_10_MIN - log_sampling: .5 - log_metadata: INCLUDE_ALL_METADATA - -rigm: - name: inspec-rigm - base_instance_name: rigm1 - target_size: 1 - named_port_name: https - named_port_port: 8888 - healing_delay: 300 - -vpn_tunnel: - name: inspec-vpn-tunnel - peer_ip: "15.0.0.120" - shared_secret: super secret - -project_sink: - name: inspec-gcp-org-sink - filter: resource.type = gce_instance AND severity = DEBUG - -project_exclusion: - name: inspec-project-exclusion - description: My project exclusion description - filter: resource.type = gce_instance AND severity <= DEBUG - -alert_policy: - display_name: Display - combiner: OR - condition_display_name: condition - condition_filter: "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" AND resource.type=\"gce_instance\"" - condition_duration: 60s - condition_comparison: COMPARISON_GT - -dns_managed_zone: - # managed zone dns_name must be randomly generated, so it happens in the other script - name: example-zone - description: example description - dnssec_config_state: 'on' - -logging_metric: - name: some/metric - filter: 'resource.type=gae_app AND severity>=ERROR' - metric_kind: DELTA - value_type: INT64 - -compute_image: - name: inspec-image - source: https://storage.googleapis.com/bosh-gce-raw-stemcells/bosh-stemcell-97.98-google-kvm-ubuntu-xenial-go_agent-raw-1557960142.tar.gz - -security_policy: - name: sec-policy - action: deny(403) - priority: "1000" - ip_range: "9.9.9.0/24" - description: my description - -memcache_instance: - name: mem-instance - -accelerator_type: - name: accelerator_id - -global_operation: - name: operation-1635274037755-5cf45e8217d56-c081cd9a-c3ea7346 - operationType: "compute.externalVpnGateways.insert" - -interconnect_location: - name: akl-zone1-1353 - facility_provider_facility_id: 'Auckland - Albany' - facility_provider: Vocus - -image_family_views: - zone: us-central1-c - name: image-1 - source_type: RAW - status: READY - archive_size_bytes: 539099200 - disk_size_gb: 3 - family: test - -license_code: - name: akl-zone1-1353 - -region_instance_group: - name: instance-group-2 - region: us-central1 - size: 1 - named_port_name: 'port' - named_port_port: 80 - -region_operation: - name: operation-1641188435323-5d4a6f5b26934-9281422c-dce238f5 - region: us-central1 - operation_type: "compute.instanceGroupManagers.insert" - status: DONE - progress: 100 - -sql_database_flag: - name : audit_log - type : STRING - applies_to: MYSQL_5_6 - allowed_string_values: ON - requires_restart: true - -sql_connect: - region: us-central1 - database_version: POSTGRES_13 - backend_type: SECOND_GEN - cert_serial_number: 0 - common_name: "test_gcp_1" - sha1_fingerprint: "80c5c611c0a591db967c7dda3467e23127288fed" - instance: test-pg - -sql_operation: - name: e5c522f1-8391-4830-a8ff-ff1cc4a7b2a5 - status: DONE - operation_type: CREATE -public_delegated_prefix: - name: test - -region_health_check: - name: inspec-gcp-region-health-check - region: us-central1 - timeout_sec: 10 - check_interval_sec: 10 - tcp_health_check_port: 80 - -dlp: - name: "i-inspec-gcp-dlp" - location: "us-east-2" - type: "INSPECT_JOB" - state: "ACTIVE" - inspectDetails: - requestedOptions: - snapshotInspectTemplate: "" - jobConfig: - storageConfig: - hybridOptions: - description: "test" - tableOptions: "" - description: "Description" - display_name: "Displayname" - - - diff --git a/build/inspec/docs/resources/google_data_loss_prevention_stored_info_type.md b/build/inspec/docs/resources/google_data_loss_prevention_stored_info_type.md deleted file mode 100644 index 2b7237908..000000000 --- a/build/inspec/docs/resources/google_data_loss_prevention_stored_info_type.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: About the google_data_loss_prevention_stored_info_type resource -platform: gcp ---- - -## Syntax -A `google_data_loss_prevention_stored_info_type` is used to test a Google StoredInfoType resource - -## Examples -``` - -describe google_data_loss_prevention_stored_info_type(parent: "projects/#{'chef-gcp-inspec'}/locations/#{'us-east-2'}",name: '') do -it { should exist } -its('name') { should cmp 'i-inspec-gcp-dlp' } -end - -describe google_data_loss_prevention_stored_info_type(parent: "projects/#{'chef-gcp-inspec'}/locations/#{'us-east-2'}", name: 'nonexistent') do -it { should_not exist } -end -``` - -## Properties -Properties that can be accessed from the `google_data_loss_prevention_stored_info_type` resource: - - - * `name`: The resource name of the info type. Set by the server. - - * `description`: A description of the info type. - - * `display_name`: User set display name of the info type. - - * `regex`: Regular expression which defines the rule. - - * `pattern`: Pattern defining the regular expression. Its syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub. - - * `group_indexes`: The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included. - - * `dictionary`: Dictionary which defines the rule. - - * `word_list`: List of words or phrases to search for. - - * `words`: Words or phrases defining the dictionary. The dictionary must contain at least one phrase and every phrase must contain at least 2 characters that are letters or digits. - - * `cloud_storage_path`: Newline-delimited file of words in Cloud Storage. Only a single file is accepted. - - * `path`: A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt` - - * `large_custom_dictionary`: Dictionary which defines the rule. - - * `output_path`: Location to store dictionary artifacts in Google Cloud Storage. These files will only be accessible by project owners and the DLP API. If any of these artifacts are modified, the dictionary is considered invalid and can no longer be used. - - * `path`: A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt` - - * `cloud_storage_file_set`: Set of files containing newline-delimited lists of dictionary phrases. - - * `url`: The url, in the format `gs:///`. Trailing wildcard in the path is allowed. - - * `big_query_field`: Field in a BigQuery table where each cell represents a dictionary phrase. - - * `table`: Field in a BigQuery table where each cell represents a dictionary phrase. - - * `project_id`: The Google Cloud Platform project ID of the project containing the table. - - * `dataset_id`: The dataset ID of the table. - - * `table_id`: The name of the table. - - * `field`: Designated field in the BigQuery table. - - * `name`: Name describing the field. - - * `parent`: The parent of the info type in any of the following formats: * `projects/{{project}}` * `projects/{{project}}/locations/{{location}}` * `organizations/{{organization_id}}` * `organizations/{{organization_id}}/locations/{{location}}` - - -## GCP Permissions diff --git a/build/inspec/docs/resources/google_data_loss_prevention_stored_info_types.md b/build/inspec/docs/resources/google_data_loss_prevention_stored_info_types.md deleted file mode 100644 index 1cfcc5094..000000000 --- a/build/inspec/docs/resources/google_data_loss_prevention_stored_info_types.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: About the google_data_loss_prevention_stored_info_types resource -platform: gcp ---- - -## Syntax -A `google_data_loss_prevention_stored_info_types` is used to test a Google StoredInfoType resource - -## Examples -``` - - -describe google_data_loss_prevention_stored_info_types(parent: "projects/#{'chef-gcp-inspec'}/locations/#{'us-east-2'}") do -it { should exist } -its('names') { should include 'i-inspec-gcp-dlp' } -end -``` - -## Properties -Properties that can be accessed from the `google_data_loss_prevention_stored_info_types` resource: - -See [google_data_loss_prevention_stored_info_type.md](google_data_loss_prevention_stored_info_type.md) for more detailed information - * `names`: an array of `google_data_loss_prevention_stored_info_type` name - * `descriptions`: an array of `google_data_loss_prevention_stored_info_type` description - * `display_names`: an array of `google_data_loss_prevention_stored_info_type` display_name - * `regexes`: an array of `google_data_loss_prevention_stored_info_type` regex - * `dictionaries`: an array of `google_data_loss_prevention_stored_info_type` dictionary - * `large_custom_dictionaries`: an array of `google_data_loss_prevention_stored_info_type` large_custom_dictionary - * `parents`: an array of `google_data_loss_prevention_stored_info_type` parent - -## 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 diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary.rb deleted file mode 100644 index 9dcb65ede..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary.rb +++ /dev/null @@ -1,39 +0,0 @@ -# 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 'google/datalossprevention/property/storedinfotype_dictionary_cloud_storage_path' -require 'google/datalossprevention/property/storedinfotype_dictionary_word_list' -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeDictionary - attr_reader :word_list - - attr_reader :cloud_storage_path - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @word_list = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeDictionaryWordList.new(args['wordList'], to_s) - @cloud_storage_path = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeDictionaryCloudStoragePath.new(args['cloudStoragePath'], to_s) - end - - def to_s - "#{@parent_identifier} StoredInfoTypeDictionary" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_cloud_storage_path.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_cloud_storage_path.rb deleted file mode 100644 index 3c6ca4c19..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_cloud_storage_path.rb +++ /dev/null @@ -1,34 +0,0 @@ -# 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. -# -# ---------------------------------------------------------------------------- -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeDictionaryCloudStoragePath - attr_reader :path - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @path = args['path'] - end - - def to_s - "#{@parent_identifier} StoredInfoTypeDictionaryCloudStoragePath" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_word_list.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_word_list.rb deleted file mode 100644 index b9fc370b4..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_dictionary_word_list.rb +++ /dev/null @@ -1,34 +0,0 @@ -# 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. -# -# ---------------------------------------------------------------------------- -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeDictionaryWordList - attr_reader :words - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @words = args['words'] - end - - def to_s - "#{@parent_identifier} StoredInfoTypeDictionaryWordList" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary.rb deleted file mode 100644 index 382a00ccb..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary.rb +++ /dev/null @@ -1,45 +0,0 @@ -# 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 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_field' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_table' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_cloud_storage_file_set' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_output_path' -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeLargeCustomDictionary - attr_reader :output_path - - attr_reader :cloud_storage_file_set - - attr_reader :big_query_field - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @output_path = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionaryOutputPath.new(args['outputPath'], to_s) - @cloud_storage_file_set = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionaryCloudStorageFileSet.new(args['cloudStorageFileSet'], to_s) - @big_query_field = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionaryBigQueryField.new(args['bigQueryField'], to_s) - end - - def to_s - "#{@parent_identifier} StoredInfoTypeLargeCustomDictionary" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field.rb deleted file mode 100644 index 21f06fe2f..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field.rb +++ /dev/null @@ -1,39 +0,0 @@ -# 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 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_field' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_table' -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeLargeCustomDictionaryBigQueryField - attr_reader :table - - attr_reader :field - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @table = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionaryBigQueryFieldTable.new(args['table'], to_s) - @field = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionaryBigQueryFieldField.new(args['field'], to_s) - end - - def to_s - "#{@parent_identifier} StoredInfoTypeLargeCustomDictionaryBigQueryField" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_field.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_field.rb deleted file mode 100644 index 14028bfe2..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_field.rb +++ /dev/null @@ -1,34 +0,0 @@ -# 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. -# -# ---------------------------------------------------------------------------- -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeLargeCustomDictionaryBigQueryFieldField - attr_reader :name - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @name = args['name'] - end - - def to_s - "#{@parent_identifier} StoredInfoTypeLargeCustomDictionaryBigQueryFieldField" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_table.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_table.rb deleted file mode 100644 index 85cad9c08..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_table.rb +++ /dev/null @@ -1,40 +0,0 @@ -# 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. -# -# ---------------------------------------------------------------------------- -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeLargeCustomDictionaryBigQueryFieldTable - attr_reader :project_id - - attr_reader :dataset_id - - attr_reader :table_id - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @project_id = args['projectId'] - @dataset_id = args['datasetId'] - @table_id = args['tableId'] - end - - def to_s - "#{@parent_identifier} StoredInfoTypeLargeCustomDictionaryBigQueryFieldTable" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_cloud_storage_file_set.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_cloud_storage_file_set.rb deleted file mode 100644 index 99e6099d6..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_cloud_storage_file_set.rb +++ /dev/null @@ -1,34 +0,0 @@ -# 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. -# -# ---------------------------------------------------------------------------- -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeLargeCustomDictionaryCloudStorageFileSet - attr_reader :url - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @url = args['url'] - end - - def to_s - "#{@parent_identifier} StoredInfoTypeLargeCustomDictionaryCloudStorageFileSet" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_output_path.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_output_path.rb deleted file mode 100644 index 990736e25..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_large_custom_dictionary_output_path.rb +++ /dev/null @@ -1,34 +0,0 @@ -# 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. -# -# ---------------------------------------------------------------------------- -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeLargeCustomDictionaryOutputPath - attr_reader :path - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @path = args['path'] - end - - def to_s - "#{@parent_identifier} StoredInfoTypeLargeCustomDictionaryOutputPath" - end - end - end - end -end diff --git a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_regex.rb b/build/inspec/libraries/google/datalossprevention/property/storedinfotype_regex.rb deleted file mode 100644 index 63e9eed71..000000000 --- a/build/inspec/libraries/google/datalossprevention/property/storedinfotype_regex.rb +++ /dev/null @@ -1,37 +0,0 @@ -# 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. -# -# ---------------------------------------------------------------------------- -module GoogleInSpec - module DataLossPrevention - module Property - class StoredInfoTypeRegex - attr_reader :pattern - - attr_reader :group_indexes - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @pattern = args['pattern'] - @group_indexes = args['groupIndexes'] - end - - def to_s - "#{@parent_identifier} StoredInfoTypeRegex" - end - end - end - end -end diff --git a/build/inspec/libraries/google/iam/property/iam_binding_condition.rb b/build/inspec/libraries/google/iam/property/iam_binding_condition.rb deleted file mode 100644 index fcabcbe7a..000000000 --- a/build/inspec/libraries/google/iam/property/iam_binding_condition.rb +++ /dev/null @@ -1,40 +0,0 @@ -# frozen_string_literal: false - -# 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. - -module GoogleInSpec - module Iam - module Property - class IamBindingCondition - attr_reader :title - - attr_reader :description - - attr_reader :expression - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @title = args['title'] - @description = args['description'] - @expression = args['expression'] - end - - def to_s - "#{@parent_identifier} IamBindingCondition" - end - end - end - end -end diff --git a/build/inspec/libraries/google/iam/property/iam_policy_audit_configs.rb b/build/inspec/libraries/google/iam/property/iam_policy_audit_configs.rb deleted file mode 100644 index e960b9b1f..000000000 --- a/build/inspec/libraries/google/iam/property/iam_policy_audit_configs.rb +++ /dev/null @@ -1,46 +0,0 @@ -# frozen_string_literal: false - -# 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. - -require 'google/iam/property/iam_policy_audit_configs_audit_log_configs' -module GoogleInSpec - module Iam - module Property - class IamPolicyAuditConfigs - attr_reader :service - - attr_reader :audit_log_configs - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @service = args['service'] - @audit_log_configs = GoogleInSpec::Iam::Property::IamPolicyAuditConfigsAuditLogConfigsArray.parse(args['auditLogConfigs'], to_s) - end - - def to_s - "#{@parent_identifier} IamPolicyAuditConfigs" - end - end - - class IamPolicyAuditConfigsArray - def self.parse(value, parent_identifier) - return if value.nil? - return IamPolicyAuditConfigs.new(value, parent_identifier) unless value.is_a?(::Array) - value.map { |v| IamPolicyAuditConfigs.new(v, parent_identifier) } - end - end - end - end -end diff --git a/build/inspec/libraries/google/iam/property/iam_policy_audit_configs_audit_log_configs.rb b/build/inspec/libraries/google/iam/property/iam_policy_audit_configs_audit_log_configs.rb deleted file mode 100644 index 371e49b38..000000000 --- a/build/inspec/libraries/google/iam/property/iam_policy_audit_configs_audit_log_configs.rb +++ /dev/null @@ -1,45 +0,0 @@ -# frozen_string_literal: false - -# 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. - -module GoogleInSpec - module Iam - module Property - class IamPolicyAuditConfigsAuditLogConfigs - attr_reader :log_type - - attr_reader :exempted_members - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @log_type = args['logType'] - @exempted_members = args['exemptedMembers'] - end - - def to_s - "#{@parent_identifier} IamPolicyAuditConfigsAuditLogConfigs" - end - end - - class IamPolicyAuditConfigsAuditLogConfigsArray - def self.parse(value, parent_identifier) - return if value.nil? - return IamPolicyAuditConfigsAuditLogConfigs.new(value, parent_identifier) unless value.is_a?(::Array) - value.map { |v| IamPolicyAuditConfigsAuditLogConfigs.new(v, parent_identifier) } - end - end - end - end -end diff --git a/build/inspec/libraries/google/iam/property/iam_policy_bindings.rb b/build/inspec/libraries/google/iam/property/iam_policy_bindings.rb deleted file mode 100644 index 7277ae4cb..000000000 --- a/build/inspec/libraries/google/iam/property/iam_policy_bindings.rb +++ /dev/null @@ -1,49 +0,0 @@ -# frozen_string_literal: false - -# 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. - -require 'google/iam/property/iam_binding_condition' -module GoogleInSpec - module Iam - module Property - class IamPolicyBindings - attr_reader :role - - attr_reader :members - - attr_reader :condition - - def initialize(args = nil, parent_identifier = nil) - return if args.nil? - @parent_identifier = parent_identifier - @role = args['role'] - @members = args['members'] - @condition = GoogleInSpec::Iam::Property::IamBindingCondition.new(args['condition'], to_s) - end - - def to_s - "#{@parent_identifier} IamPolicyBindings" - end - end - - class IamPolicyBindingsArray - def self.parse(value, parent_identifier) - return if value.nil? - return IamPolicyBindings.new(value, parent_identifier) unless value.is_a?(::Array) - value.map { |v| IamPolicyBindings.new(v, parent_identifier) } - end - end - end - end -end diff --git a/build/inspec/libraries/google_data_loss_prevention_stored_info_type.rb b/build/inspec/libraries/google_data_loss_prevention_stored_info_type.rb deleted file mode 100644 index e1b9e6f1a..000000000 --- a/build/inspec/libraries/google_data_loss_prevention_stored_info_type.rb +++ /dev/null @@ -1,77 +0,0 @@ -# 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' -require 'google/datalossprevention/property/storedinfotype_dictionary' -require 'google/datalossprevention/property/storedinfotype_dictionary_cloud_storage_path' -require 'google/datalossprevention/property/storedinfotype_dictionary_word_list' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_field' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_big_query_field_table' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_cloud_storage_file_set' -require 'google/datalossprevention/property/storedinfotype_large_custom_dictionary_output_path' -require 'google/datalossprevention/property/storedinfotype_regex' - -# A provider to manage Data loss prevention resources. -class DataLossPreventionStoredInfoType < GcpResourceBase - name 'google_data_loss_prevention_stored_info_type' - desc 'StoredInfoType' - supports platform: 'gcp' - - attr_reader :params - attr_reader :name - attr_reader :description - attr_reader :display_name - attr_reader :regex - attr_reader :dictionary - attr_reader :large_custom_dictionary - attr_reader :parent - - 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'] - @description = @fetched['description'] - @display_name = @fetched['displayName'] - @regex = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeRegex.new(@fetched['regex'], to_s) - @dictionary = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeDictionary.new(@fetched['dictionary'], to_s) - @large_custom_dictionary = GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionary.new(@fetched['largeCustomDictionary'], to_s) - @parent = @fetched['parent'] - end - - def exists? - !@fetched.nil? - end - - def to_s - "StoredInfoType #{@params[:name]}" - end - - private - - def product_url(_ = nil) - 'https://dlp.googleapis.com/v2/' - end - - def resource_base_url - '{{parent}}/storedInfoTypes/{{name}}' - end -end diff --git a/build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb b/build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb deleted file mode 100644 index fbd074ab1..000000000 --- a/build/inspec/libraries/google_data_loss_prevention_stored_info_types.rb +++ /dev/null @@ -1,91 +0,0 @@ -# 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 DataLossPreventionStoredInfoTypes < GcpResourceBase - name 'google_data_loss_prevention_stored_info_types' - desc 'StoredInfoType plural resource' - supports platform: 'gcp' - - attr_reader :table - - filter_table_config = FilterTable.create - - filter_table_config.add(:names, field: :name) - filter_table_config.add(:descriptions, field: :description) - filter_table_config.add(:display_names, field: :display_name) - filter_table_config.add(:regexes, field: :regex) - filter_table_config.add(:dictionaries, field: :dictionary) - filter_table_config.add(:large_custom_dictionaries, field: :large_custom_dictionary) - filter_table_config.add(:parents, field: :parent) - - filter_table_config.connect(self, :table) - - def initialize(params = {}) - super(params.merge({ use_http_transport: true })) - @params = params - @table = fetch_wrapped_resource('storedInfoTypes') - 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']] }, - 'description' => ->(obj) { [:description, obj['description']] }, - 'displayName' => ->(obj) { [:display_name, obj['displayName']] }, - 'regex' => ->(obj) { [:regex, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeRegex.new(obj['regex'], to_s)] }, - 'dictionary' => ->(obj) { [:dictionary, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeDictionary.new(obj['dictionary'], to_s)] }, - 'largeCustomDictionary' => ->(obj) { [:large_custom_dictionary, GoogleInSpec::DataLossPrevention::Property::StoredInfoTypeLargeCustomDictionary.new(obj['largeCustomDictionary'], to_s)] }, - 'parent' => ->(obj) { [:parent, obj['parent']] }, - } - end - - private - - def product_url(_ = nil) - 'https://dlp.googleapis.com/v2/' - end - - def resource_base_url - '{{parent}}/storedInfoTypes' - end -end diff --git a/build/inspec/test/integration/build/gcp-mm.tf b/build/inspec/test/integration/build/gcp-mm.tf deleted file mode 100644 index 53de3d66a..000000000 --- a/build/inspec/test/integration/build/gcp-mm.tf +++ /dev/null @@ -1,1553 +0,0 @@ -#variable "ssl_policy" { -# type = any -#} -# -#variable "topic" { -# type = any -#} -# -#variable "subscription" { -# type = any -#} -# -#variable "managed_zone" { -# type = any -#} -# -#variable "record_set" { -# type = any -#} -# -#variable "instance_group_manager" { -# type = any -#} -# -#variable "autoscaler" { -# type = any -#} -# -#variable "target_pool" { -# type = any -#} -# -#variable "trigger" { -# type = any -#} -# -#variable "health_check" { -# type = any -#} -# -#variable "backend_service" { -# type = any -#} -# -#variable "http_health_check" { -# type = any -#} -# -#variable "https_health_check" { -# type = any -#} -# -#variable "instance_template" { -# type = any -#} -# -#variable "global_address" { -# type = any -#} -# -#variable "url_map" { -# type = any -#} -# -#variable "http_proxy" { -# type = any -#} -# -#variable "global_forwarding_rule" { -# type = any -#} -# -#variable "target_tcp_proxy" { -# type = any -#} -# -#variable "route" { -# type = any -#} -# -#variable "router" { -# type = any -#} -# -#variable "snapshot" { -# type = any -#} -# -#variable "https_proxy" { -# type = any -#} -# -#variable "ssl_certificate" { -# type = any -#} -# -#variable "dataset" { -# type = any -#} -# -#variable "bigquery_table" { -# type = any -#} -# -#variable "repository" { -# type = any -#} -# -#variable "folder" { -# type = any -#} -# -#variable "gcp_organization_id" { -# type = string -# default = "none" -#} -# -#variable "cloudfunction" { -# type = any -#} -# -#variable "backend_bucket" { -# type = any -#} -# -#variable "gcp_cloud_function_region" {} -# -#variable "regional_node_pool" { -# type = any -#} -# -#variable "region_backend_service_health_check" { -# type = any -#} -# -#variable "region_backend_service" { -# type = any -#} -# -#variable "org_sink" { -# type = any -#} -# -#variable "standardappversion" { -# type = any -#} -# -#variable "ml_model" { -# type = any -#} -# -#variable "dataproc_cluster" { -# type = any -#} -# -#variable "folder_exclusion" { -# type = any -#} -# -#variable "filestore_instance" { -# type = any -#} -# -#variable "folder_sink" { -# type = any -#} -# -#variable "runtimeconfig_config" { -# type = any -#} -# -#variable "runtimeconfig_variable" { -# type = any -#} -# -#variable "redis" { -# type = any -#} -# -#variable "network_endpoint_group" { -# type = any -#} -# -#variable "node_template" { -# type = any -#} -# -#variable "node_group" { -# type = any -#} -# -#variable "router_nat" { -# type = any -#} -# -#variable "service" { -# type = any -#} -# -#variable "spannerinstance" { -# type = any -#} -# -#variable "spannerdatabase" { -# type = any -#} -# -#variable "scheduler_job" { -# type = any -#} -# -# -#resource "google_compute_ssl_policy" "custom-ssl-policy" { -# name = var.ssl_policy["name"] -# min_tls_version = var.ssl_policy["min_tls_version"] -# profile = var.ssl_policy["profile"] -# custom_features = [var.ssl_policy["custom_feature"], var.ssl_policy["custom_feature2"]] -# project = var.gcp_project_id -#} -# -#resource "google_pubsub_topic" "topic" { -# project = var.gcp_project_id -# name = var.topic["name"] -#} -# -#resource "google_pubsub_subscription" "default" { -# project = var.gcp_project_id -# name = var.subscription["name"] -# topic = google_pubsub_topic.topic.name -# ack_deadline_seconds = var.subscription["ack_deadline_seconds"] -#} -# -#resource "google_dns_managed_zone" "prod" { -# name = var.managed_zone["name"] -# dns_name = var.managed_zone["dns_name"] -# description = var.managed_zone["description"] -# -# labels = { -# key = var.managed_zone["label_value"] -# } -# project = var.gcp_project_id -#} -# -#resource "google_dns_record_set" "a" { -# name = var.record_set["name"] -# managed_zone = google_dns_managed_zone.prod.name -# type = var.record_set["type"] -# ttl = var.record_set["ttl"] -# -# rrdatas = [var.record_set["rrdatas1"], var.record_set["rrdatas2"]] -# project = var.gcp_project_id -#} -# -#resource "google_compute_instance_group_manager" "gcp-inspec-igm" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group_manager["name"] -# version { -# instance_template = google_compute_instance_template.default.self_link -# } -# base_instance_name = var.instance_group_manager["base_instance_name"] -# target_pools = [] -# target_size = 0 -# named_port { -# name = var.instance_group_manager["named_port_name"] -# port = var.instance_group_manager["named_port_port"] -# } -#} -# -#resource "google_compute_autoscaler" "gcp-inspec-autoscaler" { -# project = var.gcp_project_id -# name = var.autoscaler["name"] -# zone = var.gcp_zone -# target = google_compute_instance_group_manager.gcp-inspec-igm.self_link -# -# autoscaling_policy { -# max_replicas = var.autoscaler["max_replicas"] -# min_replicas = var.autoscaler["min_replicas"] -# cooldown_period = var.autoscaler["cooldown_period"] -# -# cpu_utilization { -# target = var.autoscaler["cpu_utilization_target"] -# } -# } -#} -# -#resource "google_compute_target_pool" "gcp-inspec-target-pool" { -# project = var.gcp_project_id -# name = var.target_pool["name"] -# session_affinity = var.target_pool["session_affinity"] -# -# instances = [ -# "${var.gcp_zone}/${var.gcp_ext_vm_name}", -# ] -#} -# -#resource "google_cloudbuild_trigger" "gcp-inspec-cloudbuild-trigger" { -# project = var.gcp_project_id -# trigger_template { -# branch_name = var.trigger["trigger_template_branch"] -# project_id = var.trigger["trigger_template_project"] -# repo_name = var.trigger["trigger_template_repo"] -# } -# filename = var.trigger["filename"] -#} -# -#resource "google_compute_health_check" "gcp-inspec-health-check" { -# project = var.gcp_project_id -# name = var.health_check["name"] -# -# timeout_sec = var.health_check["timeout_sec"] -# check_interval_sec = var.health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_backend_service" "gcp-inspec-backend-service" { -# project = var.gcp_project_id -# name = var.backend_service["name"] -# description = var.backend_service["description"] -# port_name = var.backend_service["port_name"] -# protocol = var.backend_service["protocol"] -# timeout_sec = var.backend_service["timeout_sec"] -# enable_cdn = var.backend_service["enable_cdn"] -# -# backend { -# group = google_compute_instance_group_manager.gcp-inspec-igm.instance_group -# } -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_health_check" "gcp-inspec-region-backend-service-hc" { -# project = var.gcp_project_id -# name = var.region_backend_service_health_check["name"] -# -# timeout_sec = var.region_backend_service_health_check["timeout_sec"] -# check_interval_sec = var.region_backend_service_health_check["check_interval_sec"] -# -# tcp_health_check { -# port = var.region_backend_service_health_check["tcp_health_check_port"] -# } -#} -# -#resource "google_compute_region_backend_service" "gcp-inspec-region-backend-service" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.region_backend_service["name"] -# description = var.region_backend_service["description"] -# protocol = var.region_backend_service["protocol"] -# timeout_sec = var.region_backend_service["timeout_sec"] -# -# health_checks = [google_compute_health_check.gcp-inspec-region-backend-service-hc.self_link] -#} -# -#resource "google_compute_http_health_check" "gcp-inspec-http-health-check" { -# project = var.gcp_project_id -# name = var.http_health_check["name"] -# request_path = var.http_health_check["request_path"] -# -# timeout_sec = var.http_health_check["timeout_sec"] -# check_interval_sec = var.http_health_check["check_interval_sec"] -#} -# -#resource "google_compute_https_health_check" "gcp-inspec-https-health-check" { -# project = var.gcp_project_id -# name = var.https_health_check["name"] -# request_path = var.https_health_check["request_path"] -# -# timeout_sec = var.https_health_check["timeout_sec"] -# check_interval_sec = var.https_health_check["check_interval_sec"] -# unhealthy_threshold = var.https_health_check["unhealthy_threshold"] -#} -# -#resource "google_compute_instance_template" "gcp-inspec-instance-template" { -# project = var.gcp_project_id -# name = var.instance_template["name"] -# description = var.instance_template["description"] -# -# tags = [var.instance_template["tag"]] -# -# instance_description = var.instance_template["instance_description"] -# machine_type = var.instance_template["machine_type"] -# can_ip_forward = var.instance_template["can_ip_forward"] -# -# scheduling { -# automatic_restart = var.instance_template["scheduling_automatic_restart"] -# on_host_maintenance = var.instance_template["scheduling_on_host_maintenance"] -# } -# -# // Create a new boot disk from an image -# disk { -# source_image = var.instance_template["disk_source_image"] -# auto_delete = var.instance_template["disk_auto_delete"] -# boot = var.instance_template["disk_boot"] -# } -# -# network_interface { -# network = var.instance_template["network_interface_network"] -# } -# -# service_account { -# scopes = [var.instance_template["service_account_scope"]] -# } -#} -# -#resource "google_compute_global_address" "gcp-inspec-global-address" { -# project = var.gcp_project_id -# name = var.global_address["name"] -# ip_version = var.global_address["ip_version"] -#} -# -#resource "google_compute_url_map" "gcp-inspec-url-map" { -# project = var.gcp_project_id -# name = var.url_map["name"] -# description = var.url_map["description"] -# -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# host_rule { -# hosts = [var.url_map["host_rule_host"]] -# path_matcher = var.url_map["path_matcher_name"] -# } -# -# path_matcher { -# name = var.url_map["path_matcher_name"] -# default_service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# -# path_rule { -# paths = [var.url_map["path_rule_path"]] -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# } -# } -# -# test { -# service = google_compute_backend_service.gcp-inspec-backend-service.self_link -# host = var.url_map["test_host"] -# path = var.url_map["test_path"] -# } -#} -# -#resource "google_compute_target_http_proxy" "gcp-inspec-http-proxy" { -# project = var.gcp_project_id -# name = var.http_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.http_proxy["description"] -#} -# -#resource "google_compute_global_forwarding_rule" "gcp-inspec-global-forwarding-rule" { -# project = var.gcp_project_id -# name = var.global_forwarding_rule["name"] -# target = google_compute_target_http_proxy.gcp-inspec-http-proxy.self_link -# port_range = var.global_forwarding_rule["port_range"] -#} -# -#resource "google_compute_backend_service" "gcp-inspec-tcp-backend-service" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["tcp_backend_service_name"] -# protocol = "TCP" -# timeout_sec = 10 -# -# health_checks = [google_compute_health_check.gcp-inspec-health-check.self_link] -#} -# -#resource "google_compute_target_tcp_proxy" "gcp-inspec-target-tcp-proxy" { -# project = var.gcp_project_id -# name = var.target_tcp_proxy["name"] -# proxy_header = var.target_tcp_proxy["proxy_header"] -# backend_service = google_compute_backend_service.gcp-inspec-tcp-backend-service.self_link -#} -# -#resource "google_compute_route" "gcp-inspec-route" { -# project = var.gcp_project_id -# name = var.route["name"] -# dest_range = var.route["dest_range"] -# network = google_compute_network.inspec-gcp-network.name -# next_hop_ip = var.route["next_hop_ip"] -# priority = var.route["priority"] -# # google_compute_route depends on next_hop_ip belonging to a subnetwork -# # of the named network in this block. Since inspec-gcp-network does not -# # automatically create subnetworks, we need to create a dependency so -# # the route is not created before the subnetwork -# depends_on = [google_compute_subnetwork.inspec-gcp-subnetwork] -#} -# -#resource "google_compute_router" "gcp-inspec-router" { -# project = var.gcp_project_id -# name = var.router["name"] -# network = google_compute_network.inspec-gcp-network.name -# bgp { -# asn = var.router["bgp_asn"] -# advertise_mode = var.router["bgp_advertise_mode"] -# advertised_groups = [var.router["bgp_advertised_group"]] -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range1"] -# } -# advertised_ip_ranges { -# range = var.router["bgp_advertised_ip_range2"] -# } -# } -#} -# -#resource "google_compute_disk" "snapshot-disk" { -# project = var.gcp_project_id -# name = var.snapshot["disk_name"] -# type = var.snapshot["disk_type"] -# zone = var.gcp_zone -# image = var.snapshot["disk_image"] -# labels = { -# environment = "generic_compute_disk_label" -# } -#} -# -#resource "google_compute_snapshot" "gcp-inspec-snapshot" { -# project = var.gcp_project_id -# name = var.snapshot["name"] -# source_disk = google_compute_disk.snapshot-disk.name -# zone = var.gcp_zone -#} -# -#resource "google_compute_ssl_certificate" "gcp-inspec-ssl-certificate" { -# project = var.gcp_project_id -# name = var.ssl_certificate["name"] -# private_key = var.ssl_certificate["private_key"] -# certificate = var.ssl_certificate["certificate"] -# description = var.ssl_certificate["description"] -#} -# -#resource "google_compute_target_https_proxy" "gcp-inspec-https-proxy" { -# project = var.gcp_project_id -# name = var.https_proxy["name"] -# url_map = google_compute_url_map.gcp-inspec-url-map.self_link -# description = var.https_proxy["description"] -# ssl_certificates = [google_compute_ssl_certificate.gcp-inspec-ssl-certificate.self_link] -#} -# -#resource "google_bigquery_dataset" "gcp-inspec-dataset" { -# project = var.gcp_project_id -# dataset_id = var.dataset["dataset_id"] -# friendly_name = var.dataset["friendly_name"] -# description = var.dataset["description"] -# location = var.dataset["location"] -# default_table_expiration_ms = var.dataset["default_table_expiration_ms"] -# -# access { -# role = var.dataset["access_writer_role"] -# special_group = var.dataset["access_writer_special_group"] -# } -# -# access { -# role = "OWNER" -# special_group = "projectOwners" -# } -#} -# -#resource "google_bigquery_table" "gcp-inspec-bigquery-table" { -# project = var.gcp_project_id -# dataset_id = google_bigquery_dataset.gcp-inspec-dataset.dataset_id -# table_id = var.bigquery_table["table_id"] -# -# time_partitioning { -# type = var.bigquery_table["time_partitioning_type"] -# } -# -# description = var.bigquery_table["description"] -# expiration_time = var.bigquery_table["expiration_time"] -#} -# -#resource "google_sourcerepo_repository" "gcp-inspec-sourcerepo-repository" { -# project = var.gcp_project_id -# name = var.repository["name"] -#} -# -#resource "google_folder" "inspec-gcp-folder" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# display_name = var.folder["display_name"] -# parent = "organizations/${var.gcp_organization_id}" -#} -# -#resource "google_storage_bucket_object" "archive" { -# name = "index.js.zip" -# bucket = google_storage_bucket.generic-storage-bucket.name -# source = "../configuration/index.js.zip" -#} -# -#resource "google_cloudfunctions_function" "function" { -# project = var.gcp_project_id -# region = var.gcp_cloud_function_region -# name = var.cloudfunction["name"] -# description = var.cloudfunction["description"] -# available_memory_mb = var.cloudfunction["available_memory_mb"] -# source_archive_bucket = google_storage_bucket.generic-storage-bucket.name -# source_archive_object = google_storage_bucket_object.archive.name -# trigger_http = var.cloudfunction["trigger_http"] -# timeout = var.cloudfunction["timeout"] -# entry_point = var.cloudfunction["entry_point"] -# runtime = "nodejs8" -# -# environment_variables = { -# MY_ENV_VAR = var.cloudfunction["env_var_value"] -# } -#} -# -#resource "google_compute_backend_bucket" "image_backend" { -# project = var.gcp_project_id -# name = var.backend_bucket["name"] -# description = var.backend_bucket["description"] -# bucket_name = google_storage_bucket.generic-storage-bucket.name -# enable_cdn = var.backend_bucket["enable_cdn"] -#} -# -#resource "google_container_node_pool" "inspec-gcp-node-pool" { -# project = var.gcp_project_id -# name = var.regional_node_pool["name"] -# location = google_container_cluster.primary.location -# cluster = google_container_cluster.primary.name -# node_count = var.regional_node_pool["node_count"] -#} -# -#resource "google_logging_organization_sink" "my-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.org_sink.name -# org_id = var.gcp_organization_id -# -# # Can export to pubsub, cloud storage, or bigquery -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# # Log all WARN or higher severity messages relating to instances -# filter = var.org_sink.filter -#} -# -#variable "project_sink" { -# type = any -#} -# -#resource "google_logging_project_sink" "project-logging-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# -# name = var.project_sink.name -# destination = "storage.googleapis.com/${google_storage_bucket.project-logging-bucket[0].name}" -# -# filter = var.project_sink.filter -# -# unique_writer_identity = true -#} -# -#resource "google_storage_bucket" "bucket" { -# name = "inspec-gcp-static-${var.gcp_project_id}" -# project = var.gcp_project_id -# location = var.gcp_location -# force_destroy = true -# -# labels = { -# "key" = "value" -# } -# -# retention_policy { -# retention_period = 1000 -# } -#} -# -#resource "google_storage_bucket_object" "object" { -# name = "hello-world.zip" -# bucket = google_storage_bucket.bucket.name -# source = "../configuration/hello-world.zip" -#} -# -#resource "google_app_engine_standard_app_version" "default" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# project = var.gcp_project_id -# version_id = var.standardappversion["version_id"] -# service = var.standardappversion["service"] -# runtime = var.standardappversion["runtime"] -# noop_on_destroy = true -# entrypoint { -# shell = var.standardappversion["entrypoint"] -# } -# -# deployment { -# zip { -# source_url = "https://storage.googleapis.com/${google_storage_bucket.bucket.name}/hello-world.zip" -# } -# } -# -# env_variables = { -# port = var.standardappversion["port"] -# } -#} -# -#resource "google_ml_engine_model" "inspec-gcp-model" { -# project = var.gcp_project_id -# name = var.ml_model["name"] -# description = var.ml_model["description"] -# regions = [var.ml_model["region"]] -# online_prediction_logging = var.ml_model["online_prediction_logging"] -# online_prediction_console_logging = var.ml_model["online_prediction_console_logging"] -#} -# -#resource "google_compute_firewall" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-firewall" -# network = google_compute_network.dataproc.name -# -# source_ranges = ["10.128.0.0/9"] -# allow { -# protocol = "icmp" -# } -# -# allow { -# protocol = "tcp" -# ports = ["0-65535"] -# } -# allow { -# protocol = "udp" -# ports = ["0-65535"] -# } -#} -# -#resource "google_compute_network" "dataproc" { -# project = var.gcp_project_id -# name = "dataproc-network" -#} -# -#resource "google_dataproc_cluster" "mycluster" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.dataproc_cluster["name"] -# -# labels = { -# "${var.dataproc_cluster["label_key"]}" = var.dataproc_cluster["label_value"] -# } -# -# cluster_config { -# master_config { -# num_instances = var.dataproc_cluster["config"]["master_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["master_config"]["machine_type"] -# disk_config { -# boot_disk_type = var.dataproc_cluster["config"]["master_config"]["boot_disk_type"] -# boot_disk_size_gb = var.dataproc_cluster["config"]["master_config"]["boot_disk_size_gb"] -# } -# } -# -# worker_config { -# num_instances = var.dataproc_cluster["config"]["worker_config"]["num_instances"] -# machine_type = var.dataproc_cluster["config"]["worker_config"]["machine_type"] -# disk_config { -# boot_disk_size_gb = var.dataproc_cluster["config"]["worker_config"]["boot_disk_size_gb"] -# num_local_ssds = var.dataproc_cluster["config"]["worker_config"]["num_local_ssds"] -# } -# } -# -# # Override or set some custom properties -# software_config { -# override_properties = { -# "${var.dataproc_cluster["config"]["software_config"]["prop_key"]}" = var.dataproc_cluster["config"]["software_config"]["prop_value"] -# } -# } -# -# gce_cluster_config { -# network = google_compute_network.dataproc.self_link -# tags = [var.dataproc_cluster["config"]["gce_cluster_config"]["tag"]] -# } -# } -#} -# -#resource "google_logging_folder_exclusion" "my-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_exclusion["name"] -# folder = google_folder.inspec-gcp-folder.0.name -# -# description = var.folder_exclusion["description"] -# -# filter = var.folder_exclusion["filter"] -#} -# -#variable "project_exclusion" { -# type = any -#} -# -#resource "google_logging_project_exclusion" "project-exclusion" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.project_exclusion["name"] -# project = var.gcp_project_id -# -# description = var.project_exclusion["description"] -# -# filter = var.project_exclusion["filter"] -#} -# -#resource "google_filestore_instance" "instance" { -# project = var.gcp_project_id -# name = var.filestore_instance["name"] -# zone = var.filestore_instance["zone"] -# tier = var.filestore_instance["tier"] -# -# file_shares { -# capacity_gb = var.filestore_instance["fileshare_capacity_gb"] -# name = var.filestore_instance["fileshare_name"] -# } -# -# networks { -# network = var.filestore_instance["network_name"] -# modes = [var.filestore_instance["network_mode"]] -# } -#} -# -#resource "google_logging_folder_sink" "folder-sink" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# name = var.folder_sink.name -# folder = google_folder.inspec-gcp-folder.0.name -# -# destination = "storage.googleapis.com/${google_storage_bucket.generic-storage-bucket.name}" -# -# filter = var.folder_sink.filter -#} -# -#resource "google_runtimeconfig_config" "inspec-runtime-config" { -# project = var.gcp_project_id -# name = var.runtimeconfig_config["name"] -# description = var.runtimeconfig_config["description"] -#} -# -#resource "google_runtimeconfig_variable" "inspec-runtime-variable" { -# project = var.gcp_project_id -# parent = google_runtimeconfig_config.inspec-runtime-config.name -# name = var.runtimeconfig_variable["name"] -# text = var.runtimeconfig_variable["text"] -#} -# -#resource "google_redis_instance" "inspec-redis" { -# project = var.gcp_project_id -# name = var.redis["name"] -# tier = var.redis["tier"] -# memory_size_gb = var.redis["memory_size_gb"] -# -# location_id = var.redis["location_id"] -# alternative_location_id = var.redis["alternative_location_id"] -# -# redis_version = var.redis["redis_version"] -# display_name = var.redis["display_name"] -# reserved_ip_range = var.redis["reserved_ip_range"] -# -# labels = { -# "${var.redis["label_key"]}" = var.redis["label_value"] -# } -#} -# -#resource "google_compute_network_endpoint_group" "inspec-endpoint-group" { -# project = var.gcp_project_id -# name = var.network_endpoint_group["name"] -# network = google_compute_subnetwork.inspec-gcp-subnetwork.network -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# default_port = var.network_endpoint_group["default_port"] -# zone = var.gcp_zone -#} -# -#data "google_compute_node_types" "zone-node-type" { -# project = var.gcp_project_id -# zone = var.gcp_zone -#} -# -#resource "google_compute_node_template" "inspec-template" { -# project = var.gcp_project_id -# region = var.gcp_location -# -# name = var.node_template["name"] -# node_type = data.google_compute_node_types.zone-node-type.names[0] -# -# node_affinity_labels = { -# "${var.node_template["label_key"]}" = var.node_template["label_value"] -# } -#} -# -#resource "google_compute_node_group" "inspec-node-group" { -# project = var.gcp_project_id -# name = var.node_group["name"] -# zone = var.gcp_zone -# description = var.node_group["description"] -# -# size = var.node_group["size"] -# node_template = google_compute_node_template.inspec-template.self_link -#} -# -#resource "google_compute_router_nat" "inspec-nat" { -# project = var.gcp_project_id -# name = var.router_nat["name"] -# router = google_compute_router.gcp-inspec-router.name -# region = google_compute_router.gcp-inspec-router.region -# nat_ip_allocate_option = var.router_nat["nat_ip_allocate_option"] -# source_subnetwork_ip_ranges_to_nat = var.router_nat["source_subnetwork_ip_ranges_to_nat"] -# min_ports_per_vm = var.router_nat["min_ports_per_vm"] -# -# log_config { -# enable = var.router_nat["log_config_enable"] -# filter = var.router_nat["log_config_filter"] -# } -#} -# -#resource "google_project_service" "project" { -# project = var.gcp_project_id -# service = var.service["name"] -#} -# -#resource "google_service_account" "spanner_service_account" { -# project = var.gcp_project_id -# account_id = "${var.gcp_service_account_display_name}-sp" -# display_name = "${var.gcp_service_account_display_name}-sp" -#} -# -#resource "google_service_account_key" "userkey" { -# service_account_id = google_service_account.spanner_service_account.name -# public_key_type = "TYPE_X509_PEM_FILE" -#} -# -#resource "google_spanner_instance" "spanner_instance" { -# project = var.gcp_project_id -# config = var.spannerinstance["config"] -# name = var.spannerinstance["name"] -# display_name = var.spannerinstance["display_name"] -# num_nodes = var.spannerinstance["num_nodes"] -# labels = { -# "${var.spannerinstance["label_key"]}" = var.spannerinstance["label_value"] -# } -#} -# -#resource "google_spanner_instance_iam_binding" "instance" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# role = "roles/editor" -# -# members = [ -# "serviceAccount:${google_service_account.spanner_service_account.email}", -# ] -#} -# -#resource "google_spanner_database" "database" { -# project = var.gcp_project_id -# instance = google_spanner_instance.spanner_instance.name -# name = var.spannerdatabase["name"] -# ddl = [var.spannerdatabase["ddl"]] -#} -# -#resource "google_cloud_scheduler_job" "job" { -# project = var.gcp_project_id -# region = var.scheduler_job["region"] -# name = var.scheduler_job["name"] -# description = var.scheduler_job["description"] -# schedule = var.scheduler_job["schedule"] -# time_zone = var.scheduler_job["time_zone"] -# -# http_target { -# http_method = var.scheduler_job["http_method"] -# uri = var.scheduler_job["http_target_uri"] -# } -#} -# -#variable "service_perimeter" { -# type = any -#} -# -#resource "google_access_context_manager_service_perimeter" "service-perimeter" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/servicePerimeters/${var.service_perimeter["name"]}" -# title = var.service_perimeter["title"] -# status { -# restricted_services = [var.service_perimeter["restricted_service"]] -# } -#} -# -#resource "google_access_context_manager_access_policy" "access-policy" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "organizations/${var.gcp_organization_id}" -# title = var.service_perimeter["policy_title"] -#} -# -#resource "google_access_context_manager_access_level" "access-level" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}" -# name = "accessPolicies/${google_access_context_manager_access_policy.access-policy.0.name}/accessLevels/os_lock" -# title = "os_lock" -# basic { -# conditions { -# device_policy { -# require_screen_lock = true -# } -# regions = [ -# "CH", -# "IT", -# "US", -# ] -# } -# } -#} -# -#variable "firewall" { -# type = any -#} -# -#resource "google_compute_firewall" "mm-firewall" { -# project = var.gcp_project_id -# name = var.firewall["name"] -# enable_logging = true -# network = google_compute_network.inspec-gcp-network.name -# -# allow { -# protocol = "tcp" -# ports = ["80", "8080", "1000-2000"] -# } -# -# source_tags = [var.firewall["source_tag"]] -#} -# -#variable "address" { -# type = any -#} -# -#resource "google_compute_address" "internal_with_subnet_and_address" { -# project = var.gcp_project_id -# name = var.address["name"] -# subnetwork = google_compute_subnetwork.inspec-gcp-subnetwork.self_link -# address_type = var.address["address_type"] -# address = var.address["address"] -# region = var.gcp_location -#} -# -#variable "instance_group" { -# type = any -#} -# -#resource "google_compute_instance_group" "inspec-instance-group" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance_group["name"] -# description = var.instance_group["description"] -# -# named_port { -# name = var.instance_group["named_port_name"] -# port = var.instance_group["named_port_port"] -# } -#} -# -#variable "instance" { -# type = any -#} -# -#resource "google_compute_instance" "inspec-instance" { -# project = var.gcp_project_id -# zone = var.gcp_zone -# name = var.instance["name"] -# machine_type = var.instance["machine_type"] -# -# tags = [var.instance["tag_1"], var.instance["tag_2"]] -# -# boot_disk { -# initialize_params { -# image = "debian-cloud/debian-9" -# } -# } -# -# network_interface { -# network = "default" -# -# access_config { -# // Ephemeral IP -# } -# } -# -# metadata = { -# "${var.instance["metadata_key"]}" = var.instance["metadata_value"] -# } -# -# metadata_startup_script = var.instance["startup_script"] -# -# service_account { -# scopes = [var.instance["sa_scope"]] -# } -#} -# -#variable "network" { -# type = any -#} -# -#resource "google_compute_network" "inspec-network" { -# project = var.gcp_project_id -# name = var.network["name"] -# routing_mode = var.network["routing_mode"] -#} -# -#variable "subnetwork" { -# type = any -#} -# -#resource "google_compute_subnetwork" "subnet-with-logging" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.subnetwork["name"] -# ip_cidr_range = var.subnetwork["ip_cidr_range"] -# network = google_compute_network.inspec-network.self_link -# -# log_config { -# aggregation_interval = var.subnetwork["log_interval"] -# flow_sampling = var.subnetwork["log_sampling"] -# metadata = var.subnetwork["log_metadata"] -# } -#} -# -#variable "rigm" { -# type = any -#} -# -variable "sql_connect" { - type = any -} -# -#resource "google_compute_region_instance_group_manager" "inspec-rigm" { -# project = var.gcp_project_id -# region = var.gcp_location -# name = var.rigm["name"] -# -# base_instance_name = var.rigm["base_instance_name"] -# -# version { -# instance_template = google_compute_instance_template.gcp-inspec-instance-template.self_link -# } -# -# target_pools = [google_compute_target_pool.gcp-inspec-target-pool.self_link] -# target_size = var.rigm["target_size"] -# -# named_port { -# name = var.rigm["named_port_name"] -# port = var.rigm["named_port_port"] -# } -# -# auto_healing_policies { -# health_check = google_compute_health_check.gcp-inspec-health-check.self_link -# initial_delay_sec = var.rigm["healing_delay"] -# } -#} -# -#variable "vpn_tunnel" { -# type = any -#} -# -#resource "google_compute_vpn_tunnel" "tunnel1" { -# project = var.gcp_project_id -# name = var.vpn_tunnel["name"] -# peer_ip = var.vpn_tunnel["peer_ip"] -# shared_secret = var.vpn_tunnel["shared_secret"] -# -# remote_traffic_selector = ["0.0.0.0/0"] -# local_traffic_selector = ["0.0.0.0/0"] -# target_vpn_gateway = google_compute_vpn_gateway.inspec-gcp-vpn-gateway.self_link -# -# depends_on = [ -# google_compute_forwarding_rule.inspec-gcp-fr-esp, -# google_compute_forwarding_rule.inspec-gcp-fr-udp500, -# google_compute_forwarding_rule.inspec-gcp-fr-udp4500, -# ] -#} -# -#variable "alert_policy" { -# type = any -#} -# -#resource "google_monitoring_alert_policy" "alert_policy" { -# project = var.gcp_project_id -# display_name = var.alert_policy["display_name"] -# combiner = var.alert_policy["combiner"] -# conditions { -# display_name = var.alert_policy["condition_display_name"] -# condition_threshold { -# filter = var.alert_policy["condition_filter"] -# duration = var.alert_policy["condition_duration"] -# comparison = var.alert_policy["condition_comparison"] -# aggregations { -# alignment_period = "60s" -# per_series_aligner = "ALIGN_RATE" -# } -# } -# } -#} -# -#variable "dns_managed_zone" { -# type = any -#} -# -#variable "gcp_dns_zone_name" {} -# -#resource "google_dns_managed_zone" "example-zone" { -# project = var.gcp_project_id -# name = var.dns_managed_zone["name"] -# dns_name = "${var.gcp_dns_zone_name}" -# description = var.dns_managed_zone["description"] -# dnssec_config { -# state = var.dns_managed_zone["dnssec_config_state"] -# default_key_specs { -# algorithm = "rsasha256" -# key_type = "zoneSigning" -# key_length = 2048 -# } -# default_key_specs { -# algorithm = "rsasha512" -# key_type = "keySigning" -# key_length = 2048 -# } -# } -#} -# -#variable "logging_metric" { -# type = any -#} -# -#resource "google_logging_metric" "logging_metric" { -# project = var.gcp_project_id -# name = var.logging_metric["name"] -# filter = var.logging_metric["filter"] -# metric_descriptor { -# metric_kind = var.logging_metric["metric_kind"] -# value_type = var.logging_metric["value_type"] -# } -#} -# -#variable "compute_image" { -# type = any -#} -# -#resource "google_compute_image" "example" { -# project = var.gcp_project_id -# name = var.compute_image["name"] -# -# raw_disk { -# source = var.compute_image["source"] -# } -#} -# -#variable "gcp_organization_iam_custom_role_id" {} -# -#resource "google_organization_iam_custom_role" "generic_org_iam_custom_role" { -# count = "${var.gcp_organization_id == "" ? 0 : var.gcp_enable_privileged_resources}" -# org_id = var.gcp_organization_id -# role_id = var.gcp_organization_iam_custom_role_id -# title = "GCP Inspec Generic Organization IAM Custom Role" -# description = "Custom role allowing to list IAM roles only" -# permissions = ["iam.roles.list"] -#} -# -#variable "security_policy" { -# type = any -#} -# -#resource "google_compute_security_policy" "policy" { -# project = var.gcp_project_id -# name = var.security_policy["name"] -# -# rule { -# action = var.security_policy["action"] -# priority = var.security_policy["priority"] -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = [var.security_policy["ip_range"]] -# } -# } -# description = var.security_policy["description"] -# } -# -# rule { -# action = "allow" -# priority = "2147483647" -# match { -# versioned_expr = "SRC_IPS_V1" -# config { -# src_ip_ranges = ["*"] -# } -# } -# description = "default rule" -# } -#} -# -#variable "memcache_instance" { -# type = any -#} -# -#resource "google_compute_network" "memcache_network" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -#} -# -#resource "google_compute_global_address" "service_range" { -# provider = google-beta -# project = var.gcp_project_id -# name = "inspec-gcp-memcache" -# purpose = "VPC_PEERING" -# address_type = "INTERNAL" -# prefix_length = 16 -# network = google_compute_network.memcache_network.id -#} -# -#resource "google_service_networking_connection" "private_service_connection" { -# provider = google-beta -# network = google_compute_network.memcache_network.id -# service = "servicenetworking.googleapis.com" -# reserved_peering_ranges = [google_compute_global_address.service_range.name] -#} -# -#resource "google_memcache_instance" "instance" { -# provider = google-beta -# name = var.memcache_instance["name"] -# project = var.gcp_project_id -# region = var.gcp_location -# authorized_network = google_service_networking_connection.private_service_connection.network -# -# node_config { -# cpu_count = 1 -# memory_size_mb = 1024 -# } -# node_count = 1 -#} -# -#resource "google_compute_interconnect_attachment" "on_prem" { -# name = "on-prem-attachment" -# edge_availability_domain = "AVAILABILITY_DOMAIN_1" -# type = "PARTNER" -# router = google_compute_router.gcp-inspec-router.id -# mtu = 1500 -#} -# -resource "google_sql_ssl_cert" "client_cert" { - common_name = var.sql_connect["common_name"] - instance = var.gcp_db_instance_name -} - -resource "google_data_loss_prevention_stored_info_type" "basic" { - parent = "projects/my-project-name" - description = "Description" - display_name = "Displayname" - - regex { - pattern = "patient" - group_indexes = [2] - } -} - - - - -resource "google_vertex_ai_tensorboard" "tensorboard" { - display_name = "terraform-${local.name_suffix}" - description = "sample description" - labels = { - "key1" : "value1", - "key2" : "value2" - } - region = "us-central1" -} - - -resource "google_ml_engine_model" "default" { - name = "default-${local.name_suffix}" - description = "My model" - regions = ["us-central1"] -} - - -resource "google_vertex_ai_featurestore" "featurestore" { - name = "terraform-${local.name_suffix}" - labels = { - foo = "bar" - } - region = "us-central1" - online_serving_config { - fixed_node_count = 2 - } -} - -resource "google_vertex_ai_featurestore_entitytype" "entity" { - name = "terraform-${local.name_suffix}" - labels = { - foo = "bar" - } - featurestore = google_vertex_ai_featurestore.featurestore.id -} - -resource "google_vertex_ai_featurestore_entitytype_feature" "feature" { - name = "terraform-${local.name_suffix}" - labels = { - foo = "bar" - } - entitytype = google_vertex_ai_featurestore_entitytype.entity.id - - value_type = "INT64_ARRAY" -} - - -resource "google_vertex_ai_index_endpoint" "index_endpoint" { - display_name = "sample-endpoint" - description = "A sample vertex endpoint" - region = "us-central1" - labels = { - label-one = "value-one" - } - network = "projects/${data.google_project.project.number}/global/networks/${data.google_compute_network.vertex_network.name}" - depends_on = [ - google_service_networking_connection.vertex_vpc_connection - ] -} - -resource "google_service_networking_connection" "vertex_vpc_connection" { - network = data.google_compute_network.vertex_network.id - service = "servicenetworking.googleapis.com" - reserved_peering_ranges = [google_compute_global_address.vertex_range.name] -} - -resource "google_compute_global_address" "vertex_range" { - name = "address-name-${local.name_suffix}" - purpose = "VPC_PEERING" - address_type = "INTERNAL" - prefix_length = 24 - network = data.google_compute_network.vertex_network.id -} - -data "google_compute_network" "vertex_network" { - name = "network-name-${local.name_suffix}" -} - -data "google_project" "project" {} - - -resource "google_service_directory_namespace" "example" { - provider = google-beta - namespace_id = "example-namespace-${local.name_suffix}" - location = "us-central1" -} - -resource "google_service_directory_service" "example" { - provider = google-beta - service_id = "example-service-${local.name_suffix}" - namespace = google_service_directory_namespace.example.id -} - -resource "google_service_directory_endpoint" "example" { - provider = google-beta - endpoint_id = "example-endpoint-${local.name_suffix}" - service = google_service_directory_service.example.id - - metadata = { - stage = "prod" - region = "us-central1" - } - - address = "1.2.3.4" - port = 5353 -} - - -resource "google_service_directory_namespace" "example" { - provider = google-beta - namespace_id = "example-namespace-${local.name_suffix}" - location = "us-central1" -} - -resource "google_service_directory_service" "example" { - provider = google-beta - service_id = "example-service-${local.name_suffix}" - namespace = google_service_directory_namespace.example.id -} - -resource "google_service_directory_endpoint" "example" { - provider = google-beta - endpoint_id = "example-endpoint-${local.name_suffix}" - service = google_service_directory_service.example.id - - metadata = { - stage = "prod" - region = "us-central1" - } - - address = "1.2.3.4" - port = 5353 -} - - -resource "google_service_directory_namespace" "example" { - provider = google-beta - namespace_id = "example-namespace-${local.name_suffix}" - location = "us-central1" -} - -resource "google_service_directory_service" "example" { - provider = google-beta - service_id = "example-service-${local.name_suffix}" - namespace = google_service_directory_namespace.example.id -} - -resource "google_service_directory_endpoint" "example" { - provider = google-beta - endpoint_id = "example-endpoint-${local.name_suffix}" - service = google_service_directory_service.example.id - - metadata = { - stage = "prod" - region = "us-central1" - } - - address = "1.2.3.4" - port = 5353 -} - - -resource "google_service_directory_namespace" "example" { - provider = google-beta - namespace_id = "example-namespace-${local.name_suffix}" - location = "us-central1" -} - -resource "google_service_directory_service" "example" { - provider = google-beta - service_id = "example-service-${local.name_suffix}" - namespace = google_service_directory_namespace.example.id -} - -resource "google_service_directory_endpoint" "example" { - provider = google-beta - endpoint_id = "example-endpoint-${local.name_suffix}" - service = google_service_directory_service.example.id - - metadata = { - stage = "prod" - region = "us-central1" - } - - address = "1.2.3.4" - port = 5353 -} - - -resource "google_datastore_index" "default" { - kind = "foo" - properties { - name = "property_a-${local.name_suffix}" - direction = "ASCENDING" - } - properties { - name = "property_b-${local.name_suffix}" - direction = "ASCENDING" - } -} - diff --git a/build/inspec/test/integration/configuration/hello-world.zip b/build/inspec/test/integration/configuration/hello-world.zip deleted file mode 100644 index 34c746dd389de9234b3a34c14a410ca34fe63c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58362 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 ERROR - -runtimeconfig_config: - name: inspec-gcp-runtime-config - description: My runtime configurations - -runtimeconfig_variable: - name: prod-variables/hostname - text: example.com - -redis: - name: my-redis-cache - tier: STANDARD_HA - memory_size_gb: 1 - region: us-central1 - location_id: us-central1-a - alternative_location_id: us-central1-f - redis_version: REDIS_3_2 - display_name: InSpec test instance - reserved_ip_range: "192.168.0.0/29" - label_key: key - label_value: value - -network_endpoint_group: - name: inspec-gcp-endpoint-group - default_port: 90 - -global_network_endpoint_group: - name: inspec-gcp-global-endpoint-group - network_endpoint_type: INTERNET_IP_PORT - default_port: 90 - -node_template: - name: inspec-node-template - label_key: key - label_value: value - -node_group: - name: inspec-node-group - description: A description of the node group - size: 0 - -router_nat: - name: inspec-router-nat - nat_ip_allocate_option: AUTO_ONLY - source_subnetwork_ip_ranges_to_nat: ALL_SUBNETWORKS_ALL_IP_RANGES - min_ports_per_vm: 2 - log_config_enable: true - log_config_filter: ERRORS_ONLY - -service: - name: maps-android-backend.googleapis.com - -spannerinstance: - config: regional-us-east1 - name: spinstance - display_name: inspectest - num_nodes: 1 - label_key: env - label_value: test - -spannerdatabase: - name: spdatabase - instance: spinstance - ddl: "CREATE TABLE test (test STRING(MAX),) PRIMARY KEY (test)" - -scheduler_job: - # region must match where the appengine instance is deployed - region: us-central1 - name: job-name - description: A description - schedule: "*/8 * * * *" - time_zone: America/New_York - http_method: POST - http_target_uri: https://example.com/ping - -service_perimeter: - name: restrict_all - title: restrict_all - restricted_service: storage.googleapis.com - policy_title: policytitle - -firewall: - name: inspec-gcp-firewall - source_tag: some-tag - -address: - name: inspec-gcp-global-address - address_type: INTERNAL - address: "10.2.0.3" - -instance_group: - name: inspec-instance-group - description: My instance group for testing - named_port_name: https - named_port_port: 8080 - -instance: - name: inspec-instance - machine_type: n1-standard-1 - tag_1: foo - tag_2: bar - metadata_key: '123' - metadata_value: asdf - sa_scope: https://www.googleapis.com/auth/compute.readonly - startup_script: "echo hi > /test.txt" - -network: - name: inspec-network - routing_mode: REGIONAL - -subnetwork: - name: inspec-subnet - ip_cidr_range: "10.2.0.0/16" - log_interval: INTERVAL_10_MIN - log_sampling: .5 - log_metadata: INCLUDE_ALL_METADATA - -rigm: - name: inspec-rigm - base_instance_name: rigm1 - target_size: 1 - named_port_name: https - named_port_port: 8888 - healing_delay: 300 - -vpn_tunnel: - name: inspec-vpn-tunnel - peer_ip: "15.0.0.120" - shared_secret: super secret - -project_sink: - name: inspec-gcp-org-sink - filter: resource.type = gce_instance AND severity = DEBUG - -project_exclusion: - name: inspec-project-exclusion - description: My project exclusion description - filter: resource.type = gce_instance AND severity <= DEBUG - -alert_policy: - display_name: Display - combiner: OR - condition_display_name: condition - condition_filter: "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" AND resource.type=\"gce_instance\"" - condition_duration: 60s - condition_comparison: COMPARISON_GT - -dns_managed_zone: - # managed zone dns_name must be randomly generated, so it happens in the other script - name: example-zone - description: example description - dnssec_config_state: 'on' - -logging_metric: - name: some/metric - filter: 'resource.type=gae_app AND severity>=ERROR' - metric_kind: DELTA - value_type: INT64 - -compute_image: - name: inspec-image - source: https://storage.googleapis.com/bosh-gce-raw-stemcells/bosh-stemcell-97.98-google-kvm-ubuntu-xenial-go_agent-raw-1557960142.tar.gz - -security_policy: - name: sec-policy - action: deny(403) - priority: "1000" - ip_range: "9.9.9.0/24" - description: my description - -memcache_instance: - name: mem-instance - -accelerator_type: - name: accelerator_id - -global_operation: - name: operation-1635274037755-5cf45e8217d56-c081cd9a-c3ea7346 - operationType: "compute.externalVpnGateways.insert" - -interconnect_location: - name: akl-zone1-1353 - facility_provider_facility_id: 'Auckland - Albany' - facility_provider: Vocus - -image_family_views: - zone: us-central1-c - name: image-1 - source_type: RAW - status: READY - archive_size_bytes: 539099200 - disk_size_gb: 3 - family: test - -license_code: - name: akl-zone1-1353 - -region_instance_group: - name: instance-group-2 - region: us-central1 - size: 1 - named_port_name: 'port' - named_port_port: 80 - -region_operation: - name: operation-1641188435323-5d4a6f5b26934-9281422c-dce238f5 - region: us-central1 - operation_type: "compute.instanceGroupManagers.insert" - status: DONE - progress: 100 - -sql_database_flag: - name : audit_log - type : STRING - applies_to: MYSQL_5_6 - allowed_string_values: ON - requires_restart: true - -sql_connect: - region: us-central1 - database_version: POSTGRES_13 - backend_type: SECOND_GEN - cert_serial_number: 0 - common_name: "test_gcp_1" - sha1_fingerprint: "80c5c611c0a591db967c7dda3467e23127288fed" - instance: test-pg - -sql_operation: - name: e5c522f1-8391-4830-a8ff-ff1cc4a7b2a5 - status: DONE - operation_type: CREATE -public_delegated_prefix: - name: test - -region_health_check: - name: inspec-gcp-region-health-check - region: us-central1 - timeout_sec: 10 - check_interval_sec: 10 - tcp_health_check_port: 80 - -dlp: - name: "i-inspec-gcp-dlp" - location: "us-east-2" - type: "INSPECT_JOB" - state: "ACTIVE" - inspectDetails: - requestedOptions: - snapshotInspectTemplate: "" - jobConfig: - storageConfig: - hybridOptions: - description: "test" - tableOptions: "" - description: "Description" - display_name: "Displayname" - job_attribute_name: "job_attribute-1" - job_trigger_status: "HEALTHY" - job_trigger_name: "name1" - job_trigger_display_name: "dp" - job_trigger_description: "description" - deidentify_templates: - name: "dlp-template-inspec" - location: "europe-west2" - type: "Infotype" - -featurestore: - name : "value_name" - region : "value_region" - parent : "value_parent" - state : "value_state" - create_time : "value_createtime" - etag : "value_etag" - update_time : "value_updatetime" - -training_pipeline: - name : "value_name" - job_id: "job_id" - region : "value_region" - parent : "value_parent" - - -nas_job: - name : "value_name" - region : "value_region" - parent : "value_parent" - end_time : "value_endtime" - state : "value_state" - create_time : "value_createtime" - display_name : "value_displayname" - start_time : "value_starttime" - update_time : "value_updatetime" - -batch_prediction_job: - name : "value_name" - region : "value_region" - parent : "value_parent" - create_time : "value_createtime" - model_version_id : "value_modelversionid" - end_time : "value_endtime" - start_time : "value_starttime" - update_time : "value_updatetime" - state : "value_state" - model : "value_model" - display_name : "value_displayname" - service_account : "value_serviceaccount" - -custom_job: - name : "value_name" - job_id: "job_id" - region : "value_region" - parent : "value_parent" - -index: - name : "value_name" - region : "value_region" - parent : "value_parent" - description : "value_description" - display_name : "value_displayname" - metadata_schema_uri : "value_metadataschemauri" - index_update_method : "value_indexupdatemethod" - update_time : "value_updatetime" - create_time : "value_createtime" - etag : "value_etag" - -tensorboard: - name : "value_name" - region : "value_region" - parent : "value_parent" - update_time : "value_updatetime" - blob_storage_path_prefix : "value_blobstoragepathprefix" - etag : "value_etag" - create_time : "value_createtime" - display_name : "value_displayname" - description : "value_description" - -model: - name : "value_name" - region : "value_region" - parent : "value_parent" - update_time : "value_updatetime" - etag : "value_etag" - description : "value_description" - create_time : "value_createtime" - pipeline_job : "value_pipelinejob" - version_update_time : "value_versionupdatetime" - metadata_artifact : "value_metadataartifact" - metadata_schema_uri : "value_metadataschemauri" - version_id : "value_versionid" - artifact_uri : "value_artifacturi" - training_pipeline : "value_trainingpipeline" - display_name : "value_displayname" - version_create_time : "value_versioncreatetime" - version_description : "value_versiondescription" - -index_endpoint: - name : "value_name" - region : "value_region" - parent : "value_parent" - display_name : "value_displayname" - create_time : "value_createtime" - network : "value_network" - update_time : "value_updatetime" - public_endpoint_domain_name : "value_publicendpointdomainname" - etag : "value_etag" - description : "value_description" - -featurestores_entity_type: - name : "value_name" - region : "value_region" - parent : "value_parent" - description : "value_description" - create_time : "value_createtime" - etag : "value_etag" - update_time : "value_updatetime" - - -tensorboard_experiment_run: - name : "sklearn-2023-09-22-17-16-16-a25b0" - tensorboard: "1976367752880848896" - experiment: "autologging-experiment-fyc24zb2" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/tensorboards/1976367752880848896/experiments/autologging-experiment-fyc24zb2/runs/" - -studies_trial: - name : "1" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/studies/2975668570413/trials/" - study: "890385007008" - start_time : "value_starttime" - end_time : "value_endtime" - infeasible_reason : "value_infeasiblereason" - client_id : "value_clientid" - custom_job : "value_customjob" - state : "value_state" - id : "value_id" - -hyperparameter_tuning_job: - name : "9200900561803673600" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/hyperparameterTuningJobs/" - state : "JOB_STATE_RUNNING" - end_time : "value_endtime" - update_time : "value_updatetime" - start_time : "value_starttime" - create_time : "value_createtime" - display_name : "inspec-hyper-test-hyperparameter-tuning-job" - -models_evaluation: - name : "value_name" - region : "value_region" - parent : "value_parent" - data_item_schema_uri : "value_dataitemschemauri" - metrics_schema_uri : "value_metricsschemauri" - create_time : "value_createtime" - annotation_schema_uri : "value_annotationschemauri" - display_name : "value_displayname" - -tensorboards_experiment: - name : "inspec-tensor-experiment" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/tensorboards/6346548241290493952/experiments/" - description : "value_description" - tensorboard: "6346548241290493952" - source : "value_source" - display_name : "inspec-tensor-experiment" - create_time : "value_createtime" - update_time : "value_updatetime" - etag : "value_etag" - -featurestore_entity_type_feature: - parent : "value_parent" - region : "value_region" - description : "value_description" - create_time : "value_createtime" - etag : "value_etag" - name : "value_name" - update_time : "value_updatetime" - value_type : "value_valuetype" - -dataset_data_item_annotation: - name: "1746031646898913280" - region: "us-central1" - dataset: "1044994542735982592" - dataItem: "75173735366921" - parent: "projects/165434197229/locations/us-central1/datasets/1044994542735982592/dataItems/75173735366921/annotations/" - -model_deployment_monitoring_job: - name : "4965515800912855040" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/modelDeploymentMonitoringJobs/" - state : "value_state" - analysis_instance_schema_uri : "value_analysisinstanceschemauri" - endpoint : "projects/165434197229/locations/us-central1/endpoints/5787303642054787072" - display_name : "churn" - schedule_state : "value_schedulestate" - predict_instance_schema_uri : "value_predictinstanceschemauri" - next_schedule_time : "value_nextscheduletime" - create_time : "value_createtime" - log_ttl : "value_logttl" - update_time : "value_updatetime" - -metadata_stores_metadata_schema: - name : "system-dag-execution-v0-0-1" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/metadataStores/default/metadataSchemas/" - metadataStore: "default" - schema_type : "EXECUTION_TYPE" - description : "value_description" - schema_version : "value_schemaversion" - create_time : "value_createtime" - schema : "value_schema" - -metadata_stores_execution: - name : "12528100122877440041" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/metadataStores/default/executions/" - metadataStore: "default" - create_time : "value_createtime" - schema_version : "value_schemaversion" - state : "value_state" - etag : "value_etag" - display_name : "endpoint-create-20230918054541-20230918054500491" - schema_title : "value_schematitle" - description : "value_description" - update_time : "value_updatetime" - -metadata_stores_context: - name : "autologging-experiment-w0apl7la-autologging-tf-experiment-w0apl7la" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/metadataStores/default/contexts/" - metadataStore: "default" - schema_title : "value_schematitle" - etag : "value_etag" - description : "value_description" - display_name : "autologging-tf-experiment-w0apl7la" - schema_version : "value_schemaversion" - create_time : "value_createtime" - update_time : "value_updatetime" - -metadata_stores_artifact: - name : "2811503570633325756" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/metadataStores/default/artifacts/" - metadataStore: "default" - schema_version : "value_schemaversion" - display_name : "value_displayname" - etag : "value_etag" - update_time : "value_updatetime" - state : "value_state" - uri : "value_uri" - create_time : "value_createtime" - schema_title : "value_schematitle" - description : "value_description" - -datasets_saved_query: - parent : "projects/165434197229/locations/us-central1/datasets/1044994542735982592/savedQueries/" - region : "us-central1" - dataset: "1044994542735982592" - update_time : "value_updatetime" - problem_type : "value_problemtype" - name : "2236927819407949824" - create_time : "value_createtime" - etag : "value_etag" - display_name : "inspec-annotation-test" - annotation_filter : "value_annotationfilter" - -datasets_annotation_spec: - name : "5438527833485869056" - region : "us-central1" - dataset: "1044994542735982592" - parent: "projects/165434197229/locations/us-central1/datasets/1044994542735982592/annotationSpecs/" - display_name : "InSpec" - etag : "value_etag" - create_time : "value_createtime" - update_time : "value_updatetime" - -nas_jobs_nas_trial_detail: - name : "1" - region : "us-central1" - nasJob: "3217974009958236160" - parent : "projects/ppradhan/locations/us-central1/nasJobs/3217974009958236160/nasTrialDetails/" - parameters : "value_parameters" - -metadata_store: - name : "default" - region : "us-central1" - parent : "projects/165434197229/locations/us-central1/metadataStores/" - description : "value_description" - create_time : "value_createtime" - update_time : "value_updatetime" - -endpoint: - name : "value_name" - region : "value_region" - parent : "value_parent" - update_time : "value_updatetime" - model_deployment_monitoring_job : "value_modeldeploymentmonitoringjob" - description : "value_description" - network : "value_network" - display_name : "value_displayname" - etag : "value_etag" - create_time : "value_createtime" - -models_evaluations_slice: - name : "value_name" - region : "value_region" - parent : "value_parent" - create_time : "value_createtime" - metrics_schema_uri : "value_metricsschemauri" - -datasets_data_item: - parent : "value_parent" - region : "value_region" - update_time : "value_updatetime" - etag : "value_etag" - name : "value_name" - create_time : "value_createtime" - -study: - name : "value_name" - region : "value_region" - parent : "value_parent" - display_name : "value_displayname" - state : "value_state" - create_time : "value_createtime" - inactive_reason : "value_inactivereason" - -tensorboard_experiment_run_time_series_resource: - name : "value_name" - region : "value_region" - parent : "value_parent" - plugin_name : "value_pluginname" - plugin_data : "value_plugindata" - description : "value_description" - etag : "value_etag" - display_name : "value_displayname" - update_time : "value_updatetime" - create_time : "value_createtime" - value_type : "value_valuetype" - -project_location_image_version: - parent : "value_parent" - -organization: - name : "ppradhan" - parent : "organizations/ppradhan" - runtime_type : "CLOUD" - authorized_network : "default" - project_id : "ppradhan" - subscription_type : "PAID" - created_at : ""1698225643253" - state : "ACTIVE" - analytics_region : "us-west1" \ No newline at end of file diff --git a/build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_type.rb b/build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_type.rb deleted file mode 100644 index 268023f59..000000000 --- a/build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_type.rb +++ /dev/null @@ -1,53 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_data_loss_prevention_stored_info_type resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') -dlp = input('dlp', value: { - "name": 'i-inspec-gcp-dlp', - "location": 'us-east-2', - "type": 'INSPECT_JOB', - "state": 'ACTIVE', - "inspectDetails": { - "requestedOptions": { - "snapshotInspectTemplate": '', - "jobConfig": { - "storageConfig": { - "hybridOptions": { - "description": 'test', - "tableOptions": '', - }, - }, - }, - }, - }, - "description": 'Description', - "display_name": 'Displayname', - }, description: 'DLP ') -control 'google_data_loss_prevention_stored_info_type-1.0' do - impact 1.0 - title 'google_data_loss_prevention_stored_info_type resource test' - - describe google_data_loss_prevention_stored_info_type(parent: "projects/#{gcp_project_id}/locations/#{dlp['location']}", name: dlp['stored_info_type_name']) do - it { should exist } - its('name') { should cmp dlp['name'] } - end - - describe google_data_loss_prevention_stored_info_type(parent: "projects/#{gcp_project_id}/locations/#{dlp['location']}", name: 'nonexistent') do - it { should_not exist } - end -end diff --git a/build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_types.rb b/build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_types.rb deleted file mode 100644 index ae0bdff7e..000000000 --- a/build/inspec/test/integration/verify/controls/google_data_loss_prevention_stored_info_types.rb +++ /dev/null @@ -1,49 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_data_loss_prevention_stored_info_types resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') -dlp = input('dlp', value: { - "name": 'i-inspec-gcp-dlp', - "location": 'us-east-2', - "type": 'INSPECT_JOB', - "state": 'ACTIVE', - "inspectDetails": { - "requestedOptions": { - "snapshotInspectTemplate": '', - "jobConfig": { - "storageConfig": { - "hybridOptions": { - "description": 'test', - "tableOptions": '', - }, - }, - }, - }, - }, - "description": 'Description', - "display_name": 'Displayname', - }, description: 'DLP ') -control 'google_data_loss_prevention_stored_info_types-1.0' do - impact 1.0 - title 'google_data_loss_prevention_stored_info_types resource test' - - describe google_data_loss_prevention_stored_info_types(parent: "projects/#{gcp_project_id}/locations/#{dlp['location']}") do - it { should exist } - its('names') { should include dlp['name'] } - end -end From d5cdf1fea76360ff89d61ef8d1c328369d454ebd Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Fri, 8 Dec 2023 09:41:36 +0000 Subject: [PATCH 41/83] Bump version to 1.11.59 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fd5d6679..22c89b210 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.59](https://github.com/inspec/inspec-gcp/tree/v1.11.59) (2023-12-08) + +#### Merged Pull Requests +- Removed worng dir [#551](https://github.com/inspec/inspec-gcp/pull/551) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.58](https://github.com/inspec/inspec-gcp/tree/v1.11.58) (2023-12-08) #### Merged Pull Requests - CHEF-7364-MAGIC-MODULE-composer-Projects__locations__environment - Resource Implementation [#546](https://github.com/inspec/inspec-gcp/pull/546) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.57](https://github.com/inspec/inspec-gcp/tree/v1.11.57) (2023-12-06) diff --git a/VERSION b/VERSION index ceddaaf6a..5cd337349 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.58 \ No newline at end of file +1.11.59 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index ad8010fd4..1b3ca87ba 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.58 +version: 1.11.59 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 65b6da72f1fa78065a2aa8d36a759976a3117cc0 Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Thu, 30 Nov 2023 00:30:07 +0530 Subject: [PATCH 42/83] Automatically generated by magic modules for service: apigee and resource: Organizations__envgroups__attachment. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- ...apigee_organization_envgroup_attachment.md | 40 +++++++++ ...pigee_organization_envgroup_attachments.md | 31 +++++++ ...apigee_organization_envgroup_attachment.rb | 61 +++++++++++++ ...pigee_organization_envgroup_attachments.rb | 85 +++++++++++++++++++ ...apigee_organization_envgroup_attachment.rb | 42 +++++++++ ...pigee_organization_envgroup_attachments.rb | 33 +++++++ 6 files changed, 292 insertions(+) create mode 100644 docs/resources/google_apigee_organization_envgroup_attachment.md create mode 100644 docs/resources/google_apigee_organization_envgroup_attachments.md create mode 100644 libraries/google_apigee_organization_envgroup_attachment.rb create mode 100644 libraries/google_apigee_organization_envgroup_attachments.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb diff --git a/docs/resources/google_apigee_organization_envgroup_attachment.md b/docs/resources/google_apigee_organization_envgroup_attachment.md new file mode 100644 index 000000000..4fc3b56da --- /dev/null +++ b/docs/resources/google_apigee_organization_envgroup_attachment.md @@ -0,0 +1,40 @@ +--- +title: About the google_apigee_organization_envgroup_attachment resource +platform: gcp +--- + +## Syntax +A `google_apigee_organization_envgroup_attachment` is used to test a Google OrganizationEnvgroupAttachment resource + +## Examples +``` +describe google_apigee_organization_envgroup_attachment(name: ' value_name') do + it { should exist } + its('created_at') { should cmp 'value_createdat' } + its('environment') { should cmp 'value_environment' } + its('environment_group_id') { should cmp 'value_environmentgroupid' } + its('name') { should cmp 'value_name' } + +end + +describe google_apigee_organization_envgroup_attachment(name: "does_not_exit") do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organization_envgroup_attachment` resource: + + + * `created_at`: Output only. The time at which the environment group attachment was created as milliseconds since epoch. + + * `environment`: Required. ID of the attached environment. + + * `environment_group_id`: Output only. ID of the environment group. + + * `name`: ID of the environment group attachment. + + +## 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_envgroup_attachments.md b/docs/resources/google_apigee_organization_envgroup_attachments.md new file mode 100644 index 000000000..3b6d2ed02 --- /dev/null +++ b/docs/resources/google_apigee_organization_envgroup_attachments.md @@ -0,0 +1,31 @@ +--- +title: About the google_apigee_organization_envgroup_attachments resource +platform: gcp +--- + +## Syntax +A `google_apigee_organization_envgroup_attachments` is used to test a Google OrganizationEnvgroupAttachment resource + +## Examples +``` + describe google_apigee_organization_envgroup_attachments(parent: ' value_parent') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organization_envgroup_attachments` resource: + +See [google_apigee_organization_envgroup_attachment.md](google_apigee_organization_envgroup_attachment.md) for more detailed information + * `created_ats`: an array of `google_apigee_organization_envgroup_attachment` created_at + * `environments`: an array of `google_apigee_organization_envgroup_attachment` environment + * `environment_group_ids`: an array of `google_apigee_organization_envgroup_attachment` environment_group_id + * `names`: an array of `google_apigee_organization_envgroup_attachment` name + +## 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_envgroup_attachment.rb b/libraries/google_apigee_organization_envgroup_attachment.rb new file mode 100644 index 000000000..705deb58f --- /dev/null +++ b/libraries/google_apigee_organization_envgroup_attachment.rb @@ -0,0 +1,61 @@ +# 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 ApigeeOrganizationEnvgroupAttachment < GcpResourceBase + name 'google_apigee_organization_envgroup_attachment' + desc 'OrganizationEnvgroupAttachment' + supports platform: 'gcp' + + attr_reader :params + attr_reader :created_at + attr_reader :environment + attr_reader :environment_group_id + attr_reader :name + + 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 + @created_at = @fetched['createdAt'] + @environment = @fetched['environment'] + @environment_group_id = @fetched['environmentGroupId'] + @name = @fetched['name'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "OrganizationEnvgroupAttachment #{@params[:name]}" + 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_envgroup_attachments.rb b/libraries/google_apigee_organization_envgroup_attachments.rb new file mode 100644 index 000000000..c8c5c3b41 --- /dev/null +++ b/libraries/google_apigee_organization_envgroup_attachments.rb @@ -0,0 +1,85 @@ +# 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 ApigeeOrganizationEnvgroupAttachments < GcpResourceBase + name 'google_apigee_organization_envgroup_attachments' + desc 'OrganizationEnvgroupAttachment plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:created_ats, field: :created_at) + filter_table_config.add(:environments, field: :environment) + filter_table_config.add(:environment_group_ids, field: :environment_group_id) + filter_table_config.add(:names, field: :name) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('organizationEnvgroupAttachments') + 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 + { + 'createdAt' => ->(obj) { return :created_at, obj['createdAt'] }, + 'environment' => ->(obj) { return :environment, obj['environment'] }, + 'environmentGroupId' => ->(obj) { return :environment_group_id, obj['environmentGroupId'] }, + 'name' => ->(obj) { return :name, obj['name'] }, + } + 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_envgroup_attachment.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb new file mode 100644 index 000000000..8ca838d60 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb @@ -0,0 +1,42 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_envgroup_attachment resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "value_name", + "parent": "value_parent", + "created_at": "value_createdat", + "environment": "value_environment", + "environment_group_id": "value_environmentgroupid" +}, description: 'organization_envgroup_attachment description') +control 'google_apigee_organization_envgroup_attachment-1.0' do + impact 1.0 + title 'google_apigee_organization_envgroup_attachment resource test' + + describe google_apigee_organization_envgroup_attachment(name: organization_envgroup_attachment['name']) do + it { should exist } + its('created_at') { should cmp organization_envgroup_attachment['created_at'] } + its('environment') { should cmp organization_envgroup_attachment['environment'] } + its('environment_group_id') { should cmp organization_envgroup_attachment['environment_group_id'] } + its('name') { should cmp organization_envgroup_attachment['name'] } + + end + + describe google_apigee_organization_envgroup_attachment(name: "does_not_exit") do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb new file mode 100644 index 000000000..331e1e067 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_envgroup_attachments resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "value_name", + "parent": "value_parent", + "created_at": "value_createdat", + "environment": "value_environment", + "environment_group_id": "value_environmentgroupid" +}, description: 'organization_envgroup_attachment description') +control 'google_apigee_organization_envgroup_attachments-1.0' do + impact 1.0 + title 'google_apigee_organization_envgroup_attachments resource test' + + describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']) do + it { should exist } + end +end From 2dee529f8a1c2a00b4b2560ca07a3ebe507a0e7b Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Tue, 5 Dec 2023 18:44:46 +0530 Subject: [PATCH 43/83] Updates the apigee organization envgroup attachments plural resource to use correct key to fetch the data list API Signed-off-by: Vasu1105 --- libraries/google_apigee_organization_envgroup_attachments.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_apigee_organization_envgroup_attachments.rb b/libraries/google_apigee_organization_envgroup_attachments.rb index c8c5c3b41..7678bfae7 100644 --- a/libraries/google_apigee_organization_envgroup_attachments.rb +++ b/libraries/google_apigee_organization_envgroup_attachments.rb @@ -33,7 +33,7 @@ class ApigeeOrganizationEnvgroupAttachments < GcpResourceBase def initialize(params = {}) super(params.merge({ use_http_transport: true })) @params = params - @table = fetch_wrapped_resource('organizationEnvgroupAttachments') + @table = fetch_wrapped_resource('environmentGroupAttachments') end def fetch_wrapped_resource(wrap_path) From 046fc548765e567bd4fcd4d8a9d6bf1160ba352f Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Tue, 5 Dec 2023 18:46:07 +0530 Subject: [PATCH 44/83] Updates test for apigee organization envgrop attachment singular and plural resource Signed-off-by: Vasu1105 --- ...apigee_organization_envgroup_attachment.rb | 18 ++++++------- ...pigee_organization_envgroup_attachments.rb | 27 +++++++++++-------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb index 8ca838d60..1d0117ab4 100644 --- a/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachment.rb @@ -14,26 +14,24 @@ title 'Test GCP google_apigee_organization_envgroup_attachment resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - - organization_envgroup_attachment = input('organization_envgroup_attachment', value: { - "name": "value_name", - "parent": "value_parent", - "created_at": "value_createdat", - "environment": "value_environment", - "environment_group_id": "value_environmentgroupid" +organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "6741d6ad-1307-4f03-b02a-9fb4562c0ff3", + "parent": "organizations/ppradhan/envgroups/test-env-group/attachments", + "created_at": "1698227493793", + "environment": "test-env", + "environment_group_id": "test-env-group" }, description: 'organization_envgroup_attachment description') + control 'google_apigee_organization_envgroup_attachment-1.0' do impact 1.0 title 'google_apigee_organization_envgroup_attachment resource test' - describe google_apigee_organization_envgroup_attachment(name: organization_envgroup_attachment['name']) do + describe google_apigee_organization_envgroup_attachment(name: "#{organization_envgroup_attachment['parent']}/#{organization_envgroup_attachment['name']}") do it { should exist } its('created_at') { should cmp organization_envgroup_attachment['created_at'] } its('environment') { should cmp organization_envgroup_attachment['environment'] } its('environment_group_id') { should cmp organization_envgroup_attachment['environment_group_id'] } its('name') { should cmp organization_envgroup_attachment['name'] } - end describe google_apigee_organization_envgroup_attachment(name: "does_not_exit") do diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb index 331e1e067..2c3a380c6 100644 --- a/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb +++ b/test/integration/verify/controls/google_apigee_organization_envgroup_attachments.rb @@ -14,20 +14,25 @@ title 'Test GCP google_apigee_organization_envgroup_attachments resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - - organization_envgroup_attachment = input('organization_envgroup_attachment', value: { - "name": "value_name", - "parent": "value_parent", - "created_at": "value_createdat", - "environment": "value_environment", - "environment_group_id": "value_environmentgroupid" +organization_envgroup_attachment = input('organization_envgroup_attachment', value: { + "name": "6741d6ad-1307-4f03-b02a-9fb4562c0ff3", + "parent": "organizations/ppradhan/envgroups/test-env-group", + "created_at": "1698227493793", + "environment": "test-env", + "environment_group_id": "test-env-group" }, description: 'organization_envgroup_attachment description') + control 'google_apigee_organization_envgroup_attachments-1.0' do impact 1.0 title 'google_apigee_organization_envgroup_attachments resource test' - describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']) do - it { should exist } - end + describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']) do + it { should exist } + end + + describe google_apigee_organization_envgroup_attachments(parent: organization_envgroup_attachment['parent']).where(name: organization_envgroup_attachment['name']) do + it { should exist } + its("environment_group_ids") { should include organization_envgroup_attachment['environment_group_id'] } + its("environments") { should include organization_envgroup_attachment['environment'] } + end end From 82e24b4598c811eecf36807c964d14f5e4d921c5 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Tue, 5 Dec 2023 18:46:29 +0530 Subject: [PATCH 45/83] Updates docs Signed-off-by: Vasu1105 --- .../google_apigee_organization_envgroup_attachment.md | 9 ++++++--- .../google_apigee_organization_envgroup_attachments.md | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/resources/google_apigee_organization_envgroup_attachment.md b/docs/resources/google_apigee_organization_envgroup_attachment.md index 4fc3b56da..2269b54d0 100644 --- a/docs/resources/google_apigee_organization_envgroup_attachment.md +++ b/docs/resources/google_apigee_organization_envgroup_attachment.md @@ -4,9 +4,11 @@ platform: gcp --- ## Syntax + A `google_apigee_organization_envgroup_attachment` is used to test a Google OrganizationEnvgroupAttachment resource ## Examples + ``` describe google_apigee_organization_envgroup_attachment(name: ' value_name') do it { should exist } @@ -23,14 +25,15 @@ end ``` ## Properties + Properties that can be accessed from the `google_apigee_organization_envgroup_attachment` resource: - * `created_at`: Output only. The time at which the environment group attachment was created as milliseconds since epoch. + * `created_at`: The time at which the environment group attachment was created as milliseconds since epoch. - * `environment`: Required. ID of the attached environment. + * `environment`: ID of the attached environment. - * `environment_group_id`: Output only. ID of the environment group. + * `environment_group_id`: ID of the environment group. * `name`: ID of the environment group attachment. diff --git a/docs/resources/google_apigee_organization_envgroup_attachments.md b/docs/resources/google_apigee_organization_envgroup_attachments.md index 3b6d2ed02..283d0132a 100644 --- a/docs/resources/google_apigee_organization_envgroup_attachments.md +++ b/docs/resources/google_apigee_organization_envgroup_attachments.md @@ -4,9 +4,11 @@ platform: gcp --- ## Syntax + A `google_apigee_organization_envgroup_attachments` is used to test a Google OrganizationEnvgroupAttachment resource ## Examples + ``` describe google_apigee_organization_envgroup_attachments(parent: ' value_parent') do it { should exist } @@ -14,6 +16,7 @@ A `google_apigee_organization_envgroup_attachments` is used to test a Google Org ``` ## Properties + Properties that can be accessed from the `google_apigee_organization_envgroup_attachments` resource: See [google_apigee_organization_envgroup_attachment.md](google_apigee_organization_envgroup_attachment.md) for more detailed information @@ -23,6 +26,7 @@ See [google_apigee_organization_envgroup_attachment.md](google_apigee_organizati * `names`: an array of `google_apigee_organization_envgroup_attachment` name ## 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. From 3614542ee96f24936d5a30bb7e0d8c61f7205a2f Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Wed, 6 Dec 2023 14:28:31 +0530 Subject: [PATCH 46/83] Updates README to add docs link Signed-off-by: Vasu1105 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 825ddf82b..d8d840848 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ The following resources are available in the InSpec GCP Profile | [google_access_context_manager_access_level](docs/resources/google_access_context_manager_access_level.md) | [google_access_context_manager_access_levels](docs/resources/google_access_context_manager_access_levels.md) | | [google_access_context_manager_access_policy](docs/resources/google_access_context_manager_access_policy.md) | [google_access_context_manager_access_policies](docs/resources/google_access_context_manager_access_policies.md) | | [google_access_context_manager_service_perimeter](docs/resources/google_access_context_manager_service_perimeter.md) | [google_access_context_manager_service_perimeters](docs/resources/google_access_context_manager_service_perimeters.md) | +| [google_apigee_organization_envgroup_attachment](docs/resources/google_apigee_organization_envgroup_attachment.md) | [google_apigee_organization_envgroup_attachments](docs/resources/google_apigee_organization_envgroup_attachments.md) | | [google_appengine_standard_app_version](docs/resources/google_appengine_standard_app_version.md) | [google_appengine_standard_app_versions](docs/resources/google_appengine_standard_app_versions.md) | | [google_bigquery_dataset](docs/resources/google_bigquery_dataset.md) | [google_bigquery_datasets](docs/resources/google_bigquery_datasets.md) | | [google_bigquery_table](docs/resources/google_bigquery_table.md) | [google_bigquery_tables](docs/resources/google_bigquery_tables.md) | From 669be06a83813dd7f31006d768ce51c8b8d84618 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Wed, 6 Dec 2023 21:25:45 +0530 Subject: [PATCH 47/83] Updates terraform scripts Signed-off-by: Vasu1105 --- test/integration/build/gcp-mm.tf | 11 ++++++++++- test/integration/configuration/mm-attributes.yml | 4 ++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 02e4b7abc..60f8926e5 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -220,6 +220,10 @@ variable "cloud_composer_v1" { type = any } +variable "organization_envgroup_attachment" { + type = any +} + resource "google_compute_ssl_policy" "custom-ssl-policy" { name = var.ssl_policy["name"] min_tls_version = var.ssl_policy["min_tls_version"] @@ -1559,9 +1563,14 @@ resource "google_vertex_ai_index" "index" { resource "google_composer_v1_environment" "test" { name = var.cloud_composer_v1["name"] region = var.cloud_composer_v1["region"] - config { + config { software_config { image_version = var.cloud_composer_v1["image_version"] } } } + +resource "google_apigee_envgroup_attachment" "engroup_attachment" { + envgroup_id = var.organization_envgroup_attachment.envgroup_id + environment = var.organization_envgroup_attachment.environment +} diff --git a/test/integration/configuration/mm-attributes.yml b/test/integration/configuration/mm-attributes.yml index 37074e018..65b01023e 100644 --- a/test/integration/configuration/mm-attributes.yml +++ b/test/integration/configuration/mm-attributes.yml @@ -562,3 +562,7 @@ cloud_composer_v1: name : "example-composer-env" region : "us-central1" image_version : "composer-1.20.12-airflow-2.4.3" + +organization_envgroup_attachment: + envgroup_id: "organizations/ppradhan/envgroups/test-env-group" + environment: "test-env" From addc1eae9a1f5e401eb0295adbe150b28fb74dd3 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Fri, 8 Dec 2023 14:46:15 +0530 Subject: [PATCH 48/83] Updates the terraform attributes name and variable name Signed-off-by: Vasu1105 --- test/integration/build/gcp-mm.tf | 6 +++--- test/integration/configuration/mm-attributes.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 60f8926e5..1d2418975 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -220,7 +220,7 @@ variable "cloud_composer_v1" { type = any } -variable "organization_envgroup_attachment" { +variable "apigee_organization_envgroup_attachment" { type = any } @@ -1571,6 +1571,6 @@ resource "google_composer_v1_environment" "test" { } resource "google_apigee_envgroup_attachment" "engroup_attachment" { - envgroup_id = var.organization_envgroup_attachment.envgroup_id - environment = var.organization_envgroup_attachment.environment + envgroup_id = var.apigee_organization_envgroup_attachment.envgroup_id + environment = var.apigee_organization_envgroup_attachment.environment } diff --git a/test/integration/configuration/mm-attributes.yml b/test/integration/configuration/mm-attributes.yml index 65b01023e..d3a3e98c3 100644 --- a/test/integration/configuration/mm-attributes.yml +++ b/test/integration/configuration/mm-attributes.yml @@ -563,6 +563,6 @@ cloud_composer_v1: region : "us-central1" image_version : "composer-1.20.12-airflow-2.4.3" -organization_envgroup_attachment: +apigee_organization_envgroup_attachment: envgroup_id: "organizations/ppradhan/envgroups/test-env-group" environment: "test-env" From aeae95a6cd91403acd0357396e9eb5d7397a5af2 Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Thu, 30 Nov 2023 00:18:52 +0530 Subject: [PATCH 49/83] Automatically generated by magic modules for service: apigee and resource: Organizations__envgroup. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- .../google_apigee_organization_envgroup.md | 48 ++++++++++ .../google_apigee_organization_envgroups.md | 32 +++++++ .../google_apigee_organization_envgroup.rb | 63 ++++++++++++++ .../google_apigee_organization_envgroups.rb | 87 +++++++++++++++++++ .../google_apigee_organization_envgroup.rb | 42 +++++++++ .../google_apigee_organization_envgroups.rb | 33 +++++++ 6 files changed, 305 insertions(+) create mode 100644 docs/resources/google_apigee_organization_envgroup.md create mode 100644 docs/resources/google_apigee_organization_envgroups.md create mode 100644 libraries/google_apigee_organization_envgroup.rb create mode 100644 libraries/google_apigee_organization_envgroups.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_envgroup.rb create mode 100644 test/integration/verify/controls/google_apigee_organization_envgroups.rb diff --git a/docs/resources/google_apigee_organization_envgroup.md b/docs/resources/google_apigee_organization_envgroup.md new file mode 100644 index 000000000..a75f8c069 --- /dev/null +++ b/docs/resources/google_apigee_organization_envgroup.md @@ -0,0 +1,48 @@ +--- +title: About the google_apigee_organization_envgroup resource +platform: gcp +--- + +## Syntax +A `google_apigee_organization_envgroup` is used to test a Google OrganizationEnvgroup resource + +## Examples +``` +describe google_apigee_organization_envgroup(name: ' value_name') do + it { should exist } + its('name') { should cmp 'value_name' } + its('last_modified_at') { should cmp 'value_lastmodifiedat' } + its('state') { should cmp 'value_state' } + its('created_at') { should cmp 'value_createdat' } + +end + +describe google_apigee_organization_envgroup(name: "does_not_exit") do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organization_envgroup` resource: + + + * `name`: ID of the environment group. + + * `last_modified_at`: Output only. The time at which the environment group was last updated as milliseconds since epoch. + + * `hostnames`: Required. Host names for this environment group. + + * `state`: Output only. State of the environment group. Values other than ACTIVE means the resource is not ready to use. + Possible values: + * STATE_UNSPECIFIED + * CREATING + * ACTIVE + * DELETING + * UPDATING + + * `created_at`: Output only. The time at which the environment group was created as 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_envgroups.md b/docs/resources/google_apigee_organization_envgroups.md new file mode 100644 index 000000000..2b49d2e3c --- /dev/null +++ b/docs/resources/google_apigee_organization_envgroups.md @@ -0,0 +1,32 @@ +--- +title: About the google_apigee_organization_envgroups resource +platform: gcp +--- + +## Syntax +A `google_apigee_organization_envgroups` is used to test a Google OrganizationEnvgroup resource + +## Examples +``` + describe google_apigee_organization_envgroups(parent: ' value_parent') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_apigee_organization_envgroups` resource: + +See [google_apigee_organization_envgroup.md](google_apigee_organization_envgroup.md) for more detailed information + * `names`: an array of `google_apigee_organization_envgroup` name + * `last_modified_ats`: an array of `google_apigee_organization_envgroup` last_modified_at + * `hostnames`: an array of `google_apigee_organization_envgroup` hostnames + * `states`: an array of `google_apigee_organization_envgroup` state + * `created_ats`: an array of `google_apigee_organization_envgroup` 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_envgroup.rb b/libraries/google_apigee_organization_envgroup.rb new file mode 100644 index 000000000..14daa871a --- /dev/null +++ b/libraries/google_apigee_organization_envgroup.rb @@ -0,0 +1,63 @@ +# 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 ApigeeOrganizationEnvgroup < GcpResourceBase + name 'google_apigee_organization_envgroup' + desc 'OrganizationEnvgroup' + supports platform: 'gcp' + + attr_reader :params + attr_reader :name + attr_reader :last_modified_at + attr_reader :hostnames + attr_reader :state + 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'] + @last_modified_at = @fetched['lastModifiedAt'] + @hostnames = @fetched['hostnames'] + @state = @fetched['state'] + @created_at = @fetched['createdAt'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "OrganizationEnvgroup #{@params[:name]}" + 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_envgroups.rb b/libraries/google_apigee_organization_envgroups.rb new file mode 100644 index 000000000..dddaa87e2 --- /dev/null +++ b/libraries/google_apigee_organization_envgroups.rb @@ -0,0 +1,87 @@ +# 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 ApigeeOrganizationEnvgroups < GcpResourceBase + name 'google_apigee_organization_envgroups' + desc 'OrganizationEnvgroup plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:names, field: :name) + filter_table_config.add(:last_modified_ats, field: :last_modified_at) + filter_table_config.add(:hostnames, field: :hostnames) + filter_table_config.add(:states, field: :state) + 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('organizationEnvgroups') + 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) { return :name, obj['name'] }, + 'lastModifiedAt' => ->(obj) { return :last_modified_at, obj['lastModifiedAt'] }, + 'hostnames' => ->(obj) { return :hostnames, obj['hostnames'] }, + 'state' => ->(obj) { return :state, obj['state'] }, + 'createdAt' => ->(obj) { return :created_at, obj['createdAt'] }, + } + end + + private + + def product_url(_ = nil) + 'https://apigee.googleapis.com/v1/' + end + + def resource_base_url + '{{parent}}/envgroups' + end +end diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup.rb b/test/integration/verify/controls/google_apigee_organization_envgroup.rb new file mode 100644 index 000000000..8c29be8d4 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_envgroup.rb @@ -0,0 +1,42 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_envgroup resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_envgroup = input('organization_envgroup', value: { + "name": "value_name", + "parent": "value_parent", + "last_modified_at": "value_lastmodifiedat", + "state": "value_state", + "created_at": "value_createdat" +}, description: 'organization_envgroup description') +control 'google_apigee_organization_envgroup-1.0' do + impact 1.0 + title 'google_apigee_organization_envgroup resource test' + + describe google_apigee_organization_envgroup(name: organization_envgroup['name']) do + it { should exist } + its('name') { should cmp organization_envgroup['name'] } + its('last_modified_at') { should cmp organization_envgroup['last_modified_at'] } + its('state') { should cmp organization_envgroup['state'] } + its('created_at') { should cmp organization_envgroup['created_at'] } + + end + + describe google_apigee_organization_envgroup(name: "does_not_exit") do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_apigee_organization_envgroups.rb b/test/integration/verify/controls/google_apigee_organization_envgroups.rb new file mode 100644 index 000000000..aff936176 --- /dev/null +++ b/test/integration/verify/controls/google_apigee_organization_envgroups.rb @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_envgroups resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + organization_envgroup = input('organization_envgroup', value: { + "name": "value_name", + "parent": "value_parent", + "last_modified_at": "value_lastmodifiedat", + "state": "value_state", + "created_at": "value_createdat" +}, description: 'organization_envgroup description') +control 'google_apigee_organization_envgroups-1.0' do + impact 1.0 + title 'google_apigee_organization_envgroups resource test' + + describe google_apigee_organization_envgroups(parent: organization_envgroup['parent']) do + it { should exist } + end +end From 7c18743ab5ba1991e56b7cacc2d6c2610119f328 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Mon, 4 Dec 2023 17:15:55 +0530 Subject: [PATCH 50/83] Updates plural resource to use correct key to fetch the data from list API Signed-off-by: Vasu1105 --- libraries/google_apigee_organization_envgroups.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_apigee_organization_envgroups.rb b/libraries/google_apigee_organization_envgroups.rb index dddaa87e2..ef5427a59 100644 --- a/libraries/google_apigee_organization_envgroups.rb +++ b/libraries/google_apigee_organization_envgroups.rb @@ -34,7 +34,7 @@ class ApigeeOrganizationEnvgroups < GcpResourceBase def initialize(params = {}) super(params.merge({ use_http_transport: true })) @params = params - @table = fetch_wrapped_resource('organizationEnvgroups') + @table = fetch_wrapped_resource('environmentGroups') end def fetch_wrapped_resource(wrap_path) From 7cf32c80b32cdd7c44e7f3876598e33ab9644636 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Mon, 4 Dec 2023 17:16:54 +0530 Subject: [PATCH 51/83] Updates test for apigee organization envgroup plural and singular resource Signed-off-by: Vasu1105 --- .../google_apigee_organization_envgroup.rb | 19 ++++++------- .../google_apigee_organization_envgroups.rb | 28 +++++++++++-------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/test/integration/verify/controls/google_apigee_organization_envgroup.rb b/test/integration/verify/controls/google_apigee_organization_envgroup.rb index 8c29be8d4..a78983a52 100644 --- a/test/integration/verify/controls/google_apigee_organization_envgroup.rb +++ b/test/integration/verify/controls/google_apigee_organization_envgroup.rb @@ -14,26 +14,23 @@ title 'Test GCP google_apigee_organization_envgroup resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - - organization_envgroup = input('organization_envgroup', value: { - "name": "value_name", - "parent": "value_parent", - "last_modified_at": "value_lastmodifiedat", - "state": "value_state", - "created_at": "value_createdat" +organization_envgroup = input('organization_envgroup', value: { + "name": "test-env-group", + "parent": "organizations/ppradhan/envgroups", + "hostname": "34.95.97.227.nip.io", + "state": "ACTIVE", + "created_at": "1698227493454" }, description: 'organization_envgroup description') control 'google_apigee_organization_envgroup-1.0' do impact 1.0 title 'google_apigee_organization_envgroup resource test' - describe google_apigee_organization_envgroup(name: organization_envgroup['name']) do + describe google_apigee_organization_envgroup(name: "#{organization_envgroup['parent']}/#{organization_envgroup['name']}") do it { should exist } its('name') { should cmp organization_envgroup['name'] } - its('last_modified_at') { should cmp organization_envgroup['last_modified_at'] } + its('hostnames') { should include organization_envgroup['hostname'] } its('state') { should cmp organization_envgroup['state'] } its('created_at') { should cmp organization_envgroup['created_at'] } - end describe google_apigee_organization_envgroup(name: "does_not_exit") do diff --git a/test/integration/verify/controls/google_apigee_organization_envgroups.rb b/test/integration/verify/controls/google_apigee_organization_envgroups.rb index aff936176..aeef059a4 100644 --- a/test/integration/verify/controls/google_apigee_organization_envgroups.rb +++ b/test/integration/verify/controls/google_apigee_organization_envgroups.rb @@ -14,20 +14,26 @@ title 'Test GCP google_apigee_organization_envgroups resource.' -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') +organization_envgroup = input("organization_envgroup", value: { + "name": "test-env-group", + "parent": "organizations/ppradhan", + "hostname": "34.95.97.227.nip.io", + "state": "ACTIVE" +}, description: "organization_envgroup description") - organization_envgroup = input('organization_envgroup', value: { - "name": "value_name", - "parent": "value_parent", - "last_modified_at": "value_lastmodifiedat", - "state": "value_state", - "created_at": "value_createdat" -}, description: 'organization_envgroup description') control 'google_apigee_organization_envgroups-1.0' do impact 1.0 title 'google_apigee_organization_envgroups resource test' - describe google_apigee_organization_envgroups(parent: organization_envgroup['parent']) do - it { should exist } - end + describe google_apigee_organization_envgroups(parent: organization_envgroup["parent"]) do + it { should exist } + its("names") { should include organization_envgroup["name"] } + end + + describe google_apigee_organization_envgroups(parent: organization_envgroup["parent"]).where(name: organization_envgroup["name"]) do + it { should exist } + its("names") { should include organization_envgroup["name"] } + its("hostnames") { should include [organization_envgroup["hostname"]] } + its("states") { should include organization_envgroup["state"] } + end end From a924f4f9e55265691c38af4529002c9de3061605 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Mon, 4 Dec 2023 17:17:40 +0530 Subject: [PATCH 52/83] Updates docs for the apigee orgnaization envgroup singular and plural resource Signed-off-by: Vasu1105 --- .../google_apigee_organization_envgroup.md | 28 ++++++++++--------- .../google_apigee_organization_envgroups.md | 6 +++- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/docs/resources/google_apigee_organization_envgroup.md b/docs/resources/google_apigee_organization_envgroup.md index a75f8c069..2b756d08d 100644 --- a/docs/resources/google_apigee_organization_envgroup.md +++ b/docs/resources/google_apigee_organization_envgroup.md @@ -4,35 +4,38 @@ platform: gcp --- ## Syntax + A `google_apigee_organization_envgroup` is used to test a Google OrganizationEnvgroup resource ## Examples + ``` describe google_apigee_organization_envgroup(name: ' value_name') do - it { should exist } - its('name') { should cmp 'value_name' } - its('last_modified_at') { should cmp 'value_lastmodifiedat' } - its('state') { should cmp 'value_state' } - its('created_at') { should cmp 'value_createdat' } - + it { should exist } + its('name') { should cmp 'value_name' } + its('hostnames') { should include 'value_hostname' } + its('last_modified_at') { should cmp 'value_lastmodifiedat' } + its('state') { should cmp 'value_state' } + its('created_at') { should cmp 'value_createdat' } end describe google_apigee_organization_envgroup(name: "does_not_exit") do - it { should_not exist } + it { should_not exist } end ``` ## Properties -Properties that can be accessed from the `google_apigee_organization_envgroup` resource: +Properties that can be accessed from the `google_apigee_organization_envgroup` resource: * `name`: ID of the environment group. - * `last_modified_at`: Output only. The time at which the environment group was last updated as milliseconds since epoch. + * `last_modified_at`: The time at which the environment group was last updated as milliseconds since epoch. + + * `hostnames`: Host names for this environment group. - * `hostnames`: Required. Host names for this environment group. + * `state`: State of the environment group. Values other than ACTIVE means the resource is not ready to use. - * `state`: Output only. State of the environment group. Values other than ACTIVE means the resource is not ready to use. Possible values: * STATE_UNSPECIFIED * CREATING @@ -40,8 +43,7 @@ Properties that can be accessed from the `google_apigee_organization_envgroup` r * DELETING * UPDATING - * `created_at`: Output only. The time at which the environment group was created as milliseconds since epoch. - + * `created_at`: The time at which the environment group was created as milliseconds since epoch. ## GCP Permissions diff --git a/docs/resources/google_apigee_organization_envgroups.md b/docs/resources/google_apigee_organization_envgroups.md index 2b49d2e3c..f2d0fa097 100644 --- a/docs/resources/google_apigee_organization_envgroups.md +++ b/docs/resources/google_apigee_organization_envgroups.md @@ -4,16 +4,19 @@ platform: gcp --- ## Syntax + A `google_apigee_organization_envgroups` is used to test a Google OrganizationEnvgroup resource ## Examples + ``` - describe google_apigee_organization_envgroups(parent: ' value_parent') do + describe google_apigee_organization_envgroups(parent: 'value_parent') do it { should exist } end ``` ## Properties + Properties that can be accessed from the `google_apigee_organization_envgroups` resource: See [google_apigee_organization_envgroup.md](google_apigee_organization_envgroup.md) for more detailed information @@ -24,6 +27,7 @@ See [google_apigee_organization_envgroup.md](google_apigee_organization_envgroup * `created_ats`: an array of `google_apigee_organization_envgroup` 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. From a16be62d85ce6554de7543392880ab0e1a132ed3 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Wed, 6 Dec 2023 13:27:03 +0530 Subject: [PATCH 53/83] Updates README to add links for docs Signed-off-by: Vasu1105 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 825ddf82b..36b32a172 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ The following resources are available in the InSpec GCP Profile | [google_access_context_manager_access_level](docs/resources/google_access_context_manager_access_level.md) | [google_access_context_manager_access_levels](docs/resources/google_access_context_manager_access_levels.md) | | [google_access_context_manager_access_policy](docs/resources/google_access_context_manager_access_policy.md) | [google_access_context_manager_access_policies](docs/resources/google_access_context_manager_access_policies.md) | | [google_access_context_manager_service_perimeter](docs/resources/google_access_context_manager_service_perimeter.md) | [google_access_context_manager_service_perimeters](docs/resources/google_access_context_manager_service_perimeters.md) | +| [google_apigeegoogle_apigee_organization_envgroup](docs/resources/google_apigee_organization_envgroup.md) | [google_apigee_organization_envgroups](docs/resources/google_apigee_organization_envgroups.md) | | [google_appengine_standard_app_version](docs/resources/google_appengine_standard_app_version.md) | [google_appengine_standard_app_versions](docs/resources/google_appengine_standard_app_versions.md) | | [google_bigquery_dataset](docs/resources/google_bigquery_dataset.md) | [google_bigquery_datasets](docs/resources/google_bigquery_datasets.md) | | [google_bigquery_table](docs/resources/google_bigquery_table.md) | [google_bigquery_tables](docs/resources/google_bigquery_tables.md) | From cd126935369d7e40884fee5d1fabab67878c67f9 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Wed, 6 Dec 2023 15:28:54 +0530 Subject: [PATCH 54/83] Fix lint offense Signed-off-by: Vasu1105 --- libraries/google_apigee_organization_envgroups.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/google_apigee_organization_envgroups.rb b/libraries/google_apigee_organization_envgroups.rb index ef5427a59..7cdefa5f4 100644 --- a/libraries/google_apigee_organization_envgroups.rb +++ b/libraries/google_apigee_organization_envgroups.rb @@ -67,11 +67,11 @@ def transform(key, value) def transformers { - 'name' => ->(obj) { return :name, obj['name'] }, - 'lastModifiedAt' => ->(obj) { return :last_modified_at, obj['lastModifiedAt'] }, - 'hostnames' => ->(obj) { return :hostnames, obj['hostnames'] }, - 'state' => ->(obj) { return :state, obj['state'] }, - 'createdAt' => ->(obj) { return :created_at, obj['createdAt'] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'lastModifiedAt' => ->(obj) { [:last_modified_at, obj['lastModifiedAt']] }, + 'hostnames' => ->(obj) { [:hostnames, obj['hostnames']] }, + 'state' => ->(obj) { [:state, obj['state']] }, + 'createdAt' => ->(obj) { [:created_at, obj['createdAt']] }, } end From b746331dc054ab5a15c5b4c371546ec6b20120fc Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Wed, 29 Nov 2023 23:39:46 +0530 Subject: [PATCH 55/83] Automatically generated by magic modules for service: compute and resource: ServiceAttachment. This commit includes the following changes: - Singular Resource - Plural Resource - Documentation updates - Terraform configuration - Integration tests Signed-off-by: Samir Anand --- .../google_compute_service_attachment.md | 106 ++++++++++++++++ .../google_compute_service_attachments.md | 46 +++++++ .../serviceattachment_connected_endpoints.rb | 51 ++++++++ ...serviceattachment_consumer_accept_lists.rb | 48 ++++++++ ...iceattachment_psc_service_attachment_id.rb | 37 ++++++ .../google_compute_service_attachment.rb | 94 ++++++++++++++ .../google_compute_service_attachments.rb | 115 ++++++++++++++++++ .../google_compute_service_attachment.rb | 57 +++++++++ .../google_compute_service_attachments.rb | 41 +++++++ 9 files changed, 595 insertions(+) create mode 100644 docs/resources/google_compute_service_attachment.md create mode 100644 docs/resources/google_compute_service_attachments.md create mode 100644 libraries/google/compute/property/serviceattachment_connected_endpoints.rb create mode 100644 libraries/google/compute/property/serviceattachment_consumer_accept_lists.rb create mode 100644 libraries/google/compute/property/serviceattachment_psc_service_attachment_id.rb create mode 100644 libraries/google_compute_service_attachment.rb create mode 100644 libraries/google_compute_service_attachments.rb create mode 100644 test/integration/verify/controls/google_compute_service_attachment.rb create mode 100644 test/integration/verify/controls/google_compute_service_attachments.rb diff --git a/docs/resources/google_compute_service_attachment.md b/docs/resources/google_compute_service_attachment.md new file mode 100644 index 000000000..cc4deb7cf --- /dev/null +++ b/docs/resources/google_compute_service_attachment.md @@ -0,0 +1,106 @@ +--- +title: About the google_compute_service_attachment resource +platform: gcp +--- + +## Syntax +A `google_compute_service_attachment` is used to test a Google ServiceAttachment resource + +## Examples +``` +describe google_compute_service_attachment(project: 'chef-gcp-inspec', region: ' value_region', serviceAttachment: ' ') do + it { should exist } + its('kind') { should cmp 'value_kind' } + its('id') { should cmp 'value_id' } + its('creation_timestamp') { should cmp 'value_creationtimestamp' } + its('name') { should cmp 'value_name' } + its('description') { should cmp 'value_description' } + its('self_link') { should cmp 'value_selflink' } + its('region') { should cmp 'value_region' } + its('producer_forwarding_rule') { should cmp 'value_producerforwardingrule' } + its('target_service') { should cmp 'value_targetservice' } + its('connection_preference') { should cmp 'value_connectionpreference' } + its('fingerprint') { should cmp 'value_fingerprint' } + +end + +describe google_compute_service_attachment(project: 'chef-gcp-inspec', region: ' value_region', serviceAttachment: ' ') do + it { should_not exist } +end +``` + +## Properties +Properties that can be accessed from the `google_compute_service_attachment` resource: + + + * `kind`: [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments. + + * `id`: [Output Only] The unique identifier for the resource type. The server generates this identifier. + + * `creation_timestamp`: [Output Only] Creation timestamp in RFC3339 text format. + + * `name`: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. + + * `description`: An optional description of this resource. Provide this property when you create the resource. + + * `self_link`: [Output Only] Server-defined URL for the resource. + + * `region`: [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. + + * `producer_forwarding_rule`: The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment. + + * `target_service`: The URL of a service serving the endpoint identified by this service attachment. + + * `connection_preference`: The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules. + Possible values: + * ACCEPT_AUTOMATIC + * ACCEPT_MANUAL + * CONNECTION_PREFERENCE_UNSPECIFIED + + * `connected_endpoints`: [Output Only] An array of connections for all the consumers connected to this service attachment. + + * `status`: The status of a connected endpoint to this service attachment. + Possible values: + * ACCEPTED + * CLOSED + * NEEDS_ATTENTION + * PENDING + * REJECTED + * STATUS_UNSPECIFIED + + * `psc_connection_id`: The PSC connection id of the connected endpoint. + + * `endpoint`: The url of a connected endpoint. + + * `consumer_network`: The url of the consumer network. + + * `nat_subnets`: An array of URLs where each entry is the URL of a subnet provided by the service producer to use for NAT in this service attachment. + + * `enable_proxy_protocol`: If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers. + + * `consumer_reject_lists`: Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number. + + * `consumer_accept_lists`: Projects that are allowed to connect to this service attachment. + + * `project_id_or_num`: The project id or number for the project to set the limit for. + + * `network_url`: The network URL for the network to set the limit for. + + * `connection_limit`: The value of the limit to set. + + * `psc_service_attachment_id`: + + * `high`: + + * `low`: + + * `fingerprint`: Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment. + + * `domain_names`: If specified, the domain name will be used during the integration between the PSC connected endpoints and the Cloud DNS. For example, this is a valid domain name: "p.mycompany.com.". Current max number of domain names supported is 1. + + * `reconcile_connections`: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to false. + + +## GCP Permissions + +Ensure the [Compute Engine API](https://console.cloud.google.com/apis/library/compute.googleapis.com/) is enabled for the current project. diff --git a/docs/resources/google_compute_service_attachments.md b/docs/resources/google_compute_service_attachments.md new file mode 100644 index 000000000..ce50af9b5 --- /dev/null +++ b/docs/resources/google_compute_service_attachments.md @@ -0,0 +1,46 @@ +--- +title: About the google_compute_service_attachments resource +platform: gcp +--- + +## Syntax +A `google_compute_service_attachments` is used to test a Google ServiceAttachment resource + +## Examples +``` + describe google_compute_service_attachments(project: 'chef-gcp-inspec', region: ' value_region') do + it { should exist } + end +``` + +## Properties +Properties that can be accessed from the `google_compute_service_attachments` resource: + +See [google_compute_service_attachment.md](google_compute_service_attachment.md) for more detailed information + * `kinds`: an array of `google_compute_service_attachment` kind + * `ids`: an array of `google_compute_service_attachment` id + * `creation_timestamps`: an array of `google_compute_service_attachment` creation_timestamp + * `names`: an array of `google_compute_service_attachment` name + * `descriptions`: an array of `google_compute_service_attachment` description + * `self_links`: an array of `google_compute_service_attachment` self_link + * `regions`: an array of `google_compute_service_attachment` region + * `producer_forwarding_rules`: an array of `google_compute_service_attachment` producer_forwarding_rule + * `target_services`: an array of `google_compute_service_attachment` target_service + * `connection_preferences`: an array of `google_compute_service_attachment` connection_preference + * `connected_endpoints`: an array of `google_compute_service_attachment` connected_endpoints + * `nat_subnets`: an array of `google_compute_service_attachment` nat_subnets + * `enable_proxy_protocols`: an array of `google_compute_service_attachment` enable_proxy_protocol + * `consumer_reject_lists`: an array of `google_compute_service_attachment` consumer_reject_lists + * `consumer_accept_lists`: an array of `google_compute_service_attachment` consumer_accept_lists + * `psc_service_attachment_ids`: an array of `google_compute_service_attachment` psc_service_attachment_id + * `fingerprints`: an array of `google_compute_service_attachment` fingerprint + * `domain_names`: an array of `google_compute_service_attachment` domain_names + * `reconcile_connections`: an array of `google_compute_service_attachment` reconcile_connections + +## 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 [Compute Engine API](https://console.cloud.google.com/apis/library/compute.googleapis.com/) is enabled for the current project. diff --git a/libraries/google/compute/property/serviceattachment_connected_endpoints.rb b/libraries/google/compute/property/serviceattachment_connected_endpoints.rb new file mode 100644 index 000000000..36f4fc710 --- /dev/null +++ b/libraries/google/compute/property/serviceattachment_connected_endpoints.rb @@ -0,0 +1,51 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Compute + module Property + class ServiceAttachmentConnectedEndpoints + attr_reader :status + + attr_reader :psc_connection_id + + attr_reader :endpoint + + attr_reader :consumer_network + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @status = args['status'] + @psc_connection_id = args['pscConnectionId'] + @endpoint = args['endpoint'] + @consumer_network = args['consumerNetwork'] + end + + def to_s + "#{@parent_identifier} ServiceAttachmentConnectedEndpoints" + end + end + + class ServiceAttachmentConnectedEndpointsArray + def self.parse(value, parent_identifier) + return if value.nil? + return ServiceAttachmentConnectedEndpoints.new(value, parent_identifier) unless value.is_a?(::Array) + value.map { |v| ServiceAttachmentConnectedEndpoints.new(v, parent_identifier) } + end + end + end + end +end diff --git a/libraries/google/compute/property/serviceattachment_consumer_accept_lists.rb b/libraries/google/compute/property/serviceattachment_consumer_accept_lists.rb new file mode 100644 index 000000000..a7edc9c60 --- /dev/null +++ b/libraries/google/compute/property/serviceattachment_consumer_accept_lists.rb @@ -0,0 +1,48 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Compute + module Property + class ServiceAttachmentConsumerAcceptLists + attr_reader :project_id_or_num + + attr_reader :network_url + + attr_reader :connection_limit + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @project_id_or_num = args['projectIdOrNum'] + @network_url = args['networkUrl'] + @connection_limit = args['connectionLimit'] + end + + def to_s + "#{@parent_identifier} ServiceAttachmentConsumerAcceptLists" + end + end + + class ServiceAttachmentConsumerAcceptListsArray + def self.parse(value, parent_identifier) + return if value.nil? + return ServiceAttachmentConsumerAcceptLists.new(value, parent_identifier) unless value.is_a?(::Array) + value.map { |v| ServiceAttachmentConsumerAcceptLists.new(v, parent_identifier) } + end + end + end + end +end diff --git a/libraries/google/compute/property/serviceattachment_psc_service_attachment_id.rb b/libraries/google/compute/property/serviceattachment_psc_service_attachment_id.rb new file mode 100644 index 000000000..a01521a07 --- /dev/null +++ b/libraries/google/compute/property/serviceattachment_psc_service_attachment_id.rb @@ -0,0 +1,37 @@ +# 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. +# +# ---------------------------------------------------------------------------- +module GoogleInSpec + module Compute + module Property + class ServiceAttachmentPscServiceAttachmentId + attr_reader :high + + attr_reader :low + + def initialize(args = nil, parent_identifier = nil) + return if args.nil? + @parent_identifier = parent_identifier + @high = args['high'] + @low = args['low'] + end + + def to_s + "#{@parent_identifier} ServiceAttachmentPscServiceAttachmentId" + end + end + end + end +end diff --git a/libraries/google_compute_service_attachment.rb b/libraries/google_compute_service_attachment.rb new file mode 100644 index 000000000..b3619472b --- /dev/null +++ b/libraries/google_compute_service_attachment.rb @@ -0,0 +1,94 @@ +# 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' +require 'google/compute/property/serviceattachment_connected_endpoints' +require 'google/compute/property/serviceattachment_consumer_accept_lists' +require 'google/compute/property/serviceattachment_psc_service_attachment_id' + +# A provider to manage Compute Engine resources. +class ComputeServiceAttachment < GcpResourceBase + name 'google_compute_service_attachment' + desc 'ServiceAttachment' + supports platform: 'gcp' + + attr_reader :params + attr_reader :kind + attr_reader :id + attr_reader :creation_timestamp + attr_reader :name + attr_reader :description + attr_reader :self_link + attr_reader :region + attr_reader :producer_forwarding_rule + attr_reader :target_service + attr_reader :connection_preference + attr_reader :connected_endpoints + attr_reader :nat_subnets + attr_reader :enable_proxy_protocol + attr_reader :consumer_reject_lists + attr_reader :consumer_accept_lists + attr_reader :psc_service_attachment_id + attr_reader :fingerprint + attr_reader :domain_names + attr_reader :reconcile_connections + + 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 + @kind = @fetched['kind'] + @id = @fetched['id'] + @creation_timestamp = @fetched['creationTimestamp'] + @name = @fetched['name'] + @description = @fetched['description'] + @self_link = @fetched['selfLink'] + @region = @fetched['region'] + @producer_forwarding_rule = @fetched['producerForwardingRule'] + @target_service = @fetched['targetService'] + @connection_preference = @fetched['connectionPreference'] + @connected_endpoints = GoogleInSpec::Compute::Property::ServiceAttachmentConnectedEndpointsArray.parse(@fetched['connectedEndpoints'], to_s) + @nat_subnets = @fetched['natSubnets'] + @enable_proxy_protocol = @fetched['enableProxyProtocol'] + @consumer_reject_lists = @fetched['consumerRejectLists'] + @consumer_accept_lists = GoogleInSpec::Compute::Property::ServiceAttachmentConsumerAcceptListsArray.parse(@fetched['consumerAcceptLists'], to_s) + @psc_service_attachment_id = GoogleInSpec::Compute::Property::ServiceAttachmentPscServiceAttachmentId.new(@fetched['pscServiceAttachmentId'], to_s) + @fingerprint = @fetched['fingerprint'] + @domain_names = @fetched['domainNames'] + @reconcile_connections = @fetched['reconcileConnections'] + end + + def exists? + !@fetched.nil? + end + + def to_s + "ServiceAttachment #{@params[:serviceAttachment]}" + end + + private + + def product_url(_ = nil) + 'https://compute.googleapis.com/compute/v1/' + end + + def resource_base_url + 'projects/{{project}}/regions/{{region}}/serviceAttachments/{{service_attachment}}' + end +end diff --git a/libraries/google_compute_service_attachments.rb b/libraries/google_compute_service_attachments.rb new file mode 100644 index 000000000..b3d623ae4 --- /dev/null +++ b/libraries/google_compute_service_attachments.rb @@ -0,0 +1,115 @@ +# 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 ComputeServiceAttachments < GcpResourceBase + name 'google_compute_service_attachments' + desc 'ServiceAttachment plural resource' + supports platform: 'gcp' + + attr_reader :table + + filter_table_config = FilterTable.create + + filter_table_config.add(:kinds, field: :kind) + filter_table_config.add(:ids, field: :id) + filter_table_config.add(:creation_timestamps, field: :creation_timestamp) + filter_table_config.add(:names, field: :name) + filter_table_config.add(:descriptions, field: :description) + filter_table_config.add(:self_links, field: :self_link) + filter_table_config.add(:regions, field: :region) + filter_table_config.add(:producer_forwarding_rules, field: :producer_forwarding_rule) + filter_table_config.add(:target_services, field: :target_service) + filter_table_config.add(:connection_preferences, field: :connection_preference) + filter_table_config.add(:connected_endpoints, field: :connected_endpoints) + filter_table_config.add(:nat_subnets, field: :nat_subnets) + filter_table_config.add(:enable_proxy_protocols, field: :enable_proxy_protocol) + filter_table_config.add(:consumer_reject_lists, field: :consumer_reject_lists) + filter_table_config.add(:consumer_accept_lists, field: :consumer_accept_lists) + filter_table_config.add(:psc_service_attachment_ids, field: :psc_service_attachment_id) + filter_table_config.add(:fingerprints, field: :fingerprint) + filter_table_config.add(:domain_names, field: :domain_names) + filter_table_config.add(:reconcile_connections, field: :reconcile_connections) + + filter_table_config.connect(self, :table) + + def initialize(params = {}) + super(params.merge({ use_http_transport: true })) + @params = params + @table = fetch_wrapped_resource('serviceAttachments') + 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 + { + 'kind' => ->(obj) { return :kind, obj['kind'] }, + 'id' => ->(obj) { return :id, obj['id'] }, + 'creationTimestamp' => ->(obj) { return :creation_timestamp, obj['creationTimestamp'] }, + 'name' => ->(obj) { return :name, obj['name'] }, + 'description' => ->(obj) { return :description, obj['description'] }, + 'selfLink' => ->(obj) { return :self_link, obj['selfLink'] }, + 'region' => ->(obj) { return :region, obj['region'] }, + 'producerForwardingRule' => ->(obj) { return :producer_forwarding_rule, obj['producerForwardingRule'] }, + 'targetService' => ->(obj) { return :target_service, obj['targetService'] }, + 'connectionPreference' => ->(obj) { return :connection_preference, obj['connectionPreference'] }, + 'connectedEndpoints' => ->(obj) { return :connected_endpoints, GoogleInSpec::Compute::Property::ServiceAttachmentConnectedEndpointsArray.parse(obj['connectedEndpoints'], to_s) }, + 'natSubnets' => ->(obj) { return :nat_subnets, obj['natSubnets'] }, + 'enableProxyProtocol' => ->(obj) { return :enable_proxy_protocol, obj['enableProxyProtocol'] }, + 'consumerRejectLists' => ->(obj) { return :consumer_reject_lists, obj['consumerRejectLists'] }, + 'consumerAcceptLists' => ->(obj) { return :consumer_accept_lists, GoogleInSpec::Compute::Property::ServiceAttachmentConsumerAcceptListsArray.parse(obj['consumerAcceptLists'], to_s) }, + 'pscServiceAttachmentId' => ->(obj) { return :psc_service_attachment_id, GoogleInSpec::Compute::Property::ServiceAttachmentPscServiceAttachmentId.new(obj['pscServiceAttachmentId'], to_s) }, + 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, + 'domainNames' => ->(obj) { return :domain_names, obj['domainNames'] }, + 'reconcileConnections' => ->(obj) { return :reconcile_connections, obj['reconcileConnections'] }, + } + end + + private + + def product_url(_ = nil) + 'https://compute.googleapis.com/compute/v1/' + end + + def resource_base_url + 'projects/{{project}}/regions/{{region}}/serviceAttachments' + end +end diff --git a/test/integration/verify/controls/google_compute_service_attachment.rb b/test/integration/verify/controls/google_compute_service_attachment.rb new file mode 100644 index 000000000..e7740f307 --- /dev/null +++ b/test/integration/verify/controls/google_compute_service_attachment.rb @@ -0,0 +1,57 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_compute_service_attachment resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + service_attachment = input('service_attachment', value: { + "project": "value_project", + "region": "value_region", + "service_attachment": "value_serviceattachment", + "kind": "value_kind", + "id": "value_id", + "creation_timestamp": "value_creationtimestamp", + "name": "value_name", + "description": "value_description", + "self_link": "value_selflink", + "producer_forwarding_rule": "value_producerforwardingrule", + "target_service": "value_targetservice", + "connection_preference": "value_connectionpreference", + "fingerprint": "value_fingerprint" +}, description: 'service_attachment description') +control 'google_compute_service_attachment-1.0' do + impact 1.0 + title 'google_compute_service_attachment resource test' + + describe google_compute_service_attachment(project: gcp_project_id, region: service_attachment['region'], serviceAttachment: service_attachment['serviceAttachment']) do + it { should exist } + its('kind') { should cmp service_attachment['kind'] } + its('id') { should cmp service_attachment['id'] } + its('creation_timestamp') { should cmp service_attachment['creation_timestamp'] } + its('name') { should cmp service_attachment['name'] } + its('description') { should cmp service_attachment['description'] } + its('self_link') { should cmp service_attachment['self_link'] } + its('region') { should cmp service_attachment['region'] } + its('producer_forwarding_rule') { should cmp service_attachment['producer_forwarding_rule'] } + its('target_service') { should cmp service_attachment['target_service'] } + its('connection_preference') { should cmp service_attachment['connection_preference'] } + its('fingerprint') { should cmp service_attachment['fingerprint'] } + + end + + describe google_compute_service_attachment(project: gcp_project_id, region: service_attachment['region'], serviceAttachment: service_attachment['serviceAttachment']) do + it { should_not exist } + end +end diff --git a/test/integration/verify/controls/google_compute_service_attachments.rb b/test/integration/verify/controls/google_compute_service_attachments.rb new file mode 100644 index 000000000..085bd4e72 --- /dev/null +++ b/test/integration/verify/controls/google_compute_service_attachments.rb @@ -0,0 +1,41 @@ +# ---------------------------------------------------------------------------- +# +# *** 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_compute_service_attachments resource.' + +gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') + + service_attachment = input('service_attachment', value: { + "project": "value_project", + "region": "value_region", + "service_attachment": "value_serviceattachment", + "kind": "value_kind", + "id": "value_id", + "creation_timestamp": "value_creationtimestamp", + "name": "value_name", + "description": "value_description", + "self_link": "value_selflink", + "producer_forwarding_rule": "value_producerforwardingrule", + "target_service": "value_targetservice", + "connection_preference": "value_connectionpreference", + "fingerprint": "value_fingerprint" +}, description: 'service_attachment description') +control 'google_compute_service_attachments-1.0' do + impact 1.0 + title 'google_compute_service_attachments resource test' + + describe google_compute_service_attachments(project: gcp_project_id, region: service_attachment['region']) do + it { should exist } + end +end From 4fdb20ee64057db1490f9832d849870b73c26f66 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Wed, 6 Dec 2023 16:26:44 +0530 Subject: [PATCH 56/83] Updates terraform script Signed-off-by: Vasu1105 --- test/integration/build/gcp-mm.tf | 10 ++++++++++ test/integration/configuration/mm-attributes.yml | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 02e4b7abc..73b3777bf 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -220,6 +220,10 @@ variable "cloud_composer_v1" { type = any } +variable "organization_envgroup" { + type = any +} + resource "google_compute_ssl_policy" "custom-ssl-policy" { name = var.ssl_policy["name"] min_tls_version = var.ssl_policy["min_tls_version"] @@ -1565,3 +1569,9 @@ resource "google_composer_v1_environment" "test" { } } } + +resource "google_apigee_envgroup" "env_grp" { + name = var.organization_envgroup.name + hostnames = var.organization_envgroup.hostnames + org_id = var.organization_envgroup.project +} \ No newline at end of file diff --git a/test/integration/configuration/mm-attributes.yml b/test/integration/configuration/mm-attributes.yml index 37074e018..96bf86733 100644 --- a/test/integration/configuration/mm-attributes.yml +++ b/test/integration/configuration/mm-attributes.yml @@ -562,3 +562,11 @@ cloud_composer_v1: name : "example-composer-env" region : "us-central1" image_version : "composer-1.20.12-airflow-2.4.3" + +organization_envgroup: + project: "organizations/ppradhan" + name : "test-env-group" + hostnames: ["34.95.97.227.nip.io"] + parent : "organizations/ppradhan/envgroups" + state : "ACTIVE" + created_at : "1698227493454" From caee73885e8d3d665da172eac85d484a974de1dc Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Fri, 8 Dec 2023 10:15:41 +0000 Subject: [PATCH 57/83] Bump version to 1.11.60 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22c89b210..805325f62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.60](https://github.com/inspec/inspec-gcp/tree/v1.11.60) (2023-12-08) + +#### Merged Pull Requests +- CHEF-7354-MAGIC-MODULE-artifactregistry-Projects__locations__repository - Resource Implementation [#544](https://github.com/inspec/inspec-gcp/pull/544) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.59](https://github.com/inspec/inspec-gcp/tree/v1.11.59) (2023-12-08) #### Merged Pull Requests - Removed worng dir [#551](https://github.com/inspec/inspec-gcp/pull/551) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.58](https://github.com/inspec/inspec-gcp/tree/v1.11.58) (2023-12-08) diff --git a/VERSION b/VERSION index 5cd337349..e01a7f28d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.59 \ No newline at end of file +1.11.60 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 1b3ca87ba..7f769191f 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.59 +version: 1.11.60 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 05227f7d99224afbcbdfb5a15cd66cdd2885ce89 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Fri, 8 Dec 2023 10:44:18 +0000 Subject: [PATCH 58/83] Bump version to 1.11.61 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 805325f62..5a1e1e4e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.61](https://github.com/inspec/inspec-gcp/tree/v1.11.61) (2023-12-08) + +#### Merged Pull Requests +- CHEF-7356-MAGIC-MODULE-apigee-Organizations__envgroup - Resource Implementation [#539](https://github.com/inspec/inspec-gcp/pull/539) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.60](https://github.com/inspec/inspec-gcp/tree/v1.11.60) (2023-12-08) #### Merged Pull Requests - CHEF-7354-MAGIC-MODULE-artifactregistry-Projects__locations__repository - Resource Implementation [#544](https://github.com/inspec/inspec-gcp/pull/544) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.59](https://github.com/inspec/inspec-gcp/tree/v1.11.59) (2023-12-08) diff --git a/VERSION b/VERSION index e01a7f28d..b84d03e80 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.60 \ No newline at end of file +1.11.61 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 7f769191f..c89806f0a 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.60 +version: 1.11.61 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 4a52a6e65c758cc656814839b51560f16b86cf8d Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Fri, 8 Dec 2023 17:01:43 +0530 Subject: [PATCH 59/83] Linting fix with rubocop 1.58 Signed-off-by: Samir Anand --- .../google_apigee_organization_envgroup_attachments.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/google_apigee_organization_envgroup_attachments.rb b/libraries/google_apigee_organization_envgroup_attachments.rb index 7678bfae7..d61e48d26 100644 --- a/libraries/google_apigee_organization_envgroup_attachments.rb +++ b/libraries/google_apigee_organization_envgroup_attachments.rb @@ -66,10 +66,10 @@ def transform(key, value) def transformers { - 'createdAt' => ->(obj) { return :created_at, obj['createdAt'] }, - 'environment' => ->(obj) { return :environment, obj['environment'] }, - 'environmentGroupId' => ->(obj) { return :environment_group_id, obj['environmentGroupId'] }, - 'name' => ->(obj) { return :name, obj['name'] }, + 'createdAt' => ->(obj) { [:created_at, obj['createdAt']] }, + 'environment' => ->(obj) { [:environment, obj['environment']] }, + 'environmentGroupId' => ->(obj) { [:environment_group_id, obj['environmentGroupId']] }, + 'name' => ->(obj) { [:name, obj['name']] }, } end From a17da327760c5dacac182c57b32d9f89023a5823 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Fri, 8 Dec 2023 11:54:33 +0000 Subject: [PATCH 60/83] Bump version to 1.11.62 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a1e1e4e0..e01df5a68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.62](https://github.com/inspec/inspec-gcp/tree/v1.11.62) (2023-12-08) + +#### Merged Pull Requests +- CHEF-7357-MAGIC-MODULE-apigee-Organizations__envgroups__attachment - Resource Implementation [#540](https://github.com/inspec/inspec-gcp/pull/540) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.61](https://github.com/inspec/inspec-gcp/tree/v1.11.61) (2023-12-08) #### Merged Pull Requests - CHEF-7356-MAGIC-MODULE-apigee-Organizations__envgroup - Resource Implementation [#539](https://github.com/inspec/inspec-gcp/pull/539) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.60](https://github.com/inspec/inspec-gcp/tree/v1.11.60) (2023-12-08) diff --git a/VERSION b/VERSION index b84d03e80..cc0f85bf0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.61 \ No newline at end of file +1.11.62 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index c89806f0a..3e878799d 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.61 +version: 1.11.62 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From b511edfddae70387daec0013a84c865a290aca7f Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 12 Dec 2023 14:59:27 +0530 Subject: [PATCH 61/83] fix: align variable naming convention with existing codebase conventions Signed-off-by: Sonu Saha --- libraries/google_compute_service_attachment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_compute_service_attachment.rb b/libraries/google_compute_service_attachment.rb index b3619472b..20b0ac7f5 100644 --- a/libraries/google_compute_service_attachment.rb +++ b/libraries/google_compute_service_attachment.rb @@ -79,7 +79,7 @@ def exists? end def to_s - "ServiceAttachment #{@params[:serviceAttachment]}" + "ServiceAttachment #{@params[:service_attachment]}" end private From 950b412c2901d66ea21134f828e2242d22459923 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 12 Dec 2023 15:00:48 +0530 Subject: [PATCH 62/83] fix: update wrap_path for ComputeServiceAttachments as per response from API Signed-off-by: Sonu Saha --- libraries/google_compute_service_attachments.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/google_compute_service_attachments.rb b/libraries/google_compute_service_attachments.rb index b3d623ae4..6705780eb 100644 --- a/libraries/google_compute_service_attachments.rb +++ b/libraries/google_compute_service_attachments.rb @@ -48,7 +48,7 @@ class ComputeServiceAttachments < GcpResourceBase def initialize(params = {}) super(params.merge({ use_http_transport: true })) @params = params - @table = fetch_wrapped_resource('serviceAttachments') + @table = fetch_wrapped_resource('items') end def fetch_wrapped_resource(wrap_path) From 4b2f6e1cacefdf59f29c950c25b11ed743b20f28 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 12 Dec 2023 15:02:02 +0530 Subject: [PATCH 63/83] chore: remove redundant returns to fix rubocop lint offense Signed-off-by: Sonu Saha --- .../google_compute_service_attachments.rb | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/libraries/google_compute_service_attachments.rb b/libraries/google_compute_service_attachments.rb index 6705780eb..13bec2868 100644 --- a/libraries/google_compute_service_attachments.rb +++ b/libraries/google_compute_service_attachments.rb @@ -81,25 +81,25 @@ def transform(key, value) def transformers { - 'kind' => ->(obj) { return :kind, obj['kind'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, obj['creationTimestamp'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'selfLink' => ->(obj) { return :self_link, obj['selfLink'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'producerForwardingRule' => ->(obj) { return :producer_forwarding_rule, obj['producerForwardingRule'] }, - 'targetService' => ->(obj) { return :target_service, obj['targetService'] }, - 'connectionPreference' => ->(obj) { return :connection_preference, obj['connectionPreference'] }, - 'connectedEndpoints' => ->(obj) { return :connected_endpoints, GoogleInSpec::Compute::Property::ServiceAttachmentConnectedEndpointsArray.parse(obj['connectedEndpoints'], to_s) }, - 'natSubnets' => ->(obj) { return :nat_subnets, obj['natSubnets'] }, - 'enableProxyProtocol' => ->(obj) { return :enable_proxy_protocol, obj['enableProxyProtocol'] }, - 'consumerRejectLists' => ->(obj) { return :consumer_reject_lists, obj['consumerRejectLists'] }, - 'consumerAcceptLists' => ->(obj) { return :consumer_accept_lists, GoogleInSpec::Compute::Property::ServiceAttachmentConsumerAcceptListsArray.parse(obj['consumerAcceptLists'], to_s) }, - 'pscServiceAttachmentId' => ->(obj) { return :psc_service_attachment_id, GoogleInSpec::Compute::Property::ServiceAttachmentPscServiceAttachmentId.new(obj['pscServiceAttachmentId'], to_s) }, - 'fingerprint' => ->(obj) { return :fingerprint, obj['fingerprint'] }, - 'domainNames' => ->(obj) { return :domain_names, obj['domainNames'] }, - 'reconcileConnections' => ->(obj) { return :reconcile_connections, obj['reconcileConnections'] }, + 'kind' => ->(obj) { [:kind, obj['kind']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, obj['creationTimestamp']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'selfLink' => ->(obj) { [:self_link, obj['selfLink']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'producerForwardingRule' => ->(obj) { [:producer_forwarding_rule, obj['producerForwardingRule']] }, + 'targetService' => ->(obj) { [:target_service, obj['targetService']] }, + 'connectionPreference' => ->(obj) { [:connection_preference, obj['connectionPreference']] }, + 'connectedEndpoints' => ->(obj) { [:connected_endpoints, GoogleInSpec::Compute::Property::ServiceAttachmentConnectedEndpointsArray.parse(obj['connectedEndpoints'], to_s)] }, + 'natSubnets' => ->(obj) { [:nat_subnets, obj['natSubnets']] }, + 'enableProxyProtocol' => ->(obj) { [:enable_proxy_protocol, obj['enableProxyProtocol']] }, + 'consumerRejectLists' => ->(obj) { [:consumer_reject_lists, obj['consumerRejectLists']] }, + 'consumerAcceptLists' => ->(obj) { [:consumer_accept_lists, GoogleInSpec::Compute::Property::ServiceAttachmentConsumerAcceptListsArray.parse(obj['consumerAcceptLists'], to_s)] }, + 'pscServiceAttachmentId' => ->(obj) { [:psc_service_attachment_id, GoogleInSpec::Compute::Property::ServiceAttachmentPscServiceAttachmentId.new(obj['pscServiceAttachmentId'], to_s)] }, + 'fingerprint' => ->(obj) { [:fingerprint, obj['fingerprint']] }, + 'domainNames' => ->(obj) { [:domain_names, obj['domainNames']] }, + 'reconcileConnections' => ->(obj) { [:reconcile_connections, obj['reconcileConnections']] }, } end From 40d2e3a4265a58c07110cc227cc4132b391cdeb6 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 12 Dec 2023 16:10:31 +0530 Subject: [PATCH 64/83] iac: add terraform scripts to create required resources for service attachment Signed-off-by: Sonu Saha --- test/integration/build/gcp-mm.tf | 84 +++++++++++++++++++ .../configuration/mm-attributes.yml | 25 ++++++ 2 files changed, 109 insertions(+) diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 02e4b7abc..7339d9bf2 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -220,6 +220,11 @@ variable "cloud_composer_v1" { type = any } +variable "compute_service_attachment_conf" { + type = any +} + + resource "google_compute_ssl_policy" "custom-ssl-policy" { name = var.ssl_policy["name"] min_tls_version = var.ssl_policy["min_tls_version"] @@ -1565,3 +1570,82 @@ resource "google_composer_v1_environment" "test" { } } } + +resource "google_compute_service_attachment" "psc_ilb_service_attachment" { + name = var.compute_service_attachment_conf["compute_service_attachment_name"] + region = var.compute_service_attachment_conf["region"] + description = var.compute_service_attachment_conf["description"] + + enable_proxy_protocol = var.compute_service_attachment_conf["enable_proxy_protocol"] + connection_preference = var.compute_service_attachment_conf["connection_preference"] + nat_subnets = [google_compute_subnetwork.psc_ilb_nat.id] + target_service = google_compute_forwarding_rule.psc_ilb_target_service.id +} + +resource "google_compute_address" "psc_ilb_consumer_address" { + name = var.compute_service_attachment_conf["psc_ilb_consumer_address_name"] + region = var.compute_service_attachment_conf["region"] + + subnetwork = var.compute_service_attachment_conf["subnetwork_id"] + address_type = var.compute_service_attachment_conf["address_type"] +} + +resource "google_compute_forwarding_rule" "psc_ilb_consumer" { + name = var.compute_service_attachment_conf["psc_ilb_consumer_name"] + region = var.compute_service_attachment_conf["region"] + + target = google_compute_service_attachment.psc_ilb_service_attachment.id + load_balancing_scheme = "" # need to override EXTERNAL default when target is a service attachment + network = var.compute_service_attachment_conf["network_id"] + ip_address = google_compute_address.psc_ilb_consumer_address.id +} + +resource "google_compute_forwarding_rule" "psc_ilb_target_service" { + name = var.compute_service_attachment_conf["psc_ilb_target_service_name"] + region = var.compute_service_attachment_conf["region"] + + load_balancing_scheme = var.compute_service_attachment_conf["load_balancing_scheme"] + backend_service = google_compute_region_backend_service.producer_service_backend.id + all_ports = var.compute_service_attachment_conf["all_ports"] + network = google_compute_network.psc_ilb_network.name + subnetwork = google_compute_subnetwork.psc_ilb_producer_subnetwork.name +} + +resource "google_compute_region_backend_service" "producer_service_backend" { + name = var.compute_service_attachment_conf["producer_service_backend_name"] + region = var.compute_service_attachment_conf["region"] + + health_checks = [google_compute_health_check.producer_service_health_check.id] +} + +resource "google_compute_health_check" "producer_service_health_check" { + name = var.compute_service_attachment_conf["producer_service_health_check_name"] + + check_interval_sec = 1 + timeout_sec = 1 + tcp_health_check { + port = var.compute_service_attachment_conf["producer_service_health_check_port"] + } +} + +resource "google_compute_network" "psc_ilb_network" { + name = var.compute_service_attachment_conf["psc_ilb_network_name"] + auto_create_subnetworks = var.compute_service_attachment_conf["auto_create_subnetworks"] +} + +resource "google_compute_subnetwork" "psc_ilb_producer_subnetwork" { + name = var.compute_service_attachment_conf["psc_ilb_producer_subnetwork_name"] + region = var.compute_service_attachment_conf["region"] + + network = google_compute_network.psc_ilb_network.id + ip_cidr_range = var.compute_service_attachment_conf["subnetwork_ip_cidr_range"] +} + +resource "google_compute_subnetwork" "psc_ilb_nat" { + name = var.compute_service_attachment_conf["psc_ilb_nat_name"] + region = var.compute_service_attachment_conf["region"] + + network = google_compute_network.psc_ilb_network.id + purpose = var.compute_service_attachment_conf["purpose"] + ip_cidr_range = var.compute_service_attachment_conf["nat_ip_cidr_range"] +} diff --git a/test/integration/configuration/mm-attributes.yml b/test/integration/configuration/mm-attributes.yml index 37074e018..6b2327720 100644 --- a/test/integration/configuration/mm-attributes.yml +++ b/test/integration/configuration/mm-attributes.yml @@ -562,3 +562,28 @@ cloud_composer_v1: name : "example-composer-env" region : "us-central1" image_version : "composer-1.20.12-airflow-2.4.3" + +compute_service_attachment_conf: + compute_service_attachment_name: "my-psc-ilb" + description: "my-psc-ilb is a private service connection for the internal load balancer" + region: "us-central1" + enable_proxy_protocol: true + connection_preference: "ACCEPT_AUTOMATIC" + psc_ilb_consumer_address_name: "my-psc-ilb-consumer-address" + subnetwork_id: "default" + address_type: "INTERNAL" + psc_ilb_consumer_name: "my-psc-ilb-consumer-forwarding-rule" + network_id: "default" + psc_ilb_target_service_name: "producer-forwarding-rule" + load_balancing_scheme: "INTERNAL" + all_ports: true + producer_service_backend_name: "producer-backend-service" + producer_service_health_check_name: "producer-health-check" + producer_service_health_check_port: "80" + psc_ilb_network_name: "psc-ilb-network" + auto_create_subnetworks: false + psc_ilb_producer_subnetwork_name: "psc-ilb-producer-subnetwork" + subnetwork_ip_cidr_range: "10.0.0.0/16" + psc_ilb_nat_name: "psc-ilb-nat" + purpose: "PRIVATE_SERVICE_CONNECT" + nat_ip_cidr_range: "10.1.0.0/16" From 06b0fbe997290ac11cc956e80078dc765ca32bcc Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 12 Dec 2023 16:18:16 +0530 Subject: [PATCH 65/83] specs: update specs to match with deployed service attachment with terraform Signed-off-by: Sonu Saha --- .../google_compute_service_attachment.rb | 36 +++++++--------- .../google_compute_service_attachments.rb | 41 +++++++++++-------- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/test/integration/verify/controls/google_compute_service_attachment.rb b/test/integration/verify/controls/google_compute_service_attachment.rb index e7740f307..5820774b0 100644 --- a/test/integration/verify/controls/google_compute_service_attachment.rb +++ b/test/integration/verify/controls/google_compute_service_attachment.rb @@ -16,42 +16,36 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - service_attachment = input('service_attachment', value: { - "project": "value_project", - "region": "value_region", - "service_attachment": "value_serviceattachment", - "kind": "value_kind", - "id": "value_id", - "creation_timestamp": "value_creationtimestamp", - "name": "value_name", - "description": "value_description", - "self_link": "value_selflink", - "producer_forwarding_rule": "value_producerforwardingrule", - "target_service": "value_targetservice", - "connection_preference": "value_connectionpreference", - "fingerprint": "value_fingerprint" +service_attachment = input('service_attachment', value: { + "project": "ppradhan", + "region": "us-central1", + "service_attachment": "my-psc-ilb", + "service_attachment_2": "my-psc-ilb-2", + "kind": "compute#serviceAttachment", + "name": "my-psc-ilb", + "description": "my-psc-ilb is a private service connection for the internal load balancer", + "self_link": "https://www.googleapis.com/compute/v1/projects/ppradhan/regions/us-central1/serviceAttachments/my-psc-ilb", + "target_service": "https://www.googleapis.com/compute/v1/projects/ppradhan/regions/us-central1/forwardingRules/producer-forwarding-rule", + "connection_preference": "ACCEPT_AUTOMATIC", }, description: 'service_attachment description') + control 'google_compute_service_attachment-1.0' do impact 1.0 title 'google_compute_service_attachment resource test' - describe google_compute_service_attachment(project: gcp_project_id, region: service_attachment['region'], serviceAttachment: service_attachment['serviceAttachment']) do + describe google_compute_service_attachment(project: gcp_project_id, region: service_attachment['region'], service_attachment: service_attachment['service_attachment']) do it { should exist } its('kind') { should cmp service_attachment['kind'] } - its('id') { should cmp service_attachment['id'] } - its('creation_timestamp') { should cmp service_attachment['creation_timestamp'] } its('name') { should cmp service_attachment['name'] } its('description') { should cmp service_attachment['description'] } its('self_link') { should cmp service_attachment['self_link'] } - its('region') { should cmp service_attachment['region'] } + its('region') { should include service_attachment['region'] } its('producer_forwarding_rule') { should cmp service_attachment['producer_forwarding_rule'] } its('target_service') { should cmp service_attachment['target_service'] } its('connection_preference') { should cmp service_attachment['connection_preference'] } - its('fingerprint') { should cmp service_attachment['fingerprint'] } - end - describe google_compute_service_attachment(project: gcp_project_id, region: service_attachment['region'], serviceAttachment: service_attachment['serviceAttachment']) do + describe google_compute_service_attachment(project: gcp_project_id, region: service_attachment['region'], service_attachment: service_attachment['service_attachment_2']) do it { should_not exist } end end diff --git a/test/integration/verify/controls/google_compute_service_attachments.rb b/test/integration/verify/controls/google_compute_service_attachments.rb index 085bd4e72..01dce8261 100644 --- a/test/integration/verify/controls/google_compute_service_attachments.rb +++ b/test/integration/verify/controls/google_compute_service_attachments.rb @@ -16,26 +16,33 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - service_attachment = input('service_attachment', value: { - "project": "value_project", - "region": "value_region", - "service_attachment": "value_serviceattachment", - "kind": "value_kind", - "id": "value_id", - "creation_timestamp": "value_creationtimestamp", - "name": "value_name", - "description": "value_description", - "self_link": "value_selflink", - "producer_forwarding_rule": "value_producerforwardingrule", - "target_service": "value_targetservice", - "connection_preference": "value_connectionpreference", - "fingerprint": "value_fingerprint" +service_attachment = input('service_attachment', value: { + "project": "ppradhan", + "region": "us-central1", + "service_attachment": "my-psc-ilb", + "kind": "compute#serviceAttachment", + "name": "my-psc-ilb", + "description": "my-psc-ilb is a private service connection for the internal load balancer", + "self_link": "https://www.googleapis.com/compute/v1/projects/ppradhan/regions/us-central1/serviceAttachments/my-psc-ilb", + "target_service": "https://www.googleapis.com/compute/v1/projects/ppradhan/regions/us-central1/forwardingRules/producer-forwarding-rule", + "connection_preference": "ACCEPT_AUTOMATIC", }, description: 'service_attachment description') + control 'google_compute_service_attachments-1.0' do impact 1.0 title 'google_compute_service_attachments resource test' - describe google_compute_service_attachments(project: gcp_project_id, region: service_attachment['region']) do - it { should exist } - end + describe google_compute_service_attachments(project: gcp_project_id, region: service_attachment['region']) do + it { should exist } + its("names") { should include service_attachment['name'] } + its("self_links") { should include service_attachment['self_link'] } + its("kinds") { should include service_attachment['kind'] } + its("descriptions") { should include service_attachment['description'] } + its("target_services") { should include service_attachment['target_service'] } + its("connection_preferences") { should include service_attachment['connection_preference'] } + end + + describe google_compute_service_attachments(project: gcp_project_id, region: "us-west2") do + it { should_not exist } + end end From 899fd979d254ae2c305ecf37caf4a5d3373f81d8 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 12 Dec 2023 16:29:49 +0530 Subject: [PATCH 66/83] docs: update docs for google_compute_service_attachment Signed-off-by: Sonu Saha --- README.md | 1 + docs/resources/google_compute_service_attachment.md | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index fa1392260..d3e614a6f 100644 --- a/README.md +++ b/README.md @@ -376,6 +376,7 @@ The following resources are available in the InSpec GCP Profile | [google_vertex_ai_tensorboard_experiment_run_time_series_resource](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resource.md) | [google_vertex_ai_tensorboard_experiment_run_time_series_resources](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resources.md) | | [google_vertex_ai_training_pipeline](docs/resources/google_vertex_ai_training_pipeline.md) | [google_vertex_ai_training_pipelines](docs/resources/google_vertex_ai_training_pipelines.md) | | [google_composer_project_location_environment](docs/resources/google_composer_project_location_environment.md) | [google_composer_project_location_environments](docs/resources/google_composer_project_location_environment.md) | +| [google_compute_service_attachment](docs/resources/google_compute_service_attachment.md) | [google_compute_service_attachments](docs/resources/google_compute_service_attachments.md) | ## Examples diff --git a/docs/resources/google_compute_service_attachment.md b/docs/resources/google_compute_service_attachment.md index cc4deb7cf..534a81b39 100644 --- a/docs/resources/google_compute_service_attachment.md +++ b/docs/resources/google_compute_service_attachment.md @@ -8,7 +8,7 @@ A `google_compute_service_attachment` is used to test a Google ServiceAttachment ## Examples ``` -describe google_compute_service_attachment(project: 'chef-gcp-inspec', region: ' value_region', serviceAttachment: ' ') do +describe google_compute_service_attachment(project: 'chef-gcp-inspec', region: ' value_region', service_attachment: ' ') do it { should exist } its('kind') { should cmp 'value_kind' } its('id') { should cmp 'value_id' } @@ -24,7 +24,7 @@ describe google_compute_service_attachment(project: 'chef-gcp-inspec', region: ' end -describe google_compute_service_attachment(project: 'chef-gcp-inspec', region: ' value_region', serviceAttachment: ' ') do +describe google_compute_service_attachment(project: 'chef-gcp-inspec', region: ' value_region', service_attachment: ' ') do it { should_not exist } end ``` @@ -88,11 +88,11 @@ Properties that can be accessed from the `google_compute_service_attachment` res * `connection_limit`: The value of the limit to set. - * `psc_service_attachment_id`: + * `psc_service_attachment_id`: - * `high`: + * `high`: - * `low`: + * `low`: * `fingerprint`: Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment. From 7d82d182227ccd5f6840368d87b466e960d739a1 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Tue, 12 Dec 2023 14:26:34 +0000 Subject: [PATCH 67/83] Bump version to 1.11.63 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e01df5a68..3a1f15f3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.63](https://github.com/inspec/inspec-gcp/tree/v1.11.63) (2023-12-12) + +#### Merged Pull Requests +- CHEF-7384: MAGIC-MODULE-compute-ServiceAttachment - Resource Implementation [#535](https://github.com/inspec/inspec-gcp/pull/535) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.62](https://github.com/inspec/inspec-gcp/tree/v1.11.62) (2023-12-08) #### Merged Pull Requests - CHEF-7357-MAGIC-MODULE-apigee-Organizations__envgroups__attachment - Resource Implementation [#540](https://github.com/inspec/inspec-gcp/pull/540) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.61](https://github.com/inspec/inspec-gcp/tree/v1.11.61) (2023-12-08) diff --git a/VERSION b/VERSION index cc0f85bf0..da2d8c707 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.62 \ No newline at end of file +1.11.63 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 3e878799d..1cfd7ca1f 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.62 +version: 1.11.63 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 08f92e6b96fb275ad4a03b70a55c2e4a92dc1cbf Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Tue, 12 Dec 2023 19:57:37 +0530 Subject: [PATCH 68/83] chore: correct typo in README for resource reference Signed-off-by: Sonu Saha --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3e614a6f..908d58322 100644 --- a/README.md +++ b/README.md @@ -375,7 +375,7 @@ The following resources are available in the InSpec GCP Profile | [google_vertex_ai_tensorboard_experiment_run](docs/resources/google_vertex_ai_tensorboard_experiment_run.md) | [google_vertex_ai_tensorboard_experiment_runs](docs/resources/google_vertex_ai_tensorboard_experiment_runs.md) | | [google_vertex_ai_tensorboard_experiment_run_time_series_resource](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resource.md) | [google_vertex_ai_tensorboard_experiment_run_time_series_resources](docs/resources/google_vertex_ai_tensorboard_experiment_run_time_series_resources.md) | | [google_vertex_ai_training_pipeline](docs/resources/google_vertex_ai_training_pipeline.md) | [google_vertex_ai_training_pipelines](docs/resources/google_vertex_ai_training_pipelines.md) | -| [google_composer_project_location_environment](docs/resources/google_composer_project_location_environment.md) | [google_composer_project_location_environments](docs/resources/google_composer_project_location_environment.md) | +| [google_composer_project_location_environment](docs/resources/google_composer_project_location_environment.md) | [google_composer_project_location_environments](docs/resources/google_composer_project_location_environments.md) | | [google_compute_service_attachment](docs/resources/google_compute_service_attachment.md) | [google_compute_service_attachments](docs/resources/google_compute_service_attachments.md) | ## Examples From e5be6044f11fe852752849dd274aa4996431639a Mon Sep 17 00:00:00 2001 From: balasubramanian-s Date: Tue, 12 Dec 2023 20:00:32 +0530 Subject: [PATCH 69/83] add terraform scripts Signed-off-by: balasubramanian-s --- libraries/google_compute_vpn_gateways.rb | 2 +- test/integration/build/gcp-mm.tf | 15 ++++++++++++++- test/integration/configuration/mm-attributes.yml | 14 ++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/libraries/google_compute_vpn_gateways.rb b/libraries/google_compute_vpn_gateways.rb index 963cc78d4..3c167619a 100644 --- a/libraries/google_compute_vpn_gateways.rb +++ b/libraries/google_compute_vpn_gateways.rb @@ -41,7 +41,7 @@ class ComputeVpnGateways < GcpResourceBase def initialize(params = {}) super(params.merge({ use_http_transport: true })) @params = params - @table = fetch_wrapped_resource('vpnGateways') + @table = fetch_wrapped_resource('items') end def fetch_wrapped_resource(wrap_path) diff --git a/test/integration/build/gcp-mm.tf b/test/integration/build/gcp-mm.tf index 748179b4c..8e5b69e61 100644 --- a/test/integration/build/gcp-mm.tf +++ b/test/integration/build/gcp-mm.tf @@ -215,7 +215,9 @@ variable "spannerdatabase" { variable "scheduler_job" { type = any } - +variable "vpn_gateway" { + type = any +} resource "google_compute_ssl_policy" "custom-ssl-policy" { name = var.ssl_policy["name"] @@ -1552,3 +1554,14 @@ resource "google_vertex_ai_index" "index" { } index_update_method = "STREAM_UPDATE" } +resource "google_compute_ha_vpn_gateway" "ha_vpn_gateway" { + project = var.vpn_gateway.project + region = var.vpn_gateway.region + name = var.vpn_gateway.name + network = google_compute_network.network1.id +} +resource "google_compute_network" "network1" { + project = var.vpn_gateway.project + name = "network1" + auto_create_subnetworks = false +} diff --git a/test/integration/configuration/mm-attributes.yml b/test/integration/configuration/mm-attributes.yml index db5c85cba..91568c5d9 100644 --- a/test/integration/configuration/mm-attributes.yml +++ b/test/integration/configuration/mm-attributes.yml @@ -557,3 +557,17 @@ dlp: name: "dlp-template-inspec" location: "europe-west2" type: "Infotype" + +vpn_gateway: + project : "ppradhan" + region : "us-central1" + vpn_gateway : "4406948336461056012" + kind : "value_kind" + id : "value_id" + creation_timestamp : "value_creationtimestamp" + name : "inspec-vpn-gateway" + description : "Inspec Test HA VPN Gateway" + network : "gcp-inspec-network" + self_link : "value_selflink" + label_fingerprint : "value_labelfingerprint" + stack_type : "IPV4_ONLY" From 0334f5e000bbd22442e3d57627a5d6a3838ac1b9 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Tue, 12 Dec 2023 14:56:31 +0000 Subject: [PATCH 70/83] Bump version to 1.11.64 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a1f15f3f..cfc07057b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.64](https://github.com/inspec/inspec-gcp/tree/v1.11.64) (2023-12-12) + +#### Merged Pull Requests +- chore: correct typo in README for resource reference [#558](https://github.com/inspec/inspec-gcp/pull/558) ([ahasunos](https://github.com/ahasunos)) + + ## [v1.11.63](https://github.com/inspec/inspec-gcp/tree/v1.11.63) (2023-12-12) #### Merged Pull Requests - CHEF-7384: MAGIC-MODULE-compute-ServiceAttachment - Resource Implementation [#535](https://github.com/inspec/inspec-gcp/pull/535) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.62](https://github.com/inspec/inspec-gcp/tree/v1.11.62) (2023-12-08) diff --git a/VERSION b/VERSION index da2d8c707..30a914254 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.63 \ No newline at end of file +1.11.64 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 1cfd7ca1f..3392210ff 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.63 +version: 1.11.64 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From e83799ef77c64ea6a80308584c34e842fdb4584a Mon Sep 17 00:00:00 2001 From: balasubramanian-s Date: Tue, 12 Dec 2023 20:58:08 +0530 Subject: [PATCH 71/83] update attributes Signed-off-by: balasubramanian-s --- .../controls/google_compute_vpn_gateway.rb | 16 ++++++++-------- .../controls/google_compute_vpn_gateways.rb | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/test/integration/verify/controls/google_compute_vpn_gateway.rb b/test/integration/verify/controls/google_compute_vpn_gateway.rb index aab0eb458..54e1405bd 100644 --- a/test/integration/verify/controls/google_compute_vpn_gateway.rb +++ b/test/integration/verify/controls/google_compute_vpn_gateway.rb @@ -17,18 +17,18 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') vpn_gateway = input('vpn_gateway', value: { - "project": "value_project", - "region": "value_region", - "vpn_gateway": "value_vpngateway", + "project": "ppradhan", + "region": "us-central1", + "vpn_gateway": "2245103640699591658", "kind": "value_kind", - "id": "value_id", - "creation_timestamp": "value_creationtimestamp", - "name": "value_name", + "id": "2245103640699591658", + "creation_timestamp": "2023-12-12T05:49:57.914-08:00", + "name": "inspec-vpn-gateway", "description": "value_description", - "network": "value_network", + "network": "https://www.googleapis.com/compute/v1/projects/ppradhan/global/networks/network1", "self_link": "value_selflink", "label_fingerprint": "value_labelfingerprint", - "stack_type": "value_stacktype" + "stack_type": "IPV4_ONLY" }, description: 'vpn_gateway description') control 'google_compute_vpn_gateway-1.0' do impact 1.0 diff --git a/test/integration/verify/controls/google_compute_vpn_gateways.rb b/test/integration/verify/controls/google_compute_vpn_gateways.rb index 8f9052e0b..bc52719c0 100644 --- a/test/integration/verify/controls/google_compute_vpn_gateways.rb +++ b/test/integration/verify/controls/google_compute_vpn_gateways.rb @@ -17,18 +17,18 @@ gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') vpn_gateway = input('vpn_gateway', value: { - "project": "value_project", - "region": "value_region", - "vpn_gateway": "value_vpngateway", + "project": "ppradhan", + "region": "us-central1", + "vpn_gateway": "2245103640699591658", "kind": "value_kind", - "id": "value_id", - "creation_timestamp": "value_creationtimestamp", - "name": "value_name", + "id": "2245103640699591658", + "creation_timestamp": "2023-12-12T05:49:57.914-08:00", + "name": "inspec-vpn-gateway", "description": "value_description", - "network": "value_network", + "network": "https://www.googleapis.com/compute/v1/projects/ppradhan/global/networks/network1", "self_link": "value_selflink", "label_fingerprint": "value_labelfingerprint", - "stack_type": "value_stacktype" + "stack_type": "IPV4_ONLY" }, description: 'vpn_gateway description') control 'google_compute_vpn_gateways-1.0' do impact 1.0 From fb8414f5d1044106b3e1c58e76ba516857c31a97 Mon Sep 17 00:00:00 2001 From: balasubramanian-s Date: Tue, 12 Dec 2023 21:02:43 +0530 Subject: [PATCH 72/83] remove duplicate file Signed-off-by: balasubramanian-s --- build/inspec/test/integration/configuration/mm-attributes.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/inspec/test/integration/configuration/mm-attributes.yml diff --git a/build/inspec/test/integration/configuration/mm-attributes.yml b/build/inspec/test/integration/configuration/mm-attributes.yml deleted file mode 100644 index e69de29bb..000000000 From dec22a4954c70c1b9f4aaff26dff5a98e9e55923 Mon Sep 17 00:00:00 2001 From: balasubramanian-s Date: Tue, 12 Dec 2023 21:04:54 +0530 Subject: [PATCH 73/83] fix linting issues Signed-off-by: balasubramanian-s --- libraries/google_compute_vpn_gateways.rb | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/libraries/google_compute_vpn_gateways.rb b/libraries/google_compute_vpn_gateways.rb index 3c167619a..cc49c72cf 100644 --- a/libraries/google_compute_vpn_gateways.rb +++ b/libraries/google_compute_vpn_gateways.rb @@ -74,18 +74,18 @@ def transform(key, value) def transformers { - 'kind' => ->(obj) { return :kind, obj['kind'] }, - 'id' => ->(obj) { return :id, obj['id'] }, - 'creationTimestamp' => ->(obj) { return :creation_timestamp, obj['creationTimestamp'] }, - 'name' => ->(obj) { return :name, obj['name'] }, - 'description' => ->(obj) { return :description, obj['description'] }, - 'region' => ->(obj) { return :region, obj['region'] }, - 'network' => ->(obj) { return :network, obj['network'] }, - 'selfLink' => ->(obj) { return :self_link, obj['selfLink'] }, - 'labels' => ->(obj) { return :labels, GoogleInSpec::Compute::Property::VpnGatewayLabels.new(obj['labels'], to_s) }, - 'labelFingerprint' => ->(obj) { return :label_fingerprint, obj['labelFingerprint'] }, - 'vpnInterfaces' => ->(obj) { return :vpn_interfaces, GoogleInSpec::Compute::Property::VpnGatewayVpnInterfacesArray.parse(obj['vpnInterfaces'], to_s) }, - 'stackType' => ->(obj) { return :stack_type, obj['stackType'] }, + 'kind' => ->(obj) { [:kind, obj['kind']] }, + 'id' => ->(obj) { [:id, obj['id']] }, + 'creationTimestamp' => ->(obj) { [:creation_timestamp, obj['creationTimestamp']] }, + 'name' => ->(obj) { [:name, obj['name']] }, + 'description' => ->(obj) { [:description, obj['description']] }, + 'region' => ->(obj) { [:region, obj['region']] }, + 'network' => ->(obj) { [:network, obj['network']] }, + 'selfLink' => ->(obj) { [:self_link, obj['selfLink']] }, + 'labels' => ->(obj) { [:labels, GoogleInSpec::Compute::Property::VpnGatewayLabels.new(obj['labels'], to_s)] }, + 'labelFingerprint' => ->(obj) { [:label_fingerprint, obj['labelFingerprint']] }, + 'vpnInterfaces' => ->(obj) { [:vpn_interfaces, GoogleInSpec::Compute::Property::VpnGatewayVpnInterfacesArray.parse(obj['vpnInterfaces'], to_s)] }, + 'stackType' => ->(obj) { [:stack_type, obj['stackType']] }, } end From 3c3701e29b6eb7e9f4bbbd51a8301ebed53c4a26 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Wed, 13 Dec 2023 04:47:13 +0000 Subject: [PATCH 74/83] Bump version to 1.11.65 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cfc07057b..e56c3541d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.65](https://github.com/inspec/inspec-gcp/tree/v1.11.65) (2023-12-13) + +#### Merged Pull Requests +- CHEF-7382-MAGIC-MODULE-compute-VpnGateway - Resource Implementation [#534](https://github.com/inspec/inspec-gcp/pull/534) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.64](https://github.com/inspec/inspec-gcp/tree/v1.11.64) (2023-12-12) #### Merged Pull Requests - chore: correct typo in README for resource reference [#558](https://github.com/inspec/inspec-gcp/pull/558) ([ahasunos](https://github.com/ahasunos)) - ## [v1.11.63](https://github.com/inspec/inspec-gcp/tree/v1.11.63) (2023-12-12) diff --git a/VERSION b/VERSION index 30a914254..b3986ef9d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.64 \ No newline at end of file +1.11.65 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 3392210ff..08de4fec0 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.64 +version: 1.11.65 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 7c5dddde2a0cdc902ae5140bda63d608c54ec278 Mon Sep 17 00:00:00 2001 From: Samir Anand Date: Thu, 14 Dec 2023 14:27:30 +0530 Subject: [PATCH 75/83] Removed the wrong dir from inspec-gcp. Signed-off-by: Samir Anand --- inspec/Gemfile | 20 ------------ ...google_compute_public_advertised_prefix.rb | 31 ------------------ ...ogle_compute_public_advertised_prefixes.rb | 28 ---------------- ...le_compute_region_notification_endpoint.rb | 32 ------------------- ...e_compute_region_notification_endpoints.rb | 32 ------------------- ...google_compute_region_security_policies.rb | 31 ------------------ .../google_compute_region_security_policy.rb | 31 ------------------ 7 files changed, 205 deletions(-) delete mode 100644 inspec/Gemfile delete mode 100644 inspec/test/integration/verify/controls/google_compute_public_advertised_prefix.rb delete mode 100644 inspec/test/integration/verify/controls/google_compute_public_advertised_prefixes.rb delete mode 100644 inspec/test/integration/verify/controls/google_compute_region_notification_endpoint.rb delete mode 100644 inspec/test/integration/verify/controls/google_compute_region_notification_endpoints.rb delete mode 100644 inspec/test/integration/verify/controls/google_compute_region_security_policies.rb delete mode 100644 inspec/test/integration/verify/controls/google_compute_region_security_policy.rb diff --git a/inspec/Gemfile b/inspec/Gemfile deleted file mode 100644 index 1af5bd5d6..000000000 --- a/inspec/Gemfile +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -source 'https://rubygems.org' - -gem 'bundle' -gem 'faraday', '>= 0.16.2' -gem 'google-api-client' -gem 'googleauth' -gem 'google-cloud' -gem 'inifile' -gem 'inspec-bin', '4.16.0' -gem 'rubocop', '>= 0.77.0' - -group :development do - gem 'github_changelog_generator' - gem 'pry-coolline' - gem 'rake' - gem 'vcr' - gem 'webmock' -end diff --git a/inspec/test/integration/verify/controls/google_compute_public_advertised_prefix.rb b/inspec/test/integration/verify/controls/google_compute_public_advertised_prefix.rb deleted file mode 100644 index 17c404f6f..000000000 --- a/inspec/test/integration/verify/controls/google_compute_public_advertised_prefix.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_compute_public_advertised_prefix resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - -public_advertised_prefix = input('security_policy', value: { - "publicadvertisedprefix": 'value_publicadvertisedprefix', - }, description: 'public_advertised_prefix description') -control 'google_compute_public_advertised_prefix-1.0' do - impact 1.0 - title 'google_compute_public_advertised_prefix resource test' - - describe google_compute_public_advertised_prefix(project: gcp_project_id, name: public_advertised_prefix['name']) do - it { should exist } - end -end diff --git a/inspec/test/integration/verify/controls/google_compute_public_advertised_prefixes.rb b/inspec/test/integration/verify/controls/google_compute_public_advertised_prefixes.rb deleted file mode 100644 index 05531a7c3..000000000 --- a/inspec/test/integration/verify/controls/google_compute_public_advertised_prefixes.rb +++ /dev/null @@ -1,28 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_compute_public_advertised_prefixes resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - -control 'google_compute_public_advertised_prefixes-1.0' do - impact 1.0 - title 'google_compute_public_advertised_prefixes resource test' - - describe google_compute_public_advertised_prefixes(project: gcp_project_id) do - it { should exist } - end -end diff --git a/inspec/test/integration/verify/controls/google_compute_region_notification_endpoint.rb b/inspec/test/integration/verify/controls/google_compute_region_notification_endpoint.rb deleted file mode 100644 index 591397d30..000000000 --- a/inspec/test/integration/verify/controls/google_compute_region_notification_endpoint.rb +++ /dev/null @@ -1,32 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_compute_region_notification_endpoint resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - -region_notification_endpoint = input('security_policy', value: { - "region": 'value_region', -"notificationendpoint": 'value_notificationendpoint', - }, description: 'region_notification_endpoint description') -control 'google_compute_region_notification_endpoint-1.0' do - impact 1.0 - title 'google_compute_region_notification_endpoint resource test' - - describe google_compute_region_notification_endpoint(project: gcp_project_id, region: region_notification_endpoint['region'], name: region_notification_endpoint['name']) do - it { should exist } - end -end diff --git a/inspec/test/integration/verify/controls/google_compute_region_notification_endpoints.rb b/inspec/test/integration/verify/controls/google_compute_region_notification_endpoints.rb deleted file mode 100644 index ce5c076ce..000000000 --- a/inspec/test/integration/verify/controls/google_compute_region_notification_endpoints.rb +++ /dev/null @@ -1,32 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_compute_region_notification_endpoints resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - -region_notification_endpoint = input('security_policy', value: { - "region": 'value_region', -"notificationendpoint": 'value_notificationendpoint', - }, description: 'region_notification_endpoint description') -control 'google_compute_region_notification_endpoints-1.0' do - impact 1.0 - title 'google_compute_region_notification_endpoints resource test' - - describe google_compute_region_notification_endpoints(project: gcp_project_id, region: region_notification_endpoint['region']) do - it { should exist } - end -end diff --git a/inspec/test/integration/verify/controls/google_compute_region_security_policies.rb b/inspec/test/integration/verify/controls/google_compute_region_security_policies.rb deleted file mode 100644 index 4ba2eab84..000000000 --- a/inspec/test/integration/verify/controls/google_compute_region_security_policies.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_compute_region_security_policies resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - -region_security_policy = input('security_policy', value: { - "securitypolicy": 'value_securitypolicy', - }, description: 'region_security_policy description') -control 'google_compute_region_security_policies-1.0' do - impact 1.0 - title 'google_compute_region_security_policies resource test' - - describe google_compute_region_security_policies(project: gcp_project_id, region: region_security_policy['region']) do - it { should exist } - end -end diff --git a/inspec/test/integration/verify/controls/google_compute_region_security_policy.rb b/inspec/test/integration/verify/controls/google_compute_region_security_policy.rb deleted file mode 100644 index e807ca71b..000000000 --- a/inspec/test/integration/verify/controls/google_compute_region_security_policy.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -# ---------------------------------------------------------------------------- -# -# *** 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_compute_region_security_policy resource.' - -gcp_project_id = input(:gcp_project_id, value: 'gcp_project_id', description: 'The GCP project identifier.') - -region_security_policy = input('security_policy', value: { - "securitypolicy": 'value_securitypolicy', - }, description: 'region_security_policy description') -control 'google_compute_region_security_policy-1.0' do - impact 1.0 - title 'google_compute_region_security_policy resource test' - - describe google_compute_region_security_policy(project: gcp_project_id, region: region_security_policy['region'], name: region_security_policy['name']) do - it { should exist } - end -end From c3914f6caae29d8cb899a7339930c5ea03d929d0 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Fri, 15 Dec 2023 11:30:08 +0000 Subject: [PATCH 76/83] Bump version to 1.11.66 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e56c3541d..6abeb1e70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.66](https://github.com/inspec/inspec-gcp/tree/v1.11.66) (2023-12-15) + +#### Merged Pull Requests +- CHEF - Removed the wrong dir from inspec-gcp. [#561](https://github.com/inspec/inspec-gcp/pull/561) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.65](https://github.com/inspec/inspec-gcp/tree/v1.11.65) (2023-12-13) #### Merged Pull Requests - CHEF-7382-MAGIC-MODULE-compute-VpnGateway - Resource Implementation [#534](https://github.com/inspec/inspec-gcp/pull/534) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.64](https://github.com/inspec/inspec-gcp/tree/v1.11.64) (2023-12-12) diff --git a/VERSION b/VERSION index b3986ef9d..7841703b8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.65 \ No newline at end of file +1.11.66 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 08de4fec0..9d27505b2 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.65 +version: 1.11.66 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 9f419e312ea859618e0a3eb195eb54a71aed31b3 Mon Sep 17 00:00:00 2001 From: Sonu Saha Date: Thu, 21 Dec 2023 14:59:12 +0530 Subject: [PATCH 77/83] Update inspec version pinning in Gemfile Signed-off-by: Sonu Saha --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 019e07c3b..523e71d4f 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ gem 'google-api-client' gem 'google-cloud' gem 'googleauth' gem 'inifile' -gem 'inspec-bin', '4.16.0' +gem 'inspec-bin', '>= 4.16.0' gem 'rubocop', '>= 0.77.0' group :development do From 188bc6b739d56b93c9ae040fc5fdda4aacb61a8f Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Thu, 21 Dec 2023 09:30:28 +0000 Subject: [PATCH 78/83] Bump version to 1.11.67 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6abeb1e70..138cd3605 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.67](https://github.com/inspec/inspec-gcp/tree/v1.11.67) (2023-12-21) + +#### Merged Pull Requests +- Update inspec version pinning in Gemfile [#563](https://github.com/inspec/inspec-gcp/pull/563) ([ahasunos](https://github.com/ahasunos)) + + ## [v1.11.66](https://github.com/inspec/inspec-gcp/tree/v1.11.66) (2023-12-15) #### Merged Pull Requests - CHEF - Removed the wrong dir from inspec-gcp. [#561](https://github.com/inspec/inspec-gcp/pull/561) ([sa-progress](https://github.com/sa-progress)) - ## [v1.11.65](https://github.com/inspec/inspec-gcp/tree/v1.11.65) (2023-12-13) diff --git a/VERSION b/VERSION index 7841703b8..93e3ffe76 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.66 \ No newline at end of file +1.11.67 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 9d27505b2..46d41f16e 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.66 +version: 1.11.67 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From d019e23011999f540a83e5ba832459b45a4abbff Mon Sep 17 00:00:00 2001 From: Samir <85890442+sa-progress@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:49:04 +0530 Subject: [PATCH 79/83] long to short name conversion Signed-off-by: Samir <85890442+sa-progress@users.noreply.github.com> --- ...tionrepository_remote_repository_config.rb | 2 +- ..._repository_config_upstream_credentials.rb | 2 +- ...locationrepository_rrcucup_credentials.rb} | 0 ...t_con_rec_tf_field_tf_con_exps_con_cond.rb | 4 +-- ...c_tf_field_tf_con_exps_con_cond_new_val.rb | 4 +-- ...l.rb => job_adddrosirdcrtftceccnvd_val.rb} | 0 ...l.rb => job_adddrosirdcrtftceccnvt_val.rb} | 0 ... => batchpredictionjob_espigabb_config.rb} | 0 ... => batchpredictionjob_espigasg_config.rb} | 4 +-- ...> batchpredictionjob_espigasgcfn_sigma.rb} | 2 +- ...batchpredictionjob_espigasgcfnsn_sigma.rb} | 0 ...=> batchpredictionjob_espxasgcfn_sigma.rb} | 2 +- ... batchpredictionjob_espxasgcfnsn_sigma.rb} | 0 .../batchpredictionjob_explanation_spec.rb | 12 +++---- ...edictionjob_explanation_spec_parameters.rb | 12 +++---- ...meters_integrated_gradients_attribution.rb | 8 ++--- ...nation_spec_parameters_xrai_attribution.rb | 4 +-- ...ers_xrai_attribution_smooth_grad_config.rb | 4 +-- .../property/endpoint_deployed_models.rb | 12 +++---- ...dpoint_deployed_models_explanation_spec.rb | 12 +++---- ...oyed_models_explanation_spec_parameters.rb | 12 +++---- ...meters_integrated_gradients_attribution.rb | 8 ++--- ...nation_spec_parameters_xrai_attribution.rb | 4 +-- ...ers_xrai_attribution_smooth_grad_config.rb | 4 +-- ...onfig.rb => endpoint_dmespigabb_config.rb} | 0 ...onfig.rb => endpoint_dmespigasg_config.rb} | 4 +-- ...gma.rb => endpoint_dmespigasgcfn_sigma.rb} | 2 +- ...a.rb => endpoint_dmespigasgcfnsn_sigma.rb} | 0 ...igma.rb => endpoint_dmespxasgcfn_sigma.rb} | 2 +- ...ma.rb => endpoint_dmespxasgcfnsn_sigma.rb} | 0 ...se_sigma.rb => model_espigasgcfn_sigma.rb} | 2 +- ..._sigma.rb => model_espigasgcfnsn_sigma.rb} | 0 ...e_sigma.rb => model_espxasgcfnsn_sigma.rb} | 0 .../property/model_explanation_spec.rb | 6 ++-- .../model_explanation_spec_parameters.rb | 6 ++-- ...meters_integrated_gradients_attribution.rb | 4 +-- ...radients_attribution_smooth_grad_config.rb | 4 +-- ...nation_spec_parameters_xrai_attribution.rb | 2 +- ...ers_xrai_attribution_smooth_grad_config.rb | 2 +- ..._smooth_grad_config_feature_noise_sigma.rb | 2 +- ...eploymentmonitoringjob_mdmococe_config.rb} | 6 ++-- ...ymentmonitoringjob_mdmococece_baseline.rb} | 4 +-- ...mentmonitoringjob_mdmococeceb_bigquery.rb} | 0 ...eploymentmonitoringjob_mdmococeceb_gcs.rb} | 0 ...loymentmonitoringjob_mdmococpdd_config.rb} | 6 ++-- ...onitoringjob_mdmococpddcasd_thresholds.rb} | 0 ...tmonitoringjob_mdmococpddcd_thresholds.rb} | 0 ...tmonitoringjob_mdmococpddcdd_threshold.rb} | 0 ...ploymentmonitoringjob_mdmococt_dataset.rb} | 8 ++--- ...loymentmonitoringjob_mdmococtdb_source.rb} | 0 ...loymentmonitoringjob_mdmococtdg_source.rb} | 0 ...mentmonitoringjob_mdmococtdls_strategy.rb} | 2 +- ...entmonitoringjob_mdmococtdlssrs_config.rb} | 0 ...oymentmonitoringjob_mdmococtpsd_config.rb} | 6 ++-- ...nitoringjob_mdmococtpsdcass_thresholds.rb} | 0 ...monitoringjob_mdmococtpsdcds_threshold.rb} | 0 ...monitoringjob_mdmococtpsdcs_thresholds.rb} | 0 ...deployment_monitoring_objective_configs.rb | 34 +++++++++---------- ...ring_objective_configs_objective_config.rb | 34 +++++++++---------- ... => modelsevaluation_esespeegsg_source.rb} | 0 ... => modelsevaluation_esespigabb_config.rb} | 0 ... => modelsevaluation_esespigasg_config.rb} | 4 +-- ...> modelsevaluation_esespigasgcfn_sigma.rb} | 2 +- ...modelsevaluation_esespigasgcfnsn_sigma.rb} | 0 ...b => modelsevaluation_esespxabb_config.rb} | 0 ...b => modelsevaluation_esespxasg_config.rb} | 4 +-- ...=> modelsevaluation_esespxasgcfn_sigma.rb} | 2 +- ... modelsevaluation_esespxasgcfnsn_sigma.rb} | 0 .../modelsevaluation_explanation_specs.rb | 18 +++++----- ...tion_explanation_specs_explanation_spec.rb | 18 +++++----- ...ation_specs_explanation_spec_parameters.rb | 18 +++++----- ...cs_explanation_spec_parameters_examples.rb | 2 +- ..._parameters_examples_example_gcs_source.rb | 2 +- ...meters_integrated_gradients_attribution.rb | 8 ++--- ...nation_spec_parameters_xrai_attribution.rb | 8 ++--- .../vertexai/property/nasjob_nas_job_spec.rb | 8 ++--- ...nas_job_spec_multi_trial_algorithm_spec.rb | 8 ++--- ..._trial_algorithm_spec_search_trial_spec.rb | 4 +-- ...search_trial_spec_search_trial_job_spec.rb | 4 +-- ...i_trial_algorithm_spec_train_trial_spec.rb | 4 +-- ...c_train_trial_spec_train_trial_job_spec.rb | 4 +-- ...b => nasjob_njsmtasstsstjsbo_directory.rb} | 0 ...cs.rb => nasjob_njsmtasstsstjswp_specs.rb} | 14 ++++---- ...c.rb => nasjob_njsmtasstsstjswpsc_spec.rb} | 2 +- ...v.rb => nasjob_njsmtasstsstjswpscs_env.rb} | 0 ...c.rb => nasjob_njsmtasstsstjswpsd_spec.rb} | 0 ...c.rb => nasjob_njsmtasstsstjswpsm_spec.rb} | 0 ...rb => nasjob_njsmtasstsstjswpsn_mounts.rb} | 0 ....rb => nasjob_njsmtasstsstjswpspp_spec.rb} | 2 +- ....rb => nasjob_njsmtasstsstjswpspps_env.rb} | 0 ...b => nasjob_njsmtasttsttjsbo_directory.rb} | 0 ...cs.rb => nasjob_njsmtasttsttjswp_specs.rb} | 14 ++++---- ...c.rb => nasjob_njsmtasttsttjswpsc_spec.rb} | 2 +- ...v.rb => nasjob_njsmtasttsttjswpscs_env.rb} | 0 ...c.rb => nasjob_njsmtasttsttjswpsd_spec.rb} | 0 ...c.rb => nasjob_njsmtasttsttjswpsm_spec.rb} | 0 ...rb => nasjob_njsmtasttsttjswpsn_mounts.rb} | 0 ....rb => nasjob_njsmtasttsttjswpspp_spec.rb} | 2 +- ....rb => nasjob_njsmtasttsttjswpspps_env.rb} | 0 ...il.rb => schedule_cpjrpjjdtdedc_detail.rb} | 0 ...l.rb => schedule_cpjrpjjdtdedcj_detail.rb} | 0 ...ror.rb => schedule_cpjrpjjdtdpts_error.rb} | 0 ...st_pipeline_job_job_detail_task_details.rb | 4 +-- ...job_detail_task_details_executor_detail.rb | 4 +-- ...etail_task_details_pipeline_task_status.rb | 2 +- .../trainingpipeline_model_to_upload.rb | 16 ++++----- ...peline_model_to_upload_explanation_spec.rb | 16 ++++----- ...l_to_upload_explanation_spec_parameters.rb | 16 ++++----- ...ad_explanation_spec_parameters_examples.rb | 2 +- ..._parameters_examples_example_gcs_source.rb | 2 +- ...meters_integrated_gradients_attribution.rb | 8 ++--- ...nation_spec_parameters_xrai_attribution.rb | 6 ++-- ...ers_xrai_attribution_smooth_grad_config.rb | 4 +-- ...=> trainingpipeline_mtuespeegsg_source.rb} | 0 ...=> trainingpipeline_mtuespigabb_config.rb} | 0 ...=> trainingpipeline_mtuespigasg_config.rb} | 4 +-- ... trainingpipeline_mtuespigasgcfn_sigma.rb} | 2 +- ...rainingpipeline_mtuespigasgcfnsn_sigma.rb} | 0 ... => trainingpipeline_mtuespxabb_config.rb} | 0 ...> trainingpipeline_mtuespxasgcfn_sigma.rb} | 2 +- ...trainingpipeline_mtuespxasgcfnsn_sigma.rb} | 0 ...actregistry_project_location_repository.rb | 2 +- .../google_vertex_ai_batch_prediction_job.rb | 12 +++---- libraries/google_vertex_ai_model.rb | 6 ++-- libraries/google_vertex_ai_nas_job.rb | 8 ++--- .../google_vertex_ai_training_pipeline.rb | 16 ++++----- 126 files changed, 267 insertions(+), 267 deletions(-) rename libraries/google/artifactregistry/property/{projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials.rb => projectlocationrepository_rrcucup_credentials.rb} (100%) rename libraries/google/dlp/property/{job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_date_val.rb => job_adddrosirdcrtftceccnvd_val.rb} (100%) rename libraries/google/dlp/property/{job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_time_val.rb => job_adddrosirdcrtftceccnvt_val.rb} (100%) rename libraries/google/vertexai/property/{batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb => batchpredictionjob_espigabb_config.rb} (100%) rename libraries/google/vertexai/property/{batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb => batchpredictionjob_espigasg_config.rb} (82%) rename libraries/google/vertexai/property/{batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb => batchpredictionjob_espigasgcfn_sigma.rb} (89%) rename libraries/google/vertexai/property/{batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => batchpredictionjob_espigasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb => batchpredictionjob_espxasgcfn_sigma.rb} (89%) rename libraries/google/vertexai/property/{batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => batchpredictionjob_espxasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb => endpoint_dmespigabb_config.rb} (100%) rename libraries/google/vertexai/property/{endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb => endpoint_dmespigasg_config.rb} (82%) rename libraries/google/vertexai/property/{endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb => endpoint_dmespigasgcfn_sigma.rb} (88%) rename libraries/google/vertexai/property/{endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => endpoint_dmespigasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb => endpoint_dmespxasgcfn_sigma.rb} (89%) rename libraries/google/vertexai/property/{endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => endpoint_dmespxasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb => model_espigasgcfn_sigma.rb} (89%) rename libraries/google/vertexai/property/{model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => model_espigasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => model_espxasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config.rb => modeldeploymentmonitoringjob_mdmococe_config.rb} (84%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline.rb => modeldeploymentmonitoringjob_mdmococece_baseline.rb} (89%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_bigquery.rb => modeldeploymentmonitoringjob_mdmococeceb_bigquery.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_gcs.rb => modeldeploymentmonitoringjob_mdmococeceb_gcs.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config.rb => modeldeploymentmonitoringjob_mdmococpdd_config.rb} (85%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_attribution_score_drift_thresholds.rb => modeldeploymentmonitoringjob_mdmococpddcasd_thresholds.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_drift_thresholds.rb => modeldeploymentmonitoringjob_mdmococpddcd_thresholds.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_default_drift_threshold.rb => modeldeploymentmonitoringjob_mdmococpddcdd_threshold.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset.rb => modeldeploymentmonitoringjob_mdmococt_dataset.rb} (84%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_bigquery_source.rb => modeldeploymentmonitoringjob_mdmococtdb_source.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_gcs_source.rb => modeldeploymentmonitoringjob_mdmococtdg_source.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy.rb => modeldeploymentmonitoringjob_mdmococtdls_strategy.rb} (92%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy_random_sample_config.rb => modeldeploymentmonitoringjob_mdmococtdlssrs_config.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config.rb => modeldeploymentmonitoringjob_mdmococtpsd_config.rb} (85%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_attribution_score_skew_thresholds.rb => modeldeploymentmonitoringjob_mdmococtpsdcass_thresholds.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_default_skew_threshold.rb => modeldeploymentmonitoringjob_mdmococtpsdcds_threshold.rb} (100%) rename libraries/google/vertexai/property/{modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_skew_thresholds.rb => modeldeploymentmonitoringjob_mdmococtpsdcs_thresholds.rb} (100%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source.rb => modelsevaluation_esespeegsg_source.rb} (100%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb => modelsevaluation_esespigabb_config.rb} (100%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb => modelsevaluation_esespigasg_config.rb} (81%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb => modelsevaluation_esespigasgcfn_sigma.rb} (88%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => modelsevaluation_esespigasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_blur_baseline_config.rb => modelsevaluation_esespxabb_config.rb} (100%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb => modelsevaluation_esespxasg_config.rb} (82%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb => modelsevaluation_esespxasgcfn_sigma.rb} (89%) rename libraries/google/vertexai/property/{modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => modelsevaluation_esespxasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory.rb => nasjob_njsmtasstsstjsbo_directory.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs.rb => nasjob_njsmtasstsstjswp_specs.rb} (72%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec.rb => nasjob_njsmtasstsstjswpsc_spec.rb} (90%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec_env.rb => nasjob_njsmtasstsstjswpscs_env.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_disk_spec.rb => nasjob_njsmtasstsstjswpsd_spec.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_machine_spec.rb => nasjob_njsmtasstsstjswpsm_spec.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_nfs_mounts.rb => nasjob_njsmtasstsstjswpsn_mounts.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec.rb => nasjob_njsmtasstsstjswpspp_spec.rb} (91%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec_env.rb => nasjob_njsmtasstsstjswpspps_env.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory.rb => nasjob_njsmtasttsttjsbo_directory.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs.rb => nasjob_njsmtasttsttjswp_specs.rb} (72%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec.rb => nasjob_njsmtasttsttjswpsc_spec.rb} (90%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec_env.rb => nasjob_njsmtasttsttjswpscs_env.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_disk_spec.rb => nasjob_njsmtasttsttjswpsd_spec.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_machine_spec.rb => nasjob_njsmtasttsttjswpsm_spec.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_nfs_mounts.rb => nasjob_njsmtasttsttjswpsn_mounts.rb} (100%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec.rb => nasjob_njsmtasttsttjswpspp_spec.rb} (91%) rename libraries/google/vertexai/property/{nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec_env.rb => nasjob_njsmtasttsttjswpspps_env.rb} (100%) rename libraries/google/vertexai/property/{schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_container_detail.rb => schedule_cpjrpjjdtdedc_detail.rb} (100%) rename libraries/google/vertexai/property/{schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_custom_job_detail.rb => schedule_cpjrpjjdtdedcj_detail.rb} (100%) rename libraries/google/vertexai/property/{schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status_error.rb => schedule_cpjrpjjdtdpts_error.rb} (100%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source.rb => trainingpipeline_mtuespeegsg_source.rb} (100%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb => trainingpipeline_mtuespigabb_config.rb} (100%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb => trainingpipeline_mtuespigasg_config.rb} (81%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb => trainingpipeline_mtuespigasgcfn_sigma.rb} (88%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => trainingpipeline_mtuespigasgcfnsn_sigma.rb} (100%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config.rb => trainingpipeline_mtuespxabb_config.rb} (100%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb => trainingpipeline_mtuespxasgcfn_sigma.rb} (89%) rename libraries/google/vertexai/property/{trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb => trainingpipeline_mtuespxasgcfnsn_sigma.rb} (100%) diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb index e71850413..124428f94 100644 --- a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config.rb @@ -20,7 +20,7 @@ require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials' -require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials' +require 'google/artifactregistry/property/projectlocationrepository_rrcucup_credentials' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository' module GoogleInSpec diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb index 4933f4063..9c5450503 100644 --- a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb +++ b/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials' +require 'google/artifactregistry/property/projectlocationrepository_rrcucup_credentials' module GoogleInSpec module Artifactregistry module Property diff --git a/libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials.rb b/libraries/google/artifactregistry/property/projectlocationrepository_rrcucup_credentials.rb similarity index 100% rename from libraries/google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials.rb rename to libraries/google/artifactregistry/property/projectlocationrepository_rrcucup_credentials.rb diff --git a/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond.rb b/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond.rb index 2a67d2f0d..d6971f634 100644 --- a/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond.rb +++ b/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond.rb @@ -15,8 +15,8 @@ # ---------------------------------------------------------------------------- require 'google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_field' require 'google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val' -require 'google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_date_val' -require 'google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_time_val' +require 'google/dlp/property/job_adddrosirdcrtftceccnvd_val' +require 'google/dlp/property/job_adddrosirdcrtftceccnvt_val' module GoogleInSpec module DLP module Property diff --git a/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val.rb b/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val.rb index 40433caa1..b6a86266b 100644 --- a/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val.rb +++ b/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_date_val' -require 'google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_time_val' +require 'google/dlp/property/job_adddrosirdcrtftceccnvd_val' +require 'google/dlp/property/job_adddrosirdcrtftceccnvt_val' module GoogleInSpec module DLP module Property diff --git a/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_date_val.rb b/libraries/google/dlp/property/job_adddrosirdcrtftceccnvd_val.rb similarity index 100% rename from libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_date_val.rb rename to libraries/google/dlp/property/job_adddrosirdcrtftceccnvd_val.rb diff --git a/libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_time_val.rb b/libraries/google/dlp/property/job_adddrosirdcrtftceccnvt_val.rb similarity index 100% rename from libraries/google/dlp/property/job_act_det_dt_det_req_opt_snapshot_img_rt_dt_con_rec_tf_field_tf_con_exps_con_cond_new_val_time_val.rb rename to libraries/google/dlp/property/job_adddrosirdcrtftceccnvt_val.rb diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb b/libraries/google/vertexai/property/batchpredictionjob_espigabb_config.rb similarity index 100% rename from libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb rename to libraries/google/vertexai/property/batchpredictionjob_espigabb_config.rb diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/batchpredictionjob_espigasg_config.rb similarity index 82% rename from libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb rename to libraries/google/vertexai/property/batchpredictionjob_espigasg_config.rb index 002a071fb..a27b69ea8 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_espigasg_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espigasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/batchpredictionjob_espigasgcfn_sigma.rb similarity index 89% rename from libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/batchpredictionjob_espigasgcfn_sigma.rb index f403ee6ec..5dee0e035 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_espigasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/batchpredictionjob_espxasgcfn_sigma.rb similarity index 89% rename from libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/batchpredictionjob_espxasgcfn_sigma.rb index a34a792da..7aba247b9 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_espxasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec.rb b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec.rb index 8f178937f..5ba45ee55 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec.rb @@ -22,16 +22,16 @@ require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_examples_example_gcs_source_gcs_source' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espigabb_config' +require 'google/vertexai/property/batchpredictionjob_espigasg_config' +require 'google/vertexai/property/batchpredictionjob_espigasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters.rb b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters.rb index 2bd808080..36f4c07a7 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters.rb @@ -18,16 +18,16 @@ require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_examples_example_gcs_source_gcs_source' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espigabb_config' +require 'google/vertexai/property/batchpredictionjob_espigasg_config' +require 'google/vertexai/property/batchpredictionjob_espigasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution.rb b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution.rb index 6bcf10d98..c548242bf 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution.rb @@ -13,10 +13,10 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espigabb_config' +require 'google/vertexai/property/batchpredictionjob_espigasg_config' +require 'google/vertexai/property/batchpredictionjob_espigasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution.rb b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution.rb index 7e166611a..29f202f0b 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution.rb @@ -15,8 +15,8 @@ # ---------------------------------------------------------------------------- require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb index a6f2cdfe8..c28ac4fdc 100644 --- a/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models.rb b/libraries/google/vertexai/property/endpoint_deployed_models.rb index e759e0c55..92fbd6e39 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models.rb +++ b/libraries/google/vertexai/property/endpoint_deployed_models.rb @@ -27,16 +27,16 @@ require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_examples_example_gcs_source_gcs_source' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespigabb_config' +require 'google/vertexai/property/endpoint_dmespigasg_config' +require 'google/vertexai/property/endpoint_dmespigasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespigasgcfnsn_sigma' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfnsn_sigma' require 'google/vertexai/property/endpoint_deployed_models_private_endpoints' module GoogleInSpec module VertexAI diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec.rb b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec.rb index e87d5dd4d..d82f368df 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec.rb +++ b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec.rb @@ -22,16 +22,16 @@ require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_examples_example_gcs_source_gcs_source' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespigabb_config' +require 'google/vertexai/property/endpoint_dmespigasg_config' +require 'google/vertexai/property/endpoint_dmespigasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespigasgcfnsn_sigma' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters.rb b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters.rb index bbcafe883..bf2093132 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters.rb +++ b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters.rb @@ -18,16 +18,16 @@ require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_examples_example_gcs_source_gcs_source' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespigabb_config' +require 'google/vertexai/property/endpoint_dmespigasg_config' +require 'google/vertexai/property/endpoint_dmespigasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespigasgcfnsn_sigma' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution.rb b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution.rb index 6003467da..eb544c138 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution.rb +++ b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution.rb @@ -13,10 +13,10 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespigabb_config' +require 'google/vertexai/property/endpoint_dmespigasg_config' +require 'google/vertexai/property/endpoint_dmespigasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution.rb b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution.rb index 0df839de1..f6b50e6bf 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution.rb +++ b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution.rb @@ -15,8 +15,8 @@ # ---------------------------------------------------------------------------- require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb index 0d44bfb02..6ca82a938 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb b/libraries/google/vertexai/property/endpoint_dmespigabb_config.rb similarity index 100% rename from libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb rename to libraries/google/vertexai/property/endpoint_dmespigabb_config.rb diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/endpoint_dmespigasg_config.rb similarity index 82% rename from libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb rename to libraries/google/vertexai/property/endpoint_dmespigasg_config.rb index b8377ae89..b72de93cb 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/endpoint_dmespigasg_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespigasgcfn_sigma' +require 'google/vertexai/property/endpoint_dmespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/endpoint_dmespigasgcfn_sigma.rb similarity index 88% rename from libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/endpoint_dmespigasgcfn_sigma.rb index 3fb7937f7..076052b0a 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/endpoint_dmespigasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/endpoint_dmespigasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/endpoint_dmespigasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/endpoint_dmespxasgcfn_sigma.rb similarity index 89% rename from libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/endpoint_dmespxasgcfn_sigma.rb index bdfd25cd9..8a2b75a3d 100644 --- a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/endpoint_dmespxasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/endpoint_dmespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/endpoint_dmespxasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/endpoint_deployed_models_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/endpoint_dmespxasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/model_espigasgcfn_sigma.rb similarity index 89% rename from libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/model_espigasgcfn_sigma.rb index 95cc69672..e076c32ad 100644 --- a/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/model_espigasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/model_espigasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/model_espigasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/model_espxasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/model_espxasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/model_explanation_spec.rb b/libraries/google/vertexai/property/model_explanation_spec.rb index 306c363f3..d9839624d 100644 --- a/libraries/google/vertexai/property/model_explanation_spec.rb +++ b/libraries/google/vertexai/property/model_explanation_spec.rb @@ -24,14 +24,14 @@ require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espigasgcfn_sigma' +require 'google/vertexai/property/model_espigasgcfnsn_sigma' require 'google/vertexai/property/model_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters.rb b/libraries/google/vertexai/property/model_explanation_spec_parameters.rb index 409ebef13..b20a3c1cb 100644 --- a/libraries/google/vertexai/property/model_explanation_spec_parameters.rb +++ b/libraries/google/vertexai/property/model_explanation_spec_parameters.rb @@ -20,14 +20,14 @@ require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espigasgcfn_sigma' +require 'google/vertexai/property/model_espigasgcfnsn_sigma' require 'google/vertexai/property/model_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution.rb b/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution.rb index 49f7ef267..134b55705 100644 --- a/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution.rb +++ b/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution.rb @@ -15,8 +15,8 @@ # ---------------------------------------------------------------------------- require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espigasgcfn_sigma' +require 'google/vertexai/property/model_espigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb index 9937f2ba8..80f146511 100644 --- a/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espigasgcfn_sigma' +require 'google/vertexai/property/model_espigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution.rb b/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution.rb index e166c8b38..c065bbf8f 100644 --- a/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution.rb +++ b/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution.rb @@ -16,7 +16,7 @@ require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb index 29f809e0d..06231f7d3 100644 --- a/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb @@ -14,7 +14,7 @@ # # ---------------------------------------------------------------------------- require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb index dd82e5894..59fcf409c 100644 --- a/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococe_config.rb similarity index 84% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococe_config.rb index 1437875f8..f4d787ae6 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococe_config.rb @@ -13,9 +13,9 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_bigquery' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_gcs' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococece_baseline' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_bigquery' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_gcs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococece_baseline.rb similarity index 89% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococece_baseline.rb index d1fe42540..1513e4a98 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococece_baseline.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_bigquery' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_gcs' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_bigquery' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_gcs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_bigquery.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_bigquery.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_bigquery.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_bigquery.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_gcs.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_gcs.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_gcs.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_gcs.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpdd_config.rb similarity index 85% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpdd_config.rb index e73c27d08..f1aaea95a 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpdd_config.rb @@ -13,9 +13,9 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_attribution_score_drift_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_default_drift_threshold' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_drift_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcasd_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcdd_threshold' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcd_thresholds' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_attribution_score_drift_thresholds.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcasd_thresholds.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_attribution_score_drift_thresholds.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcasd_thresholds.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_drift_thresholds.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcd_thresholds.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_drift_thresholds.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcd_thresholds.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_default_drift_threshold.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcdd_threshold.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_default_drift_threshold.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcdd_threshold.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococt_dataset.rb similarity index 84% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococt_dataset.rb index ac8d08fd3..e3b64c8b2 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococt_dataset.rb @@ -13,10 +13,10 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_bigquery_source' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_gcs_source' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy_random_sample_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdb_source' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdg_source' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdls_strategy' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdlssrs_config' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_bigquery_source.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdb_source.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_bigquery_source.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdb_source.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_gcs_source.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdg_source.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_gcs_source.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdg_source.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdls_strategy.rb similarity index 92% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdls_strategy.rb index 7b3acb31f..4640d899a 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdls_strategy.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy_random_sample_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdlssrs_config' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy_random_sample_config.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdlssrs_config.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy_random_sample_config.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdlssrs_config.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsd_config.rb similarity index 85% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsd_config.rb index 188bd433a..46b2d7cc7 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsd_config.rb @@ -13,9 +13,9 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_attribution_score_skew_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_default_skew_threshold' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_skew_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcass_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcds_threshold' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcs_thresholds' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_attribution_score_skew_thresholds.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcass_thresholds.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_attribution_score_skew_thresholds.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcass_thresholds.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_default_skew_threshold.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcds_threshold.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_default_skew_threshold.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcds_threshold.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_skew_thresholds.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcs_thresholds.rb similarity index 100% rename from libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_skew_thresholds.rb rename to libraries/google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcs_thresholds.rb diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs.rb index f12eb03d3..9f91232c4 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs.rb @@ -14,23 +14,23 @@ # # ---------------------------------------------------------------------------- require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_bigquery' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_gcs' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_attribution_score_drift_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_default_drift_threshold' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_drift_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_bigquery_source' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_gcs_source' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy_random_sample_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_attribution_score_skew_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_default_skew_threshold' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_skew_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococe_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococece_baseline' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_bigquery' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_gcs' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpdd_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcasd_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcdd_threshold' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcd_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococt_dataset' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdb_source' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdg_source' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdls_strategy' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdlssrs_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsd_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcass_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcds_threshold' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcs_thresholds' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config.rb b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config.rb index e75cbd046..e2a08462e 100644 --- a/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config.rb +++ b/libraries/google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config.rb @@ -13,23 +13,23 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_bigquery' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_explanation_config_explanation_baseline_gcs' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_attribution_score_drift_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_default_drift_threshold' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_prediction_drift_detection_config_drift_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_bigquery_source' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_gcs_source' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_dataset_logging_sampling_strategy_random_sample_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_attribution_score_skew_thresholds' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_default_skew_threshold' -require 'google/vertexai/property/modeldeploymentmonitoringjob_model_deployment_monitoring_objective_configs_objective_config_training_prediction_skew_detection_config_skew_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococe_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococece_baseline' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_bigquery' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococeceb_gcs' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpdd_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcasd_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcdd_threshold' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococpddcd_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococt_dataset' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdb_source' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdg_source' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdls_strategy' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtdlssrs_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsd_config' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcass_thresholds' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcds_threshold' +require 'google/vertexai/property/modeldeploymentmonitoringjob_mdmococtpsdcs_thresholds' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source.rb b/libraries/google/vertexai/property/modelsevaluation_esespeegsg_source.rb similarity index 100% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source.rb rename to libraries/google/vertexai/property/modelsevaluation_esespeegsg_source.rb diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb b/libraries/google/vertexai/property/modelsevaluation_esespigabb_config.rb similarity index 100% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb rename to libraries/google/vertexai/property/modelsevaluation_esespigabb_config.rb diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/modelsevaluation_esespigasg_config.rb similarity index 81% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb rename to libraries/google/vertexai/property/modelsevaluation_esespigasg_config.rb index d92bd24f3..9ade332e1 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/modelsevaluation_esespigasg_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespigasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/modelsevaluation_esespigasgcfn_sigma.rb similarity index 88% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/modelsevaluation_esespigasgcfn_sigma.rb index caa883312..5d116306c 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/modelsevaluation_esespigasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_blur_baseline_config.rb b/libraries/google/vertexai/property/modelsevaluation_esespxabb_config.rb similarity index 100% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_blur_baseline_config.rb rename to libraries/google/vertexai/property/modelsevaluation_esespxabb_config.rb diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/modelsevaluation_esespxasg_config.rb similarity index 82% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb rename to libraries/google/vertexai/property/modelsevaluation_esespxasg_config.rb index cc18c8f71..d3f24615a 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/modelsevaluation_esespxasg_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespxasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/modelsevaluation_esespxasgcfn_sigma.rb similarity index 89% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/modelsevaluation_esespxasgcfn_sigma.rb index 553e0e053..09134bb83 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/modelsevaluation_esespxasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs.rb b/libraries/google/vertexai/property/modelsevaluation_explanation_specs.rb index 673a5d9ba..d87b95e23 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs.rb +++ b/libraries/google/vertexai/property/modelsevaluation_explanation_specs.rb @@ -20,19 +20,19 @@ require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/modelsevaluation_esespeegsg_source' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespigabb_config' +require 'google/vertexai/property/modelsevaluation_esespigasg_config' +require 'google/vertexai/property/modelsevaluation_esespigasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespxabb_config' +require 'google/vertexai/property/modelsevaluation_esespxasg_config' +require 'google/vertexai/property/modelsevaluation_esespxasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec.rb b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec.rb index d986ce130..aee464c0a 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec.rb +++ b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec.rb @@ -19,19 +19,19 @@ require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/modelsevaluation_esespeegsg_source' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespigabb_config' +require 'google/vertexai/property/modelsevaluation_esespigasg_config' +require 'google/vertexai/property/modelsevaluation_esespigasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespxabb_config' +require 'google/vertexai/property/modelsevaluation_esespxasg_config' +require 'google/vertexai/property/modelsevaluation_esespxasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters.rb b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters.rb index e955f0c71..feb475a97 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters.rb +++ b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters.rb @@ -15,19 +15,19 @@ # ---------------------------------------------------------------------------- require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/modelsevaluation_esespeegsg_source' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespigabb_config' +require 'google/vertexai/property/modelsevaluation_esespigasg_config' +require 'google/vertexai/property/modelsevaluation_esespigasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespxabb_config' +require 'google/vertexai/property/modelsevaluation_esespxasg_config' +require 'google/vertexai/property/modelsevaluation_esespxasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples.rb b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples.rb index 3a36270e2..08f99ce30 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples.rb +++ b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples.rb @@ -14,7 +14,7 @@ # # ---------------------------------------------------------------------------- require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/modelsevaluation_esespeegsg_source' require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_presets' module GoogleInSpec module VertexAI diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source.rb b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source.rb index 81c7823a5..288ba4c5f 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source.rb +++ b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/modelsevaluation_esespeegsg_source' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution.rb b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution.rb index c8412a9ca..ccfd66b90 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution.rb +++ b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution.rb @@ -13,10 +13,10 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespigabb_config' +require 'google/vertexai/property/modelsevaluation_esespigasg_config' +require 'google/vertexai/property/modelsevaluation_esespigasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution.rb b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution.rb index 1331e521c..9e17d11e2 100644 --- a/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution.rb +++ b/libraries/google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution.rb @@ -13,10 +13,10 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_blur_baseline_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/modelsevaluation_explanation_specs_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/modelsevaluation_esespxabb_config' +require 'google/vertexai/property/modelsevaluation_esespxasg_config' +require 'google/vertexai/property/modelsevaluation_esespxasgcfn_sigma' +require 'google/vertexai/property/modelsevaluation_esespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec.rb b/libraries/google/vertexai/property/nasjob_nas_job_spec.rb index 8b6a82a41..78b0d3d4d 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec.rb +++ b/libraries/google/vertexai/property/nasjob_nas_job_spec.rb @@ -17,14 +17,14 @@ require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_metric' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasstsstjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasstsstjswp_specs' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasttsttjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasttsttjswp_specs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec.rb b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec.rb index 957eaefb9..331ad203a 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec.rb +++ b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec.rb @@ -16,14 +16,14 @@ require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_metric' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasstsstjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasstsstjswp_specs' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasttsttjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasttsttjswp_specs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec.rb b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec.rb index a97779d45..cb5da32fa 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec.rb +++ b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec.rb @@ -14,9 +14,9 @@ # # ---------------------------------------------------------------------------- require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasstsstjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasstsstjswp_specs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec.rb b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec.rb index 57f68c990..0e3b7f2c0 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec.rb +++ b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec.rb @@ -13,9 +13,9 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasstsstjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasstsstjswp_specs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec.rb b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec.rb index ec76aa23a..14e936dbf 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec.rb +++ b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec.rb @@ -14,9 +14,9 @@ # # ---------------------------------------------------------------------------- require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasttsttjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasttsttjswp_specs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec.rb b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec.rb index d5ef49f3b..38385c431 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec.rb +++ b/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec.rb @@ -13,9 +13,9 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasttsttjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasttsttjswp_specs' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjsbo_directory.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjsbo_directory.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswp_specs.rb similarity index 72% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswp_specs.rb index ce422b5aa..b6888a531 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs.rb +++ b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswp_specs.rb @@ -13,13 +13,13 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec_env' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_disk_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_machine_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_nfs_mounts' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec_env' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpsc_spec' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpscs_env' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpsd_spec' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpsm_spec' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpsn_mounts' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpspp_spec' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpspps_env' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsc_spec.rb similarity index 90% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsc_spec.rb index a9972a574..b95f8b2d8 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec.rb +++ b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsc_spec.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec_env' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpscs_env' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec_env.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpscs_env.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_container_spec_env.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswpscs_env.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_disk_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsd_spec.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_disk_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsd_spec.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_machine_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsm_spec.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_machine_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsm_spec.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_nfs_mounts.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsn_mounts.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_nfs_mounts.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswpsn_mounts.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpspp_spec.rb similarity index 91% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswpspp_spec.rb index 2f2ba483d..0eea020a7 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec.rb +++ b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpspp_spec.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec_env' +require 'google/vertexai/property/nasjob_njsmtasstsstjswpspps_env' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec_env.rb b/libraries/google/vertexai/property/nasjob_njsmtasstsstjswpspps_env.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs_python_package_spec_env.rb rename to libraries/google/vertexai/property/nasjob_njsmtasstsstjswpspps_env.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjsbo_directory.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjsbo_directory.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswp_specs.rb similarity index 72% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswp_specs.rb index 02e55ffcf..233707407 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs.rb +++ b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswp_specs.rb @@ -13,13 +13,13 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec_env' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_disk_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_machine_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_nfs_mounts' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec_env' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpsc_spec' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpscs_env' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpsd_spec' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpsm_spec' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpsn_mounts' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpspp_spec' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpspps_env' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsc_spec.rb similarity index 90% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsc_spec.rb index 57b7d766e..0cf801877 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec.rb +++ b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsc_spec.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec_env' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpscs_env' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec_env.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpscs_env.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_container_spec_env.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswpscs_env.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_disk_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsd_spec.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_disk_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsd_spec.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_machine_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsm_spec.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_machine_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsm_spec.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_nfs_mounts.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsn_mounts.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_nfs_mounts.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswpsn_mounts.rb diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpspp_spec.rb similarity index 91% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswpspp_spec.rb index cbabe58db..bb55c3dc2 100644 --- a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec.rb +++ b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpspp_spec.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec_env' +require 'google/vertexai/property/nasjob_njsmtasttsttjswpspps_env' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec_env.rb b/libraries/google/vertexai/property/nasjob_njsmtasttsttjswpspps_env.rb similarity index 100% rename from libraries/google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs_python_package_spec_env.rb rename to libraries/google/vertexai/property/nasjob_njsmtasttsttjswpspps_env.rb diff --git a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_container_detail.rb b/libraries/google/vertexai/property/schedule_cpjrpjjdtdedc_detail.rb similarity index 100% rename from libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_container_detail.rb rename to libraries/google/vertexai/property/schedule_cpjrpjjdtdedc_detail.rb diff --git a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_custom_job_detail.rb b/libraries/google/vertexai/property/schedule_cpjrpjjdtdedcj_detail.rb similarity index 100% rename from libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_custom_job_detail.rb rename to libraries/google/vertexai/property/schedule_cpjrpjjdtdedcj_detail.rb diff --git a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status_error.rb b/libraries/google/vertexai/property/schedule_cpjrpjjdtdpts_error.rb similarity index 100% rename from libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status_error.rb rename to libraries/google/vertexai/property/schedule_cpjrpjjdtdpts_error.rb diff --git a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details.rb b/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details.rb index 86d9cd146..5f3a17934 100644 --- a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details.rb +++ b/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details.rb @@ -18,8 +18,8 @@ require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_execution_labels' require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_execution_metadata' require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail' -require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_container_detail' -require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_custom_job_detail' +require 'google/vertexai/property/schedule_cpjrpjjdtdedc_detail' +require 'google/vertexai/property/schedule_cpjrpjjdtdedcj_detail' require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_inputs' require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_outputs' require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status' diff --git a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail.rb b/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail.rb index c253910bd..c70b590e7 100644 --- a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail.rb +++ b/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_container_detail' -require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_executor_detail_custom_job_detail' +require 'google/vertexai/property/schedule_cpjrpjjdtdedc_detail' +require 'google/vertexai/property/schedule_cpjrpjjdtdedcj_detail' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status.rb b/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status.rb index ea9f6b4d0..340a939e7 100644 --- a/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status.rb +++ b/libraries/google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/schedule_create_pipeline_job_request_pipeline_job_job_detail_task_details_pipeline_task_status_error' +require 'google/vertexai/property/schedule_cpjrpjjdtdpts_error' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload.rb index 0885d3b83..a58f9a9c9 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload.rb @@ -25,19 +25,19 @@ require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/trainingpipeline_mtuespeegsg_source' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigabb_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasg_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config' +require 'google/vertexai/property/trainingpipeline_mtuespxabb_config' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma' require 'google/vertexai/property/trainingpipeline_model_to_upload_labels' require 'google/vertexai/property/trainingpipeline_model_to_upload_model_source_info' require 'google/vertexai/property/trainingpipeline_model_to_upload_original_model_info' diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec.rb index 7adc17c8b..acd12d703 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec.rb @@ -19,19 +19,19 @@ require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/trainingpipeline_mtuespeegsg_source' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigabb_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasg_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config' +require 'google/vertexai/property/trainingpipeline_mtuespxabb_config' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters.rb index 2562ea850..45d7929f9 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters.rb @@ -15,19 +15,19 @@ # ---------------------------------------------------------------------------- require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/trainingpipeline_mtuespeegsg_source' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigabb_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasg_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config' +require 'google/vertexai/property/trainingpipeline_mtuespxabb_config' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples.rb index f5a8787a0..5eb1c1090 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples.rb @@ -14,7 +14,7 @@ # # ---------------------------------------------------------------------------- require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/trainingpipeline_mtuespeegsg_source' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_presets' module GoogleInSpec module VertexAI diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source.rb index 151690a05..817f3f084 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/trainingpipeline_mtuespeegsg_source' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution.rb index 451f4aa13..7874fe5f3 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution.rb @@ -13,10 +13,10 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigabb_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasg_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution.rb index 8659a6d26..a90592b7f 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution.rb @@ -13,10 +13,10 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config' +require 'google/vertexai/property/trainingpipeline_mtuespxabb_config' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb index fcc5110cf..6618ef996 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespeegsg_source.rb similarity index 100% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespeegsg_source.rb diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespigabb_config.rb similarity index 100% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespigabb_config.rb diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespigasg_config.rb similarity index 81% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespigasg_config.rb index dc022b74b..38b38b409 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config.rb +++ b/libraries/google/vertexai/property/trainingpipeline_mtuespigasg_config.rb @@ -13,8 +13,8 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma.rb similarity index 88% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma.rb index a6868829f..49df8b4ef 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma.rb diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespxabb_config.rb similarity index 100% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespxabb_config.rb diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma.rb similarity index 89% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma.rb index d5b334f1f..040f043b6 100644 --- a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma.rb +++ b/libraries/google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma.rb @@ -13,7 +13,7 @@ # CONTRIBUTING.md located at the root of this package. # # ---------------------------------------------------------------------------- -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma' module GoogleInSpec module VertexAI module Property diff --git a/libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb b/libraries/google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma.rb similarity index 100% rename from libraries/google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma.rb rename to libraries/google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma.rb diff --git a/libraries/google_artifactregistry_project_location_repository.rb b/libraries/google_artifactregistry_project_location_repository.rb index cff85e08d..b466194fb 100644 --- a/libraries/google_artifactregistry_project_location_repository.rb +++ b/libraries/google_artifactregistry_project_location_repository.rb @@ -26,7 +26,7 @@ require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_npm_repository' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_python_repository' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials' -require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_upstream_credentials_username_password_credentials' +require 'google/artifactregistry/property/projectlocationrepository_rrcucup_credentials' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository' require 'google/artifactregistry/property/projectlocationrepository_remote_repository_config_yum_repository_public_repository' require 'google/artifactregistry/property/projectlocationrepository_virtual_repository_config' diff --git a/libraries/google_vertex_ai_batch_prediction_job.rb b/libraries/google_vertex_ai_batch_prediction_job.rb index 53719dcf9..6c131ec29 100644 --- a/libraries/google_vertex_ai_batch_prediction_job.rb +++ b/libraries/google_vertex_ai_batch_prediction_job.rb @@ -29,16 +29,16 @@ require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_examples_example_gcs_source_gcs_source' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espigabb_config' +require 'google/vertexai/property/batchpredictionjob_espigasg_config' +require 'google/vertexai/property/batchpredictionjob_espigasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espigasgcfnsn_sigma' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/batchpredictionjob_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfn_sigma' +require 'google/vertexai/property/batchpredictionjob_espxasgcfnsn_sigma' require 'google/vertexai/property/batchpredictionjob_input_config' require 'google/vertexai/property/batchpredictionjob_input_config_bigquery_source' require 'google/vertexai/property/batchpredictionjob_input_config_gcs_source' diff --git a/libraries/google_vertex_ai_model.rb b/libraries/google_vertex_ai_model.rb index c802821d2..067159d45 100644 --- a/libraries/google_vertex_ai_model.rb +++ b/libraries/google_vertex_ai_model.rb @@ -31,14 +31,14 @@ require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espigasgcfn_sigma' +require 'google/vertexai/property/model_espigasgcfnsn_sigma' require 'google/vertexai/property/model_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_blur_baseline_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config' require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/model_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/model_espxasgcfnsn_sigma' require 'google/vertexai/property/model_labels' require 'google/vertexai/property/model_model_source_info' require 'google/vertexai/property/model_original_model_info' diff --git a/libraries/google_vertex_ai_nas_job.rb b/libraries/google_vertex_ai_nas_job.rb index cfe6726d0..163ddef5b 100644 --- a/libraries/google_vertex_ai_nas_job.rb +++ b/libraries/google_vertex_ai_nas_job.rb @@ -26,14 +26,14 @@ require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_metric' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasstsstjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_search_trial_spec_search_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasstsstjswp_specs' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_base_output_directory' +require 'google/vertexai/property/nasjob_njsmtasttsttjsbo_directory' require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_scheduling' -require 'google/vertexai/property/nasjob_nas_job_spec_multi_trial_algorithm_spec_train_trial_spec_train_trial_job_spec_worker_pool_specs' +require 'google/vertexai/property/nasjob_njsmtasttsttjswp_specs' # A provider to manage Vertex AI resources. class VertexAINasJob < GcpResourceBase diff --git a/libraries/google_vertex_ai_training_pipeline.rb b/libraries/google_vertex_ai_training_pipeline.rb index 641d4ffac..a08d0edef 100644 --- a/libraries/google_vertex_ai_training_pipeline.rb +++ b/libraries/google_vertex_ai_training_pipeline.rb @@ -38,19 +38,19 @@ require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source_gcs_source' +require 'google/vertexai/property/trainingpipeline_mtuespeegsg_source' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_presets' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_blur_baseline_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigabb_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasg_config' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_sampled_shapley_attribution' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_blur_baseline_config' +require 'google/vertexai/property/trainingpipeline_mtuespxabb_config' require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma' -require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config_feature_noise_sigma_noise_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma' +require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma' require 'google/vertexai/property/trainingpipeline_model_to_upload_labels' require 'google/vertexai/property/trainingpipeline_model_to_upload_model_source_info' require 'google/vertexai/property/trainingpipeline_model_to_upload_original_model_info' From cd19efd212d77ac7a6792d4930a1d1d2a9cff490 Mon Sep 17 00:00:00 2001 From: balasubramanian-s Date: Mon, 8 Jan 2024 19:04:27 +0530 Subject: [PATCH 80/83] reverted version pinning Signed-off-by: balasubramanian-s --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 523e71d4f..019e07c3b 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ gem 'google-api-client' gem 'google-cloud' gem 'googleauth' gem 'inifile' -gem 'inspec-bin', '>= 4.16.0' +gem 'inspec-bin', '4.16.0' gem 'rubocop', '>= 0.77.0' group :development do From 589a85bdcd98d7229d37f4e787d6aa23144bf508 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Mon, 8 Jan 2024 13:58:48 +0000 Subject: [PATCH 81/83] Bump version to 1.11.68 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 138cd3605..df74fbb26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.68](https://github.com/inspec/inspec-gcp/tree/v1.11.68) (2024-01-08) + +#### Merged Pull Requests +- Reverted version pinning [#567](https://github.com/inspec/inspec-gcp/pull/567) ([balasubramanian-s](https://github.com/balasubramanian-s)) + + ## [v1.11.67](https://github.com/inspec/inspec-gcp/tree/v1.11.67) (2023-12-21) #### Merged Pull Requests - Update inspec version pinning in Gemfile [#563](https://github.com/inspec/inspec-gcp/pull/563) ([ahasunos](https://github.com/ahasunos)) - ## [v1.11.66](https://github.com/inspec/inspec-gcp/tree/v1.11.66) (2023-12-15) diff --git a/VERSION b/VERSION index 93e3ffe76..61f856391 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.67 \ No newline at end of file +1.11.68 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index 46d41f16e..c88f97634 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.67 +version: 1.11.68 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: From 1f1dee0a48da31819083cb979e928da9394291b0 Mon Sep 17 00:00:00 2001 From: Samir <85890442+sa-progress@users.noreply.github.com> Date: Mon, 8 Jan 2024 22:15:10 +0530 Subject: [PATCH 82/83] Rubopcop lint updated to 99 chars from 200 chars. Signed-off-by: Samir <85890442+sa-progress@users.noreply.github.com> --- .rubocop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index e404d22e9..8d539e428 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -61,7 +61,7 @@ Style/Not: Enabled: false Naming/FileName: Enabled: true - Regex: !ruby/regexp '/^.{3,200}$/' + Regex: !ruby/regexp '/^.{3,99}$/' Style/TrailingCommaInArrayLiteral: EnforcedStyleForMultiline: comma Style/TrailingCommaInHashLiteral: From 465871f2d4803feeb2fbe70d32daa9f2ec6aa2f9 Mon Sep 17 00:00:00 2001 From: Chef Expeditor Date: Thu, 11 Jan 2024 11:53:09 +0000 Subject: [PATCH 83/83] Bump version to 1.11.69 by Chef Expeditor Obvious fix; these changes are the result of automation not creative thinking. --- CHANGELOG.md | 9 +++++++-- VERSION | 2 +- inspec.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df74fbb26..e1b6bc587 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Change Log - + +## [v1.11.69](https://github.com/inspec/inspec-gcp/tree/v1.11.69) (2024-01-11) + +#### Merged Pull Requests +- Refactor Long to Short Name Conversion [#565](https://github.com/inspec/inspec-gcp/pull/565) ([sa-progress](https://github.com/sa-progress)) + + ## [v1.11.68](https://github.com/inspec/inspec-gcp/tree/v1.11.68) (2024-01-08) #### Merged Pull Requests - Reverted version pinning [#567](https://github.com/inspec/inspec-gcp/pull/567) ([balasubramanian-s](https://github.com/balasubramanian-s)) - ## [v1.11.67](https://github.com/inspec/inspec-gcp/tree/v1.11.67) (2023-12-21) diff --git a/VERSION b/VERSION index 61f856391..4927ecb79 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.68 \ No newline at end of file +1.11.69 \ No newline at end of file diff --git a/inspec.yml b/inspec.yml index c88f97634..622495be1 100644 --- a/inspec.yml +++ b/inspec.yml @@ -4,7 +4,7 @@ maintainer: spaterson@chef.io,russell.seymour@turtlesystems.co.uk summary: This resource pack provides compliance resources_old_ignore for Google Cloud Platform copyright: spaterson@chef.io,russell.seymour@turtlesystems.co.uk copyright_email: spaterson@chef.io,russell.seymour@turtlesystems.co.uk -version: 1.11.68 +version: 1.11.69 license: Apache-2.0 inspec_version: '>= 4.7.3' supports: