/**
 * Sportradar NBA API
 * Sportradar is the Official Data Provider of NBA statistics. We combine on-venue speed, detailed game and seasonal statistics, and advanced metrics for a full basketball experience. Every NBA game – including preseason – updates in real-time, with live event positional data.  The NBA API is consistent in structure, format, and behavior with our other League Specific APIs. Our primary feeds return schedules, standings, team/player data, and real-time scores.  Our other NBA feeds provide a host of complimentary statistics and information, including: * Rankings * League leaders * Game splits * Season splits * Injuries * Free agents * Draft information * Live advanced metrics * In-game substitution info * Live event positional data  Real-time customers are also offered five delivery Push Feeds to enhance speed.  The easiest way to get started with the API is to click the fork button to fork this collection to your own workspace and use Postman to send requests.  # Overview  1.  You need a valid API Key to send requests to the API endpoints. You can get your free trial key by registering an account and creating an application from our [Developer Portal](https://developer.sportradar.com/). 2.  Once you have your sport specific key, replace the value `{Your API Key}` with your API key and click the save icon (or click the Meatballs Menu and select \"Save\") 3.  By default, responses to every request are sent in JSON. If you prefer XML, you can change the variable by clicking the \"Variables\" tab and replacing the Current Value for format to xml. 4.  Select an endpoint from the NBA v7 menu on the left, then click \"Send\" on the resulting screen. 5.  The API calls will respond with appropriate [HTTP response codes](https://developer.sportradar.com/docs/read/Home#http-response-codes) for all requests. Within Postman Client, when a response is received, the status code is highlighted and is accompanied by a help text that indicates the possible meaning of the response code. A 200 OK indicates all went well, while 4XX or 5XX response codes indicate an error from the requesting client or our API servers respectively. 6.  Data for the requested endpoint is displayed in the Body section below.  # Other Resources  The [API Map](https://developer.sportradar.com/docs/read/basketball/NBA_v7#nba-api-map) on our Developer Portal illustrates how to obtain the parameters you will need to access the API.  The [Statistics Summary](https://developer.sportradar.com/files/Sportradar_NBA_v7_Statistics_Summary.pdf) provides a high-level overview of all the data points provided within the whole API, giving you an “at a glance” view of the data we offer.  The [Documentation](https://developer.sportradar.com/files/Sportradar_NBA_v7_Statistics_Feeds.pdf) provides a list of endpoints for the API with basic descriptions. When applicable, we include information on the Coverage Levels provided for the API. This document also includes descriptions of each data point and information about where each data point can be found within the API.  The [NBA Play-In Tournament](https://developer.sportradar.com/files/Sportradar_NBA_Play_In_Tournament.pdf) provides a detailed breakdown on the structure and workflow of the Play-In Tournament in the NBA API.   [Frequently Asked Questions](https://developer.sportradar.com/docs/read/basketball/NBA_v7#frequently-asked-questions) about the API can be found on the Developer Portal and in the Documentation mentioned above.  The [Change Log](https://developer.sportradar.com/files/NBA_API_v7_Change_Log.pdf) provides a list of changes and updates to this version of the API since the initial release of the API version.  If you need further information, contact our support team:   Email: [support@sportradar.com](mailto:support@sportradar.com)
 *
 * The version of the OpenAPI document: 8
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/* tslint:disable:no-unused-variable member-ordering */

import { Inject, Injectable, Optional } from '@nestjs/common';
import { HttpService } from '@nestjs/axios';
import { AxiosResponse } from 'axios';
import { Observable } from 'rxjs';
import { Configuration } from '../configuration';
import { DefaultSportradarNbaApiServiceInterface } from './default.serviceInterface';

@Injectable()
export class DefaultSportradarNbaApiService implements DefaultSportradarNbaApiServiceInterface {

    protected basePath = 'https://api.sportradar.com/nba/production/v7';
    public defaultHeaders: Record<string,string> = {};
    public configuration = new Configuration();

    constructor(protected httpClient: HttpService, @Optional() configuration: Configuration) {
        this.configuration = configuration || this.configuration;
        this.basePath = configuration?.basePath || this.basePath;
    }

    /**
     * @param consumes string[] mime-types
     * @return true: consumes contains 'multipart/form-data', false: otherwise
     */
    private canConsumeForm(consumes: string[]): boolean {
        const form = 'multipart/form-data';
        return consumes.includes(form);
    }

