code: func GetPriceIDByPackageIdandLocationGroups(sess *session.Session, locationGroupIds []int, packageid int, addon string) (int, error) {
  	productpackageservice := services.GetProductPackageService(sess)
  	productpackageservicefilter := strings.Replace(`{"items":{"description":{"operation":"appliance"}}}`, "appliance", addon, -1)
  	productpackageservicemask := "description,prices.locationGroupId,prices.id"
  	resp, err := productpackageservice.Mask(productpackageservicemask).Filter(productpackageservicefilter).Id(packageid).GetItems()
  	if err != nil {
  		return 0, err
  	}
  	m := make(map[int]int)
  	if len(locationGroupIds) == 0 {
  		locationGroupIds = append(locationGroupIds, 1)
  	}
  	for _, item := range locationGroupIds {
  		for _, items := range resp {
  			for _, temp := range items.Prices {
  				if temp.LocationGroupId == nil {
  					m[item] = *temp.Id
  				} else if item == *temp.LocationGroupId {
  					m[*temp.LocationGroupId] = *temp.Id
  				}
  			}
  		}
  		if val, ok := m[item]; ok {
  			return val, nil
  		}
  	}
  	return 0, nil
  }
docs: // GetPriceIDByPackageIdandLocationGroups return the priceId of the item according to the location group ids of the datacenter you specify
  // addon is the description of the item for which you want to get its priceId