brandon14/ebay-sdk-php

View on GitHub
src/Buy/Browse/V1/Model/Item.php

Summary

Maintainability
F
2 wks
Test Coverage
<?php

/**
 * This file is part of the trollandtoad/ebay-sdk-php package.
 *
 * MIT License
 *
 * Copyright (c) 2022 Brandon Clothier
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 *
 */

declare(strict_types=1);

/**
 * Item.
 *
 * PHP version ^7.2 || ^8.0
 *
 * @category Class
 *
 * @author   OpenAPI Generator team
 *
 * @see     https://openapi-generator.tech
 */

/**
 * Browse API.
 *
 * <p>The Browse API has the following resources:</p>   <ul> <li><b> item_summary: </b> Lets shoppers search for specific items by keyword, GTIN, category, charity, product, or item aspects and refine the results by using filters, such as aspects, compatibility, and fields values.</li>  <li><b> search_by_image: </b><a href=\"https://developer.ebay.com/api-docs/static/versioning.html#experimental \" target=\"_blank\"><img src=\"/cms/img/docs/experimental-icon.svg\" class=\"legend-icon experimental-icon\" alt=\"Experimental Release\" title=\"Experimental Release\" />&nbsp;(Experimental)</a> Lets shoppers search for specific items by image. You can refine the results by using URI parameters and filters.</li>   <li><b> item: </b> <ul><li>Lets you retrieve the details of a specific item or all the items in an item group, which is an item with variations such as color and size and check if a product is compatible with the specified item, such as if a specific car is compatible with a specific part.</li> <li>Provides a bridge between the eBay legacy APIs, such as <b> Finding</b>, and the RESTful APIs, which use different formats for the item IDs.</li>  </ul> </li>  <li> <b> shopping_cart: </b> <a href=\"https://developer.ebay.com/api-docs/static/versioning.html#experimental \" target=\"_blank\"><img src=\"/cms/img/docs/experimental-icon.svg\" class=\"legend-icon experimental-icon\" alt=\"Experimental Release\" title=\"Experimental Release\" />&nbsp;(Experimental)</a> <a href=\"https://developer.ebay.com/api-docs/static/versioning.html#limited \" target=\"_blank\"> <img src=\"/cms/img/docs/partners-api.svg\" class=\"legend-icon partners-icon\" title=\"Limited Release\"  alt=\"Limited Release\" />(Limited Release)</a> Provides the ability for eBay members to see the contents of their eBay cart, and add, remove, and change the quantity of items in their eBay cart.&nbsp;&nbsp;<b> Note: </b> This resource is not available in the eBay API Explorer.</li></ul>       <p>The <b> item_summary</b>, <b> search_by_image</b>, and <b> item</b> resource calls require an <a href=\"/api-docs/static/oauth-client-credentials-grant.html\">Application access token</a>. The <b> shopping_cart</b> resource calls require a <a href=\"/api-docs/static/oauth-authorization-code-grant.html\">User access token</a>.</p>
 *
 * The version of the OpenAPI document: v1.18.0
 * Generated by: https://openapi-generator.tech
 * OpenAPI Generator version: 5.4.0
 */

/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

namespace TNT\Ebay\Buy\Browse\V1\Model;

use TNT\Ebay\Buy\Browse\V1\ObjectSerializer;

/**
 * Item Class Doc Comment.
 *
 * @category Class
 *
 * @description The details of an item that can be purchased.
 *
 * @author   OpenAPI Generator team
 *
 * @see     https://openapi-generator.tech
 *
 * @implements \ArrayAccess<TKey, TValue>
 *
 * @template TKey int|null
 * @template TValue mixed|null
 */
class Item implements ModelInterface, \ArrayAccess, \JsonSerializable
{
    public const DISCRIMINATOR = null;

    /**
     * The original name of the model.
     *
     * @var string
     */
    protected static $openAPIModelName = 'Item';

    /**
     * Array of property to type mappings. Used for (de)serialization.
     *
     * @var string[]
     */
    protected static $openAPITypes = [
        'additional_images' => '\TNT\Ebay\Buy\Browse\V1\Model\Image[]',
        'addon_services' => '\TNT\Ebay\Buy\Browse\V1\Model\AddonService[]',
        'adult_only' => 'bool',
        'age_group' => 'string',
        'authenticity_guarantee' => '\TNT\Ebay\Buy\Browse\V1\Model\AuthenticityGuaranteeProgram',
        'authenticity_verification' => '\TNT\Ebay\Buy\Browse\V1\Model\AuthenticityVerificationProgram',
        'available_coupons' => '\TNT\Ebay\Buy\Browse\V1\Model\AvailableCoupon[]',
        'bid_count' => 'int',
        'brand' => 'string',
        'buying_options' => 'string[]',
        'category_id' => 'string',
        'category_id_path' => 'string',
        'category_path' => 'string',
        'color' => 'string',
        'condition' => 'string',
        'condition_description' => 'string',
        'condition_id' => 'string',
        'current_bid_price' => '\TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount',
        'description' => 'string',
        'eco_participation_fee' => '\TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount',
        'eligible_for_inline_checkout' => 'bool',
        'enabled_for_guest_checkout' => 'bool',
        'energy_efficiency_class' => 'string',
        'epid' => 'string',
        'estimated_availabilities' => '\TNT\Ebay\Buy\Browse\V1\Model\EstimatedAvailability[]',
        'gender' => 'string',
        'gtin' => 'string',
        'image' => '\TNT\Ebay\Buy\Browse\V1\Model\Image',
        'inferred_epid' => 'string',
        'item_affiliate_web_url' => 'string',
        'item_creation_date' => 'string',
        'item_end_date' => 'string',
        'item_id' => 'string',
        'item_location' => '\TNT\Ebay\Buy\Browse\V1\Model\Address',
        'item_web_url' => 'string',
        'legacy_item_id' => 'string',
        'listing_marketplace_id' => 'string',
        'localized_aspects' => '\TNT\Ebay\Buy\Browse\V1\Model\TypedNameValue[]',
        'lot_size' => 'int',
        'marketing_price' => '\TNT\Ebay\Buy\Browse\V1\Model\MarketingPrice',
        'material' => 'string',
        'minimum_price_to_bid' => '\TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount',
        'mpn' => 'string',
        'pattern' => 'string',
        'payment_methods' => '\TNT\Ebay\Buy\Browse\V1\Model\PaymentMethod[]',
        'price' => '\TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount',
        'price_display_condition' => 'string',
        'primary_item_group' => '\TNT\Ebay\Buy\Browse\V1\Model\ItemGroupSummary',
        'primary_product_review_rating' => '\TNT\Ebay\Buy\Browse\V1\Model\ReviewRating',
        'priority_listing' => 'bool',
        'product' => '\TNT\Ebay\Buy\Browse\V1\Model\Product',
        'product_fiche_web_url' => 'string',
        'qualified_programs' => 'string[]',
        'quantity_limit_per_buyer' => 'int',
        'reserve_price_met' => 'bool',
        'return_terms' => '\TNT\Ebay\Buy\Browse\V1\Model\ItemReturnTerms',
        'seller' => '\TNT\Ebay\Buy\Browse\V1\Model\SellerDetail',
        'seller_custom_policies' => '\TNT\Ebay\Buy\Browse\V1\Model\SellerCustomPolicy[]',
        'seller_item_revision' => 'string',
        'shipping_options' => '\TNT\Ebay\Buy\Browse\V1\Model\ShippingOption[]',
        'ship_to_locations' => '\TNT\Ebay\Buy\Browse\V1\Model\ShipToLocations',
        'short_description' => 'string',
        'size' => 'string',
        'size_system' => 'string',
        'size_type' => 'string',
        'subtitle' => 'string',
        'taxes' => '\TNT\Ebay\Buy\Browse\V1\Model\Taxes[]',
        'title' => 'string',
        'top_rated_buying_experience' => 'bool',
        'tyre_label_image_url' => 'string',
        'unique_bidder_count' => 'int',
        'unit_price' => '\TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount',
        'unit_pricing_measure' => 'string',
        'warnings' => '\TNT\Ebay\Buy\Browse\V1\Model\Error[]',
        'watch_count' => 'int',
    ];

