tfplan2cai/converters/google/resources/services/clouddeploy/clouddeploy_automation.go (475 lines of code) (raw):
// ----------------------------------------------------------------------------
//
// *** 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/clouddeploy/Automation.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 clouddeploy
import (
"reflect"
"github.com/GoogleCloudPlatform/terraform-google-conversion/v6/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 ClouddeployAutomationAssetType string = "clouddeploy.googleapis.com/Automation"
func ResourceConverterClouddeployAutomation() cai.ResourceConverter {
return cai.ResourceConverter{
AssetType: ClouddeployAutomationAssetType,
Convert: GetClouddeployAutomationCaiObject,
}
}
func GetClouddeployAutomationCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
name, err := cai.AssetName(d, config, "//clouddeploy.googleapis.com/projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}")
if err != nil {
return []cai.Asset{}, err
}
if obj, err := GetClouddeployAutomationApiObject(d, config); err == nil {
return []cai.Asset{{
Name: name,
Type: ClouddeployAutomationAssetType,
Resource: &cai.AssetResource{
Version: "v1",
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/clouddeploy/v1/rest",
DiscoveryName: "Automation",
Data: obj,
},
}}, nil
} else {
return []cai.Asset{}, err
}
}
func GetClouddeployAutomationApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
obj := make(map[string]interface{})
descriptionProp, err := expandClouddeployAutomationDescription(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
}
suspendedProp, err := expandClouddeployAutomationSuspended(d.Get("suspended"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("suspended"); ok || !reflect.DeepEqual(v, suspendedProp) {
obj["suspended"] = suspendedProp
}
serviceAccountProp, err := expandClouddeployAutomationServiceAccount(d.Get("service_account"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("service_account"); !tpgresource.IsEmptyValue(reflect.ValueOf(serviceAccountProp)) && (ok || !reflect.DeepEqual(v, serviceAccountProp)) {
obj["serviceAccount"] = serviceAccountProp
}
selectorProp, err := expandClouddeployAutomationSelector(d.Get("selector"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("selector"); !tpgresource.IsEmptyValue(reflect.ValueOf(selectorProp)) && (ok || !reflect.DeepEqual(v, selectorProp)) {
obj["selector"] = selectorProp
}
rulesProp, err := expandClouddeployAutomationRules(d.Get("rules"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("rules"); !tpgresource.IsEmptyValue(reflect.ValueOf(rulesProp)) && (ok || !reflect.DeepEqual(v, rulesProp)) {
obj["rules"] = rulesProp
}
annotationsProp, err := expandClouddeployAutomationEffectiveAnnotations(d.Get("effective_annotations"), d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("effective_annotations"); !tpgresource.IsEmptyValue(reflect.ValueOf(annotationsProp)) && (ok || !reflect.DeepEqual(v, annotationsProp)) {
obj["annotations"] = annotationsProp
}
labelsProp, err := expandClouddeployAutomationEffectiveLabels(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 expandClouddeployAutomationDescription(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationSuspended(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationServiceAccount(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationSelector(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.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{})
transformedTargets, err := expandClouddeployAutomationSelectorTargets(original["targets"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedTargets); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["targets"] = transformedTargets
}
return transformed, nil
}
func expandClouddeployAutomationSelectorTargets(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
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{})
transformedId, err := expandClouddeployAutomationSelectorTargetsId(original["id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["id"] = transformedId
}
transformedLabels, err := expandClouddeployAutomationSelectorTargetsLabels(original["labels"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedLabels); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["labels"] = transformedLabels
}
req = append(req, transformed)
}
return req, nil
}
func expandClouddeployAutomationSelectorTargetsId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationSelectorTargetsLabels(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
}
func expandClouddeployAutomationRules(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
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{})
transformedPromoteReleaseRule, err := expandClouddeployAutomationRulesPromoteReleaseRule(original["promote_release_rule"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedPromoteReleaseRule); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["promoteReleaseRule"] = transformedPromoteReleaseRule
}
transformedAdvanceRolloutRule, err := expandClouddeployAutomationRulesAdvanceRolloutRule(original["advance_rollout_rule"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedAdvanceRolloutRule); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["advanceRolloutRule"] = transformedAdvanceRolloutRule
}
transformedRepairRolloutRule, err := expandClouddeployAutomationRulesRepairRolloutRule(original["repair_rollout_rule"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedRepairRolloutRule); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["repairRolloutRule"] = transformedRepairRolloutRule
}
transformedTimedPromoteReleaseRule, err := expandClouddeployAutomationRulesTimedPromoteReleaseRule(original["timed_promote_release_rule"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedTimedPromoteReleaseRule); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["timedPromoteReleaseRule"] = transformedTimedPromoteReleaseRule
}
req = append(req, transformed)
}
return req, nil
}
func expandClouddeployAutomationRulesPromoteReleaseRule(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.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{})
transformedId, err := expandClouddeployAutomationRulesPromoteReleaseRuleId(original["id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["id"] = transformedId
}
transformedWait, err := expandClouddeployAutomationRulesPromoteReleaseRuleWait(original["wait"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedWait); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["wait"] = transformedWait
}
transformedDestinationTargetId, err := expandClouddeployAutomationRulesPromoteReleaseRuleDestinationTargetId(original["destination_target_id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationTargetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationTargetId"] = transformedDestinationTargetId
}
transformedDestinationPhase, err := expandClouddeployAutomationRulesPromoteReleaseRuleDestinationPhase(original["destination_phase"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationPhase); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationPhase"] = transformedDestinationPhase
}
return transformed, nil
}
func expandClouddeployAutomationRulesPromoteReleaseRuleId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesPromoteReleaseRuleWait(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesPromoteReleaseRuleDestinationTargetId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesPromoteReleaseRuleDestinationPhase(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesAdvanceRolloutRule(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.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{})
transformedId, err := expandClouddeployAutomationRulesAdvanceRolloutRuleId(original["id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["id"] = transformedId
}
transformedWait, err := expandClouddeployAutomationRulesAdvanceRolloutRuleWait(original["wait"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedWait); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["wait"] = transformedWait
}
transformedSourcePhases, err := expandClouddeployAutomationRulesAdvanceRolloutRuleSourcePhases(original["source_phases"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSourcePhases); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["sourcePhases"] = transformedSourcePhases
}
return transformed, nil
}
func expandClouddeployAutomationRulesAdvanceRolloutRuleId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesAdvanceRolloutRuleWait(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesAdvanceRolloutRuleSourcePhases(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRule(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.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{})
transformedId, err := expandClouddeployAutomationRulesRepairRolloutRuleId(original["id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["id"] = transformedId
}
transformedPhases, err := expandClouddeployAutomationRulesRepairRolloutRulePhases(original["phases"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedPhases); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["phases"] = transformedPhases
}
transformedJobs, err := expandClouddeployAutomationRulesRepairRolloutRuleJobs(original["jobs"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedJobs); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["jobs"] = transformedJobs
}
transformedRepairPhases, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhases(original["repair_phases"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedRepairPhases); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["repairPhases"] = transformedRepairPhases
}
return transformed, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRulePhases(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleJobs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhases(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
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{})
transformedRetry, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetry(original["retry"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedRetry); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["retry"] = transformedRetry
}
transformedRollback, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRollback(original["rollback"], d, config)
if err != nil {
return nil, err
} else {
transformed["rollback"] = transformedRollback
}
req = append(req, transformed)
}
return req, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetry(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.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{})
transformedAttempts, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetryAttempts(original["attempts"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedAttempts); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["attempts"] = transformedAttempts
}
transformedWait, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetryWait(original["wait"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedWait); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["wait"] = transformedWait
}
transformedBackoffMode, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetryBackoffMode(original["backoff_mode"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedBackoffMode); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["backoffMode"] = transformedBackoffMode
}
return transformed, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetryAttempts(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetryWait(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRetryBackoffMode(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRollback(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 {
return nil, nil
}
if l[0] == nil {
transformed := make(map[string]interface{})
return transformed, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedDestinationPhase, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRollbackDestinationPhase(original["destination_phase"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationPhase); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationPhase"] = transformedDestinationPhase
}
transformedDisableRollbackIfRolloutPending, err := expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRollbackDisableRollbackIfRolloutPending(original["disable_rollback_if_rollout_pending"], d, config)
if err != nil {
return nil, err
} else {
transformed["disableRollbackIfRolloutPending"] = transformedDisableRollbackIfRolloutPending
}
return transformed, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRollbackDestinationPhase(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesRepairRolloutRuleRepairPhasesRollbackDisableRollbackIfRolloutPending(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesTimedPromoteReleaseRule(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.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{})
transformedId, err := expandClouddeployAutomationRulesTimedPromoteReleaseRuleId(original["id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["id"] = transformedId
}
transformedDestinationTargetId, err := expandClouddeployAutomationRulesTimedPromoteReleaseRuleDestinationTargetId(original["destination_target_id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationTargetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationTargetId"] = transformedDestinationTargetId
}
transformedSchedule, err := expandClouddeployAutomationRulesTimedPromoteReleaseRuleSchedule(original["schedule"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSchedule); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["schedule"] = transformedSchedule
}
transformedTimeZone, err := expandClouddeployAutomationRulesTimedPromoteReleaseRuleTimeZone(original["time_zone"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedTimeZone); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["timeZone"] = transformedTimeZone
}
transformedDestinationPhase, err := expandClouddeployAutomationRulesTimedPromoteReleaseRuleDestinationPhase(original["destination_phase"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationPhase); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationPhase"] = transformedDestinationPhase
}
return transformed, nil
}
func expandClouddeployAutomationRulesTimedPromoteReleaseRuleId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesTimedPromoteReleaseRuleDestinationTargetId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesTimedPromoteReleaseRuleSchedule(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesTimedPromoteReleaseRuleTimeZone(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationRulesTimedPromoteReleaseRuleDestinationPhase(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandClouddeployAutomationEffectiveAnnotations(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
}
func expandClouddeployAutomationEffectiveLabels(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
}