code: func (instance *ProcessInstance) UnmarshalJSON(data []byte) error {
  	var inputInstance struct {
  		Details          string `json:"details"`
  		DiskQuota        uint64 `json:"disk_quota"`
  		Index            int64  `json:"index"`
  		IsolationSegment string `json:"isolation_segment"`
  		MemQuota         uint64 `json:"mem_quota"`
  		State            string `json:"state"`
  		Type             string `json:"type"`
  		Uptime           int64  `json:"uptime"`
  		Usage            struct {
  			CPU  float64 `json:"cpu"`
  			Mem  uint64  `json:"mem"`
  			Disk uint64  `json:"disk"`
  		} `json:"usage"`
  	}
  
  	err := cloudcontroller.DecodeJSON(data, &inputInstance)
  	if err != nil {
  		return err
  	}
  
  	instance.CPU = inputInstance.Usage.CPU
  	instance.Details = inputInstance.Details
  	instance.DiskQuota = inputInstance.DiskQuota
  	instance.DiskUsage = inputInstance.Usage.Disk
  	instance.Index = inputInstance.Index
  	instance.IsolationSegment = inputInstance.IsolationSegment
  	instance.MemoryQuota = inputInstance.MemQuota
  	instance.MemoryUsage = inputInstance.Usage.Mem
  	instance.State = constant.ProcessInstanceState(inputInstance.State)
  	instance.Type = inputInstance.Type
  	instance.Uptime, err = time.ParseDuration(fmt.Sprintf("%ds", inputInstance.Uptime))
  	if err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // UnmarshalJSON helps unmarshal a V3 Cloud Controller Instance response.