    /**
     * Array of property to format mappings. Used for (de)serialization.
     *
     * @var string[]
     *
     * @phpstan-var array<string, string|null>
     *
     * @psalm-var array<string, string|null>
     */
    protected static $openAPIFormats = [
        'additional_images' => null,
        'addon_services' => null,
        'adult_only' => null,
        'age_group' => null,
        'authenticity_guarantee' => null,
        'authenticity_verification' => null,
        'available_coupons' => null,
        'bid_count' => 'int32',
        'brand' => null,
        'buying_options' => null,
        'category_id' => null,
        'category_id_path' => null,
        'category_path' => null,
        'color' => null,
        'condition' => null,
        'condition_description' => null,
        'condition_id' => null,
        'current_bid_price' => null,
        'description' => null,
        'eco_participation_fee' => null,
        'eligible_for_inline_checkout' => null,
        'enabled_for_guest_checkout' => null,
        'energy_efficiency_class' => null,
        'epid' => null,
        'estimated_availabilities' => null,
        'gender' => null,
        'gtin' => null,
        'image' => null,
        'inferred_epid' => null,
        'item_affiliate_web_url' => null,
        'item_creation_date' => null,
        'item_end_date' => null,
        'item_id' => null,
        'item_location' => null,
        'item_web_url' => null,
        'legacy_item_id' => null,
        'listing_marketplace_id' => null,
        'localized_aspects' => null,
        'lot_size' => 'int32',
        'marketing_price' => null,
        'material' => null,
        'minimum_price_to_bid' => null,
        'mpn' => null,
        'pattern' => null,
        'payment_methods' => null,
        'price' => null,
        'price_display_condition' => null,
        'primary_item_group' => null,
        'primary_product_review_rating' => null,
        'priority_listing' => null,
        'product' => null,
        'product_fiche_web_url' => null,
        'qualified_programs' => null,
        'quantity_limit_per_buyer' => 'int32',
        'reserve_price_met' => null,
        'return_terms' => null,
        'seller' => null,
        'seller_custom_policies' => null,
        'seller_item_revision' => null,
        'shipping_options' => null,
        'ship_to_locations' => null,
        'short_description' => null,
        'size' => null,
        'size_system' => null,
        'size_type' => null,
        'subtitle' => null,
        'taxes' => null,
        'title' => null,
        'top_rated_buying_experience' => null,
        'tyre_label_image_url' => null,
        'unique_bidder_count' => 'int32',
        'unit_price' => null,
        'unit_pricing_measure' => null,
        'warnings' => null,
        'watch_count' => 'int32',
    ];

    /**
     * Array of property to type mappings. Used for (de)serialization.
     *
     * @return array
     */
    public static function openAPITypes()
    {
        return self::$openAPITypes;
    }

    /**
     * Array of property to format mappings. Used for (de)serialization.
     *
     * @return array
     */
    public static function openAPIFormats()
    {
        return self::$openAPIFormats;
    }

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name.
     *
     * @var string[]
     */
    protected static $attributeMap = [
        'additional_images' => 'additionalImages',
        'addon_services' => 'addonServices',
        'adult_only' => 'adultOnly',
        'age_group' => 'ageGroup',
        'authenticity_guarantee' => 'authenticityGuarantee',
        'authenticity_verification' => 'authenticityVerification',
        'available_coupons' => 'availableCoupons',
        'bid_count' => 'bidCount',
        'brand' => 'brand',
        'buying_options' => 'buyingOptions',
        'category_id' => 'categoryId',
        'category_id_path' => 'categoryIdPath',
        'category_path' => 'categoryPath',
        'color' => 'color',
        'condition' => 'condition',
        'condition_description' => 'conditionDescription',
        'condition_id' => 'conditionId',
        'current_bid_price' => 'currentBidPrice',
        'description' => 'description',
        'eco_participation_fee' => 'ecoParticipationFee',
        'eligible_for_inline_checkout' => 'eligibleForInlineCheckout',
        'enabled_for_guest_checkout' => 'enabledForGuestCheckout',
        'energy_efficiency_class' => 'energyEfficiencyClass',
        'epid' => 'epid',
        'estimated_availabilities' => 'estimatedAvailabilities',
        'gender' => 'gender',
        'gtin' => 'gtin',
        'image' => 'image',
        'inferred_epid' => 'inferredEpid',
        'item_affiliate_web_url' => 'itemAffiliateWebUrl',
        'item_creation_date' => 'itemCreationDate',
        'item_end_date' => 'itemEndDate',
        'item_id' => 'itemId',
        'item_location' => 'itemLocation',
        'item_web_url' => 'itemWebUrl',
        'legacy_item_id' => 'legacyItemId',
        'listing_marketplace_id' => 'listingMarketplaceId',
        'localized_aspects' => 'localizedAspects',
        'lot_size' => 'lotSize',
        'marketing_price' => 'marketingPrice',
        'material' => 'material',
        'minimum_price_to_bid' => 'minimumPriceToBid',
        'mpn' => 'mpn',
        'pattern' => 'pattern',
        'payment_methods' => 'paymentMethods',
        'price' => 'price',
        'price_display_condition' => 'priceDisplayCondition',
        'primary_item_group' => 'primaryItemGroup',
        'primary_product_review_rating' => 'primaryProductReviewRating',
        'priority_listing' => 'priorityListing',
        'product' => 'product',
        'product_fiche_web_url' => 'productFicheWebUrl',
        'qualified_programs' => 'qualifiedPrograms',
        'quantity_limit_per_buyer' => 'quantityLimitPerBuyer',
        'reserve_price_met' => 'reservePriceMet',
        'return_terms' => 'returnTerms',
        'seller' => 'seller',
        'seller_custom_policies' => 'sellerCustomPolicies',
        'seller_item_revision' => 'sellerItemRevision',
        'shipping_options' => 'shippingOptions',
        'ship_to_locations' => 'shipToLocations',
        'short_description' => 'shortDescription',
        'size' => 'size',
        'size_system' => 'sizeSystem',
        'size_type' => 'sizeType',
        'subtitle' => 'subtitle',
        'taxes' => 'taxes',
        'title' => 'title',
        'top_rated_buying_experience' => 'topRatedBuyingExperience',
        'tyre_label_image_url' => 'tyreLabelImageUrl',
        'unique_bidder_count' => 'uniqueBidderCount',
        'unit_price' => 'unitPrice',
        'unit_pricing_measure' => 'unitPricingMeasure',
        'warnings' => 'warnings',
        'watch_count' => 'watchCount',
    ];

    /**
     * Array of attributes to setter functions (for deserialization of responses).
     *
     * @var string[]
     */
    protected static $setters = [
        'additional_images' => 'setAdditionalImages',
        'addon_services' => 'setAddonServices',
        'adult_only' => 'setAdultOnly',
        'age_group' => 'setAgeGroup',
        'authenticity_guarantee' => 'setAuthenticityGuarantee',
        'authenticity_verification' => 'setAuthenticityVerification',
        'available_coupons' => 'setAvailableCoupons',
        'bid_count' => 'setBidCount',
        'brand' => 'setBrand',
        'buying_options' => 'setBuyingOptions',
        'category_id' => 'setCategoryId',
        'category_id_path' => 'setCategoryIdPath',
        'category_path' => 'setCategoryPath',
        'color' => 'setColor',
        'condition' => 'setCondition',
        'condition_description' => 'setConditionDescription',
        'condition_id' => 'setConditionId',
        'current_bid_price' => 'setCurrentBidPrice',
        'description' => 'setDescription',
        'eco_participation_fee' => 'setEcoParticipationFee',
        'eligible_for_inline_checkout' => 'setEligibleForInlineCheckout',
        'enabled_for_guest_checkout' => 'setEnabledForGuestCheckout',
        'energy_efficiency_class' => 'setEnergyEfficiencyClass',
        'epid' => 'setEpid',
        'estimated_availabilities' => 'setEstimatedAvailabilities',
        'gender' => 'setGender',
        'gtin' => 'setGtin',
        'image' => 'setImage',
        'inferred_epid' => 'setInferredEpid',
        'item_affiliate_web_url' => 'setItemAffiliateWebUrl',
        'item_creation_date' => 'setItemCreationDate',
        'item_end_date' => 'setItemEndDate',
        'item_id' => 'setItemId',
        'item_location' => 'setItemLocation',
        'item_web_url' => 'setItemWebUrl',
        'legacy_item_id' => 'setLegacyItemId',
        'listing_marketplace_id' => 'setListingMarketplaceId',
        'localized_aspects' => 'setLocalizedAspects',
        'lot_size' => 'setLotSize',
        'marketing_price' => 'setMarketingPrice',
        'material' => 'setMaterial',
        'minimum_price_to_bid' => 'setMinimumPriceToBid',
        'mpn' => 'setMpn',
        'pattern' => 'setPattern',
        'payment_methods' => 'setPaymentMethods',
        'price' => 'setPrice',
        'price_display_condition' => 'setPriceDisplayCondition',
        'primary_item_group' => 'setPrimaryItemGroup',
        'primary_product_review_rating' => 'setPrimaryProductReviewRating',
        'priority_listing' => 'setPriorityListing',
        'product' => 'setProduct',
        'product_fiche_web_url' => 'setProductFicheWebUrl',
        'qualified_programs' => 'setQualifiedPrograms',
        'quantity_limit_per_buyer' => 'setQuantityLimitPerBuyer',
        'reserve_price_met' => 'setReservePriceMet',
        'return_terms' => 'setReturnTerms',
        'seller' => 'setSeller',
        'seller_custom_policies' => 'setSellerCustomPolicies',
        'seller_item_revision' => 'setSellerItemRevision',
        'shipping_options' => 'setShippingOptions',
        'ship_to_locations' => 'setShipToLocations',
        'short_description' => 'setShortDescription',
        'size' => 'setSize',
        'size_system' => 'setSizeSystem',
        'size_type' => 'setSizeType',
        'subtitle' => 'setSubtitle',
        'taxes' => 'setTaxes',
        'title' => 'setTitle',
        'top_rated_buying_experience' => 'setTopRatedBuyingExperience',
        'tyre_label_image_url' => 'setTyreLabelImageUrl',
        'unique_bidder_count' => 'setUniqueBidderCount',
        'unit_price' => 'setUnitPrice',
        'unit_pricing_measure' => 'setUnitPricingMeasure',
        'warnings' => 'setWarnings',
        'watch_count' => 'setWatchCount',
    ];

