code: func (rm *ResourcesMap) UnmarshalJSON(data []byte) error {
  	resources := make(map[string]json.RawMessage)
  	err := json.Unmarshal(data, &resources)
  	if err != nil {
  		return err
  	}
  	result := make(map[string][]taskresource.TaskResource)
  	for key, value := range resources {
  		switch key {
  		case CgroupKey:
  			if unmarshlCgroup(key, value, result) != nil {
  				return err
  			}
  		case DockerVolumeKey:
  			if unmarshalDockerVolume(key, value, result) != nil {
  				return err
  			}
  		case ASMAuthKey:
  			if unmarshalASMAuthKey(key, value, result) != nil {
  				return err
  			}
  		case SSMSecretKey:
  			if unmarshalSSMSecretKey(key, value, result) != nil {
  				return err
  			}
  		case ASMSecretKey:
  			if unmarshalASMSecretKey(key, value, result) != nil {
  				return err
  			}
  		default:
  			return errors.New("Unsupported resource type")
  		}
  	}
  	*rm = result
  	return nil
  }
docs: // UnmarshalJSON unmarshals ResourcesMap object