agent/config/conditional.go
func (b *Conditional) UnmarshalJSON(jsonData []byte) error {
	jsonString := string(jsonData)
	jsonBool, err := strconv.ParseBool(jsonString)
	if err != nil && jsonString != "null" {
		return err
	}

	if jsonString == "" || jsonString == "null" {
		*b = DefaultEnabled
	} else if jsonBool {
		*b = ExplicitlyEnabled
	} else {
		*b = ExplicitlyDisabled
	}

	return nil
}
func (b *Conditional) UnmarshalJSON(jsonData []byte) error {
	jsonString := string(jsonData)
	jsonBool, err := strconv.ParseBool(jsonString)
	if err != nil && jsonString != "null" {
		return err
	}

	if jsonString == "" || jsonString == "null" {
		*b = DefaultEnabled
	} else if jsonBool {
		*b = ExplicitlyEnabled
	} else {
		*b = ExplicitlyDisabled
	}

	return nil
}
// UnmarshalJSON is used to deserialize json types into Conditional, per the Unmarshaller interface