code: func (p *Package) UnmarshalJSON(data []byte) error {
  	var ccPackage struct {
  		GUID          string                `json:"guid,omitempty"`
  		CreatedAt     string                `json:"created_at,omitempty"`
  		Links         APILinks              `json:"links,omitempty"`
  		Relationships Relationships         `json:"relationships,omitempty"`
  		State         constant.PackageState `json:"state,omitempty"`
  		Type          constant.PackageType  `json:"type,omitempty"`
  		Data          struct {
  			Image    string `json:"image"`
  			Username string `json:"username"`
  			Password string `json:"password"`
  		} `json:"data"`
  	}
  	err := cloudcontroller.DecodeJSON(data, &ccPackage)
  	if err != nil {
  		return err
  	}
  
  	p.GUID = ccPackage.GUID
  	p.CreatedAt = ccPackage.CreatedAt
  	p.Links = ccPackage.Links
  	p.Relationships = ccPackage.Relationships
  	p.State = ccPackage.State
  	p.Type = ccPackage.Type
  	p.DockerImage = ccPackage.Data.Image
  	p.DockerUsername = ccPackage.Data.Username
  	p.DockerPassword = ccPackage.Data.Password
  
  	return nil
  }
docs: // UnmarshalJSON helps unmarshal a Cloud Controller Package response.