From 94784639f69c4148264170973562119588fa8222 Mon Sep 17 00:00:00 2001 From: The Magician Date: Thu, 6 Feb 2025 16:23:56 -0800 Subject: [PATCH] Add Gemini Gemini Gcp Enablement Setting resource (#12896) (#3420) [upstream:aa0365e668c9b5fb45f6141619fe7d7dbdd224cf] Signed-off-by: Modular Magician --- .../gemini_gemini_gcp_enablement_setting.go | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 tfplan2cai/converters/google/resources/services/gemini/gemini_gemini_gcp_enablement_setting.go diff --git a/tfplan2cai/converters/google/resources/services/gemini/gemini_gemini_gcp_enablement_setting.go b/tfplan2cai/converters/google/resources/services/gemini/gemini_gemini_gcp_enablement_setting.go new file mode 100644 index 000000000..4920137ff --- /dev/null +++ b/tfplan2cai/converters/google/resources/services/gemini/gemini_gemini_gcp_enablement_setting.go @@ -0,0 +1,86 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Magic Modules and manual +// changes will be clobbered when the file is regenerated. +// +// Please read more about how to change this file in +// .github/CONTRIBUTING.md. +// +// ---------------------------------------------------------------------------- + +package gemini + +import ( + "reflect" + + "github.com/GoogleCloudPlatform/terraform-google-conversion/v5/tfplan2cai/converters/google/resources/cai" + "github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource" + transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport" +) + +const GeminiGeminiGcpEnablementSettingAssetType string = "cloudaicompanion.googleapis.com/GeminiGcpEnablementSetting" + +func ResourceConverterGeminiGeminiGcpEnablementSetting() cai.ResourceConverter { + return cai.ResourceConverter{ + AssetType: GeminiGeminiGcpEnablementSettingAssetType, + Convert: GetGeminiGeminiGcpEnablementSettingCaiObject, + } +} + +func GetGeminiGeminiGcpEnablementSettingCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) { + name, err := cai.AssetName(d, config, "//cloudaicompanion.googleapis.com/projects/{{project}}/locations/{{location}}/geminiGcpEnablementSettings/{{gemini_gcp_enablement_setting_id}}") + if err != nil { + return []cai.Asset{}, err + } + if obj, err := GetGeminiGeminiGcpEnablementSettingApiObject(d, config); err == nil { + return []cai.Asset{{ + Name: name, + Type: GeminiGeminiGcpEnablementSettingAssetType, + Resource: &cai.AssetResource{ + Version: "v1", + DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/cloudaicompanion/v1/rest", + DiscoveryName: "GeminiGcpEnablementSetting", + Data: obj, + }, + }}, nil + } else { + return []cai.Asset{}, err + } +} + +func GetGeminiGeminiGcpEnablementSettingApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) { + obj := make(map[string]interface{}) + enableCustomerDataSharingProp, err := expandGeminiGeminiGcpEnablementSettingEnableCustomerDataSharing(d.Get("enable_customer_data_sharing"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("enable_customer_data_sharing"); !tpgresource.IsEmptyValue(reflect.ValueOf(enableCustomerDataSharingProp)) && (ok || !reflect.DeepEqual(v, enableCustomerDataSharingProp)) { + obj["enableCustomerDataSharing"] = enableCustomerDataSharingProp + } + labelsProp, err := expandGeminiGeminiGcpEnablementSettingEffectiveLabels(d.Get("effective_labels"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("effective_labels"); !tpgresource.IsEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) { + obj["labels"] = labelsProp + } + + return obj, nil +} + +func expandGeminiGeminiGcpEnablementSettingEnableCustomerDataSharing(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + return v, nil +} + +func expandGeminiGeminiGcpEnablementSettingEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) { + if v == nil { + return map[string]string{}, nil + } + m := make(map[string]string) + for k, val := range v.(map[string]interface{}) { + m[k] = val.(string) + } + return m, nil +}