code: func (domain *Domain) UnmarshalJSON(data []byte) error {
  	var ccDomain struct {
  		Metadata internal.Metadata `json:"metadata"`
  		Entity   struct {
  			Name            string `json:"name"`
  			RouterGroupGUID string `json:"router_group_guid"`
  			RouterGroupType string `json:"router_group_type"`
  			Internal        bool   `json:"internal"`
  		} `json:"entity"`
  	}
  	err := cloudcontroller.DecodeJSON(data, &ccDomain)
  	if err != nil {
  		return err
  	}
  
  	domain.GUID = ccDomain.Metadata.GUID
  	domain.Name = ccDomain.Entity.Name
  	domain.RouterGroupGUID = ccDomain.Entity.RouterGroupGUID
  	domain.RouterGroupType = constant.RouterGroupType(ccDomain.Entity.RouterGroupType)
  	domain.Internal = ccDomain.Entity.Internal
  	return nil
  }
docs: // UnmarshalJSON helps unmarshal a Cloud Controller Domain response.