func fromProviderSchemaAttribute()

in provider-schema/azurerm/schema/core_schema.go [75:98]


func fromProviderSchemaAttribute(ps *schema.Schema) *SchemaAttribute {
	reqd := ps.Required
	opt := ps.Optional
	if reqd && ps.DefaultFunc != nil {
		v, err := ps.DefaultFunc()
		if err != nil || (err == nil && v != nil) {
			reqd = false
			opt = true
		}
	}

	return &SchemaAttribute{
		AttributeType: fromProviderSchemaType(ps),
		Optional:      opt,
		Required:      reqd,
		Computed:      ps.Computed,
		Default:       ps.Default,

		ConflictsWith: ps.ConflictsWith,
		ExactlyOneOf:  ps.ExactlyOneOf,
		AtLeastOneOf:  ps.AtLeastOneOf,
		RequiredWith:  ps.RequiredWith,
	}
}