Skip to content

Commit

Permalink
Generate changes into TFV instead of TGC (#5349) (#798)
Browse files Browse the repository at this point in the history
* Switched to generating terraform-validator / using tfv naming in the ci containers

* Updated paths to push changes into converters/google/resources

* Reduced line length to make rubocop happy

* Re-added tf-conversion handling to generate_downstream

* Added missing tfv-tester dockerfile contents

* Renamed terraform-validator-tester folder

* Make resources folder if it doesn't exist for now

* Make rubocop happy with single quotes

* Temporary hack to fix base generation for TFV

* Marked terraform validator test script as executable

* Updated differ for tfv generation

Signed-off-by: Modular Magician <magic-modules@google.com>
  • Loading branch information
modular-magician authored Oct 20, 2021
1 parent 00ed2fa commit a075fef
Show file tree
Hide file tree
Showing 299 changed files with 78,858 additions and 0 deletions.
139 changes: 139 additions & 0 deletions converters/google/resources/accessapproval_folder_settings.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
// ----------------------------------------------------------------------------
//
// *** 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 (
"bytes"
"fmt"
"reflect"
"strings"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

var accessApprovalCloudProductMapping = map[string]string{
"appengine.googleapis.com": "App Engine",
"bigquery.googleapis.com": "BigQuery",
"bigtable.googleapis.com": "Cloud Bigtable",
"cloudkms.googleapis.com": "Cloud Key Management Service",
"compute.googleapis.com": "Compute Engine",
"dataflow.googleapis.com": "Cloud Dataflow",
"iam.googleapis.com": "Cloud Identity and Access Management",
"pubsub.googleapis.com": "Cloud Pub/Sub",
"storage.googleapis.com": "Cloud Storage",
}

func accessApprovalEnrolledServicesHash(v interface{}) int {
var buf bytes.Buffer
m := v.(map[string]interface{})
cp := m["cloud_product"].(string)
if n, ok := accessApprovalCloudProductMapping[cp]; ok {
cp = n
}
buf.WriteString(fmt.Sprintf("%s-", strings.ToLower(cp))) // ToLower just in case
buf.WriteString(fmt.Sprintf("%s-", strings.ToLower(m["enrollment_level"].(string))))
return hashcode(buf.String())
}

const AccessApprovalFolderSettingsAssetType string = "accessapproval.googleapis.com/FolderSettings"

func resourceConverterAccessApprovalFolderSettings() ResourceConverter {
return ResourceConverter{
AssetType: AccessApprovalFolderSettingsAssetType,
Convert: GetAccessApprovalFolderSettingsCaiObject,
}
}

func GetAccessApprovalFolderSettingsCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) {
name, err := assetName(d, config, "//accessapproval.googleapis.com/folders/{{folder_id}}/accessApprovalSettings")
if err != nil {
return []Asset{}, err
}
if obj, err := GetAccessApprovalFolderSettingsApiObject(d, config); err == nil {
return []Asset{{
Name: name,
Type: AccessApprovalFolderSettingsAssetType,
Resource: &AssetResource{
Version: "v1",
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/accessapproval/v1/rest",
DiscoveryName: "FolderSettings",
Data: obj,
},
}}, nil
} else {
return []Asset{}, err
}
}

