diff --git a/tfplan2cai/converters/google/resources/services/vmwareengine/vmwareengine_datastore.go b/tfplan2cai/converters/google/resources/services/vmwareengine/vmwareengine_datastore.go new file mode 100644 index 0000000000..fe50727565 --- /dev/null +++ b/tfplan2cai/converters/google/resources/services/vmwareengine/vmwareengine_datastore.go @@ -0,0 +1,245 @@ +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** Type: MMv1 *** +// +// ---------------------------------------------------------------------------- +// +// This code is generated by Magic Modules using the following: +// +// Configuration: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/products/vmwareengine/Datastore.yaml +// Template: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/templates/tgc/resource_converter.go.tmpl +// +// DO NOT EDIT this file directly. Any changes made to this file will be +// overwritten during the next generation cycle. +// +// ---------------------------------------------------------------------------- + +package vmwareengine + +import ( + "bytes" + "context" + "encoding/base64" + "encoding/json" + "fmt" + "log" + "reflect" + "regexp" + "slices" + "sort" + "strconv" + "strings" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/id" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + "github.com/GoogleCloudPlatform/terraform-google-conversion/v7/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" + "github.com/hashicorp/terraform-provider-google-beta/google-beta/verify" + + "google.golang.org/api/googleapi" +) + +var ( + _ = bytes.Clone + _ = context.WithCancel + _ = base64.StdEncoding + _ = fmt.Sprintf + _ = json.Marshal + _ = log.Print + _ = reflect.ValueOf + _ = regexp.Match + _ = slices.Min([]int{1}) + _ = sort.IntSlice{} + _ = strconv.Atoi + _ = strings.Trim + _ = time.Now + _ = diag.Diagnostic{} + _ = customdiff.All + _ = id.UniqueId + _ = logging.LogLevel + _ = retry.Retry + _ = schema.Noop + _ = structure.ExpandJsonFromString + _ = validation.All + _ = terraform.State{} + _ = tpgresource.SetLabels + _ = transport_tpg.Config{} + _ = verify.ProjectRegex + _ = googleapi.Error{} +) + +const VmwareengineDatastoreAssetType string = "vmwareengine.googleapis.com/Datastore" + +func ResourceConverterVmwareengineDatastore() cai.ResourceConverter { + return cai.ResourceConverter{ + AssetType: VmwareengineDatastoreAssetType, + Convert: GetVmwareengineDatastoreCaiObject, + } +} + +func GetVmwareengineDatastoreCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) { + name, err := cai.AssetName(d, config, "//vmwareengine.googleapis.com/projects/{{project}}/locations/{{location}}/datastores/{{name}}") + if err != nil { + return []cai.Asset{}, err + } + if obj, err := GetVmwareengineDatastoreApiObject(d, config); err == nil { + return []cai.Asset{{ + Name: name, + Type: VmwareengineDatastoreAssetType, + Resource: &cai.AssetResource{ + Version: "v1", + DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/vmwareengine/v1/rest", + DiscoveryName: "Datastore", + Data: obj, + }, + }}, nil + } else { + return []cai.Asset{}, err + } +} + +func GetVmwareengineDatastoreApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) { + obj := make(map[string]interface{}) + descriptionProp, err := expandVmwareengineDatastoreDescription(d.Get("description"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("description"); !tpgresource.IsEmptyValue(reflect.ValueOf(descriptionProp)) && (ok || !reflect.DeepEqual(v, descriptionProp)) { + obj["description"] = descriptionProp + } + nfsDatastoreProp, err := expandVmwareengineDatastoreNfsDatastore(d.Get("nfs_datastore"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("nfs_datastore"); !tpgresource.IsEmptyValue(reflect.ValueOf(nfsDatastoreProp)) && (ok || !reflect.DeepEqual(v, nfsDatastoreProp)) { + obj["nfsDatastore"] = nfsDatastoreProp + } + + return obj, nil +} + +func expandVmwareengineDatastoreDescription(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + return v, nil +} + +func expandVmwareengineDatastoreNfsDatastore(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + if v == nil { + return nil, nil + } + l := v.([]interface{}) + if len(l) == 0 || l[0] == nil { + return nil, nil + } + raw := l[0] + original := raw.(map[string]interface{}) + transformed := make(map[string]interface{}) + + transformedGoogleFileService, err := expandVmwareengineDatastoreNfsDatastoreGoogleFileService(original["google_file_service"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedGoogleFileService); val.IsValid() && !tpgresource.IsEmptyValue(val) { + transformed["googleFileService"] = transformedGoogleFileService + } + + transformedThirdPartyFileService, err := expandVmwareengineDatastoreNfsDatastoreThirdPartyFileService(original["third_party_file_service"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedThirdPartyFileService); val.IsValid() && !tpgresource.IsEmptyValue(val) { + transformed["thirdPartyFileService"] = transformedThirdPartyFileService + } + + return transformed, nil +} + +func expandVmwareengineDatastoreNfsDatastoreGoogleFileService(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + if v == nil { + return nil, nil + } + l := v.([]interface{}) + if len(l) == 0 || l[0] == nil { + return nil, nil + } + raw := l[0] + original := raw.(map[string]interface{}) + transformed := make(map[string]interface{}) + + transformedFilestoreInstance, err := expandVmwareengineDatastoreNfsDatastoreGoogleFileServiceFilestoreInstance(original["filestore_instance"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedFilestoreInstance); val.IsValid() && !tpgresource.IsEmptyValue(val) { + transformed["filestoreInstance"] = transformedFilestoreInstance + } + + transformedNetappVolume, err := expandVmwareengineDatastoreNfsDatastoreGoogleFileServiceNetappVolume(original["netapp_volume"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedNetappVolume); val.IsValid() && !tpgresource.IsEmptyValue(val) { + transformed["netappVolume"] = transformedNetappVolume + } + + return transformed, nil +} + +func expandVmwareengineDatastoreNfsDatastoreGoogleFileServiceFilestoreInstance(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + return v, nil +} + +func expandVmwareengineDatastoreNfsDatastoreGoogleFileServiceNetappVolume(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + return v, nil +} + +func expandVmwareengineDatastoreNfsDatastoreThirdPartyFileService(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + if v == nil { + return nil, nil + } + l := v.([]interface{}) + if len(l) == 0 || l[0] == nil { + return nil, nil + } + raw := l[0] + original := raw.(map[string]interface{}) + transformed := make(map[string]interface{}) + + transformedFileShare, err := expandVmwareengineDatastoreNfsDatastoreThirdPartyFileServiceFileShare(original["file_share"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedFileShare); val.IsValid() && !tpgresource.IsEmptyValue(val) { + transformed["fileShare"] = transformedFileShare + } + + transformedNetwork, err := expandVmwareengineDatastoreNfsDatastoreThirdPartyFileServiceNetwork(original["network"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedNetwork); val.IsValid() && !tpgresource.IsEmptyValue(val) { + transformed["network"] = transformedNetwork + } + + transformedServers, err := expandVmwareengineDatastoreNfsDatastoreThirdPartyFileServiceServers(original["servers"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedServers); val.IsValid() && !tpgresource.IsEmptyValue(val) { + transformed["servers"] = transformedServers + } + + return transformed, nil +} + +func expandVmwareengineDatastoreNfsDatastoreThirdPartyFileServiceFileShare(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + return v, nil +} + +func expandVmwareengineDatastoreNfsDatastoreThirdPartyFileServiceNetwork(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + return v, nil +} + +func expandVmwareengineDatastoreNfsDatastoreThirdPartyFileServiceServers(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + return v, nil +}