code: func (containerType *ContainerType) UnmarshalJSON(b []byte) error {
  	strType := string(b)
  
  	switch strType {
  	case "null":
  		*containerType = ContainerNormal
  		seelog.Warn("Unmarshalled nil ContainerType as Normal")
  		return nil
  	// 'true' or 'false' for compatibility with state version <= 5
  	case "true":
  		*containerType = ContainerEmptyHostVolume
  		return nil
  	case "false":
  		*containerType = ContainerNormal
  		return nil
  	}
  
  	if len(strType) < 2 {
  		*containerType = ContainerNormal
  		return errors.New("invalid length set for ContainerType: " + string(b))
  	}
  	if b[0] != '"' || b[len(b)-1] != '"' {
  		*containerType = ContainerNormal
  		return errors.New("invalid value set for ContainerType, must be a string or null; got " + string(b))
  	}
  	strType = string(b[1 : len(b)-1])
  
  	contType, ok := stringToContainerType[strType]
  	if !ok {
  		*containerType = ContainerNormal
  		return errors.New("unrecognized ContainerType: " + strType)
  	}
  	*containerType = contType
  	return nil
  }
docs: // UnmarshalJSON decodes the container type field in the JSON encoded string
  // into the ContainerType object