    /**
     * Array of attributes to getter functions (for serialization of requests).
     *
     * @var string[]
     */
    protected static $getters = [
        'additional_images' => 'getAdditionalImages',
        'addon_services' => 'getAddonServices',
        'adult_only' => 'getAdultOnly',
        'age_group' => 'getAgeGroup',
        'authenticity_guarantee' => 'getAuthenticityGuarantee',
        'authenticity_verification' => 'getAuthenticityVerification',
        'available_coupons' => 'getAvailableCoupons',
        'bid_count' => 'getBidCount',
        'brand' => 'getBrand',
        'buying_options' => 'getBuyingOptions',
        'category_id' => 'getCategoryId',
        'category_id_path' => 'getCategoryIdPath',
        'category_path' => 'getCategoryPath',
        'color' => 'getColor',
        'condition' => 'getCondition',
        'condition_description' => 'getConditionDescription',
        'condition_id' => 'getConditionId',
        'current_bid_price' => 'getCurrentBidPrice',
        'description' => 'getDescription',
        'eco_participation_fee' => 'getEcoParticipationFee',
        'eligible_for_inline_checkout' => 'getEligibleForInlineCheckout',
        'enabled_for_guest_checkout' => 'getEnabledForGuestCheckout',
        'energy_efficiency_class' => 'getEnergyEfficiencyClass',
        'epid' => 'getEpid',
        'estimated_availabilities' => 'getEstimatedAvailabilities',
        'gender' => 'getGender',
        'gtin' => 'getGtin',
        'image' => 'getImage',
        'inferred_epid' => 'getInferredEpid',
        'item_affiliate_web_url' => 'getItemAffiliateWebUrl',
        'item_creation_date' => 'getItemCreationDate',
        'item_end_date' => 'getItemEndDate',
        'item_id' => 'getItemId',
        'item_location' => 'getItemLocation',
        'item_web_url' => 'getItemWebUrl',
        'legacy_item_id' => 'getLegacyItemId',
        'listing_marketplace_id' => 'getListingMarketplaceId',
        'localized_aspects' => 'getLocalizedAspects',
        'lot_size' => 'getLotSize',
        'marketing_price' => 'getMarketingPrice',
        'material' => 'getMaterial',
        'minimum_price_to_bid' => 'getMinimumPriceToBid',
        'mpn' => 'getMpn',
        'pattern' => 'getPattern',
        'payment_methods' => 'getPaymentMethods',
        'price' => 'getPrice',
        'price_display_condition' => 'getPriceDisplayCondition',
        'primary_item_group' => 'getPrimaryItemGroup',
        'primary_product_review_rating' => 'getPrimaryProductReviewRating',
        'priority_listing' => 'getPriorityListing',
        'product' => 'getProduct',
        'product_fiche_web_url' => 'getProductFicheWebUrl',
        'qualified_programs' => 'getQualifiedPrograms',
        'quantity_limit_per_buyer' => 'getQuantityLimitPerBuyer',
        'reserve_price_met' => 'getReservePriceMet',
        'return_terms' => 'getReturnTerms',
        'seller' => 'getSeller',
        'seller_custom_policies' => 'getSellerCustomPolicies',
        'seller_item_revision' => 'getSellerItemRevision',
        'shipping_options' => 'getShippingOptions',
        'ship_to_locations' => 'getShipToLocations',
        'short_description' => 'getShortDescription',
        'size' => 'getSize',
        'size_system' => 'getSizeSystem',
        'size_type' => 'getSizeType',
        'subtitle' => 'getSubtitle',
        'taxes' => 'getTaxes',
        'title' => 'getTitle',
        'top_rated_buying_experience' => 'getTopRatedBuyingExperience',
        'tyre_label_image_url' => 'getTyreLabelImageUrl',
        'unique_bidder_count' => 'getUniqueBidderCount',
        'unit_price' => 'getUnitPrice',
        'unit_pricing_measure' => 'getUnitPricingMeasure',
        'warnings' => 'getWarnings',
        'watch_count' => 'getWatchCount',
    ];

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name.
     *
     * @return array
     */
    public static function attributeMap()
    {
        return self::$attributeMap;
    }

    /**
     * Array of attributes to setter functions (for deserialization of responses).
     *
     * @return array
     */
    public static function setters()
    {
        return self::$setters;
    }

    /**
     * Array of attributes to getter functions (for serialization of requests).
     *
     * @return array
     */
    public static function getters()
    {
        return self::$getters;
    }

    /**
     * The original name of the model.
     *
     * @return string
     */
    public function getModelName()
    {
        return self::$openAPIModelName;
    }

    /**
     * Associative array for storing property values.
     *
     * @var mixed[]
     */
    protected $container = [];

    /**
     * Constructor.
     *
     * @param mixed[] $data Associated array of property values
     *                      initializing the model
     */
    public function __construct(array $data = null)
    {
        $this->container['additional_images'] = $data['additional_images'] ?? null;
        $this->container['addon_services'] = $data['addon_services'] ?? null;
        $this->container['adult_only'] = $data['adult_only'] ?? null;
        $this->container['age_group'] = $data['age_group'] ?? null;
        $this->container['authenticity_guarantee'] = $data['authenticity_guarantee'] ?? null;
        $this->container['authenticity_verification'] = $data['authenticity_verification'] ?? null;
        $this->container['available_coupons'] = $data['available_coupons'] ?? null;
        $this->container['bid_count'] = $data['bid_count'] ?? null;
        $this->container['brand'] = $data['brand'] ?? null;
        $this->container['buying_options'] = $data['buying_options'] ?? null;
        $this->container['category_id'] = $data['category_id'] ?? null;
        $this->container['category_id_path'] = $data['category_id_path'] ?? null;
        $this->container['category_path'] = $data['category_path'] ?? null;
        $this->container['color'] = $data['color'] ?? null;
        $this->container['condition'] = $data['condition'] ?? null;
        $this->container['condition_description'] = $data['condition_description'] ?? null;
        $this->container['condition_id'] = $data['condition_id'] ?? null;
        $this->container['current_bid_price'] = $data['current_bid_price'] ?? null;
        $this->container['description'] = $data['description'] ?? null;
        $this->container['eco_participation_fee'] = $data['eco_participation_fee'] ?? null;
        $this->container['eligible_for_inline_checkout'] = $data['eligible_for_inline_checkout'] ?? null;
        $this->container['enabled_for_guest_checkout'] = $data['enabled_for_guest_checkout'] ?? null;
        $this->container['energy_efficiency_class'] = $data['energy_efficiency_class'] ?? null;
        $this->container['epid'] = $data['epid'] ?? null;
        $this->container['estimated_availabilities'] = $data['estimated_availabilities'] ?? null;
        $this->container['gender'] = $data['gender'] ?? null;
        $this->container['gtin'] = $data['gtin'] ?? null;
        $this->container['image'] = $data['image'] ?? null;
        $this->container['inferred_epid'] = $data['inferred_epid'] ?? null;
        $this->container['item_affiliate_web_url'] = $data['item_affiliate_web_url'] ?? null;
        $this->container['item_creation_date'] = $data['item_creation_date'] ?? null;
        $this->container['item_end_date'] = $data['item_end_date'] ?? null;
        $this->container['item_id'] = $data['item_id'] ?? null;
        $this->container['item_location'] = $data['item_location'] ?? null;
        $this->container['item_web_url'] = $data['item_web_url'] ?? null;
        $this->container['legacy_item_id'] = $data['legacy_item_id'] ?? null;
        $this->container['listing_marketplace_id'] = $data['listing_marketplace_id'] ?? null;
        $this->container['localized_aspects'] = $data['localized_aspects'] ?? null;
        $this->container['lot_size'] = $data['lot_size'] ?? null;
        $this->container['marketing_price'] = $data['marketing_price'] ?? null;
        $this->container['material'] = $data['material'] ?? null;
        $this->container['minimum_price_to_bid'] = $data['minimum_price_to_bid'] ?? null;
        $this->container['mpn'] = $data['mpn'] ?? null;
        $this->container['pattern'] = $data['pattern'] ?? null;
        $this->container['payment_methods'] = $data['payment_methods'] ?? null;
        $this->container['price'] = $data['price'] ?? null;
        $this->container['price_display_condition'] = $data['price_display_condition'] ?? null;
        $this->container['primary_item_group'] = $data['primary_item_group'] ?? null;
        $this->container['primary_product_review_rating'] = $data['primary_product_review_rating'] ?? null;
        $this->container['priority_listing'] = $data['priority_listing'] ?? null;
        $this->container['product'] = $data['product'] ?? null;
        $this->container['product_fiche_web_url'] = $data['product_fiche_web_url'] ?? null;
        $this->container['qualified_programs'] = $data['qualified_programs'] ?? null;
        $this->container['quantity_limit_per_buyer'] = $data['quantity_limit_per_buyer'] ?? null;
        $this->container['reserve_price_met'] = $data['reserve_price_met'] ?? null;
        $this->container['return_terms'] = $data['return_terms'] ?? null;
        $this->container['seller'] = $data['seller'] ?? null;
        $this->container['seller_custom_policies'] = $data['seller_custom_policies'] ?? null;
        $this->container['seller_item_revision'] = $data['seller_item_revision'] ?? null;
        $this->container['shipping_options'] = $data['shipping_options'] ?? null;
        $this->container['ship_to_locations'] = $data['ship_to_locations'] ?? null;
        $this->container['short_description'] = $data['short_description'] ?? null;
        $this->container['size'] = $data['size'] ?? null;
        $this->container['size_system'] = $data['size_system'] ?? null;
        $this->container['size_type'] = $data['size_type'] ?? null;
        $this->container['subtitle'] = $data['subtitle'] ?? null;
        $this->container['taxes'] = $data['taxes'] ?? null;
        $this->container['title'] = $data['title'] ?? null;
        $this->container['top_rated_buying_experience'] = $data['top_rated_buying_experience'] ?? null;
        $this->container['tyre_label_image_url'] = $data['tyre_label_image_url'] ?? null;
        $this->container['unique_bidder_count'] = $data['unique_bidder_count'] ?? null;
        $this->container['unit_price'] = $data['unit_price'] ?? null;
        $this->container['unit_pricing_measure'] = $data['unit_pricing_measure'] ?? null;
        $this->container['warnings'] = $data['warnings'] ?? null;
        $this->container['watch_count'] = $data['watch_count'] ?? null;
    }

