// Generated by xsd compiler for ios/objective-c
// DO NOT CHANGE!

#import <Foundation/Foundation.h>
#import "PicoClassSchema.h"
#import "PicoPropertySchema.h"
#import "PicoConstants.h"
#import "PicoBindable.h"


@class Trading_NameValueListArrayType;
@class Trading_ModifyNameArrayType;
@class Trading_VariationType;
@class Trading_PicturesType;

/**
 
 Variations are multiple similar (but not identical) items in a
 single fixed-price (or Store Inventory Format) listing.
 For example, a single listing could contain multiple items of the
 same brand and model that vary by color and size (like "Blue, Large" and "Black, Medium"). Each variation can have its own quantity and
 price. For example, a listing could include 10 "Blue, Large"
 variations and 20 "Black, Medium" variations.
 
 
 @ingroup EBayAPIInterface
*/
@interface Trading_VariationsType : NSObject <PicoBindable> {

@private
    NSMutableArray *_variation;
    NSMutableArray *_pictures;
    Trading_NameValueListArrayType *_variationSpecificsSet;
    Trading_ModifyNameArrayType *_modifyNameList;
    NSMutableArray *_any;

}


/**
 
 Contains data that distinguishes one variation from another.
 For example, if the items vary by color and size, each Variation
 node specifies a combination of one of those colors and
 sizes.<br>
 <br>
 When listing or relisting an item, you are allowed to create a
 listing with only one variation if you plan to add more variations
 to it in the future. However, if you don't plan to add other
 variations, we recommend that you avoid listing with only one
 variation, so that you avoid confusing buyers.<br>
 <br>
 When you modify a variation, it's safest to specify all the fields with the values
 you want in the listing. At a minimum, StartPrice and VariationSpecifics are required
 to modify an existing variation. If you omit SKU, the existing SKU (if any) is
 deleted from the variation. If you omit Quantity, it is set to 0.<br>
 <br>
 Variation, Pictures, or ModifyNameList (or all) need to be
 specified when the Variations node is specified in listing requests.
 
 
 entry type : class Trading_VariationType
*/

@property (nonatomic, retain) NSMutableArray *variation;

/**
 
 Contains a set of pictures that correspond to one of the
 variation specifics, such as Color. For example, if a listing
 has blue and black color variations, you could choose Color
 for all the pictures, and then include a set of pictures
 for the blue variations and another set of pictures for the black
 variations.<br>
 <br>
 We strongly recommend that you also include shared pictures
 in Item.PictureDetails, as this results in a better experience
 for buyers.<br>
 <br>
 <b>For ReviseFixedPriceItem only:</b> To replace
 or delete individual pictures, pass in the entire Pictures
 node with the complete set of variation pictures that you
 want in the listing. If the applicable variations have purchases
 or the listing ends in less than 12 hours, you can add
 pictures, but you can't remove existing pictures.<br>
 <br>
 Variation, Pictures, or ModifyNameList (or all) need to be
 specified when the Variations node is specified in listing requests<br>
 <br>
 <span class="tablenote"><b>Note:</b>
 Only one Pictures node is allowed for a listing.
 However, the node has been defined as unbounded (repeatable) in
 the schema to allow for different use cases for some calls or sites
 in the future.</span>
 
 
 entry type : class Trading_PicturesType
*/

@property (nonatomic, retain) NSMutableArray *pictures;

/**
 
 The set of all variation specific names and values that can be
 applicable to the listing (at any time in its life cycle).
 This must include all names and values specified in the
 VariationSpecifics nodes.<br>
 <br>
 Required when Variations are specified in a new listing, and when you
 modify the name of a variation by using ModifyNameList.
 When you modify variation specific names, VariationSpecificsSet  must
 include the new names plus the names that are not changing (but omit the old names), <br>
 <br>
 This set configures variation selection widgets
 that appear on eBay's  View Item page.
 For example, if you specify Color and Size names in the set,
 eBay's View Item page displays Color and Size drop-down lists
 to enable a buyer to choose a variation of interest.<br>
 <br>
 The order in which you specify the names and values also
 controls the order in which the selection widgets appear on
 the View Item page.
 For example, if you specify "Color", then "Size", and then
 "Sleeve Style" as names, the View Item page shows drop-down lists
 with those labels in that order. For "Size", if you specify
 "S", "M", and "L" as values, the View Item page
 shows the values in that order in the Size drop-down list.<br>
 <br>
 Use GetCategorySpecifics to retrieve recommendations for names,
 values, and order.<br>
 <br>
 Required when Variations are specified in a new listing
 (e.g., in AddFixedPriceItem). Also required when you change
 variation specific names or values in ReviseFixedPriceItem and
 RelistFixedPriceItem.
 
 
 type : class Trading_NameValueListArrayType
*/
@property (nonatomic, retain) Trading_NameValueListArrayType *variationSpecificsSet;

/**
 
 Modifies variation specific names when you revise or
 relist items.<br>
 <br>
 You can modify a variation specific name regardless of the quantity sold (i.e., no restrictions on whether the item has orders or order line items (transactions)).<br>
 <br>
 (Use VariationSpecifics to modify variation specific values.)<br>
 <br>
 You are not required to specify SKU, VariationSpecifics, and other variation details in the request when you are only modifying a variation specific name.
 <br>
 <br>
 Variation, Pictures, VariationSpecificsSet, or ModifyNameList (or all) need to be specified when the Variations node is specified in listing requests.
 
 
 type : class Trading_ModifyNameArrayType
*/
@property (nonatomic, retain) Trading_ModifyNameArrayType *modifyNameList;

/**
 (public property)
 
 entry type : PicoAnyElement, wrapper for primitive anyelement
*/

@property (nonatomic, retain) NSMutableArray *any;


@end
