code: func (servicePlan *ServicePlan) UnmarshalJSON(data []byte) error {
  	var ccServicePlan struct {
  		Metadata internal.Metadata
  		Entity   struct {
  			Name        string `json:"name"`
  			ServiceGUID string `json:"service_guid"`
  			Public      bool   `json:"public"`
  			Description string `json:"description"`
  			Free        bool   `json:"free"`
  		}
  	}
  	err := cloudcontroller.DecodeJSON(data, &ccServicePlan)
  	if err != nil {
  		return err
  	}
  
  	servicePlan.GUID = ccServicePlan.Metadata.GUID
  	servicePlan.Name = ccServicePlan.Entity.Name
  	servicePlan.ServiceGUID = ccServicePlan.Entity.ServiceGUID
  	servicePlan.Public = ccServicePlan.Entity.Public
  	servicePlan.Description = ccServicePlan.Entity.Description
  	servicePlan.Free = ccServicePlan.Entity.Free
  	return nil
  }
docs: // UnmarshalJSON helps unmarshal a Cloud Controller Service Plan response.