    /**
     * Show all the invalid properties with reasons.
     *
     * @return array invalid properties with reasons
     */
    public function listInvalidProperties()
    {
        $invalidProperties = [];

        return $invalidProperties;
    }

    /**
     * Validate all the properties in the model
     * return true if all passed.
     *
     * @return bool True if all properties are valid
     */
    public function valid()
    {
        return count($this->listInvalidProperties()) === 0;
    }

    /**
     * Gets additional_images.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\Image[]|null
     */
    public function getAdditionalImages()
    {
        return $this->container['additional_images'];
    }

    /**
     * Sets additional_images.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\Image[]|null $additional_images An array of containers with the URLs for the images that are in addition to the primary image.  The primary image is returned in the <b> image.imageUrl</b> field.
     *
     * @return self
     */
    public function setAdditionalImages($additional_images)
    {
        $this->container['additional_images'] = $additional_images;

        return $this;
    }

    /**
     * Gets addon_services.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\AddonService[]|null
     */
    public function getAddonServices()
    {
        return $this->container['addon_services'];
    }

    /**
     * Sets addon_services.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\AddonService[]|null $addon_services a list of add-on services that may be selected for the item or that may apply automatically
     *
     * @return self
     */
    public function setAddonServices($addon_services)
    {
        $this->container['addon_services'] = $addon_services;

        return $this;
    }

    /**
     * Gets adult_only.
     *
     * @return bool|null
     */
    public function getAdultOnly()
    {
        return $this->container['adult_only'];
    }

    /**
     * Sets adult_only.
     *
     * @param bool|null $adult_only This indicates if the item is for  adults only. For more information about adult-only items on eBay, see <a href=\"https://pages.ebay.com/help/policies/adult-only.html \" target=\"_blank\">Adult items policy</a> for sellers and <a href=\"https://www.ebay.com/help/terms-conditions/default/searching-adult-items?id=4661\" target=\"_blank\">Adult-Only items on eBay</a> for buyers.
     *
     * @return self
     */
    public function setAdultOnly($adult_only)
    {
        $this->container['adult_only'] = $adult_only;

        return $this;
    }

    /**
     * Gets age_group.
     *
     * @return string|null
     */
    public function getAgeGroup()
    {
        return $this->container['age_group'];
    }

    /**
     * Sets age_group.
     *
     * @param string|null $age_group (Primary Item Aspect) The age group for which the product is recommended. For example, newborn, infant, toddler, kids, adult, etc. All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setAgeGroup($age_group)
    {
        $this->container['age_group'] = $age_group;

        return $this;
    }

    /**
     * Gets authenticity_guarantee.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\AuthenticityGuaranteeProgram|null
     */
    public function getAuthenticityGuarantee()
    {
        return $this->container['authenticity_guarantee'];
    }

    /**
     * Sets authenticity_guarantee.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\AuthenticityGuaranteeProgram|null $authenticity_guarantee authenticity_guarantee
     *
     * @return self
     */
    public function setAuthenticityGuarantee($authenticity_guarantee)
    {
        $this->container['authenticity_guarantee'] = $authenticity_guarantee;

        return $this;
    }

    /**
     * Gets authenticity_verification.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\AuthenticityVerificationProgram|null
     */
    public function getAuthenticityVerification()
    {
        return $this->container['authenticity_verification'];
    }

    /**
     * Sets authenticity_verification.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\AuthenticityVerificationProgram|null $authenticity_verification authenticity_verification
     *
     * @return self
     */
    public function setAuthenticityVerification($authenticity_verification)
    {
        $this->container['authenticity_verification'] = $authenticity_verification;

        return $this;
    }

    /**
     * Gets available_coupons.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\AvailableCoupon[]|null
     */
    public function getAvailableCoupons()
    {
        return $this->container['available_coupons'];
    }

    /**
     * Sets available_coupons.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\AvailableCoupon[]|null $available_coupons a list of available coupons for the item
     *
     * @return self
     */
    public function setAvailableCoupons($available_coupons)
    {
        $this->container['available_coupons'] = $available_coupons;

        return $this;
    }

    /**
     * Gets bid_count.
     *
     * @return int|null
     */
    public function getBidCount()
    {
        return $this->container['bid_count'];
    }

    /**
     * Sets bid_count.
     *
     * @param int|null $bid_count This integer value indicates the total number of bids that have been placed against an auction item. This field is returned only for auction items.
     *
     * @return self
     */
    public function setBidCount($bid_count)
    {
        $this->container['bid_count'] = $bid_count;

        return $this;
    }

    /**
     * Gets brand.
     *
     * @return string|null
     */
    public function getBrand()
    {
        return $this->container['brand'];
    }

    /**
     * Sets brand.
     *
     * @param string|null $brand (Primary Item Aspect) The name brand of the item, such as Nike, Apple, etc.  All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setBrand($brand)
    {
        $this->container['brand'] = $brand;

        return $this;
    }

    /**
     * Gets buying_options.
     *
     * @return string[]|null
     */
    public function getBuyingOptions()
    {
        return $this->container['buying_options'];
    }

    /**
     * Sets buying_options.
     *
     * @param string[]|null $buying_options A comma separated list of all the purchase options available for the item. The values returned are:<ul><li><code>FIXED_PRICE</code> - Indicates the buyer can purchase the item for a set price using the Buy It Now button.</li><li><code>AUCTION</code> - Indicates the buyer can place a bid for the item. After the first bid is placed, this becomes a live auction item and is the only buying option for this item.</li><li><code>BEST_OFFER</code> - Indicates the buyer can send the seller a price they're willing to pay for the item. The seller can accept, reject, or send a counter offer. For more information on how this works, see <a href=\"https://www.ebay.com/help/buying/buy-now/making-best-offer?id=4019 \">Making a Best Offer</a>.</li><li><code>CLASSIFIED_AD</code> - Indicates that the final sales transaction is to be completed outside of the eBay environment.</li></ul>Code so that your app gracefully handles any future changes to this list.
     *
     * @return self
     */
    public function setBuyingOptions($buying_options)
    {
        $this->container['buying_options'] = $buying_options;

        return $this;
    }

    /**
     * Gets category_id.
     *
     * @return string|null
     */
    public function getCategoryId()
    {
        return $this->container['category_id'];
    }

    /**
     * Sets category_id.
     *
     * @param string|null $category_id The ID of the leaf category for this item. A leaf category is the lowest level in that category and has no children.
     *
     * @return self
     */
    public function setCategoryId($category_id)
    {
        $this->container['category_id'] = $category_id;

        return $this;
    }

    /**
     * Gets category_id_path.
     *
     * @return string|null
     */
    public function getCategoryIdPath()
    {
        return $this->container['category_id_path'];
    }

    /**
     * Sets category_id_path.
     *
     * @param string|null $category_id_path The IDs of every category in the item path, separated by pipe characters, starting with the top level parent category.<br /><br />For example, if an item belongs to the top level category Home and Garden (category ID 11700), followed by Home Improvement (159907), Heating, Cooling and Air (69197), and Thermostats (115947), the field would return the value: <code>11700|159907|69197|115947</code>.
     *
     * @return self
     */
    public function setCategoryIdPath($category_id_path)
    {
        $this->container['category_id_path'] = $category_id_path;

        return $this;
    }

    /**
     * Gets category_path.
     *
     * @return string|null
     */
    public function getCategoryPath()
    {
        return $this->container['category_path'];
    }

    /**
     * Sets category_path.
     *
     * @param string|null $category_path Text that shows the category hierarchy of the item. For example: Computers/Tablets &amp; Networking, Laptops &amp; Netbooks, PC Laptops &amp; Netbooks
     *
     * @return self
     */
    public function setCategoryPath($category_path)
    {
        $this->container['category_path'] = $category_path;

        return $this;
    }

    /**
     * Gets color.
     *
     * @return string|null
     */
    public function getColor()
    {
        return $this->container['color'];
    }

    /**
     * Sets color.
     *
     * @param string|null $color (Primary Item Aspect) Text describing the color of the item.  All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setColor($color)
    {
        $this->container['color'] = $color;

        return $this;
    }

    /**
     * Gets condition.
     *
     * @return string|null
     */
    public function getCondition()
    {
        return $this->container['condition'];
    }

    /**
     * Sets condition.
     *
     * @param string|null $condition A short text description for the condition of the item, such as New or Used. For a list of condition names, see <a href=\"https://developer.ebay.com/devzone/finding/callref/enums/conditionIdList.html \" target=\"_blank\">Item Condition IDs and Names</a>.  <br /><br />Code so that your app gracefully handles any future changes to this list.
     *
     * @return self
     */
    public function setCondition($condition)
    {
        $this->container['condition'] = $condition;

        return $this;
    }

