/// <summary>
 /// Initializes a new instance of the <see cref="DestinyDefinitionsDestinyUnlockExpressionDefinition" /> class.
 /// </summary>
 /// <param name="Scope">A shortcut for determining the most restrictive gating that this expression performs. See the DestinyGatingScope enum&#39;s documentation for more details..</param>
 public DestinyDefinitionsDestinyUnlockExpressionDefinition(DestinyDestinyGatingScope Scope = default(DestinyDestinyGatingScope))
 {
     this.Scope = Scope;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DestinyDefinitionsDestinyVendorItemDefinition" /> class.
 /// </summary>
 /// <param name="VendorItemIndex">The index into the DestinyVendorDefinition.saleList. This is what we use to refer to items being sold throughout live and definition data..</param>
 /// <param name="ItemHash">The hash identifier of the item being sold (DestinyInventoryItemDefinition).  Note that a vendor can sell the same item in multiple ways, so don&#39;t assume that itemHash is a unique identifier for this entity..</param>
 /// <param name="Quantity">The amount you will recieve of the item described in itemHash if you make the purchase..</param>
 /// <param name="FailureIndexes">An list of indexes into the DestinyVendorDefinition.failureStrings array, indicating the possible failure strings that can be relevant for this item..</param>
 /// <param name="Currencies">This is a pre-compiled aggregation of item value and priceOverrideList, so that we have one place to check for what the purchaser must pay for the item. Use this instead of trying to piece together the price separately..</param>
 /// <param name="RefundPolicy">If this item can be refunded, this is the policy for what will be refundd, how, and in what time period..</param>
 /// <param name="RefundTimeLimit">The amount of time before refundability of the newly purchased item will expire..</param>
 /// <param name="CreationLevels">The Default level at which the item will spawn. Almost always driven by an adjusto these days. Ideally should be singular. It&#39;s a long story how this ended up as a list, but there is always either going to be 0:1 of these entities..</param>
 /// <param name="DisplayCategoryIndex">This is an index specifically into the display category, as opposed to the server-side Categories (which do not need to match or pair with each other in any way: server side categories are really just structures for common validation. Display Category will let us more easily categorize items visually).</param>
 /// <param name="CategoryIndex">The index into the DestinyVendorDefinition.categories array, so you can find the category associated with this item..</param>
 /// <param name="OriginalCategoryIndex">Same as above, but for the original category indexes..</param>
 /// <param name="MinimumLevel">The minimum character level at which this item is available for sale..</param>
 /// <param name="MaximumLevel">The maximum character level at which this item is available for sale..</param>
 /// <param name="Action">The action to be performed when purchasing the item, if it&#39;s not just \&quot;buy\&quot;..</param>
 /// <param name="DisplayCategory">The string identifier for the category selling this item..</param>
 /// <param name="InventoryBucketHash">The inventory bucket into which this item will be placed upon purchase..</param>
 /// <param name="VisibilityScope">The most restrictive scope that determines whether the item is available in the Vendor&#39;s inventory. See DestinyGatingScope&#39;s documentation for more information.  This can be determined by Unlock gating, or by whether or not the item has purchase level requirements (minimumLevel and maximumLevel properties)..</param>
 /// <param name="PurchasableScope">Similar to visibilityScope, it represents the most restrictive scope that determines whether the item can be purchased. It will at least be as restrictive as visibilityScope, but could be more restrictive if the item has additional purchase requirements beyond whether it is merely visible or not.  See DestinyGatingScope&#39;s documentation for more information..</param>
 public DestinyDefinitionsDestinyVendorItemDefinition(int?VendorItemIndex = default(int?), uint?ItemHash = default(uint?), int?Quantity = default(int?), List <int?> FailureIndexes = default(List <int?>), List <DestinyDestinyItemQuantity> Currencies = default(List <DestinyDestinyItemQuantity>), DestinyDestinyVendorItemRefundPolicy RefundPolicy = default(DestinyDestinyVendorItemRefundPolicy), int?RefundTimeLimit = default(int?), List <DestinyDefinitionsDestinyItemCreationEntryLevelDefinition> CreationLevels = default(List <DestinyDefinitionsDestinyItemCreationEntryLevelDefinition>), int?DisplayCategoryIndex = default(int?), int?CategoryIndex = default(int?), int?OriginalCategoryIndex = default(int?), int?MinimumLevel = default(int?), int?MaximumLevel = default(int?), DestinyDefinitionsDestinyVendorSaleItemActionBlockDefinition Action = default(DestinyDefinitionsDestinyVendorSaleItemActionBlockDefinition), string DisplayCategory = default(string), uint?InventoryBucketHash = default(uint?), DestinyDestinyGatingScope VisibilityScope = default(DestinyDestinyGatingScope), DestinyDestinyGatingScope PurchasableScope = default(DestinyDestinyGatingScope))
 {
     this.VendorItemIndex       = VendorItemIndex;
     this.ItemHash              = ItemHash;
     this.Quantity              = Quantity;
     this.FailureIndexes        = FailureIndexes;
     this.Currencies            = Currencies;
     this.RefundPolicy          = RefundPolicy;
     this.RefundTimeLimit       = RefundTimeLimit;
     this.CreationLevels        = CreationLevels;
     this.DisplayCategoryIndex  = DisplayCategoryIndex;
     this.CategoryIndex         = CategoryIndex;
     this.OriginalCategoryIndex = OriginalCategoryIndex;
     this.MinimumLevel          = MinimumLevel;
     this.MaximumLevel          = MaximumLevel;
     this.Action              = Action;
     this.DisplayCategory     = DisplayCategory;
     this.InventoryBucketHash = InventoryBucketHash;
     this.VisibilityScope     = VisibilityScope;
     this.PurchasableScope    = PurchasableScope;
 }