local CatalogShop = { Name = "CatalogShop", Type = "System", Namespace = "C_CatalogShop", Environment = "All", Functions = { { Name = "BulkPurchaseProducts", Type = "Function", HasRestrictions = true, SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productIDs", Type = "table", InnerType = "number", Nilable = false }, }, Returns = { { Name = "canPurchaseProducts", Type = "bool", Nilable = false }, }, }, { Name = "BulkRefundDecors", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "decorGUIDs", Type = "table", InnerType = "WOWGUID", Nilable = false }, }, }, { Name = "CloseCatalogShopInteraction", Type = "Function", }, { Name = "ConfirmHousingPurchase", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productIDs", Type = "table", InnerType = "number", Nilable = false }, }, }, { Name = "FindBestCurrencyProductForNeededAmount", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "vcCurrencyCode", Type = "string", Nilable = false }, { Name = "amountNeeded", Type = "number", Nilable = false }, }, Returns = { { Name = "vcProductID", Type = "number", Nilable = true }, }, }, { Name = "GetAvailableCategoryIDs", Type = "Function", Returns = { { Name = "categoryIDs", Type = "table", InnerType = "number", Nilable = false }, }, }, { Name = "GetAvailableTransmogRaceInfos", Type = "Function", Returns = { { Name = "raceIDs", Type = "table", InnerType = "AvailableRaceInfo", Nilable = false }, }, }, { Name = "GetCatalogShopProductDisplayInfo", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "catalogShopProductID", Type = "number", Nilable = false }, }, Returns = { { Name = "item", Type = "CatalogShopProductDisplayInfo", Nilable = false }, }, }, { Name = "GetCategoryInfo", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryID", Type = "number", Nilable = false }, }, Returns = { { Name = "categoryInfo", Type = "CatalogShopCategoryInfo", Nilable = false }, }, }, { Name = "GetCategorySectionInfo", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryID", Type = "number", Nilable = false }, { Name = "sectionID", Type = "number", Nilable = false }, }, Returns = { { Name = "sectionInfo", Type = "CatalogShopSectionInfo", Nilable = false }, }, }, { Name = "GetFailureInfo", Type = "Function", Returns = { { Name = "errorResultEnum", Type = "StoreError", Nilable = true }, { Name = "errorResultRaw", Type = "number", Nilable = true }, }, }, { Name = "GetFirstCategoryByProductID", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productID", Type = "number", Nilable = false }, }, Returns = { { Name = "categoryInfo", Type = "CatalogShopCategoryInfo", Nilable = true }, }, }, { Name = "GetNewProducts", Type = "Function", Returns = { { Name = "newProducts", Type = "table", InnerType = "number", Nilable = false }, }, }, { Name = "GetProductAvailabilityTimeRemainingSecs", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "catalogShopProductID", Type = "number", Nilable = false }, }, Returns = { { Name = "timeRemainingSecs", Type = "number", Nilable = true }, }, }, { Name = "GetProductIDsForBundle", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "bundleProductID", Type = "number", Nilable = false }, }, Returns = { { Name = "childIDs", Type = "table", InnerType = "CatalogShopBundleChildInfo", Nilable = false }, }, }, { Name = "GetProductIDsForCategory", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryID", Type = "number", Nilable = false }, }, Returns = { { Name = "productIDs", Type = "table", InnerType = "number", Nilable = false }, }, }, { Name = "GetProductIDsForCategorySection", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryID", Type = "number", Nilable = false }, { Name = "sectionID", Type = "number", Nilable = false }, }, Returns = { { Name = "productIDs", Type = "table", InnerType = "number", Nilable = false }, }, }, { Name = "GetProductInfo", Type = "Function", HasRestrictions = true, SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productID", Type = "number", Nilable = false }, }, Returns = { { Name = "productInfo", Type = "CatalogShopProductInfo", Nilable = true }, }, }, { Name = "GetProductSortOrder", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryID", Type = "number", Nilable = false }, { Name = "sectionID", Type = "number", Nilable = false }, { Name = "productID", Type = "number", Nilable = false }, }, Returns = { { Name = "sortOrder", Type = "number", Nilable = true }, }, }, { Name = "GetRefundableDecors", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productIdFilterOpt", Type = "number", Nilable = true }, }, Returns = { { Name = "refundableDecorInfos", Type = "table", InnerType = "RefundableDecorInfo", Nilable = false }, { Name = "minTimeRemainingSeconds", Type = "time_t", Nilable = false }, }, }, { Name = "GetSectionIDsForCategory", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryID", Type = "number", Nilable = false }, }, Returns = { { Name = "sectionIDs", Type = "table", InnerType = "number", Nilable = false }, }, }, { Name = "GetSpellVisualInfoForMount", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "spellVisualID", Type = "number", Nilable = false }, }, Returns = { { Name = "spellVisualInfo", Type = "CatalogShopSpellVisualInfo", Nilable = false }, }, }, { Name = "GetVCProductInfos", Type = "Function", Returns = { { Name = "vcProductInfos", Type = "table", InnerType = "CatalogShopVCProductInfo", Nilable = false }, }, }, { Name = "GetVirtualCurrencyBalance", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "currencyCode", Type = "string", Nilable = false }, }, Returns = { { Name = "balance", Type = "string", Nilable = true }, }, }, { Name = "HasNewProducts", Type = "Function", Returns = { { Name = "hasNewProducts", Type = "bool", Nilable = false }, }, }, { Name = "IsProductIncludedInAnyBundle", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productID", Type = "number", Nilable = false }, }, Returns = { { Name = "isIncludedInAnyBundle", Type = "bool", Nilable = false }, }, }, { Name = "IsShop2Enabled", Type = "Function", Returns = { { Name = "value", Type = "bool", Nilable = true }, }, }, { Name = "OnLegalDisclaimerClicked", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "catalogShopProductID", Type = "number", Nilable = false }, }, }, { Name = "OnLegalPersonalizedOptOutClicked", Type = "Function", }, { Name = "OpenCatalogShopInteractionFromHouse", Type = "Function", Returns = { { Name = "shoppingSessionUUIDStr", Type = "string", Nilable = false }, }, }, { Name = "OpenCatalogShopInteractionFromShop", Type = "Function", Returns = { { Name = "shoppingSessionUUIDStr", Type = "string", Nilable = false }, }, }, { Name = "ProductDisplayedTelemetry", Type = "Function", HasRestrictions = true, SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryId", Type = "number", Nilable = false }, { Name = "sectionId", Type = "number", Nilable = false }, { Name = "catalogShopProductID", Type = "number", Nilable = false }, }, }, { Name = "ProductSelectedTelemetry", Type = "Function", HasRestrictions = true, SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "categoryId", Type = "number", Nilable = false }, { Name = "sectionId", Type = "number", Nilable = false }, { Name = "catalogShopProductID", Type = "number", Nilable = false }, { Name = "wasCodeSelection", Type = "bool", Nilable = false }, }, }, { Name = "PurchaseProduct", Type = "Function", HasRestrictions = true, SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productID", Type = "number", Nilable = false }, }, Returns = { { Name = "canPurchase", Type = "bool", Nilable = false }, }, }, { Name = "RefreshRefundableDecors", Type = "Function", }, { Name = "RefreshVirtualCurrencyBalance", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "currencyCode", Type = "string", Nilable = false }, }, }, { Name = "ShouldShowHousingWarning", Type = "Function", Returns = { { Name = "shouldShowHousingWarning", Type = "bool", Nilable = false }, }, }, { Name = "StartHousingVCPurchaseConfirmation", Type = "Function", SecretArguments = "AllowedWhenUntainted", Arguments = { { Name = "productID", Type = "number", Nilable = false }, }, }, }, Events = { { Name = "BulkPurchaseResultReceived", Type = "Event", LiteralName = "BULK_PURCHASE_RESULT_RECEIVED", SynchronousEvent = true, Payload = { { Name = "result", Type = "BulkPurchaseResult", Nilable = false }, { Name = "productResults", Type = "table", InnerType = "BulkPurchaseIndividualProductResult", Nilable = false }, { Name = "bestTopUpProductID", Type = "number", Nilable = true }, { Name = "totalCost", Type = "number", Nilable = true }, }, }, { Name = "BulkRefundResultReceived", Type = "Event", LiteralName = "BULK_REFUND_RESULT_RECEIVED", SynchronousEvent = true, Payload = { { Name = "result", Type = "BulkRefundResult", Nilable = false }, }, }, { Name = "CatalogShopAddPendingProduct", Type = "Event", LiteralName = "CATALOG_SHOP_ADD_PENDING_PRODUCT", SynchronousEvent = true, Payload = { { Name = "productID", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopDataRefresh", Type = "Event", LiteralName = "CATALOG_SHOP_DATA_REFRESH", SynchronousEvent = true, Payload = { { Name = "shoppingSessionUUIDStr", Type = "string", Nilable = true }, }, }, { Name = "CatalogShopDisabled", Type = "Event", LiteralName = "CATALOG_SHOP_DISABLED", SynchronousEvent = true, }, { Name = "CatalogShopFetchFailure", Type = "Event", LiteralName = "CATALOG_SHOP_FETCH_FAILURE", SynchronousEvent = true, Payload = { { Name = "shoppingSessionUUIDStr", Type = "string", Nilable = true }, }, }, { Name = "CatalogShopFetchSuccess", Type = "Event", LiteralName = "CATALOG_SHOP_FETCH_SUCCESS", SynchronousEvent = true, Payload = { { Name = "shoppingSessionUUIDStr", Type = "string", Nilable = true }, }, }, { Name = "CatalogShopOpenSimpleCheckout", Type = "Event", LiteralName = "CATALOG_SHOP_OPEN_SIMPLE_CHECKOUT", SynchronousEvent = true, Payload = { { Name = "checkoutID", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopPurchaseSuccess", Type = "Event", LiteralName = "CATALOG_SHOP_PURCHASE_SUCCESS", SynchronousEvent = true, Payload = { { Name = "productID", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopRebuildScrollBox", Type = "Event", LiteralName = "CATALOG_SHOP_REBUILD_SCROLL_BOX", SynchronousEvent = true, }, { Name = "CatalogShopRefundableDecorsUpdated", Type = "Event", LiteralName = "CATALOG_SHOP_REFUNDABLE_DECORS_UPDATED", SynchronousEvent = true, }, { Name = "CatalogShopRemovePendingProduct", Type = "Event", LiteralName = "CATALOG_SHOP_REMOVE_PENDING_PRODUCT", SynchronousEvent = true, Payload = { { Name = "productID", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopResultError", Type = "Event", LiteralName = "CATALOG_SHOP_RESULT_ERROR", SynchronousEvent = true, }, { Name = "CatalogShopSpecificProductRefresh", Type = "Event", LiteralName = "CATALOG_SHOP_SPECIFIC_PRODUCT_REFRESH", SynchronousEvent = true, Payload = { { Name = "productID", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopVirtualCurrencyBalanceUpdate", Type = "Event", LiteralName = "CATALOG_SHOP_VIRTUAL_CURRENCY_BALANCE_UPDATE", SynchronousEvent = true, Payload = { { Name = "currencyCode", Type = "string", Nilable = false }, { Name = "balance", Type = "string", Nilable = false }, }, }, { Name = "CatalogShopVirtualCurrencyBalanceUpdateFailure", Type = "Event", LiteralName = "CATALOG_SHOP_VIRTUAL_CURRENCY_BALANCE_UPDATE_FAILURE", SynchronousEvent = true, Payload = { { Name = "currencyCode", Type = "string", Nilable = false }, }, }, { Name = "SetSeenProducts", Type = "Event", LiteralName = "SET_SEEN_PRODUCTS", SynchronousEvent = true, Payload = { { Name = "productIds", Type = "table", InnerType = "number", Nilable = false }, }, }, { Name = "ShowNewProductNotification", Type = "Event", LiteralName = "SHOW_NEW_PRODUCT_NOTIFICATION", SynchronousEvent = true, }, }, Tables = { { Name = "AvailableRaceInfo", Type = "Structure", Fields = { { Name = "raceID", Type = "number", Nilable = false }, { Name = "displayName", Type = "string", Nilable = false }, }, }, { Name = "BulkPurchaseIndividualProductResult", Type = "Structure", Fields = { { Name = "recordId", Type = "number", Nilable = false }, { Name = "parentProductId", Type = "number", Nilable = true }, { Name = "entitlementId", Type = "string", Nilable = false }, { Name = "externalTransactionId", Type = "string", Nilable = false }, { Name = "status", Type = "SimpleOrderStatus", Nilable = false }, }, }, { Name = "CatalogShopBundleChildInfo", Type = "Structure", Fields = { { Name = "childProductID", Type = "number", Nilable = false }, { Name = "displayOrder", Type = "number", Nilable = false }, { Name = "quantityInBundle", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopCategoryInfo", Type = "Structure", Fields = { { Name = "ID", Type = "number", Nilable = false }, { Name = "displayName", Type = "string", Nilable = false }, { Name = "iconTexture", Type = "string", Nilable = false }, { Name = "linkTag", Type = "string", Nilable = false }, { Name = "isDisabled", Type = "bool", Nilable = false }, { Name = "showPersistentRefundButton", Type = "bool", Nilable = false }, }, }, { Name = "CatalogShopProductDisplayInfo", Type = "Structure", Fields = { { Name = "defaultPreviewModelSceneID", Type = "number", Nilable = false }, { Name = "defaultCardModelSceneID", Type = "number", Nilable = false }, { Name = "defaultWideCardModelSceneID", Type = "number", Nilable = false }, { Name = "itemID", Type = "number", Nilable = false }, { Name = "overridePreviewModelSceneID", Type = "number", Nilable = true }, { Name = "overrideCardModelSceneID", Type = "number", Nilable = true }, { Name = "overrideWideCardModelSceneID", Type = "number", Nilable = true }, { Name = "creatureDisplayInfoIDs", Type = "table", InnerType = "number", Nilable = false }, { Name = "spellVisualIDs", Type = "table", InnerType = "number", Nilable = false }, { Name = "mainHandItemModifiedAppearanceID", Type = "number", Nilable = true }, { Name = "offHandItemModifiedAppearanceID", Type = "number", Nilable = true }, { Name = "itemModifiedAppearanceIDs", Type = "table", InnerType = "number", Nilable = false }, { Name = "iconFileDataID", Type = "number", Nilable = true }, { Name = "iconTextureKit", Type = "textureKit", Nilable = true }, { Name = "productType", Type = "string", Nilable = true }, { Name = "itemDescription", Type = "string", Nilable = true }, { Name = "hasUnknownLicense", Type = "bool", Nilable = false }, { Name = "productPMTURL", Type = "string", Nilable = true }, { Name = "additionalProductPMTURLs", Type = "table", InnerType = "string", Nilable = false }, { Name = "otherProductImageAtlasName", Type = "string", Nilable = true }, { Name = "otherProductGameTitleBaseTag", Type = "string", Nilable = true }, { Name = "otherProductGameType", Type = "string", Nilable = true }, { Name = "customLoopingSoundStart", Type = "number", Nilable = true }, { Name = "customLoopingSoundMiddle", Type = "number", Nilable = true }, { Name = "customLoopingSoundEnd", Type = "number", Nilable = true }, { Name = "specialActorID_1", Type = "string", Nilable = true }, { Name = "specialActorID_2", Type = "string", Nilable = true }, { Name = "specialActorID_3", Type = "string", Nilable = true }, { Name = "specialActorID_4", Type = "string", Nilable = true }, { Name = "specialActorID_5", Type = "string", Nilable = true }, { Name = "gameFlavorID", Type = "number", Nilable = true }, { Name = "decorFileDataID", Type = "number", Nilable = true }, { Name = "quantity", Type = "number", Nilable = true }, { Name = "houseTextureAtlas", Type = "textureAtlas", Nilable = true }, }, }, { Name = "CatalogShopProductInfo", Type = "Structure", Fields = { { Name = "catalogShopProductID", Type = "number", Nilable = false }, { Name = "name", Type = "string", Nilable = false }, { Name = "type", Type = "string", Nilable = true }, { Name = "description", Type = "string", Nilable = false }, { Name = "iconTexture", Type = "string", Nilable = false }, { Name = "isFullyOwned", Type = "bool", Nilable = false }, { Name = "isPurchasePending", Type = "bool", Nilable = false }, { Name = "refundable", Type = "bool", Nilable = false }, { Name = "price", Type = "string", Nilable = false }, { Name = "originalPrice", Type = "string", Nilable = false }, { Name = "discountPercentage", Type = "number", Nilable = false }, { Name = "itemID", Type = "number", Nilable = false }, { Name = "mountID", Type = "number", Nilable = false }, { Name = "mountTypeName", Type = "string", Nilable = false }, { Name = "speciesID", Type = "number", Nilable = false }, { Name = "transmogSetID", Type = "number", Nilable = false }, { Name = "itemModifiedAppearanceID", Type = "number", Nilable = false }, { Name = "subItems", Type = "table", InnerType = "CatalogShopSubItemInfo", Nilable = false }, { Name = "subItemsLoaded", Type = "bool", Nilable = false }, { Name = "backgroundTexture", Type = "string", Nilable = false }, { Name = "foregroundTexture", Type = "string", Nilable = true }, { Name = "smallCardBGTexture", Type = "string", Nilable = true }, { Name = "smallCardFGTexture", Type = "string", Nilable = true }, { Name = "wideCardBGTexture", Type = "string", Nilable = true }, { Name = "wideCardFGTexture", Type = "string", Nilable = true }, { Name = "previewIconTexture", Type = "string", Nilable = true }, { Name = "optionalWideCardBackgroundTexture", Type = "string", Nilable = true }, { Name = "isBundle", Type = "bool", Nilable = false }, { Name = "bundleChildrenSize", Type = "number", Nilable = false }, { Name = "licenseTermType", Type = "number", Nilable = false }, { Name = "licenseTermDuration", Type = "number", Nilable = false }, { Name = "virtualCurrencies", Type = "table", InnerType = "CatalogShopVirtualCurrency", Nilable = false }, { Name = "isHidden", Type = "bool", Nilable = false }, { Name = "isMystery", Type = "bool", Nilable = false }, { Name = "hasPendingOrders", Type = "bool", Nilable = false }, { Name = "numBundleDetailCards", Type = "number", Nilable = false }, { Name = "isDynamicallyDiscounted", Type = "bool", Nilable = false }, { Name = "shouldShowOriginalPrice", Type = "bool", Nilable = false }, { Name = "wideCardBGOverrideProductURL", Type = "string", Nilable = true }, { Name = "previewBGOverrideProductURL", Type = "string", Nilable = true }, { Name = "previewSmallBGOverrideProductURL", Type = "string", Nilable = true }, { Name = "decorQuantity", Type = "DecorQuantity", Nilable = true }, { Name = "isVCProduct", Type = "bool", Nilable = false }, { Name = "containsHousingItem", Type = "bool", Nilable = false }, { Name = "deferredGameTimeDays", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopSectionInfo", Type = "Structure", Fields = { { Name = "ID", Type = "number", Nilable = false }, { Name = "displayName", Type = "string", Nilable = false }, { Name = "parentCatalogShopCategoryInfoID", Type = "number", Nilable = true }, { Name = "cardType", Type = "string", Nilable = true }, { Name = "scrollGridSize", Type = "number", Nilable = true }, { Name = "shouldShowRecommendationOptOutDisclaimer", Type = "bool", Nilable = false }, }, }, { Name = "CatalogShopSpellVisualInfo", Type = "Structure", Fields = { { Name = "animID", Type = "number", Nilable = true }, { Name = "spellVisualKitID", Type = "number", Nilable = true }, }, }, { Name = "CatalogShopSubItemInfo", Type = "Structure", Fields = { { Name = "name", Type = "string", Nilable = false }, { Name = "itemID", Type = "number", Nilable = false }, { Name = "itemAppearanceID", Type = "number", Nilable = false }, { Name = "invType", Type = "string", Nilable = false }, { Name = "quality", Type = "ItemQuality", Nilable = false }, }, }, { Name = "CatalogShopVCProductInfo", Type = "Structure", Fields = { { Name = "vcProductID", Type = "number", Nilable = false }, }, }, { Name = "CatalogShopVirtualCurrency", Type = "Structure", Fields = { { Name = "amount", Type = "number", Nilable = false }, { Name = "currencyCode", Type = "string", Nilable = false }, }, }, { Name = "DecorQuantity", Type = "Structure", Fields = { { Name = "placedQuantity", Type = "number", Nilable = false }, { Name = "storedQuantity", Type = "number", Nilable = false }, }, }, { Name = "RefundableDecorInfo", Type = "Structure", Fields = { { Name = "decorGUID", Type = "WOWGUID", Nilable = false }, { Name = "timeRemainingSeconds", Type = "time_t", Nilable = false }, { Name = "name", Type = "string", Nilable = false }, { Name = "price", Type = "string", Nilable = false }, }, }, }, Predicates = { }, }; APIDocumentation:AddDocumentationTable(CatalogShop);