    /**
     * Gets condition_description.
     *
     * @return string|null
     */
    public function getConditionDescription()
    {
        return $this->container['condition_description'];
    }

    /**
     * Sets condition_description.
     *
     * @param string|null $condition_description A full text description for the condition of the item. This field elaborates on the value specified in the <b>condition</b> field and provides full details for the condition of the item.
     *
     * @return self
     */
    public function setConditionDescription($condition_description)
    {
        $this->container['condition_description'] = $condition_description;

        return $this;
    }

    /**
     * Gets condition_id.
     *
     * @return string|null
     */
    public function getConditionId()
    {
        return $this->container['condition_id'];
    }

    /**
     * Sets condition_id.
     *
     * @param string|null $condition_id The identifier of the condition of the item. For example, 1000 is the identifier for NEW. For a list of condition names and IDs, see <a href=\"https://developer.ebay.com/devzone/finding/callref/enums/conditionIdList.html \" target=\"_blank\">Item Condition IDs and Names</a>. <br /><br />Code so that your app gracefully handles any future changes to this list.
     *
     * @return self
     */
    public function setConditionId($condition_id)
    {
        $this->container['condition_id'] = $condition_id;

        return $this;
    }

    /**
     * Gets current_bid_price.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null
     */
    public function getCurrentBidPrice()
    {
        return $this->container['current_bid_price'];
    }

    /**
     * Sets current_bid_price.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null $current_bid_price current_bid_price
     *
     * @return self
     */
    public function setCurrentBidPrice($current_bid_price)
    {
        $this->container['current_bid_price'] = $current_bid_price;

        return $this;
    }

    /**
     * Gets description.
     *
     * @return string|null
     */
    public function getDescription()
    {
        return $this->container['description'];
    }

    /**
     * Sets description.
     *
     * @param string|null $description The full description of the item that was created by the seller. This can be plain text or rich content and can be very large.
     *
     * @return self
     */
    public function setDescription($description)
    {
        $this->container['description'] = $description;

        return $this;
    }

    /**
     * Gets eco_participation_fee.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null
     */
    public function getEcoParticipationFee()
    {
        return $this->container['eco_participation_fee'];
    }

    /**
     * Sets eco_participation_fee.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null $eco_participation_fee eco_participation_fee
     *
     * @return self
     */
    public function setEcoParticipationFee($eco_participation_fee)
    {
        $this->container['eco_participation_fee'] = $eco_participation_fee;

        return $this;
    }

    /**
     * Gets eligible_for_inline_checkout.
     *
     * @return bool|null
     */
    public function getEligibleForInlineCheckout()
    {
        return $this->container['eligible_for_inline_checkout'];
    }

    /**
     * Sets eligible_for_inline_checkout.
     *
     * @param bool|null $eligible_for_inline_checkout This field indicates if the item can be purchased using the Buy <a href=\"/api-docs/buy/order/resources/methods\">Order API</a>. <ul> <li>If the value of this field is <code>true</code>, this indicates that the item can be purchased using the <b> Order API</b>. </li>  <li>If the value of this field is <code>false</code>, this indicates that the item cannot be purchased using the <b> Order API</b> and must be purchased on the eBay site.</li> </ul>
     *
     * @return self
     */
    public function setEligibleForInlineCheckout($eligible_for_inline_checkout)
    {
        $this->container['eligible_for_inline_checkout'] = $eligible_for_inline_checkout;

        return $this;
    }

    /**
     * Gets enabled_for_guest_checkout.
     *
     * @return bool|null
     */
    public function getEnabledForGuestCheckout()
    {
        return $this->container['enabled_for_guest_checkout'];
    }

    /**
     * Sets enabled_for_guest_checkout.
     *
     * @param bool|null $enabled_for_guest_checkout This indicates if the item can be purchased using Guest Checkout in the <a href=\"/api-docs/buy/order/resources/methods\">Order API</a>. You can use this flag to exclude items from your inventory that are not eligible for Guest Checkout, such as gift cards.
     *
     * @return self
     */
    public function setEnabledForGuestCheckout($enabled_for_guest_checkout)
    {
        $this->container['enabled_for_guest_checkout'] = $enabled_for_guest_checkout;

        return $this;
    }

    /**
     * Gets energy_efficiency_class.
     *
     * @return string|null
     */
    public function getEnergyEfficiencyClass()
    {
        return $this->container['energy_efficiency_class'];
    }

    /**
     * Sets energy_efficiency_class.
     *
     * @param string|null $energy_efficiency_class This indicates the <a href=\"https://en.wikipedia.org/wiki/European_Union_energy_label \">European energy efficiency</a> rating (EEK) of the item. This field is returned only if the seller specified the energy efficiency rating. <br /><br />The rating is a set of energy efficiency classes from A to G, where 'A' is the most energy efficient and 'G' is the least efficient. This rating helps buyers choose between various models. <br /><br />When the manufacturer's specifications for this item are available, the link to this information is returned in the <b> productFicheWebUrl</b> field.
     *
     * @return self
     */
    public function setEnergyEfficiencyClass($energy_efficiency_class)
    {
        $this->container['energy_efficiency_class'] = $energy_efficiency_class;

        return $this;
    }

    /**
     * Gets epid.
     *
     * @return string|null
     */
    public function getEpid()
    {
        return $this->container['epid'];
    }

    /**
     * Sets epid.
     *
     * @param string|null $epid An EPID is the eBay product identifier of a product from the eBay product catalog.  This indicates the product in which the item belongs.
     *
     * @return self
     */
    public function setEpid($epid)
    {
        $this->container['epid'] = $epid;

        return $this;
    }

    /**
     * Gets estimated_availabilities.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\EstimatedAvailability[]|null
     */
    public function getEstimatedAvailabilities()
    {
        return $this->container['estimated_availabilities'];
    }

    /**
     * Sets estimated_availabilities.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\EstimatedAvailability[]|null $estimated_availabilities The estimated number of this item that are available for purchase. Because the quantity of an item can change several times within a second, it is impossible to return the exact quantity. So instead of returning quantity, the estimated availability of the item is returned.
     *
     * @return self
     */
    public function setEstimatedAvailabilities($estimated_availabilities)
    {
        $this->container['estimated_availabilities'] = $estimated_availabilities;

        return $this;
    }

    /**
     * Gets gender.
     *
     * @return string|null
     */
    public function getGender()
    {
        return $this->container['gender'];
    }

    /**
     * Sets gender.
     *
     * @param string|null $gender (Primary Item Aspect) The gender for the item. This is used for items that could vary by gender, such as clothing. For example: male, female, or unisex. All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setGender($gender)
    {
        $this->container['gender'] = $gender;

        return $this;
    }

    /**
     * Gets gtin.
     *
     * @return string|null
     */
    public function getGtin()
    {
        return $this->container['gtin'];
    }

    /**
     * Sets gtin.
     *
     * @param string|null $gtin The unique Global Trade Item number of the item as defined by <a href=\"https://www.gtin.info \" target=\"_blank\">https://www.gtin.info</a>. This can be a UPC (Universal Product Code), EAN (European Article Number), or an ISBN (International Standard Book Number) value.
     *
     * @return self
     */
    public function setGtin($gtin)
    {
        $this->container['gtin'] = $gtin;

        return $this;
    }

    /**
     * Gets image.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\Image|null
     */
    public function getImage()
    {
        return $this->container['image'];
    }

    /**
     * Sets image.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\Image|null $image image
     *
     * @return self
     */
    public function setImage($image)
    {
        $this->container['image'] = $image;

        return $this;
    }

    /**
     * Gets inferred_epid.
     *
     * @return string|null
     */
    public function getInferredEpid()
    {
        return $this->container['inferred_epid'];
    }

    /**
     * Sets inferred_epid.
     *
     * @param string|null $inferred_epid The ePID (eBay Product ID of a product from the eBay product catalog) for the item, which has been programmatically determined by eBay using the item's title, aspects, and other data. <br /><br />If the seller provided an ePID for the item, the seller's value is returned in the <b> epid</b> field. <br /><br /><span class=\"tablenote\"><b> Note: </b> This field is returned only for authorized Partners.</span>
     *
     * @return self
     */
    public function setInferredEpid($inferred_epid)
    {
        $this->container['inferred_epid'] = $inferred_epid;

        return $this;
    }

    /**
     * Gets item_affiliate_web_url.
     *
     * @return string|null
     */
    public function getItemAffiliateWebUrl()
    {
        return $this->container['item_affiliate_web_url'];
    }

    /**
     * Sets item_affiliate_web_url.
     *
     * @param string|null $item_affiliate_web_url The URL of the View Item page of the item, which includes the affiliate tracking ID. This field is only returned if the eBay partner enables affiliate tracking for the item by including the  <a href=\"/api-docs/buy/static/api-browse.html#Headers\"><code>X-EBAY-C-ENDUSERCTX</code></a> request header in the method.  <br /> <br /><span class=\"tablenote\"><b>Note: </b> eBay Partner Network, in order to be commissioned for your sales, you must use this URL to forward your buyer to the ebay.com site. </span>
     *
     * @return self
     */
    public function setItemAffiliateWebUrl($item_affiliate_web_url)
    {
        $this->container['item_affiliate_web_url'] = $item_affiliate_web_url;

        return $this;
    }

