func GetBoolStringPtr(d *schema.ResourceData, key string) (*bool, error) {
	v, ok := d.GetOk(key)
	if !ok {
		return nil, nil
	}
	b, err := strconv.ParseBool(v.(string))
	if err != nil {
		return nil, err
	}
	return &b, nil
}
func GetBoolStringPtr(d *schema.ResourceData, key string) (*bool, error) {
	v, ok := d.GetOk(key)
	if !ok {
		return nil, nil
	}
	b, err := strconv.ParseBool(v.(string))
	if err != nil {
		return nil, err
	}
	return &b, nil
}
func GetBoolStringPtr ( d * schema . ResourceData , key string ) ( * bool , error ) { v , ok := d . GetOk ( key ) if ! ok { return nil , nil } b , err := strconv . ParseBool ( v . ( string ) ) if err != nil { return nil , err } return & b , nil }
// GetBoolStringPtr reads a ResourceData *string* field. This field is handled
// in the following way:
//
// * If it's empty, nil is returned.
// * The string is then sent through ParseBool. This will return a valid value
// for anything ParseBool returns a value for.
// * If it's anything else, an error is returned.
//
// This is designed to address the current lack of HCL and Terraform to be able
// to distinguish between nil states and zero values properly. This is a
// systemic issue that affects reading, writing, and diffing of these values.
// These issues will eventually be addressed in HCL2.
GetBoolStringPtr reads a ResourceData * string * field . This field is handled in the following way : * If it s empty nil is returned . * The string is then sent through ParseBool . This will return a valid value for anything ParseBool returns a value for . * If it s anything else an error is returned . This is designed to address the current lack of HCL and Terraform to be able to distinguish between nil states and zero values properly . This is a systemic issue that affects reading writing and diffing of these values . These issues will eventually be addressed in HCL2 .