diff --git a/converters/google/resources/beyondcorp_app_connector.go b/converters/google/resources/beyondcorp_app_connector.go new file mode 100644 index 000000000..cc5aa49dd --- /dev/null +++ b/converters/google/resources/beyondcorp_app_connector.go @@ -0,0 +1,128 @@ +// ---------------------------------------------------------------------------- +// +// *** 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 google + +import "reflect" + +const BeyondcorpAppConnectorAssetType string = "beyondcorp.googleapis.com/AppConnector" + +func resourceConverterBeyondcorpAppConnector() ResourceConverter { + return ResourceConverter{ + AssetType: BeyondcorpAppConnectorAssetType, + Convert: GetBeyondcorpAppConnectorCaiObject, + } +} + +func GetBeyondcorpAppConnectorCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) { + name, err := assetName(d, config, "//beyondcorp.googleapis.com/projects/{{project}}/locations/{{region}}/appConnectors/{{name}}") + if err != nil { + return []Asset{}, err + } + if obj, err := GetBeyondcorpAppConnectorApiObject(d, config); err == nil { + return []Asset{{ + Name: name, + Type: BeyondcorpAppConnectorAssetType, + Resource: &AssetResource{ + Version: "v1", + DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/beyondcorp/v1/rest", + DiscoveryName: "AppConnector", + Data: obj, + }, + }}, nil + } else { + return []Asset{}, err + } +} + +func GetBeyondcorpAppConnectorApiObject(d TerraformResourceData, config *Config) (map[string]interface{}, error) { + obj := make(map[string]interface{}) + displayNameProp, err := expandBeyondcorpAppConnectorDisplayName(d.Get("display_name"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("display_name"); !isEmptyValue(reflect.ValueOf(displayNameProp)) && (ok || !reflect.DeepEqual(v, displayNameProp)) { + obj["displayName"] = displayNameProp + } + labelsProp, err := expandBeyondcorpAppConnectorLabels(d.Get("labels"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("labels"); !isEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) { + obj["labels"] = labelsProp + } + principalInfoProp, err := expandBeyondcorpAppConnectorPrincipalInfo(d.Get("principal_info"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("principal_info"); !isEmptyValue(reflect.ValueOf(principalInfoProp)) && (ok || !reflect.DeepEqual(v, principalInfoProp)) { + obj["principalInfo"] = principalInfoProp + } + + return obj, nil +} + +func expandBeyondcorpAppConnectorDisplayName(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandBeyondcorpAppConnectorLabels(v interface{}, d TerraformResourceData, config *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 +} + +func expandBeyondcorpAppConnectorPrincipalInfo(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + 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{}) + + transformedServiceAccount, err := expandBeyondcorpAppConnectorPrincipalInfoServiceAccount(original["service_account"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedServiceAccount); val.IsValid() && !isEmptyValue(val) { + transformed["serviceAccount"] = transformedServiceAccount + } + + return transformed, nil +} + +func expandBeyondcorpAppConnectorPrincipalInfoServiceAccount(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + 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{}) + + transformedEmail, err := expandBeyondcorpAppConnectorPrincipalInfoServiceAccountEmail(original["email"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedEmail); val.IsValid() && !isEmptyValue(val) { + transformed["email"] = transformedEmail + } + + return transformed, nil +} + +func expandBeyondcorpAppConnectorPrincipalInfoServiceAccountEmail(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} diff --git a/converters/google/resources/beyondcorp_app_gateway.go b/converters/google/resources/beyondcorp_app_gateway.go new file mode 100644 index 000000000..39138d38b --- /dev/null +++ b/converters/google/resources/beyondcorp_app_gateway.go @@ -0,0 +1,100 @@ +// ---------------------------------------------------------------------------- +// +// *** 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 google + +import "reflect" + +const BeyondcorpAppGatewayAssetType string = "beyondcorp.googleapis.com/AppGateway" + +func resourceConverterBeyondcorpAppGateway() ResourceConverter { + return ResourceConverter{ + AssetType: BeyondcorpAppGatewayAssetType, + Convert: GetBeyondcorpAppGatewayCaiObject, + } +} + +func GetBeyondcorpAppGatewayCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) { + name, err := assetName(d, config, "//beyondcorp.googleapis.com/projects/{{project}}/locations/{{region}}/appGateways/{{name}}") + if err != nil { + return []Asset{}, err + } + if obj, err := GetBeyondcorpAppGatewayApiObject(d, config); err == nil { + return []Asset{{ + Name: name, + Type: BeyondcorpAppGatewayAssetType, + Resource: &AssetResource{ + Version: "v1", + DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/beyondcorp/v1/rest", + DiscoveryName: "AppGateway", + Data: obj, + }, + }}, nil + } else { + return []Asset{}, err + } +} + +func GetBeyondcorpAppGatewayApiObject(d TerraformResourceData, config *Config) (map[string]interface{}, error) { + obj := make(map[string]interface{}) + typeProp, err := expandBeyondcorpAppGatewayType(d.Get("type"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("type"); !isEmptyValue(reflect.ValueOf(typeProp)) && (ok || !reflect.DeepEqual(v, typeProp)) { + obj["type"] = typeProp + } + hostTypeProp, err := expandBeyondcorpAppGatewayHostType(d.Get("host_type"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("host_type"); !isEmptyValue(reflect.ValueOf(hostTypeProp)) && (ok || !reflect.DeepEqual(v, hostTypeProp)) { + obj["hostType"] = hostTypeProp + } + displayNameProp, err := expandBeyondcorpAppGatewayDisplayName(d.Get("display_name"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("display_name"); !isEmptyValue(reflect.ValueOf(displayNameProp)) && (ok || !reflect.DeepEqual(v, displayNameProp)) { + obj["displayName"] = displayNameProp + } + labelsProp, err := expandBeyondcorpAppGatewayLabels(d.Get("labels"), d, config) + if err != nil { + return nil, err + } else if v, ok := d.GetOkExists("labels"); !isEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) { + obj["labels"] = labelsProp + } + + return obj, nil +} + +func expandBeyondcorpAppGatewayType(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandBeyondcorpAppGatewayHostType(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandBeyondcorpAppGatewayDisplayName(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + +func expandBeyondcorpAppGatewayLabels(v interface{}, d TerraformResourceData, config *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 +} diff --git a/converters/google/resources/config.go b/converters/google/resources/config.go index b978f5a30..ff462dee4 100644 --- a/converters/google/resources/config.go +++ b/converters/google/resources/config.go @@ -177,6 +177,7 @@ type Config struct { ApigeeBasePath string AppEngineBasePath string ArtifactRegistryBasePath string + BeyondcorpBasePath string BigQueryBasePath string BigqueryAnalyticsHubBasePath string BigqueryConnectionBasePath string @@ -274,6 +275,7 @@ const ActiveDirectoryBasePathKey = "ActiveDirectory" const ApigeeBasePathKey = "Apigee" const AppEngineBasePathKey = "AppEngine" const ArtifactRegistryBasePathKey = "ArtifactRegistry" +const BeyondcorpBasePathKey = "Beyondcorp" const BigQueryBasePathKey = "BigQuery" const BigqueryAnalyticsHubBasePathKey = "BigqueryAnalyticsHub" const BigqueryConnectionBasePathKey = "BigqueryConnection" @@ -365,6 +367,7 @@ var DefaultBasePaths = map[string]string{ ApigeeBasePathKey: "https://apigee.googleapis.com/v1/", AppEngineBasePathKey: "https://appengine.googleapis.com/v1/", ArtifactRegistryBasePathKey: "https://artifactregistry.googleapis.com/v1/", + BeyondcorpBasePathKey: "https://beyondcorp.googleapis.com/v1/", BigQueryBasePathKey: "https://bigquery.googleapis.com/bigquery/v2/", BigqueryAnalyticsHubBasePathKey: "https://analyticshub.googleapis.com/v1/", BigqueryConnectionBasePathKey: "https://bigqueryconnection.googleapis.com/v1/", @@ -1218,6 +1221,7 @@ func ConfigureBasePaths(c *Config) { c.ApigeeBasePath = DefaultBasePaths[ApigeeBasePathKey] c.AppEngineBasePath = DefaultBasePaths[AppEngineBasePathKey] c.ArtifactRegistryBasePath = DefaultBasePaths[ArtifactRegistryBasePathKey] + c.BeyondcorpBasePath = DefaultBasePaths[BeyondcorpBasePathKey] c.BigQueryBasePath = DefaultBasePaths[BigQueryBasePathKey] c.BigqueryAnalyticsHubBasePath = DefaultBasePaths[BigqueryAnalyticsHubBasePathKey] c.BigqueryConnectionBasePath = DefaultBasePaths[BigqueryConnectionBasePathKey] diff --git a/go.mod b/go.mod index 17aba0de1..d3b97051c 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 github.com/hashicorp/terraform-json v0.14.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.18.0 - github.com/hashicorp/terraform-provider-google v1.20.1-0.20221110211139-061f4180625f + github.com/hashicorp/terraform-provider-google v1.20.1-0.20221110222950-6771e7180c75 github.com/mitchellh/go-homedir v1.1.0 github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.8.1 diff --git a/go.sum b/go.sum index efd5a37f3..781c8f696 100644 --- a/go.sum +++ b/go.sum @@ -658,8 +658,8 @@ github.com/hashicorp/terraform-plugin-log v0.4.1 h1:xpbmVhvuU3mgHzLetOmx9pkOL2rm github.com/hashicorp/terraform-plugin-log v0.4.1/go.mod h1:p4R1jWBXRTvL4odmEkFfDdhUjHf9zcs/BCoNHAc7IK4= github.com/hashicorp/terraform-plugin-sdk/v2 v2.18.0 h1:/cdI5di5XA+N80gXzXF4YcHq36DprBskubk6Z8i26ZQ= github.com/hashicorp/terraform-plugin-sdk/v2 v2.18.0/go.mod h1:L3SHkD/Q8zPVgXviQmpVwy9nKwpXXZscVIpVEnQ/T50= -github.com/hashicorp/terraform-provider-google v1.20.1-0.20221110211139-061f4180625f h1:Np3zukd0x9HS0VCdl3OSIGfo4Mn2vJNPouqzeKhMU0A= -github.com/hashicorp/terraform-provider-google v1.20.1-0.20221110211139-061f4180625f/go.mod h1:aktrSF9YQmUUgCRoYLixEJDgMzYh1wnpnIjogNaI8EU= +github.com/hashicorp/terraform-provider-google v1.20.1-0.20221110222950-6771e7180c75 h1:k7iNJcizyNw3yVdJbknOqh8GjoNv1F0OhO29om84N9Y= +github.com/hashicorp/terraform-provider-google v1.20.1-0.20221110222950-6771e7180c75/go.mod h1:aktrSF9YQmUUgCRoYLixEJDgMzYh1wnpnIjogNaI8EU= github.com/hashicorp/terraform-registry-address v0.0.0-20220623143253-7d51757b572c h1:D8aRO6+mTqHfLsK/BC3j5OAoogv1WLRWzY1AaTo3rBg= github.com/hashicorp/terraform-registry-address v0.0.0-20220623143253-7d51757b572c/go.mod h1:Wn3Na71knbXc1G8Lh+yu/dQWWJeFQEpDeJMtWMtlmNI= github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 h1:HKLsbzeOsfXmKNpr3GiT18XAblV0BjCbzL8KQAMZGa0=