/// <summary>
		/// Enables the seller of a Best Offer item to accept, decline, or counter offers
		/// made by bidders. Best offers can be declined in bulk, using the same message
		/// from the seller to the bidders of all rejected offers.
		/// </summary>
		/// 
		/// <param name="ItemID">
		/// Specifies the item for which the BestOffer data is to be returned.
		/// </param>
		///
		/// <param name="BestOfferIDList">
		/// The ID of a Best Offer for the item.
		/// </param>
		///
		/// <param name="Action">
		/// The action taken on the Best Offer by the seller (e.g.,
		/// Accept, Decline, or Counter). Bulk Accept and Bulk
		/// Counter are not supported. That is, you cannot accept or
		/// counter multiple offers in a single call. You can,
		/// however, decline multiple offers in a single call.
		/// </param>
		///
		/// <param name="SellerResponse">
		/// A comment from the seller to the buyer.
		/// </param>
		///
		/// <param name="CounterOfferPrice">
		/// The counter offer price. When Action is set to Counter,
		/// you must specify the amount for the counter offer with
		/// CounterOfferPrice. The value of CounterOfferPrice cannot
		/// exceed the Buy It Now price for a single quantity item.
		/// The value of CounterOfferPrice may exceed the Buy It Now
		/// price if the value for CounterOfferQuantity is greater
		/// than 1.
		/// </param>
		///
		/// <param name="CounterOfferQuantity">
		/// The quantity of items in the counter offer. When Action is set to
		/// Counter you must specify the quantity of items for the
		/// counter offer with CounterOfferQuantity.
		/// </param>
		///
		public BestOfferTypeCollection RespondToBestOffer(string ItemID, StringCollection BestOfferIDList, BestOfferActionCodeType Action, string SellerResponse, AmountType CounterOfferPrice, int CounterOfferQuantity)
		{
			this.ItemID = ItemID;
			this.BestOfferIDList = BestOfferIDList;
			this.Action = Action;
			this.SellerResponse = SellerResponse;
			this.CounterOfferPrice = CounterOfferPrice;
			this.CounterOfferQuantity = CounterOfferQuantity;

			Execute();
			return ApiResponse.RespondToBestOffer;
		}
 /// <summary>
 /// For backward compatibility with old wrappers.
 /// </summary>
 public BestOfferTypeCollection RespondToBestOffer(string ItemID, StringCollection BestOfferIDList, BestOfferActionCodeType Action, string SellerResponse)
 {
     this.ItemID          = ItemID;
     this.BestOfferIDList = BestOfferIDList;
     this.Action          = Action;
     this.SellerResponse  = SellerResponse;
     Execute();
     return(this.RespondToBestOfferList);
 }
		/// <summary>
		/// For backward compatibility with old wrappers.
		/// </summary>
		public BestOfferTypeCollection RespondToBestOffer(string ItemID, StringCollection BestOfferIDList, BestOfferActionCodeType Action, string SellerResponse)
		{
			this.ItemID = ItemID;
			this.BestOfferIDList = BestOfferIDList;
			this.Action = Action;
			this.SellerResponse = SellerResponse;
			Execute();
			return this.RespondToBestOfferList;
		}
        /// <summary>
        /// This call enables the seller to accept or decline a buyer's Best Offer on an item, or make a counter offer to the buyer's Best Offer. A seller can decline multiple Best Offers with one call, but the seller cannot accept or counter offer multiple Best Offers with one call. Best Offers are not applicable to auction listings.
        /// </summary>
        ///
        /// <param name="ItemID">
        /// The unique identifier of the listing to which the seller is responding. Specifies the item for which the BestOffer data is to be returned.
        /// </param>
        ///
        /// <param name="BestOfferIDList">
        /// The unique identifier of a buyer's Best Offer for the item. This ID is created once the buyer makes a Best Offer. It is possible that a seller will get multiple Best Offers for an item, and if that seller would like to decline multiple/all of the Best Offers with one <b>RespondToBestOffer</b> call, the seller would pass in each of these identifiers in a separate <b>BestOfferID</b> field. However, the seller can only accept or counter offer one Best Offer at a time.
        /// </param>
        ///
        /// <param name="Action">
        /// The enumeration value that the seller passes in to this field will control whether the seller accepts or make a counter offer to a single buyer's Best Offer, or declines one or more buyers' Best Offers. A seller can decline multiple Best Offers with one call, but the seller cannot accept or counter offer multiple Best Offers with one call.
        /// </param>
        ///
        /// <param name="SellerResponse">
        /// This optional text field allows the seller to provide more details to the buyer about the action being taken against the buyer's Best Offer.
        /// </param>
        ///
        /// <param name="CounterOfferPrice">
        /// The seller inserts counter offer price into this field. This field is conditionally required and only applicable when the <b>Action</b> value is set to <code>Counter</code>, The counter offer price cannot exceed the Buy It Now price for a single quantity item. However, the dollar value in this field may exceed the Buy It Now price if the buyer is requesting or the seller is offering multiple quantity of the item (in a multiple-quantity listing). The quantity of the item must be specified in the <b>CounterOfferQuantity</b> field if the seller is making a counter offer.
        /// </param>
        ///
        /// <param name="CounterOfferQuantity">
        /// The seller inserts the quantity of items in the counter offer into this field. This field is conditionally required and only applicable when the <b>Action</b> value is set to <code>Counter</code>, The counter offer price must be specified in the <b>CounterOfferPrice</b> field if the seller is making a counter offer. This price should reflect the quantity of items in the counter offer. So, if the seller's counter offer 'unit' price is 15 dollars, and the item quantity is '2', the dollar value passed into the <b>CounterOfferPrice</b> field would be <code>30.0</code>.
        /// </param>
        ///
        public BestOfferTypeCollection RespondToBestOffer(string ItemID, StringCollection BestOfferIDList, BestOfferActionCodeType Action, string SellerResponse, AmountType CounterOfferPrice, int CounterOfferQuantity)
        {
            this.ItemID               = ItemID;
            this.BestOfferIDList      = BestOfferIDList;
            this.Action               = Action;
            this.SellerResponse       = SellerResponse;
            this.CounterOfferPrice    = CounterOfferPrice;
            this.CounterOfferQuantity = CounterOfferQuantity;

            Execute();
            return(ApiResponse.RespondToBestOffer);
        }