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
}
WoWItemMedia returns media for an item by ID.
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
}