    /**
     * Gets item_creation_date.
     *
     * @return string|null
     */
    public function getItemCreationDate()
    {
        return $this->container['item_creation_date'];
    }

    /**
     * Sets item_creation_date.
     *
     * @param string|null $item_creation_date A timestamp that indicates the date and time an item listing was created.<br /><br />This value is returned in UTC format (yyyy-MM-ddThh:mm:ss.sssZ), which can be converted into the local time of the buyer.
     *
     * @return self
     */
    public function setItemCreationDate($item_creation_date)
    {
        $this->container['item_creation_date'] = $item_creation_date;

        return $this;
    }

    /**
     * Gets item_end_date.
     *
     * @return string|null
     */
    public function getItemEndDate()
    {
        return $this->container['item_end_date'];
    }

    /**
     * Sets item_end_date.
     *
     * @param string|null $item_end_date This timestamp indicates the date and time up to which the item can be purchased.  This value is returned in UTC format (yyyy-MM-ddThh:mm:ss.sssZ), which you can convert into the local time of the buyer.<br /><br /><span class=\"tablenote\"><b> Note: </b>This field is only returned for auction listings.</span>
     *
     * @return self
     */
    public function setItemEndDate($item_end_date)
    {
        $this->container['item_end_date'] = $item_end_date;

        return $this;
    }

    /**
     * Gets item_id.
     *
     * @return string|null
     */
    public function getItemId()
    {
        return $this->container['item_id'];
    }

    /**
     * Sets item_id.
     *
     * @param string|null $item_id the unique RESTful identifier of the item
     *
     * @return self
     */
    public function setItemId($item_id)
    {
        $this->container['item_id'] = $item_id;

        return $this;
    }

    /**
     * Gets item_location.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\Address|null
     */
    public function getItemLocation()
    {
        return $this->container['item_location'];
    }

    /**
     * Sets item_location.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\Address|null $item_location item_location
     *
     * @return self
     */
    public function setItemLocation($item_location)
    {
        $this->container['item_location'] = $item_location;

        return $this;
    }

    /**
     * Gets item_web_url.
     *
     * @return string|null
     */
    public function getItemWebUrl()
    {
        return $this->container['item_web_url'];
    }

    /**
     * Sets item_web_url.
     *
     * @param string|null $item_web_url The URL of the View Item page of the item. This enables you to include a \"Report Item on eBay\" link that takes the buyer to the View Item page on eBay. From there they can report any issues regarding this item to eBay.
     *
     * @return self
     */
    public function setItemWebUrl($item_web_url)
    {
        $this->container['item_web_url'] = $item_web_url;

        return $this;
    }

    /**
     * Gets legacy_item_id.
     *
     * @return string|null
     */
    public function getLegacyItemId()
    {
        return $this->container['legacy_item_id'];
    }

    /**
     * Sets legacy_item_id.
     *
     * @param string|null $legacy_item_id The unique identifier of the eBay listing that contains the item. This is the traditional/legacy ID that is often seen in the URL of the listing View Item page.
     *
     * @return self
     */
    public function setLegacyItemId($legacy_item_id)
    {
        $this->container['legacy_item_id'] = $legacy_item_id;

        return $this;
    }

    /**
     * Gets listing_marketplace_id.
     *
     * @return string|null
     */
    public function getListingMarketplaceId()
    {
        return $this->container['listing_marketplace_id'];
    }

    /**
     * Sets listing_marketplace_id.
     *
     * @param string|null $listing_marketplace_id The ID of the eBay marketplace where the item is listed. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/buy/browse/types/ba:MarketplaceIdEnum'>eBay API documentation</a>
     *
     * @return self
     */
    public function setListingMarketplaceId($listing_marketplace_id)
    {
        $this->container['listing_marketplace_id'] = $listing_marketplace_id;

        return $this;
    }

    /**
     * Gets localized_aspects.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\TypedNameValue[]|null
     */
    public function getLocalizedAspects()
    {
        return $this->container['localized_aspects'];
    }

    /**
     * Sets localized_aspects.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\TypedNameValue[]|null $localized_aspects an array of containers that show the complete list of the aspect name/value pairs that describe the variation of the item
     *
     * @return self
     */
    public function setLocalizedAspects($localized_aspects)
    {
        $this->container['localized_aspects'] = $localized_aspects;

        return $this;
    }

    /**
     * Gets lot_size.
     *
     * @return int|null
     */
    public function getLotSize()
    {
        return $this->container['lot_size'];
    }

    /**
     * Sets lot_size.
     *
     * @param int|null $lot_size The number of items in a lot. In other words, a lot size is the number of items that are being sold together.  <br /><br />A lot is a set of two or more items included in a single listing that must be purchased together in a single order line item. All the items in the lot are the same but there can be multiple items in a single lot,  such as the package of batteries shown in the example below.   <br /><br /><table border=\"1\"> <tr> <tr>  <th>Item</th>  <th>Lot Definition</th> <th>Lot Size</th></tr>  <tr>  <td>A package of 24 AA batteries</td>  <td>A box of 10 packages</td>  <td>10  </td> </tr>  <tr>  <td>A P235/75-15 Goodyear tire </td>  <td>4 tires  </td>  <td>4  </td> </tr> <tr> <td>Fashion Jewelry Rings  </td> <td>Package of 100 assorted rings  </td> <td>100 </td> </tr></table>  <br /><br /><span class=\"tablenote\"><b>Note: </b>  Lots are not supported in all categories.  </span>
     *
     * @return self
     */
    public function setLotSize($lot_size)
    {
        $this->container['lot_size'] = $lot_size;

        return $this;
    }

    /**
     * Gets marketing_price.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\MarketingPrice|null
     */
    public function getMarketingPrice()
    {
        return $this->container['marketing_price'];
    }

    /**
     * Sets marketing_price.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\MarketingPrice|null $marketing_price marketing_price
     *
     * @return self
     */
    public function setMarketingPrice($marketing_price)
    {
        $this->container['marketing_price'] = $marketing_price;

        return $this;
    }

    /**
     * Gets material.
     *
     * @return string|null
     */
    public function getMaterial()
    {
        return $this->container['material'];
    }

    /**
     * Sets material.
     *
     * @param string|null $material (Primary Item Aspect) Text describing what the item is made of. For example, silk. All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setMaterial($material)
    {
        $this->container['material'] = $material;

        return $this;
    }

    /**
     * Gets minimum_price_to_bid.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null
     */
    public function getMinimumPriceToBid()
    {
        return $this->container['minimum_price_to_bid'];
    }

    /**
     * Sets minimum_price_to_bid.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null $minimum_price_to_bid minimum_price_to_bid
     *
     * @return self
     */
    public function setMinimumPriceToBid($minimum_price_to_bid)
    {
        $this->container['minimum_price_to_bid'] = $minimum_price_to_bid;

        return $this;
    }

    /**
     * Gets mpn.
     *
     * @return string|null
     */
    public function getMpn()
    {
        return $this->container['mpn'];
    }

    /**
     * Sets mpn.
     *
     * @param string|null $mpn The manufacturer's part number, which is a unique number that identifies a specific product. To identify the product, this is always used along with brand.
     *
     * @return self
     */
    public function setMpn($mpn)
    {
        $this->container['mpn'] = $mpn;

        return $this;
    }

    /**
     * Gets pattern.
     *
     * @return string|null
     */
    public function getPattern()
    {
        return $this->container['pattern'];
    }

    /**
     * Sets pattern.
     *
     * @param string|null $pattern (Primary Item Aspect) Text describing the pattern used on the item. For example, paisley. All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setPattern($pattern)
    {
        $this->container['pattern'] = $pattern;

        return $this;
    }

    /**
     * Gets payment_methods.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\PaymentMethod[]|null
     */
    public function getPaymentMethods()
    {
        return $this->container['payment_methods'];
    }

    /**
     * Sets payment_methods.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\PaymentMethod[]|null $payment_methods the payment methods for the item, including the payment method types, brands, and instructions for the buyer
     *
     * @return self
     */
    public function setPaymentMethods($payment_methods)
    {
        $this->container['payment_methods'] = $payment_methods;

        return $this;
    }

    /**
     * Gets price.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null
     */
    public function getPrice()
    {
        return $this->container['price'];
    }

    /**
     * Sets price.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null $price price
     *
     * @return self
     */
    public function setPrice($price)
    {
        $this->container['price'] = $price;

        return $this;
    }

    /**
     * Gets price_display_condition.
     *
     * @return string|null
     */
    public function getPriceDisplayCondition()
    {
        return $this->container['price_display_condition'];
    }

    /**
     * Sets price_display_condition.
     *
     * @param string|null $price_display_condition Indicates when in the buying flow the item's price can appear for minimum advertised price (MAP) items, which is the lowest price a retailer can advertise/show for this item. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/buy/browse/types/gct:PriceDisplayConditionEnum'>eBay API documentation</a>
     *
     * @return self
     */
    public function setPriceDisplayCondition($price_display_condition)
    {
        $this->container['price_display_condition'] = $price_display_condition;

        return $this;
    }

    /**
     * Gets primary_item_group.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ItemGroupSummary|null
     */
    public function getPrimaryItemGroup()
    {
        return $this->container['primary_item_group'];
    }

