in terraformer/pkg/terraformer/compiler.go [271:297]
func convertMapStringInterface(val interface{}) (interface{}, error) {
switch items := val.(type) {
case map[interface{}]interface{}:
result := map[string]interface{}{}
for k, v := range items {
key, ok := k.(string)
if !ok {
return nil, fmt.Errorf("typeError: value %s (type `%s') can't be assigned to type 'string'", k, reflect.TypeOf(k))
}
value, err := convertMapStringInterface(v)
if err != nil {
return nil, err
}
result[key] = value
}
return result, nil
case []interface{}:
for k, v := range items {
value, err := convertMapStringInterface(v)
if err != nil {
return nil, err
}
items[k] = value
}
}
return val, nil
}