func (c *Client) D3EraIndex(ctx context.Context) (*d3gd.EraIndex, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/data/d3/era/",
		&d3gd.EraIndex{},
	)
	return dat.(*d3gd.EraIndex), header, err
}
D3EraIndex returns an index of seasons
package blizzard
import (
	"context"
	"fmt"
	"github.com/FuzzyStatic/blizzard/d3gd"
)
func (c *Client) D3SeasonIndex(ctx context.Context) (*d3gd.SeasonIndex, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/data/d3/season/",
		&d3gd.SeasonIndex{},
	)
	return dat.(*d3gd.SeasonIndex), header, err
}
func (c *Client) D3Season(ctx context.Context, seasonID int) (*d3gd.Season, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d", seasonID),
		&d3gd.Season{},
	)
	return dat.(*d3gd.Season), header, err
}
func (c *Client) D3SeasonLeaderboard(ctx context.Context, seasonID int, leaderboard string) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/%s", seasonID, leaderboard),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardAchievementPoints(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/achievement-points", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreBarbarian(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-barbarian", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardBarbarian(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-barbarian", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreCrusader(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-crusader", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardCrusader(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-crusader", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreDemonHunter(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-dh", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardDemonHunter(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-dh", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreMonk(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-monk", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardMonk(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-monk", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreNecromancer(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-necromancer", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardNecromancer(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-necromancer", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreWizard(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-wizard", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardWizard(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-wizard", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreWitchDoctor(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-wd", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardWitchDoctor(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-wd", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreTeam2(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-team-2", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardTeam2(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-team-2", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreTeam3(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-team-3", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardTeam3(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-team-3", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardHardcoreTeam4(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-hardcore-team-4", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}
func (c *Client) D3SeasonLeaderboardTeam4(ctx context.Context, seasonID int) (*d3gd.Leaderboard, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/data/d3/season/%d/leaderboard/rift-team-4", seasonID),
		&d3gd.Leaderboard{},
	)
	return dat.(*d3gd.Leaderboard), header, err
}