    /**
     * Daily Change Log
     * Provides IDs and timestamps for teams, players, game statistics, schedules, and standings that have been modified on a given date. To receive the data updates, use these unique IDs to pull relevant API feeds.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param month (Required) Month in 2 digit format
     * @param day (Required) Day in 2 digit format
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public dailyChangeLog(locale: string, year: number, month: number, day: number, format: string, ): Observable<AxiosResponse<any>>;
    public dailyChangeLog(locale: string, year: number, month: number, day: number, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling dailyChangeLog.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling dailyChangeLog.');
        }

        if (month === null || month === undefined) {
            throw new Error('Required parameter month was null or undefined when calling dailyChangeLog.');
        }

        if (day === null || day === undefined) {
            throw new Error('Required parameter day was null or undefined when calling dailyChangeLog.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling dailyChangeLog.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/league/${encodeURIComponent(String(year))}/${encodeURIComponent(String(month))}/${encodeURIComponent(String(day))}/changes.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Daily Schedule
     * Date, time, location, and other event details for every game taking place in the league-defined day.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param month (Required) Month in 2 digit format
     * @param day (Required) Day in 2 digit format
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public dailySchedule(locale: string, year: number, month: number, day: number, format: string, ): Observable<AxiosResponse<any>>;
    public dailySchedule(locale: string, year: number, month: number, day: number, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling dailySchedule.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling dailySchedule.');
        }

        if (month === null || month === undefined) {
            throw new Error('Required parameter month was null or undefined when calling dailySchedule.');
        }

        if (day === null || day === undefined) {
            throw new Error('Required parameter day was null or undefined when calling dailySchedule.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling dailySchedule.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/games/${encodeURIComponent(String(year))}/${encodeURIComponent(String(month))}/${encodeURIComponent(String(day))}/schedule.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Daily Transfers
     * Information for all transfers added or edited during the league-defined day.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param month (Required) Month in 2 digit format
     * @param day (Required) Day in 2 digit format
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public dailyTransfers(locale: string, year: number, month: number, day: number, format: string, ): Observable<AxiosResponse<any>>;
    public dailyTransfers(locale: string, year: number, month: number, day: number, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling dailyTransfers.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling dailyTransfers.');
        }

        if (month === null || month === undefined) {
            throw new Error('Required parameter month was null or undefined when calling dailyTransfers.');
        }

        if (day === null || day === undefined) {
            throw new Error('Required parameter day was null or undefined when calling dailyTransfers.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling dailyTransfers.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/league/${encodeURIComponent(String(year))}/${encodeURIComponent(String(month))}/${encodeURIComponent(String(day))}/transfers.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Draft Summary
     * Provides pre-draft pick order with live pick selections during the draft. Displays information on draft rounds, picks, teams, and prospects for a given draft year.
     * @param locale (Required) Locale used for translations
     * @param year 
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public draftSummary(locale: string, year: string, format: string, ): Observable<AxiosResponse<any>>;
    public draftSummary(locale: string, year: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling draftSummary.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling draftSummary.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling draftSummary.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/${encodeURIComponent(String(year))}/draft.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Free Agents
     * Detailed player information for all current free agents in the league.
     * @param locale (Required) Locale used for translations
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public freeAgents(locale: string, format: string, ): Observable<AxiosResponse<any>>;
    public freeAgents(locale: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling freeAgents.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling freeAgents.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/league/free_agents.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Game Boxscore
     * Top-level team scores by quarter, along with full statistics for each teams’ leaders in points, rebounds, and assists.
     * @param locale (Required) Locale used for translations
     * @param game_id (Required) ID of a game
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public gameBoxscore(locale: string, game_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public gameBoxscore(locale: string, game_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling gameBoxscore.');
        }

        if (game_id === null || game_id === undefined) {
            throw new Error('Required parameter game_id was null or undefined when calling gameBoxscore.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling gameBoxscore.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/games/${encodeURIComponent(String(game_id))}/boxscore.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Game Summary
     * Top-level boxscore information, along with detailed game stats at the team and player levels.
     * @param locale (Required) Locale used for translations
     * @param game_id (Required) ID of a game
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public gameSummary(locale: string, game_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public gameSummary(locale: string, game_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling gameSummary.');
        }

        if (game_id === null || game_id === undefined) {
            throw new Error('Required parameter game_id was null or undefined when calling gameSummary.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling gameSummary.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/games/${encodeURIComponent(String(game_id))}/summary.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Injuries
     * Information concerning all active player injuries for each NBA team.
     * @param locale (Required) Locale used for translations
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public injuries(locale: string, format: string, ): Observable<AxiosResponse<any>>;
    public injuries(locale: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling injuries.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling injuries.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/league/injuries.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * League Hierarchy
     * League, conference, division, and team identification and association information.
     * @param locale (Required) Locale used for translations
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public leagueHierarchy(locale: string, format: string, ): Observable<AxiosResponse<any>>;
    public leagueHierarchy(locale: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling leagueHierarchy.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling leagueHierarchy.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/league/hierarchy.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * League Leaders
     * NBA leader information for various offensive and defensive categories including full player seasonal statistics for each player in each category.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public leagueLeaders(locale: string, year: number, season_type: string, format: string, ): Observable<AxiosResponse<any>>;
    public leagueLeaders(locale: string, year: number, season_type: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling leagueLeaders.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling leagueLeaders.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling leagueLeaders.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling leagueLeaders.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/leaders.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Play-By-Play
     * Detailed, real-time information on every team possession and game event.
     * @param locale (Required) Locale used for translations
     * @param game_id (Required) ID of a game
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public playByPlay(locale: string, game_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public playByPlay(locale: string, game_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling playByPlay.');
        }

        if (game_id === null || game_id === undefined) {
            throw new Error('Required parameter game_id was null or undefined when calling playByPlay.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling playByPlay.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/games/${encodeURIComponent(String(game_id))}/pbp.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Player Profile
     * Provides player biographical information, draft information, and seasonal statistics for the regular season and postseason.
     * @param locale (Required) Locale used for translations
     * @param game_id (Required) ID of a game
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public playerProfile(locale: string, game_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public playerProfile(locale: string, game_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling playerProfile.');
        }

        if (game_id === null || game_id === undefined) {
            throw new Error('Required parameter game_id was null or undefined when calling playerProfile.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling playerProfile.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/players/${encodeURIComponent(String(game_id))}/profile.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Prospects
     * Provides a list of upcoming or historical draft prospects for a given year.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public prospects(locale: string, year: number, format: string, ): Observable<AxiosResponse<any>>;
    public prospects(locale: string, year: number, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling prospects.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling prospects.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling prospects.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/${encodeURIComponent(String(year))}/prospects.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Rankings
     * Conference and division rank for each team, including playoff clinching status.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_year (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public rankings(locale: string, year: number, season_year: string, format: string, ): Observable<AxiosResponse<any>>;
    public rankings(locale: string, year: number, season_year: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling rankings.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling rankings.');
        }

        if (season_year === null || season_year === undefined) {
            throw new Error('Required parameter season_year was null or undefined when calling rankings.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling rankings.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_year))}/rankings.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Schedule
     * Date, time, location, and other event details for every match-up taking place in the full league season.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public schedule(locale: string, year: number, season_type: string, format: string, ): Observable<AxiosResponse<any>>;
    public schedule(locale: string, year: number, season_type: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling schedule.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling schedule.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling schedule.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling schedule.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/games/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/schedule.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Seasonal Statistics
     * Provides complete team and player seasonal statistics for a given season and season type.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public seasonalStatistics(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public seasonalStatistics(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling seasonalStatistics.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling seasonalStatistics.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling seasonalStatistics.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling seasonalStatistics.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling seasonalStatistics.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/teams/${encodeURIComponent(String(team_id))}/statistics.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Seasons
     * Provides a list of all available seasons, including preseasons and postseasons.
     * @param locale (Required) Locale used for translations
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public seasons(locale: string, format: string, ): Observable<AxiosResponse<any>>;
    public seasons(locale: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling seasons.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling seasons.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/league/seasons.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Series Schedule
     * Playoff participant information as well as the date, time, location, and other event details for every match-up taking place for the entire playoffs.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public seriesSchedule(locale: string, year: number, season_type: string, format: string, ): Observable<AxiosResponse<any>>;
    public seriesSchedule(locale: string, year: number, season_type: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling seriesSchedule.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling seriesSchedule.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling seriesSchedule.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling seriesSchedule.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/series/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/schedule.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Series Statistics
     * Detailed team and player statistics for a given playoff series.
     * @param locale (Required) Locale used for translations
     * @param series_id (Required) ID of a series
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public seriesStatistics(locale: string, series_id: string, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public seriesStatistics(locale: string, series_id: string, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling seriesStatistics.');
        }

        if (series_id === null || series_id === undefined) {
            throw new Error('Required parameter series_id was null or undefined when calling seriesStatistics.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling seriesStatistics.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling seriesStatistics.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/series/${encodeURIComponent(String(series_id))}/teams/${encodeURIComponent(String(team_id))}/statistics.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Splits (Game)
     * Detailed Team, Player, and Opponent game splits across various views including: Home Team, Loss, Vs Opponent, Overtime, Over 500, Road, Under 500, At Venue, and Wins.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public splitsGame(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public splitsGame(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling splitsGame.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling splitsGame.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling splitsGame.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling splitsGame.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling splitsGame.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/teams/${encodeURIComponent(String(team_id))}/splits/game.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Splits (Hierarchy)
     * Detailed Team, Player, and Opponent splits across each Conference and Division.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public splitsHierarchy(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public splitsHierarchy(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling splitsHierarchy.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling splitsHierarchy.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling splitsHierarchy.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling splitsHierarchy.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling splitsHierarchy.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/teams/${encodeURIComponent(String(team_id))}/splits/hierarchy.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Splits (Ingame)
     * Detailed Team, Player, and Opponent in-game splits across various views including: Higher Field Goal Percentage, Less Personal Fouls, Less Rebounds, Less Turnovers, Lower Field Goal Percentage, More Personal Fouls, More Rebounds, More Turnovers, Over 100 Against, Over 100 For, Same Personal Fouls, Same Rebounds, Same Turnovers, Under 100 Against, and Under 100 For.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public splitsIngame(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public splitsIngame(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling splitsIngame.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling splitsIngame.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling splitsIngame.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling splitsIngame.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling splitsIngame.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/teams/${encodeURIComponent(String(team_id))}/splits/ingame.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Splits (Schedule)
     * Detailed Team, Player, and Opponent splits across various schedule views including: Days of Rest (1, 2, or 3+), Day of the Week, Last 5, Last 10, By Month, and By Week.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public splitsSchedule(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public splitsSchedule(locale: string, year: number, season_type: string, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling splitsSchedule.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling splitsSchedule.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling splitsSchedule.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling splitsSchedule.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling splitsSchedule.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/teams/${encodeURIComponent(String(team_id))}/splits/schedule.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Standings
     * Detailed team records across various views including, overall, conference, and division information.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param season_type (Required) Season type as Preseason (PRE), Regular (REG), or Postseason (PST)
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public standings(locale: string, year: number, season_type: string, format: string, ): Observable<AxiosResponse<any>>;
    public standings(locale: string, year: number, season_type: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling standings.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling standings.');
        }

        if (season_type === null || season_type === undefined) {
            throw new Error('Required parameter season_type was null or undefined when calling standings.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling standings.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/seasons/${encodeURIComponent(String(year))}/${encodeURIComponent(String(season_type))}/standings.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Team Draft Summary
     * Provides pre-draft pick order with live pick selections during the draft for a given team.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public teamDraftSummary(locale: string, year: number, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public teamDraftSummary(locale: string, year: number, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling teamDraftSummary.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling teamDraftSummary.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling teamDraftSummary.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling teamDraftSummary.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/${encodeURIComponent(String(year))}/teams/${encodeURIComponent(String(team_id))}/draft.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Team Profile (Rosters)
     * Provides top-level team information and a full roster of active players.
     * @param locale (Required) Locale used for translations
     * @param team_id (Required) ID of a team
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public teamProfileRosters(locale: string, team_id: string, format: string, ): Observable<AxiosResponse<any>>;
    public teamProfileRosters(locale: string, team_id: string, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling teamProfileRosters.');
        }

        if (team_id === null || team_id === undefined) {
            throw new Error('Required parameter team_id was null or undefined when calling teamProfileRosters.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling teamProfileRosters.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/teams/${encodeURIComponent(String(team_id))}/profile.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Top Prospects
     * Provides a list of the top prospects for a given year.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public topProspects(locale: string, year: number, format: string, ): Observable<AxiosResponse<any>>;
    public topProspects(locale: string, year: number, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling topProspects.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling topProspects.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling topProspects.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/${encodeURIComponent(String(year))}/top_prospects.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
    /**
     * Trades
     * Provides summary details of all in-draft trades.
     * @param locale (Required) Locale used for translations
     * @param year (Required) Year in 4 digit format
     * @param format 
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    public trades(locale: string, year: number, format: string, ): Observable<AxiosResponse<any>>;
    public trades(locale: string, year: number, format: string, ): Observable<any> {

        if (locale === null || locale === undefined) {
            throw new Error('Required parameter locale was null or undefined when calling trades.');
        }

        if (year === null || year === undefined) {
            throw new Error('Required parameter year was null or undefined when calling trades.');
        }

        if (format === null || format === undefined) {
            throw new Error('Required parameter format was null or undefined when calling trades.');
        }

        let headers = {...this.defaultHeaders};

        // authentication (apikeyAuth) required
        let queryParameters = new URLSearchParams();
        if (this.configuration.apiKeys["api_key"]) {
            queryParameters.append('api_key', this.configuration.apiKeys["api_key"]);
        }

        // to determine the Accept header
        let httpHeaderAccepts: string[] = [
            'application/json'
        ];
        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
        if (httpHeaderAcceptSelected != undefined) {
            headers['Accept'] = httpHeaderAcceptSelected;
        }

        // to determine the Content-Type header
        const consumes: string[] = [
        ];
        return this.httpClient.get<any>(`${this.basePath}/${encodeURIComponent(String(locale))}/${encodeURIComponent(String(year))}/trades.${encodeURIComponent(String(format))}`,
            {
                withCredentials: this.configuration.withCredentials,
                params: queryParameters,
                headers: headers
            }
        );
    }
}

