func()

in internal/azure/types/object_type.go [201:247]


func (o *ObjectProperty) UnmarshalJSON(body []byte) error {
	var m map[string]*json.RawMessage
	err := json.Unmarshal(body, &m)
	if err != nil {
		return err
	}
	for k, v := range m {
		switch k {
		case "description":
			if v != nil {
				var description string
				err := json.Unmarshal(*v, &description)
				if err != nil {
					return err
				}
				o.Description = &description
			}
		case "flags":
			if v != nil {
				var flag int
				err := json.Unmarshal(*v, &flag)
				if err != nil {
					return err
				}
				flags := make([]ObjectPropertyFlag, 0)
				for _, f := range PossibleObjectPropertyFlagValues() {
					if flag&int(f) != 0 {
						flags = append(flags, f)
					}
				}
				o.Flags = flags
			}
		case "type":
			if v != nil {
				var typeRef TypeReference
				err := json.Unmarshal(*v, &typeRef)
				if err != nil {
					return err
				}
				o.Type = &typeRef
			}
		default:
			return fmt.Errorf("unmarshalling object property, unrecognized key: %s", k)
		}
	}
	return nil
}