func GetAccessApprovalFolderSettingsApiObject(d TerraformResourceData, config *Config) (map[string]interface{}, error) {
obj := make(map[string]interface{})
notificationEmailsProp, err := expandAccessApprovalFolderSettingsNotificationEmails(d.Get("notification_emails"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("notification_emails"); !isEmptyValue(reflect.ValueOf(notificationEmailsProp)) && (ok || !reflect.DeepEqual(v, notificationEmailsProp)) {
obj["notificationEmails"] = notificationEmailsProp
}
enrolledServicesProp, err := expandAccessApprovalFolderSettingsEnrolledServices(d.Get("enrolled_services"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("enrolled_services"); !isEmptyValue(reflect.ValueOf(enrolledServicesProp)) && (ok || !reflect.DeepEqual(v, enrolledServicesProp)) {
obj["enrolledServices"] = enrolledServicesProp
}

return obj, nil
}

func expandAccessApprovalFolderSettingsNotificationEmails(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
v = v.(*schema.Set).List()
return v, nil
}

func expandAccessApprovalFolderSettingsEnrolledServices(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
v = v.(*schema.Set).List()
l := v.([]interface{})
req := make([]interface{}, 0, len(l))
for _, raw := range l {
if raw == nil {
continue
}
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})

transformedCloudProduct, err := expandAccessApprovalFolderSettingsEnrolledServicesCloudProduct(original["cloud_product"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCloudProduct); val.IsValid() && !isEmptyValue(val) {
transformed["cloudProduct"] = transformedCloudProduct
}

transformedEnrollmentLevel, err := expandAccessApprovalFolderSettingsEnrolledServicesEnrollmentLevel(original["enrollment_level"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedEnrollmentLevel); val.IsValid() && !isEmptyValue(val) {
transformed["enrollmentLevel"] = transformedEnrollmentLevel
}

req = append(req, transformed)
}
return req, nil
}

func expandAccessApprovalFolderSettingsEnrolledServicesCloudProduct(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
return v, nil
}

func expandAccessApprovalFolderSettingsEnrolledServicesEnrollmentLevel(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
return v, nil
}
112 changes: 112 additions & 0 deletions converters/google/resources/accessapproval_organization_settings.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
// ----------------------------------------------------------------------------
//
// *** 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"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

const AccessApprovalOrganizationSettingsAssetType string = "accessapproval.googleapis.com/OrganizationSettings"

func resourceConverterAccessApprovalOrganizationSettings() ResourceConverter {
return ResourceConverter{
AssetType: AccessApprovalOrganizationSettingsAssetType,
Convert: GetAccessApprovalOrganizationSettingsCaiObject,
}
}

func GetAccessApprovalOrganizationSettingsCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) {
name, err := assetName(d, config, "//accessapproval.googleapis.com/organizations/{{organization_id}}/accessApprovalSettings")
if err != nil {
return []Asset{}, err
}
if obj, err := GetAccessApprovalOrganizationSettingsApiObject(d, config); err == nil {
return []Asset{{
Name: name,
Type: AccessApprovalOrganizationSettingsAssetType,
Resource: &AssetResource{
Version: "v1",
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/accessapproval/v1/rest",
DiscoveryName: "OrganizationSettings",
Data: obj,
},
}}, nil
} else {
return []Asset{}, err
}
}

func GetAccessApprovalOrganizationSettingsApiObject(d TerraformResourceData, config *Config) (map[string]interface{}, error) {
obj := make(map[string]interface{})
notificationEmailsProp, err := expandAccessApprovalOrganizationSettingsNotificationEmails(d.Get("notification_emails"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("notification_emails"); !isEmptyValue(reflect.ValueOf(notificationEmailsProp)) && (ok || !reflect.DeepEqual(v, notificationEmailsProp)) {
obj["notificationEmails"] = notificationEmailsProp
}
enrolledServicesProp, err := expandAccessApprovalOrganizationSettingsEnrolledServices(d.Get("enrolled_services"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("enrolled_services"); !isEmptyValue(reflect.ValueOf(enrolledServicesProp)) && (ok || !reflect.DeepEqual(v, enrolledServicesProp)) {
obj["enrolledServices"] = enrolledServicesProp
}

return obj, nil
}

func expandAccessApprovalOrganizationSettingsNotificationEmails(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
v = v.(*schema.Set).List()
return v, nil
}

func expandAccessApprovalOrganizationSettingsEnrolledServices(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
v = v.(*schema.Set).List()
l := v.([]interface{})
req := make([]interface{}, 0, len(l))
for _, raw := range l {
if raw == nil {
continue
}
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})

transformedCloudProduct, err := expandAccessApprovalOrganizationSettingsEnrolledServicesCloudProduct(original["cloud_product"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCloudProduct); val.IsValid() && !isEmptyValue(val) {
transformed["cloudProduct"] = transformedCloudProduct
}

transformedEnrollmentLevel, err := expandAccessApprovalOrganizationSettingsEnrolledServicesEnrollmentLevel(original["enrollment_level"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedEnrollmentLevel); val.IsValid() && !isEmptyValue(val) {
transformed["enrollmentLevel"] = transformedEnrollmentLevel
}

req = append(req, transformed)
}
return req, nil
}

func expandAccessApprovalOrganizationSettingsEnrolledServicesCloudProduct(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
return v, nil
}

func expandAccessApprovalOrganizationSettingsEnrolledServicesEnrollmentLevel(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
return v, nil
}
122 changes: 122 additions & 0 deletions converters/google/resources/accessapproval_project_settings.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
// ----------------------------------------------------------------------------
//
// *** 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"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

const AccessApprovalProjectSettingsAssetType string = "accessapproval.googleapis.com/ProjectSettings"

func resourceConverterAccessApprovalProjectSettings() ResourceConverter {
return ResourceConverter{
AssetType: AccessApprovalProjectSettingsAssetType,
Convert: GetAccessApprovalProjectSettingsCaiObject,
}
}

func GetAccessApprovalProjectSettingsCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) {
name, err := assetName(d, config, "//accessapproval.googleapis.com/projects/{{project_id}}/accessApprovalSettings")
if err != nil {
return []Asset{}, err
}
if obj, err := GetAccessApprovalProjectSettingsApiObject(d, config); err == nil {
return []Asset{{
Name: name,
Type: AccessApprovalProjectSettingsAssetType,
Resource: &AssetResource{
Version: "v1",
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/accessapproval/v1/rest",
DiscoveryName: "ProjectSettings",
Data: obj,
},
}}, nil
} else {
return []Asset{}, err
}
}

func GetAccessApprovalProjectSettingsApiObject(d TerraformResourceData, config *Config) (map[string]interface{}, error) {
obj := make(map[string]interface{})
notificationEmailsProp, err := expandAccessApprovalProjectSettingsNotificationEmails(d.Get("notification_emails"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("notification_emails"); !isEmptyValue(reflect.ValueOf(notificationEmailsProp)) && (ok || !reflect.DeepEqual(v, notificationEmailsProp)) {
obj["notificationEmails"] = notificationEmailsProp
}
enrolledServicesProp, err := expandAccessApprovalProjectSettingsEnrolledServices(d.Get("enrolled_services"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("enrolled_services"); !isEmptyValue(reflect.ValueOf(enrolledServicesProp)) && (ok || !reflect.DeepEqual(v, enrolledServicesProp)) {
obj["enrolledServices"] = enrolledServicesProp
}
projectProp, err := expandAccessApprovalProjectSettingsProject(d.Get("project"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("project"); !isEmptyValue(reflect.ValueOf(projectProp)) && (ok || !reflect.DeepEqual(v, projectProp)) {
obj["project"] = projectProp
}

return obj, nil
}

func expandAccessApprovalProjectSettingsNotificationEmails(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
v = v.(*schema.Set).List()
return v, nil
}

func expandAccessApprovalProjectSettingsEnrolledServices(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
v = v.(*schema.Set).List()
l := v.([]interface{})
req := make([]interface{}, 0, len(l))
for _, raw := range l {
if raw == nil {
continue
}
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})

transformedCloudProduct, err := expandAccessApprovalProjectSettingsEnrolledServicesCloudProduct(original["cloud_product"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCloudProduct); val.IsValid() && !isEmptyValue(val) {
transformed["cloudProduct"] = transformedCloudProduct
}

transformedEnrollmentLevel, err := expandAccessApprovalProjectSettingsEnrolledServicesEnrollmentLevel(original["enrollment_level"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedEnrollmentLevel); val.IsValid() && !isEmptyValue(val) {
transformed["enrollmentLevel"] = transformedEnrollmentLevel
}

req = append(req, transformed)
}
return req, nil
}

func expandAccessApprovalProjectSettingsEnrolledServicesCloudProduct(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
return v, nil
}

func expandAccessApprovalProjectSettingsEnrolledServicesEnrollmentLevel(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
return v, nil
}

func expandAccessApprovalProjectSettingsProject(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
return v, nil
}
Loading

0 comments on commit a075fef

Please sign in to comment.