func (c *Client) WoWQuestAreasIndex(ctx context.Context) (*wowgd.QuestAreasIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/quest/area/index",
		c.GetStaticNamespace(),
		&wowgd.QuestAreasIndex{},
	)
	return dat.(*wowgd.QuestAreasIndex), header, err
}
WoWQuestAreasIndex returns an index of quest areas.
package blizzard
import (
	"context"
	"fmt"
	"github.com/FuzzyStatic/blizzard/wowgd"
	"github.com/FuzzyStatic/blizzard/wowsearch"
)
func (c *Client) WoWAchievementCategoriesIndex(ctx context.Context) (*wowgd.AchievementCategoriesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/achievement-category/index",
		c.GetStaticNamespace(),
		&wowgd.AchievementCategoriesIndex{},
	)
	return dat.(*wowgd.AchievementCategoriesIndex), header, err
}
func (c *Client) WoWAchievementCategory(ctx context.Context, achievementCategoryID int) (*wowgd.AchievementCategory, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/achievement-category/%d", achievementCategoryID),
		c.GetStaticNamespace(),
		&wowgd.AchievementCategory{},
	)
	return dat.(*wowgd.AchievementCategory), header, err
}
func (c *Client) WoWAchievementIndex(ctx context.Context) (*wowgd.AchievementIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/achievement/index",
		c.GetStaticNamespace(),
		&wowgd.AchievementIndex{},
	)
	return dat.(*wowgd.AchievementIndex), header, err
}
func (c *Client) WoWAchievement(ctx context.Context, achievementID int) (*wowgd.Achievement, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/achievement/%d", achievementID),
		c.GetStaticNamespace(),
		&wowgd.Achievement{},
	)
	return dat.(*wowgd.Achievement), header, err
}
func (c *Client) WoWAchievementMedia(ctx context.Context, achievementID int) (*wowgd.AchievementMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/achievement/%d", achievementID),
		c.GetStaticNamespace(),
		&wowgd.AchievementMedia{},
	)
	return dat.(*wowgd.AchievementMedia), header, err
}
func (c *Client) WoWAuctions(ctx context.Context, connectedRealmID int) (*wowgd.AuctionHouse, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/connected-realm/%d/auctions", connectedRealmID),
		c.GetDynamicNamespace(),
		&wowgd.AuctionHouse{},
	)
	return dat.(*wowgd.AuctionHouse), header, err
}
func (c *Client) WoWAzeriteEssenceIndex(ctx context.Context) (*wowgd.AzeriteEssenceIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/azerite-essence/index",
		c.GetStaticNamespace(),
		&wowgd.AzeriteEssenceIndex{},
	)
	return dat.(*wowgd.AzeriteEssenceIndex), header, err
}
func (c *Client) WoWAzeriteEssence(ctx context.Context, azeriteEssenceID int) (*wowgd.AzeriteEssence, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/azerite-essence/%d", azeriteEssenceID), c.GetStaticNamespace(),
		&wowgd.AzeriteEssence{},
	)
	return dat.(*wowgd.AzeriteEssence), header, err
}
func (c *Client) WoWAzeriteEssenceMedia(ctx context.Context, azeriteEssenceID int) (*wowgd.AzeriteEssenceMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/azerite-essence/%d", azeriteEssenceID),
		c.GetStaticNamespace(),
		&wowgd.AzeriteEssenceMedia{},
	)
	return dat.(*wowgd.AzeriteEssenceMedia), header, err
}
func (c *Client) WoWConnectedRealmsIndex(ctx context.Context) (*wowgd.ConnectedRealmsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/connected-realm/index",
		c.GetDynamicNamespace(),
		&wowgd.ConnectedRealmsIndex{},
	)
	return dat.(*wowgd.ConnectedRealmsIndex), header, err
}
func (c *Client) WoWConnectedRealm(ctx context.Context, connectedRealmID int) (*wowgd.ConnectedRealm, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/connected-realm/%d", connectedRealmID),
		c.GetDynamicNamespace(),
		&wowgd.ConnectedRealm{},
	)
	return dat.(*wowgd.ConnectedRealm), header, err
}
func (c *Client) WoWCovenantsIndex(ctx context.Context) (*wowgd.CovenantsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/covenant/index",
		c.GetStaticNamespace(),
		&wowgd.CovenantsIndex{},
	)
	return dat.(*wowgd.CovenantsIndex), header, err
}
func (c *Client) WoWConnectedRealmSearch(ctx context.Context, opts ...wowsearch.Opt) (*wowgd.ConnectedRealmsSearch, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/search/connected-realm%s", buildSearchParams(opts...)),
		c.GetDynamicClassicNamespace(),
		&wowgd.ConnectedRealmsSearch{},
	)
	return dat.(*wowgd.ConnectedRealmsSearch), header, err
}
func (c *Client) WoWCovenant(ctx context.Context, covenantID int) (*wowgd.Covenant, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/covenant/%d", covenantID),
		c.GetStaticNamespace(),
		&wowgd.Covenant{},
	)
	return dat.(*wowgd.Covenant), header, err
}
func (c *Client) WoWCovenantMedia(ctx context.Context, covenantID int) (*wowgd.CovenantMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/covenant/%d", covenantID),
		c.GetStaticNamespace(),
		&wowgd.CovenantMedia{},
	)
	return dat.(*wowgd.CovenantMedia), header, err
}
func (c *Client) WoWCovenantSoulbindsIndex(ctx context.Context) (*wowgd.CovenantSoulbindsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/covenant/soulbind/index",
		c.GetStaticNamespace(),
		&wowgd.CovenantSoulbindsIndex{},
	)
	return dat.(*wowgd.CovenantSoulbindsIndex), header, err
}
func (c *Client) WoWCovenantSoulbind(ctx context.Context, soulbindID int) (*wowgd.CovenantSoulbind, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/covenant/soulbind/%d", soulbindID),
		c.GetStaticNamespace(),
		&wowgd.CovenantSoulbind{},
	)
	return dat.(*wowgd.CovenantSoulbind), header, err
}
func (c *Client) WoWCovenantConduitsIndex(ctx context.Context) (*wowgd.CovenantConduitsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/covenant/conduit/index",
		c.GetStaticNamespace(),
		&wowgd.CovenantConduitsIndex{},
	)
	return dat.(*wowgd.CovenantConduitsIndex), header, err
}
func (c *Client) WoWCovenantConduit(ctx context.Context, conduitID int) (*wowgd.CovenantConduit, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/covenant/conduit/%d", conduitID),
		c.GetStaticNamespace(),
		&wowgd.CovenantConduit{},
	)
	return dat.(*wowgd.CovenantConduit), header, err
}
func (c *Client) WoWCreatureFamiliesIndex(ctx context.Context) (*wowgd.CreatureFamiliesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/creature-family/index",
		c.GetStaticNamespace(),
		&wowgd.CreatureFamiliesIndex{},
	)
	return dat.(*wowgd.CreatureFamiliesIndex), header, err
}
func (c *Client) WoWCreatureFamily(ctx context.Context, creatureFamilyID int) (*wowgd.CreatureFamily, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/creature-family/%d", creatureFamilyID),
		c.GetStaticNamespace(),
		&wowgd.CreatureFamily{},
	)
	return dat.(*wowgd.CreatureFamily), header, err
}
func (c *Client) WoWCreatureTypesIndex(ctx context.Context) (*wowgd.CreatureTypesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/creature-type/index",
		c.GetStaticNamespace(),
		&wowgd.CreatureTypesIndex{},
	)
	return dat.(*wowgd.CreatureTypesIndex), header, err
}
func (c *Client) WoWCreatureType(ctx context.Context, creatureTypeID int) (*wowgd.CreatureType, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/creature-type/%d", creatureTypeID),
		c.GetStaticNamespace(),
		&wowgd.CreatureType{},
	)
	return dat.(*wowgd.CreatureType), header, err
}
func (c *Client) WoWCreature(ctx context.Context, creatureID int) (*wowgd.Creature, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/creature/%d", creatureID),
		c.GetStaticNamespace(),
		&wowgd.Creature{},
	)
	return dat.(*wowgd.Creature), header, err
}
func (c *Client) WoWCreatureDisplayMedia(ctx context.Context, creatureDisplayID int) (*wowgd.CreatureDisplayMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/creature-display/%d", creatureDisplayID),
		c.GetStaticNamespace(),
		&wowgd.CreatureDisplayMedia{},
	)
	return dat.(*wowgd.CreatureDisplayMedia), header, err
}
func (c *Client) WoWCreatureFamilyMedia(ctx context.Context, creatureFamilyID int) (*wowgd.CreatureFamilyMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/creature-family/%d", creatureFamilyID),
		c.GetStaticNamespace(),
		&wowgd.CreatureFamilyMedia{},
	)
	return dat.(*wowgd.CreatureFamilyMedia), header, err
}
func (c *Client) WoWGuildCrestComponentsIndex(ctx context.Context) (*wowgd.GuildCrestComponentsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/guild-crest/index",
		c.GetStaticNamespace(),
		&wowgd.GuildCrestComponentsIndex{},
	)
	return dat.(*wowgd.GuildCrestComponentsIndex), header, err
}
func (c *Client) WoWGuildCrestBorderMedia(ctx context.Context, borderID int) (*wowgd.GuildCrestBorderMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/guild-crest/border/%d", borderID),
		c.GetStaticNamespace(),
		&wowgd.GuildCrestBorderMedia{},
	)
	return dat.(*wowgd.GuildCrestBorderMedia), header, err
}
func (c *Client) WoWGuildCrestEmblemMedia(ctx context.Context, emblemID int) (*wowgd.GuildCrestEmblemMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/guild-crest/emblem/%d", emblemID),
		c.GetStaticNamespace(),
		&wowgd.GuildCrestEmblemMedia{},
	)
	return dat.(*wowgd.GuildCrestEmblemMedia), header, err
}
func (c *Client) WoWItemClassesIndex(ctx context.Context) (*wowgd.ItemClassesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/item-class/index",
		c.GetStaticNamespace(),
		&wowgd.ItemClassesIndex{},
	)
	return dat.(*wowgd.ItemClassesIndex), header, err
}
func (c *Client) WoWItemClass(ctx context.Context, itemClassID int) (*wowgd.ItemClass, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/item-class/%d", itemClassID),
		c.GetStaticNamespace(),
		&wowgd.ItemClass{},
	)
	return dat.(*wowgd.ItemClass), header, err
}
func (c *Client) WoWItemSetsIndex(ctx context.Context) (*wowgd.ItemSetsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/item-set/index",
		c.GetStaticNamespace(),
		&wowgd.ItemSetsIndex{},
	)
	return dat.(*wowgd.ItemSetsIndex), header, err
}
func (c *Client) WoWItemSet(ctx context.Context, itemSetID int) (*wowgd.ItemSet, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/item-set/%d", itemSetID),
		c.GetStaticNamespace(),
		&wowgd.ItemSet{},
	)
	return dat.(*wowgd.ItemSet), header, err
}
func (c *Client) WoWItemSubclass(ctx context.Context, itemClassID, itemSubclassID int) (*wowgd.ItemSubclass, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/item-class/%d/item-subclass/%d", itemClassID, itemSubclassID),
		c.GetStaticNamespace(),
		&wowgd.ItemSubclass{},
	)
	return dat.(*wowgd.ItemSubclass), header, err
}
func (c *Client) WoWItem(ctx context.Context, itemID int) (*wowgd.Item, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/item/%d", itemID),
		c.GetStaticNamespace(),
		&wowgd.Item{},
	)
	return dat.(*wowgd.Item), header, err
}
func (c *Client) WoWItemMedia(ctx context.Context, itemID int) (*wowgd.ItemMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/item/%d", itemID),
		c.GetStaticNamespace(),
		&wowgd.ItemMedia{},
	)
	return dat.(*wowgd.ItemMedia), header, err
}
func (c *Client) WoWJournalExpansionsIndex(ctx context.Context) (*wowgd.JournalExpansionsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/journal-expansion/index",
		c.GetStaticNamespace(),
		&wowgd.JournalExpansionsIndex{},
	)
	return dat.(*wowgd.JournalExpansionsIndex), header, err
}
func (c *Client) WoWJournalExpansion(ctx context.Context, journalExpansionID int) (*wowgd.JournalExpansion, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/journal-expansion/%d", journalExpansionID),
		c.GetStaticNamespace(),
		&wowgd.JournalExpansion{},
	)
	return dat.(*wowgd.JournalExpansion), header, err
}
func (c *Client) WoWJournalEncountersIndex(ctx context.Context) (*wowgd.JournalEncountersIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/journal-encounter/index",
		c.GetStaticNamespace(),
		&wowgd.JournalEncountersIndex{},
	)
	return dat.(*wowgd.JournalEncountersIndex), header, err
}
func (c *Client) WoWJournalEncounter(ctx context.Context, journalEncounterID int) (*wowgd.JournalEncounter, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/journal-encounter/%d", journalEncounterID),
		c.GetStaticNamespace(),
		&wowgd.JournalEncounter{},
	)
	return dat.(*wowgd.JournalEncounter), header, err
}
func (c *Client) WoWJournalInstancesIndex(ctx context.Context) (*wowgd.JournalInstancesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/journal-instance/index",
		c.GetStaticNamespace(),
		&wowgd.JournalInstancesIndex{},
	)
	return dat.(*wowgd.JournalInstancesIndex), header, err
}
func (c *Client) WoWJournalInstance(ctx context.Context, journalInstanceID int) (*wowgd.JournalInstance, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/journal-instance/%d", journalInstanceID),
		c.GetStaticNamespace(),
		&wowgd.JournalInstance{},
	)
	return dat.(*wowgd.JournalInstance), header, err
}
func (c *Client) WoWJournalInstanceMedia(ctx context.Context, journalInstanceID int) (*wowgd.JournalInstanceMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/journal-instance/%d", journalInstanceID),
		c.GetStaticNamespace(),
		&wowgd.JournalInstanceMedia{},
	)
	return dat.(*wowgd.JournalInstanceMedia), header, err
}
func (c *Client) WoWModifiedCraftingIndex(ctx context.Context) (*wowgd.ModifiedCraftingIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/modified-crafting/index",
		c.GetStaticNamespace(),
		&wowgd.ModifiedCraftingIndex{},
	)
	return dat.(*wowgd.ModifiedCraftingIndex), header, err
}
func (c *Client) WoWModifiedCraftingCategoryIndex(ctx context.Context) (*wowgd.ModifiedCraftingCategoryIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/modified-crafting/category/index",
		c.GetStaticNamespace(),
		&wowgd.ModifiedCraftingCategoryIndex{},
	)
	return dat.(*wowgd.ModifiedCraftingCategoryIndex), header, err
}
func (c *Client) WoWModifiedCraftingCategory(ctx context.Context, categoryID int) (*wowgd.ModifiedCraftingCategory, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/modified-crafting/category/%d", categoryID),
		c.GetStaticNamespace(),
		&wowgd.ModifiedCraftingCategory{},
	)
	return dat.(*wowgd.ModifiedCraftingCategory), header, err
}
func (c *Client) WoWModifiedCraftingReagentSlotTypeIndex(ctx context.Context) (*wowgd.ModifiedCraftingReagentSlotTypeIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/modified-crafting/reagent-slot-type/index",
		c.GetStaticNamespace(),
		&wowgd.ModifiedCraftingReagentSlotTypeIndex{},
	)
	return dat.(*wowgd.ModifiedCraftingReagentSlotTypeIndex), header, err
}
func (c *Client) WoWModifiedCraftingReagentSlotType(ctx context.Context,
	slotTypeID int) (*wowgd.ModifiedCraftingReagentSlotType, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/modified-crafting/reagent-slot-type/%d", slotTypeID),
		c.GetStaticNamespace(),
		&wowgd.ModifiedCraftingReagentSlotType{},
	)
	return dat.(*wowgd.ModifiedCraftingReagentSlotType), header, err
}
func (c *Client) WoWMountIndex(ctx context.Context) (*wowgd.MountIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/mount/index",
		c.GetStaticNamespace(),
		&wowgd.MountIndex{},
	)
	return dat.(*wowgd.MountIndex), header, err
}
func (c *Client) WoWMount(ctx context.Context, mountID int) (*wowgd.Mount, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/mount/%d", mountID),
		c.GetStaticNamespace(),
		&wowgd.Mount{},
	)
	return dat.(*wowgd.Mount), header, err
}
func (c *Client) WoWMythicKeystoneAffixIndex(ctx context.Context) (*wowgd.MythicKeystoneAffixIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/keystone-affix/index",
		c.GetStaticNamespace(),
		&wowgd.MythicKeystoneAffixIndex{},
	)
	return dat.(*wowgd.MythicKeystoneAffixIndex), header, err
}
func (c *Client) WoWMythicKeystoneAffix(ctx context.Context, keystoneAffixID int) (*wowgd.MythicKeystoneAffix, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/keystone-affix/%d", keystoneAffixID),
		c.GetStaticNamespace(),
		&wowgd.MythicKeystoneAffix{},
	)
	return dat.(*wowgd.MythicKeystoneAffix), header, err
}
func (c *Client) WoWMythicKeystoneAffixMedia(ctx context.Context, keystoneAffixID int) (*wowgd.MythicKeystoneAffixMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/keystone-affix/%d", keystoneAffixID),
		c.GetStaticNamespace(),
		&wowgd.MythicKeystoneAffixMedia{},
	)
	return dat.(*wowgd.MythicKeystoneAffixMedia), header, err
}
func (c *Client) WoWMythicKeystoneDungeonIndex(ctx context.Context) (*wowgd.MythicKeystoneDungeonIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/mythic-keystone/dungeon/index",
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystoneDungeonIndex{},
	)
	return dat.(*wowgd.MythicKeystoneDungeonIndex), header, err
}
func (c *Client) WoWMythicKeystoneDungeon(ctx context.Context, dungeonID int) (*wowgd.MythicKeystoneDungeon, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/mythic-keystone/dungeon/%d", dungeonID),
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystoneDungeon{},
	)
	return dat.(*wowgd.MythicKeystoneDungeon), header, err
}
func (c *Client) WoWMythicKeystoneIndex(ctx context.Context) (*wowgd.MythicKeystoneIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/mythic-keystone/index",
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystoneIndex{},
	)
	return dat.(*wowgd.MythicKeystoneIndex), header, err
}
func (c *Client) WoWMythicKeystonePeriodIndex(ctx context.Context) (*wowgd.MythicKeystonePeriodIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/mythic-keystone/period/index",
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystonePeriodIndex{},
	)
	return dat.(*wowgd.MythicKeystonePeriodIndex), header, err
}
func (c *Client) WoWMythicKeystonePeriod(ctx context.Context, periodID int) (*wowgd.MythicKeystonePeriod, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/mythic-keystone/period/%d", periodID),
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystonePeriod{},
	)
	return dat.(*wowgd.MythicKeystonePeriod), header, err
}
func (c *Client) WoWMythicKeystoneSeasonIndex(ctx context.Context) (*wowgd.MythicKeystoneSeasonIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/mythic-keystone/season/index",
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystoneSeasonIndex{},
	)
	return dat.(*wowgd.MythicKeystoneSeasonIndex), header, err
}
func (c *Client) WoWMythicKeystoneSeason(ctx context.Context, seasonID int) (*wowgd.MythicKeystoneSeason, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/mythic-keystone/season/%d", seasonID),
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystoneSeason{},
	)
	return dat.(*wowgd.MythicKeystoneSeason), header, err
}
func (c *Client) WoWMythicKeystoneLeaderboardIndex(ctx context.Context,
	connectedRealmID int) (*wowgd.MythicKeystoneLeaderboardIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/connected-realm/%d/mythic-leaderboard/index", connectedRealmID),
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystoneLeaderboardIndex{},
	)
	return dat.(*wowgd.MythicKeystoneLeaderboardIndex), header, err
}
func (c *Client) WoWMythicKeystoneLeaderboard(ctx context.Context,
	connectedRealmID, dungeonID, period int) (*wowgd.MythicKeystoneLeaderboard, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/connected-realm/%d/mythic-leaderboard/%d/period/%d",
			connectedRealmID, dungeonID, period),
		c.GetDynamicNamespace(),
		&wowgd.MythicKeystoneLeaderboard{},
	)
	return dat.(*wowgd.MythicKeystoneLeaderboard), header, err
}
func (c *Client) WoWMythicRaidLeaderboard(ctx context.Context, raid, faction string) (*wowgd.MythicRaidLeaderboard, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/leaderboard/hall-of-fame/%s/%s", raid, faction),
		c.GetDynamicNamespace(),
		&wowgd.MythicRaidLeaderboard{},
	)
	return dat.(*wowgd.MythicRaidLeaderboard), header, err
}
func (c *Client) WoWPetIndex(ctx context.Context) (*wowgd.PetIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/pet/index",
		c.GetStaticNamespace(),
		&wowgd.PetIndex{},
	)
	return dat.(*wowgd.PetIndex), header, err
}
func (c *Client) WoWPet(ctx context.Context, petID int) (*wowgd.Pet, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/pet/%d", petID),
		c.GetStaticNamespace(),
		&wowgd.Pet{},
	)
	return dat.(*wowgd.Pet), header, err
}
func (c *Client) WoWPetMedia(ctx context.Context, petID int) (*wowgd.PetMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/pet/%d", petID),
		c.GetStaticNamespace(),
		&wowgd.PetMedia{},
	)
	return dat.(*wowgd.PetMedia), header, err
}
func (c *Client) WoWPetAbilityIndex(ctx context.Context) (*wowgd.PetAbilityIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/pet-ability/index",
		c.GetStaticNamespace(),
		&wowgd.PetAbilityIndex{},
	)
	return dat.(*wowgd.PetAbilityIndex), header, err
}
func (c *Client) WoWPetAbility(ctx context.Context, petAbilityID int) (*wowgd.PetAbility, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/pet-ability/%d", petAbilityID),
		c.GetStaticNamespace(),
		&wowgd.PetAbility{},
	)
	return dat.(*wowgd.PetAbility), header, err
}
func (c *Client) WoWPetAbilityMedia(ctx context.Context, petAbilityID int) (*wowgd.PetMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/pet-ability/%d", petAbilityID),
		c.GetStaticNamespace(),
		&wowgd.PetMedia{},
	)
	return dat.(*wowgd.PetMedia), header, err
}
func (c *Client) WoWPlayableClassesIndex(ctx context.Context) (*wowgd.PlayableClassesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/playable-class/index",
		c.GetStaticNamespace(),
		&wowgd.PlayableClassesIndex{},
	)
	return dat.(*wowgd.PlayableClassesIndex), header, err
}
func (c *Client) WoWPlayableClass(ctx context.Context, classID int) (*wowgd.PlayableClass, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/playable-class/%d", classID),
		c.GetStaticNamespace(),
		&wowgd.PlayableClass{},
	)
	return dat.(*wowgd.PlayableClass), header, err
}
func (c *Client) WoWPlayableClassMedia(ctx context.Context, classID int) (*wowgd.PlayableClassMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/playable-class/%d", classID),
		c.GetStaticNamespace(),
		&wowgd.PlayableClassMedia{},
	)
	return dat.(*wowgd.PlayableClassMedia), header, err
}
func (c *Client) WoWPlayableClassPvPTalentSlots(ctx context.Context, classID int) (*wowgd.PlayableClassPvPTalentSlots, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/playable-class/%d/pvp-talent-slots", classID),
		c.GetStaticNamespace(),
		&wowgd.PlayableClassPvPTalentSlots{},
	)
	return dat.(*wowgd.PlayableClassPvPTalentSlots), header, err
}
func (c *Client) WoWPlayableRacesIndex(ctx context.Context) (*wowgd.PlayableRacesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/playable-race/index",
		c.GetStaticNamespace(),
		&wowgd.PlayableRacesIndex{},
	)
	return dat.(*wowgd.PlayableRacesIndex), header, err
}
func (c *Client) WoWPlayableRace(ctx context.Context, raceID int) (*wowgd.PlayableRace, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/playable-race/%d", raceID),
		c.GetStaticNamespace(),
		&wowgd.PlayableRace{},
	)
	return dat.(*wowgd.PlayableRace), header, err
}
func (c *Client) WoWPlayableSpecializationIndex(ctx context.Context) (*wowgd.PlayableSpecializationIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/playable-specialization/index",
		c.GetStaticNamespace(),
		&wowgd.PlayableSpecializationIndex{},
	)
	return dat.(*wowgd.PlayableSpecializationIndex), header, err
}
func (c *Client) WoWPlayableSpecialization(ctx context.Context, specID int) (*wowgd.PlayableSpecialization, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/playable-specialization/%d", specID),
		c.GetStaticNamespace(),
		&wowgd.PlayableSpecialization{},
	)
	return dat.(*wowgd.PlayableSpecialization), header, err
}
func (c *Client) WoWPlayableSpecializationMedia(ctx context.Context, specID int) (*wowgd.PlayableSpecializationMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/playable-specialization/%d", specID),
		c.GetStaticNamespace(),
		&wowgd.PlayableSpecializationMedia{},
	)
	return dat.(*wowgd.PlayableSpecializationMedia), header, err
}
func (c *Client) WoWPowerTypesIndex(ctx context.Context) (*wowgd.PowerTypesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/power-type/index",
		c.GetStaticNamespace(),
		&wowgd.PowerTypesIndex{},
	)
	return dat.(*wowgd.PowerTypesIndex), header, err
}
func (c *Client) WoWPowerType(ctx context.Context, powerTypeID int) (*wowgd.PowerType, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/power-type/%d", powerTypeID),
		c.GetStaticNamespace(),
		&wowgd.PowerType{},
	)
	return dat.(*wowgd.PowerType), header, err
}
func (c *Client) WoWProfessionsIndex(ctx context.Context) (*wowgd.ProfessionsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/profession/index",
		c.GetStaticNamespace(),
		&wowgd.ProfessionsIndex{},
	)
	return dat.(*wowgd.ProfessionsIndex), header, err
}
func (c *Client) WoWProfession(ctx context.Context, professionID int) (*wowgd.Profession, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/profession/%d", professionID),
		c.GetStaticNamespace(),
		&wowgd.Profession{},
	)
	return dat.(*wowgd.Profession), header, err
}
func (c *Client) WoWProfessionMedia(ctx context.Context, professionID int) (*wowgd.ProfessionMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/profession/%d", professionID),
		c.GetStaticNamespace(),
		&wowgd.ProfessionMedia{},
	)
	return dat.(*wowgd.ProfessionMedia), header, err
}
func (c *Client) WoWProfessionSkillTier(ctx context.Context, professionID, skillTierID int) (*wowgd.ProfessionSkillTier, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/profession/%d/skill-tier/%d", professionID, skillTierID),
		c.GetStaticNamespace(),
		&wowgd.ProfessionSkillTier{},
	)
	return dat.(*wowgd.ProfessionSkillTier), header, err
}
func (c *Client) WoWRecipe(ctx context.Context, recipeID int) (*wowgd.Recipe, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/recipe/%d", recipeID),
		c.GetStaticNamespace(),
		&wowgd.Recipe{},
	)
	return dat.(*wowgd.Recipe), header, err
}
func (c *Client) WoWRecipeMedia(ctx context.Context, recipeID int) (*wowgd.RecipeMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/recipe/%d", recipeID),
		c.GetStaticNamespace(),
		&wowgd.RecipeMedia{},
	)
	return dat.(*wowgd.RecipeMedia), header, err
}
func (c *Client) WoWPvPSeasonIndex(ctx context.Context) (*wowgd.PvPSeasonIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/pvp-season/index",
		c.GetDynamicNamespace(),
		&wowgd.PvPSeasonIndex{},
	)
	return dat.(*wowgd.PvPSeasonIndex), header, err
}
func (c *Client) WoWPvPSeason(ctx context.Context, pvpSeasonID int) (*wowgd.PvPSeason, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/pvp-season/%d", pvpSeasonID),
		c.GetDynamicNamespace(),
		&wowgd.PvPSeason{},
	)
	return dat.(*wowgd.PvPSeason), header, err
}
func (c *Client) WoWPvPLeaderboardsIndex(ctx context.Context, pvpSeasonID int) (*wowgd.PvPLeaderboardsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/pvp-season/%d/pvp-leaderboard/index", pvpSeasonID),
		c.GetDynamicNamespace(),
		&wowgd.PvPLeaderboardsIndex{},
	)
	return dat.(*wowgd.PvPLeaderboardsIndex), header, err
}
func (c *Client) WoWPvPLeaderboard(ctx context.Context, pvpSeasonID int, pvpBracket wowgd.Bracket) (*wowgd.PvPLeaderboard, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/pvp-season/%d/pvp-leaderboard/%s", pvpSeasonID, pvpBracket),
		c.GetDynamicNamespace(),
		&wowgd.PvPLeaderboard{},
	)
	return dat.(*wowgd.PvPLeaderboard), header, err
}
func (c *Client) WoWPvPRewardsIndex(ctx context.Context, pvpSeasonID int) (*wowgd.PvPRewardsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/pvp-season/%d/pvp-reward/index", pvpSeasonID),
		c.GetDynamicNamespace(),
		&wowgd.PvPRewardsIndex{},
	)
	return dat.(*wowgd.PvPRewardsIndex), header, err
}
func (c *Client) WoWPvPTierMedia(ctx context.Context, pvpTierID int) (*wowgd.PvPTierMedia, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/media/pvp-tier/%d", pvpTierID),
		c.GetStaticNamespace(),
		&wowgd.PvPTierMedia{},
	)
	return dat.(*wowgd.PvPTierMedia), header, err
}
func (c *Client) WoWPvPTiersIndex(ctx context.Context) (*wowgd.PvPTiersIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/pvp-tier/index",
		c.GetStaticNamespace(),
		&wowgd.PvPTiersIndex{},
	)
	return dat.(*wowgd.PvPTiersIndex), header, err
}
func (c *Client) WoWPvPTier(ctx context.Context, pvpTierID int) (*wowgd.PvPTier, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/pvp-tier/%d", pvpTierID),
		c.GetStaticNamespace(),
		&wowgd.PvPTier{},
	)
	return dat.(*wowgd.PvPTier), header, err
}
func (c *Client) WoWQuestsIndex(ctx context.Context) (*wowgd.QuestsIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/quest/index",
		c.GetStaticNamespace(),
		&wowgd.QuestsIndex{},
	)
	return dat.(*wowgd.QuestsIndex), header, err
}
func (c *Client) WoWQuest(ctx context.Context, questID int) (*wowgd.Quest, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/quest/%d", questID),
		c.GetStaticNamespace(),
		&wowgd.Quest{},
	)
	return dat.(*wowgd.Quest), header, err
}
func (c *Client) WoWQuestCategoriesIndex(ctx context.Context) (*wowgd.QuestCategoriesIndex, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		"/data/wow/quest/category/index",
		c.GetStaticNamespace(),
		&wowgd.QuestCategoriesIndex{},
	)
	return dat.(*wowgd.QuestCategoriesIndex), header, err
}
func (c *Client) WoWQuestCategory(ctx context.Context, questCategoryID int) (*wowgd.QuestCategory, *Header, error) {
	dat, header, err := c.getStructData(ctx,
		fmt.Sprintf("/data/wow/quest/category/%d", questCategoryID),
		c.GetStaticNamespace(),
		&wowgd.QuestCategory{},
	)
	return dat.(*wowgd.QuestCategory), header, err
}