    /**
     * Sets primary_item_group.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ItemGroupSummary|null $primary_item_group primary_item_group
     *
     * @return self
     */
    public function setPrimaryItemGroup($primary_item_group)
    {
        $this->container['primary_item_group'] = $primary_item_group;

        return $this;
    }

    /**
     * Gets primary_product_review_rating.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ReviewRating|null
     */
    public function getPrimaryProductReviewRating()
    {
        return $this->container['primary_product_review_rating'];
    }

    /**
     * Sets primary_product_review_rating.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ReviewRating|null $primary_product_review_rating primary_product_review_rating
     *
     * @return self
     */
    public function setPrimaryProductReviewRating($primary_product_review_rating)
    {
        $this->container['primary_product_review_rating'] = $primary_product_review_rating;

        return $this;
    }

    /**
     * Gets priority_listing.
     *
     * @return bool|null
     */
    public function getPriorityListing()
    {
        return $this->container['priority_listing'];
    }

    /**
     * Sets priority_listing.
     *
     * @param bool|null $priority_listing This field is returned as <code>true</code> if the listing is part of a Promoted Listing campaign. Promoted Listings are available to Above Standard and Top Rated sellers with recent sales activity.<br /><br />For more information, see <a href=\"https://pages.ebay.com/seller-center/listing-and-marketing/promoted-listings.html \" target=\"_blank\">Promoted Listings</a>.
     *
     * @return self
     */
    public function setPriorityListing($priority_listing)
    {
        $this->container['priority_listing'] = $priority_listing;

        return $this;
    }

    /**
     * Gets product.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\Product|null
     */
    public function getProduct()
    {
        return $this->container['product'];
    }

    /**
     * Sets product.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\Product|null $product product
     *
     * @return self
     */
    public function setProduct($product)
    {
        $this->container['product'] = $product;

        return $this;
    }

    /**
     * Gets product_fiche_web_url.
     *
     * @return string|null
     */
    public function getProductFicheWebUrl()
    {
        return $this->container['product_fiche_web_url'];
    }

    /**
     * Sets product_fiche_web_url.
     *
     * @param string|null $product_fiche_web_url The URL of a page containing the manufacturer's specification of this item, which helps buyers make a purchasing decision. This information is available only for items that include the European energy efficiency rating (EEK) but is not available for <em> all</em> items with an EEK rating and is returned only if this information is available. The EEK rating of the item is returned in the <b> energyEfficiencyClass</b> field.
     *
     * @return self
     */
    public function setProductFicheWebUrl($product_fiche_web_url)
    {
        $this->container['product_fiche_web_url'] = $product_fiche_web_url;

        return $this;
    }

    /**
     * Gets qualified_programs.
     *
     * @return string[]|null
     */
    public function getQualifiedPrograms()
    {
        return $this->container['qualified_programs'];
    }

    /**
     * Sets qualified_programs.
     *
     * @param string[]|null $qualified_programs An array of the qualified programs available for the item, or for the item group when returned for the <b>getItemsByItemGroup</b> method, such as EBAY_PLUS, AUTHENTICITY_GUARANTEE, and AUTHENTICITY_VERIFICATION.<br /><br /><span class=\"tablenote\"><b>Note: </b>The <code>AUTHENTICITY_GUARANTEE</code> value being returned by the <b>getItemsByItemGroup</b> method indicates that at least one item in the item group supports this program, but doesn't guarantee that the program is available to all items in the item group. To verify if the Authenticity Program is indeed available for the item that you are interested in, grab the <b>items.itemId</b> value for that item and use the <b>getItem</b> method. This method will return specific details on that particular item, including whether or not the Authenticity Guarantee Program is available for the item. Look for the <b>qualifiedPrograms</b> array and <b>authenticityGuarantee</b> container in the <b>getItem</b> response for this information.</span><br /><br />eBay Plus is a premium account option for buyers, which provides benefits such as fast free domestic shipping and free returns on selected items. Top-Rated eBay sellers must opt in to eBay Plus to be able to offer the program on qualifying listings. Sellers must commit to next-day delivery of those items.<br /><br /><span class=\"tablenote\"><b>Note: </b> eBay Plus is available only to buyers in Germany, Austria, and Australia marketplaces.</span><br /><br />The eBay <a href=\"https://pages.ebay.com/authenticity-guarantee/ \" target=\"_blank\">Authenticity Guarantee</a> program enables third-party authenticators to perform authentication verification inspections on items such as watches and sneakers.
     *
     * @return self
     */
    public function setQualifiedPrograms($qualified_programs)
    {
        $this->container['qualified_programs'] = $qualified_programs;

        return $this;
    }

    /**
     * Gets quantity_limit_per_buyer.
     *
     * @return int|null
     */
    public function getQuantityLimitPerBuyer()
    {
        return $this->container['quantity_limit_per_buyer'];
    }

    /**
     * Sets quantity_limit_per_buyer.
     *
     * @param int|null $quantity_limit_per_buyer the maximum number for a specific item that one buyer can purchase
     *
     * @return self
     */
    public function setQuantityLimitPerBuyer($quantity_limit_per_buyer)
    {
        $this->container['quantity_limit_per_buyer'] = $quantity_limit_per_buyer;

        return $this;
    }

    /**
     * Gets reserve_price_met.
     *
     * @return bool|null
     */
    public function getReservePriceMet()
    {
        return $this->container['reserve_price_met'];
    }

    /**
     * Sets reserve_price_met.
     *
     * @param bool|null $reserve_price_met This indicates if the reserve price of the item has been met. A reserve price is set by the seller and is the minimum amount the seller is willing to sell the item for. <p>If the highest bid is not equal to or higher than the reserve price when the auction ends, the listing ends and the item is not sold.</p> <p><b> Note: </b>This is returned only for auctions that have a reserve price.</p>
     *
     * @return self
     */
    public function setReservePriceMet($reserve_price_met)
    {
        $this->container['reserve_price_met'] = $reserve_price_met;

        return $this;
    }

    /**
     * Gets return_terms.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ItemReturnTerms|null
     */
    public function getReturnTerms()
    {
        return $this->container['return_terms'];
    }

    /**
     * Sets return_terms.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ItemReturnTerms|null $return_terms return_terms
     *
     * @return self
     */
    public function setReturnTerms($return_terms)
    {
        $this->container['return_terms'] = $return_terms;

        return $this;
    }

    /**
     * Gets seller.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\SellerDetail|null
     */
    public function getSeller()
    {
        return $this->container['seller'];
    }

    /**
     * Sets seller.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\SellerDetail|null $seller seller
     *
     * @return self
     */
    public function setSeller($seller)
    {
        $this->container['seller'] = $seller;

        return $this;
    }

    /**
     * Gets seller_custom_policies.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\SellerCustomPolicy[]|null
     */
    public function getSellerCustomPolicies()
    {
        return $this->container['seller_custom_policies'];
    }

    /**
     * Sets seller_custom_policies.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\SellerCustomPolicy[]|null $seller_custom_policies a list of the custom policies that are applied to a listing
     *
     * @return self
     */
    public function setSellerCustomPolicies($seller_custom_policies)
    {
        $this->container['seller_custom_policies'] = $seller_custom_policies;

        return $this;
    }

    /**
     * Gets seller_item_revision.
     *
     * @return string|null
     */
    public function getSellerItemRevision()
    {
        return $this->container['seller_item_revision'];
    }

    /**
     * Sets seller_item_revision.
     *
     * @param string|null $seller_item_revision An identifier generated/incremented when a seller revises the item. There are two types of item revisions: <ul><li>Seller changes, such as changing the title</li>  <li>eBay system changes, such as changing the quantity when an item is purchased</li></ul> This ID is changed <em> only</em> when the seller makes a change to the item. This means you cannot use this value to determine if the quantity has changed.
     *
     * @return self
     */
    public function setSellerItemRevision($seller_item_revision)
    {
        $this->container['seller_item_revision'] = $seller_item_revision;

        return $this;
    }

    /**
     * Gets shipping_options.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ShippingOption[]|null
     */
    public function getShippingOptions()
    {
        return $this->container['shipping_options'];
    }

    /**
     * Sets shipping_options.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ShippingOption[]|null $shipping_options An array of shipping options containers that have the details about cost, carrier, etc. of one shipping option.
     *
     * @return self
     */
    public function setShippingOptions($shipping_options)
    {
        $this->container['shipping_options'] = $shipping_options;

        return $this;
    }

    /**
     * Gets ship_to_locations.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ShipToLocations|null
     */
    public function getShipToLocations()
    {
        return $this->container['ship_to_locations'];
    }

    /**
     * Sets ship_to_locations.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ShipToLocations|null $ship_to_locations ship_to_locations
     *
     * @return self
     */
    public function setShipToLocations($ship_to_locations)
    {
        $this->container['ship_to_locations'] = $ship_to_locations;

        return $this;
    }

    /**
     * Gets short_description.
     *
     * @return string|null
     */
    public function getShortDescription()
    {
        return $this->container['short_description'];
    }

    /**
     * Sets short_description.
     *
     * @param string|null $short_description This text string is derived from the item condition and the item aspects (such as size, color, capacity, model, brand, etc.).
     *
     * @return self
     */
    public function setShortDescription($short_description)
    {
        $this->container['short_description'] = $short_description;

        return $this;
    }

    /**
     * Gets size.
     *
     * @return string|null
     */
    public function getSize()
    {
        return $this->container['size'];
    }

