in azurerm/schema/core_schema.go [131:167]
func fromProviderSchemaType(ps *schema.Schema) cty.Type {
switch ps.Type {
case schema.TypeString:
return cty.String
case schema.TypeBool:
return cty.Bool
case schema.TypeInt, schema.TypeFloat:
return cty.Number
case schema.TypeList, schema.TypeSet, schema.TypeMap:
var elemType cty.Type
switch set := ps.Elem.(type) {
case *schema.Schema:
elemType = fromProviderSchemaType(set)
case schema.ValueType:
elemType = fromProviderSchemaType(&schema.Schema{Type: set})
case *schema.Resource:
elemType = fromProviderResource(set).ImpliedType()
default:
if set != nil {
panic(fmt.Errorf("invalid Schema.Elem %#v; need *schema.Schema or *schema.Resource", ps.Elem))
}
elemType = cty.String
}
switch ps.Type {
case schema.TypeList:
return cty.List(elemType)
case schema.TypeSet:
return cty.Set(elemType)
case schema.TypeMap:
return cty.Map(elemType)
default:
panic("invalid collection type")
}
default:
panic(fmt.Errorf("invalid Schema.Type %s", ps.Type))
}
}