func fromProviderSchemaType()

in provider-schema/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))
	}
}