    /**
     * Sets size.
     *
     * @param string|null $size (Primary Item Aspect) The size of the item. For example, '7' for a size 7 shoe. All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setSize($size)
    {
        $this->container['size'] = $size;

        return $this;
    }

    /**
     * Gets size_system.
     *
     * @return string|null
     */
    public function getSizeSystem()
    {
        return $this->container['size_system'];
    }

    /**
     * Sets size_system.
     *
     * @param string|null $size_system (Primary Item Aspect) The sizing system of the country.  All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container. <br /><br /><b> Valid Values: </b> <br />AU (Australia),  <br />BR (Brazil), <br />CN (China),  <br />DE (Germany),  <br />EU (European Union),  <br /> FR (France), <br /> IT (Italy),  <br />JP (Japan), <br />MX (Mexico),  <br />US (USA), <br /> UK (United Kingdom) <br /><br />Code so that your app gracefully handles any future changes to this list.
     *
     * @return self
     */
    public function setSizeSystem($size_system)
    {
        $this->container['size_system'] = $size_system;

        return $this;
    }

    /**
     * Gets size_type.
     *
     * @return string|null
     */
    public function getSizeType()
    {
        return $this->container['size_type'];
    }

    /**
     * Sets size_type.
     *
     * @param string|null $size_type (Primary Item Aspect) Text describing a size group in which the item would be included, such as regular, petite, plus, big-and-tall or maternity. All the item aspects, including this aspect, are returned in the <b> localizedAspects</b> container.
     *
     * @return self
     */
    public function setSizeType($size_type)
    {
        $this->container['size_type'] = $size_type;

        return $this;
    }

    /**
     * Gets subtitle.
     *
     * @return string|null
     */
    public function getSubtitle()
    {
        return $this->container['subtitle'];
    }

    /**
     * Sets subtitle.
     *
     * @param string|null $subtitle a subtitle is optional and allows the seller to provide more information about the product, possibly including keywords that may assist with search results
     *
     * @return self
     */
    public function setSubtitle($subtitle)
    {
        $this->container['subtitle'] = $subtitle;

        return $this;
    }

    /**
     * Gets taxes.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\Taxes[]|null
     */
    public function getTaxes()
    {
        return $this->container['taxes'];
    }

    /**
     * Sets taxes.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\Taxes[]|null $taxes the container for the tax information for the item
     *
     * @return self
     */
    public function setTaxes($taxes)
    {
        $this->container['taxes'] = $taxes;

        return $this;
    }

    /**
     * Gets title.
     *
     * @return string|null
     */
    public function getTitle()
    {
        return $this->container['title'];
    }

    /**
     * Sets title.
     *
     * @param string|null $title The seller-created title of the item. <br><br><b> Maximum Length: </b> 80 characters
     *
     * @return self
     */
    public function setTitle($title)
    {
        $this->container['title'] = $title;

        return $this;
    }

    /**
     * Gets top_rated_buying_experience.
     *
     * @return bool|null
     */
    public function getTopRatedBuyingExperience()
    {
        return $this->container['top_rated_buying_experience'];
    }

    /**
     * Sets top_rated_buying_experience.
     *
     * @param bool|null $top_rated_buying_experience This indicates if the item a top-rated plus item. There are three benefits of a top-rated plus item: a  minimum 30-day money-back return policy, shipping the items in 1 business day with tracking provided, and the added comfort of knowing this item is from experienced sellers with the highest buyer ratings. See the <a href=\"https://pages.ebay.com/topratedplus/index.html \" target=\"_blank\">Top Rated Plus Items </a> and <a href=\"https://pages.ebay.com/help/sell/top-rated.html \" target=\"_blank\">Becoming a Top Rated Seller and qualifying for Top Rated Plus</a> help topics for more information.
     *
     * @return self
     */
    public function setTopRatedBuyingExperience($top_rated_buying_experience)
    {
        $this->container['top_rated_buying_experience'] = $top_rated_buying_experience;

        return $this;
    }

    /**
     * Gets tyre_label_image_url.
     *
     * @return string|null
     */
    public function getTyreLabelImageUrl()
    {
        return $this->container['tyre_label_image_url'];
    }

    /**
     * Sets tyre_label_image_url.
     *
     * @param string|null $tyre_label_image_url the URL to the image that shows the information on the tyre label
     *
     * @return self
     */
    public function setTyreLabelImageUrl($tyre_label_image_url)
    {
        $this->container['tyre_label_image_url'] = $tyre_label_image_url;

        return $this;
    }

    /**
     * Gets unique_bidder_count.
     *
     * @return int|null
     */
    public function getUniqueBidderCount()
    {
        return $this->container['unique_bidder_count'];
    }

    /**
     * Sets unique_bidder_count.
     *
     * @param int|null $unique_bidder_count This integer value indicates the number of different eBay users who have placed one or more bids on an auction item. This field is only applicable to auction items.
     *
     * @return self
     */
    public function setUniqueBidderCount($unique_bidder_count)
    {
        $this->container['unique_bidder_count'] = $unique_bidder_count;

        return $this;
    }

    /**
     * Gets unit_price.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null
     */
    public function getUnitPrice()
    {
        return $this->container['unit_price'];
    }

    /**
     * Sets unit_price.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\ConvertedAmount|null $unit_price unit_price
     *
     * @return self
     */
    public function setUnitPrice($unit_price)
    {
        $this->container['unit_price'] = $unit_price;

        return $this;
    }

    /**
     * Gets unit_pricing_measure.
     *
     * @return string|null
     */
    public function getUnitPricingMeasure()
    {
        return $this->container['unit_pricing_measure'];
    }

    /**
     * Sets unit_pricing_measure.
     *
     * @param string|null $unit_pricing_measure The designation, such as size, weight, volume, count, etc., that was used to specify the quantity of the item.  This helps buyers compare prices. <br /><br />For example, the following tells the buyer that the item is 7.99 per 100 grams. <br /><br /><code>\"unitPricingMeasure\": \"100g\",<br /> \"unitPrice\": {<br />&nbsp;&nbsp;\"value\": \"7.99\",<br />&nbsp;&nbsp;\"currency\": \"GBP\"</code>
     *
     * @return self
     */
    public function setUnitPricingMeasure($unit_pricing_measure)
    {
        $this->container['unit_pricing_measure'] = $unit_pricing_measure;

        return $this;
    }

    /**
     * Gets warnings.
     *
     * @return \TNT\Ebay\Buy\Browse\V1\Model\Error[]|null
     */
    public function getWarnings()
    {
        return $this->container['warnings'];
    }

    /**
     * Sets warnings.
     *
     * @param \TNT\Ebay\Buy\Browse\V1\Model\Error[]|null $warnings An array of warning messages. These types of errors do not prevent the method from executing but should be checked.
     *
     * @return self
     */
    public function setWarnings($warnings)
    {
        $this->container['warnings'] = $warnings;

        return $this;
    }

    /**
     * Gets watch_count.
     *
     * @return int|null
     */
    public function getWatchCount()
    {
        return $this->container['watch_count'];
    }

    /**
     * Sets watch_count.
     *
     * @param int|null $watch_count The number of users that have added the item to their watch list.<br /><br /><span class=\"tablenote\"> <strong>Note:</strong> This field is restricted to applications that have been granted permission to access this feature. You must submit an <a href=\"https://developer.ebay.com/my/support/tickets?tab=app-check \">App Check ticket</a> to request this access. In the App Check form, add a note to the <b>Application Title/Summary</b> and/or <b>Application Details</b> fields that you want access to Watch Count data in the Browse API.</span>
     *
     * @return self
     */
    public function setWatchCount($watch_count)
    {
        $this->container['watch_count'] = $watch_count;

        return $this;
    }

    /**
     * Returns true if offset exists. False otherwise.
     *
     * @param int $offset Offset
     */
    public function offsetExists($offset): bool
    {
        return isset($this->container[$offset]);
    }

    /**
     * Gets offset.
     *
     * @param int $offset Offset
     *
     * @return mixed|null
     */
    #[\ReturnTypeWillChange]
    public function offsetGet($offset)
    {
        return $this->container[$offset] ?? null;
    }

    /**
     * Sets value based on offset.
     *
     * @param int|null $offset Offset
     * @param mixed    $value  Value to be set
     */
    public function offsetSet($offset, $value): void
    {
        if (null === $offset) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    /**
     * Unsets offset.
     *
     * @param int $offset Offset
     */
    public function offsetUnset($offset): void
    {
        unset($this->container[$offset]);
    }

    /**
     * Serializes the object to a value that can be serialized natively by json_encode().
     *
     * @see https://www.php.net/manual/en/jsonserializable.jsonserialize.php
     *
     * @return mixed returns data which can be serialized by json_encode(), which is a value
     *               of any type other than a resource
     */
    #[\ReturnTypeWillChange]
    public function jsonSerialize()
    {
        return ObjectSerializer::sanitizeForSerialization($this);
    }

    /**
     * Gets the string presentation of the object.
     *
     * @return string
     */
    public function __toString()
    {
        return json_encode(
            ObjectSerializer::sanitizeForSerialization($this),
            JSON_PRETTY_PRINT
        );
    }

    /**
     * Gets a header-safe presentation of the object.
     *
     * @return string
     */
    public function toHeaderValue()
    {
        return json_encode(ObjectSerializer::sanitizeForSerialization($this));
    }
}